From minios-devel-bounces@lists.xenproject.org Wed Oct 04 13:33:47 2017
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 04 Oct 2017 13:33:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1dzjo3-0002ez-5x; Wed, 04 Oct 2017 13:33:47 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=443a8edce=wei.liu2@citrix.com>)
 id 1dzjo2-0002ek-5F; Wed, 04 Oct 2017 13:33:46 +0000
Received: from [193.109.254.147] by server-6.bemta-6.messagelabs.com id
 79/4D-03435-933E4D95; Wed, 04 Oct 2017 13:33:45 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrHLMWRWlGSWpSXmKPExsXitHRDpK7p4yu
 RBu+PsFq8/bqE2eL7lslMDkwehz9cYQlgjGLNzEvKr0hgzbg0aSFrwVv2intHtjI2MF5i62Lk
 5JAQ8Jf4eqSZEcRmE1CW+NnZCxYXETCR+H3hNAuIzSxwllHiwVJdEFtYwFLiwf5tYPUsAioSx
 87cAKvnFbCQ2Lh1MwvETHmJXW0XWUFsIQEFiY7px5ggagQlTs58AjVTQuLgixfMExi5ZyFJzU
 KSWsDItIpRozi1qCy1SNfIQC+pKDM9oyQ3MTNH19DATC83tbg4MT01JzGpWC85P3cTIzAsGIB
 gB+OvZQGHGCU5mJREeasfXYkU4kvKT6nMSCzOiC8qzUktPsQow8GhJME7HSQnWJSanlqRlpkD
 DFCYtAQHj5IIbwxImre4IDG3ODMdInWKUZej4+bdP0xCLHn5ealS4rzyIEUCIEUZpXlwI2DRc
 olRVkqYlxHoKCGegtSi3MwSVPlXjOIcjErCvPkgU3gy80rgNr0COoIJ6Ig5TWBHlCQipKQaGE
 P6bRbXy823cVr58Om0ZMmUf8m/PI0EdM85/TmwdcOX+O9dpxaUX0uoZLtevdj6r3Cu1mr5iBs
 yW/dvMXVgZHQ6uNen/GT/pufrfBsOnz97L9xeasGE743W5SZOCy/36Blks3MtrM4S53mUIplr
 0Otux2jOLHuLTeXoqU+PN15ozZOYfYQxW4mlOCPRUIu5qDgRAIhlszSRAgAA
X-Env-Sender: prvs=443a8edce=wei.liu2@citrix.com
X-Msg-Ref: server-2.tower-27.messagelabs.com!1507124019!60350029!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 16512 invoked from network); 4 Oct 2017 13:33:40 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-2.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 4 Oct 2017 13:33:40 -0000
X-IronPort-AV: E=Sophos;i="5.42,477,1500940800"; d="scan'208";a="442479162"
From: Wei Liu <wei.liu2@citrix.com>
To: Minios-devel <minios-devel@lists.xenproject.org>
Date: Wed, 4 Oct 2017 14:33:36 +0100
Message-ID: <20171004133336.13357-1-wei.liu2@citrix.com>
X-Mailer: git-send-email 2.11.0
MIME-Version: 1.0
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Julien Grall <julien.grall@arm.com>, Wei Liu <wei.liu2@citrix.com>,
 Ian Jackson <ian.jackson@eu.citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>
Subject: [Minios-devel] [MINIOS PATCH] Include string.h before console.h
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U3RhcnRpbmcgZnJvbSBYZW4gY29tbWl0IGFmOGQ5MzU2NCwgaXQgaXMgcmVxdWlyZWQgdG8gaW5j
bHVkZSBzdHJpbmcuaApiZWZvcmUgY29uc29sZS5oLgoKU2lnbmVkLW9mZi1ieTogV2VpIExpdSA8
d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0tCkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUu
Y2l0cml4LmNvbT4KQ2M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+CkNjOiBT
YW11ZWwgVGhpYmF1bHQgPHNhbXVlbC50aGliYXVsdEBlbnMtbHlvbi5vcmc+CgpBZnRlciBhcHBs
eWluZyB0aGlzIHBhdGNoIHRvIG1pbmktb3MgSSB3aWxsIHVwZGF0ZSBYZW4ncyBDb25maWcubWsg
dG8KZml4IHRoZSBidWlsZCBmYWlsdXJlIGluIHhlbi5naXQuCgpJIHdpbGwgYWxzbyB1cGRhdGUg
bWluaS1vcydzIGNvcHkgb2YgWGVuIGhlYWRlcnMgbGF0ZXIuCi0tLQogbGliL3N5cy5jIHwgMSAr
CiBtYWluLmMgICAgfCAxICsKIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZm
IC0tZ2l0IGEvbGliL3N5cy5jIGIvbGliL3N5cy5jCmluZGV4IGIxNzNiYzguLjIzZGMyYTUgMTAw
NjQ0Ci0tLSBhL2xpYi9zeXMuYworKysgYi9saWIvc3lzLmMKQEAgLTIwLDYgKzIwLDcgQEAKIAog
I2lmZGVmIEhBVkVfTElCQwogI2luY2x1ZGUgPG9zLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CiAj
aW5jbHVkZSA8Y29uc29sZS5oPgogI2luY2x1ZGUgPHNjaGVkLmg+CiAjaW5jbHVkZSA8ZXZlbnRz
Lmg+CmRpZmYgLS1naXQgYS9tYWluLmMgYi9tYWluLmMKaW5kZXggMjYzMzY0Yy4uNGU0MmY1MyAx
MDA2NDQKLS0tIGEvbWFpbi5jCisrKyBiL21haW4uYwpAQCAtOCw2ICs4LDcgQEAKICNpbmNsdWRl
IDxvcy5oPgogI2luY2x1ZGUgPGtlcm5lbC5oPgogI2luY2x1ZGUgPHNjaGVkLmg+CisjaW5jbHVk
ZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8Y29uc29sZS5oPgogI2luY2x1ZGUgPG5ldGZyb250Lmg+
CiAjaW5jbHVkZSA8cGNpZnJvbnQuaD4KLS0gCjIuMTEuMAoKCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWlu
aW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5v
cmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Wed Oct 04 13:36:38 2017
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 04 Oct 2017 13:36:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1dzjqo-0002zg-8L; Wed, 04 Oct 2017 13:36:38 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=443a8edce=wei.liu2@citrix.com>)
 id 1dzjqn-0002zC-5Z; Wed, 04 Oct 2017 13:36:37 +0000
Received: from [85.158.137.68] by server-17.bemta-3.messagelabs.com id
 A9/97-01911-4E3E4D95; Wed, 04 Oct 2017 13:36:36 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprHIsWRWlGSWpSXmKPExsXitHRDpO7jx1c
 iDc73qFu8/bqE2eL7lslMDkwehz9cYQlgjGLNzEvKr0hgzVh87iRLwTfOinM3HzA1MPZydDFy
 ckgI+EucXHaVHcRmEVCR2DF/JSOIzSagLPGzs5cNxBYRMJH4feE0C4jNLHCWUeLBUl0QW1jAV
 qLnxD+wOK+AhcTKjd+Bejk4hIDsndPYIcKCEidnPoFq1ZFYsPsTG0gJs4C0xPJ/YBdwClhKPG
 yfBLZJFOiCzqVzwMqFBBQkOqYfY5rAyDcLyaRZSCbNQpi0gJF5FaN6cWpRWWqRrqFeUlFmekZ
 JbmJmjq6hgbFebmpxcWJ6ak5iUrFecn7uJkZguDEAwQ7G5R+dDjFKcjApifIK37wSKcSXlJ9S
 mZFYnBFfVJqTWnyIUYaDQ0mCd/ojoJxgUWp6akVaZg4w8GHSEhw8SiK8E0HSvMUFibnFmekQq
 VOMilLivPIgCQGQREZpHlwbLNouMcpKCfMyAh0ixFOQWpSbWYIq/4pRnINRSZg3H2QKT2ZeCd
 z0V0CLmYAWz2kCW1ySiJCSamCcm/JwzYt/XuwJ91Ymne2IZOf/47xL58+NTTqszu6p3Cvurp/
 +Uziosn/1Wf7MRffObYz+H1n5W0JzosDElleHt2nu+aaf8HadWhSb2rrwtOPCZX2psdfDqm7e
 US/vl1NI/aH/Tcks5MJdPoPyyBezn+9TMuJT9f0yS3OF4GrG9kO89wXT51QosRRnJBpqMRcVJ
 wIA3TcwI7ECAAA=
X-Env-Sender: prvs=443a8edce=wei.liu2@citrix.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1507124188!117878528!2
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 39928 invoked from network); 4 Oct 2017 13:36:35 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-3.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 4 Oct 2017 13:36:35 -0000
X-IronPort-AV: E=Sophos;i="5.42,477,1500940800"; d="scan'208";a="442479570"
Date: Wed, 4 Oct 2017 14:36:33 +0100
From: Wei Liu <wei.liu2@citrix.com>
To: Minios-devel <minios-devel@lists.xenproject.org>
Message-ID: <20171004133633.wg553zt5qp4qryls@citrix.com>
References: <20171004133336.13357-1-wei.liu2@citrix.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <20171004133336.13357-1-wei.liu2@citrix.com>
User-Agent: NeoMutt/20170113 (1.7.2)
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Julien Grall <julien.grall@arm.com>, Wei Liu <wei.liu2@citrix.com>,
 Ian Jackson <ian.jackson@eu.citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>
Subject: Re: [Minios-devel] [MINIOS PATCH] Include string.h before console.h
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

T24gV2VkLCBPY3QgMDQsIDIwMTcgYXQgMDI6MzM6MzZQTSArMDEwMCwgV2VpIExpdSB3cm90ZToK
PiBTdGFydGluZyBmcm9tIFhlbiBjb21taXQgYWY4ZDkzNTY0LCBpdCBpcyByZXF1aXJlZCB0byBp
bmNsdWRlIHN0cmluZy5oCj4gYmVmb3JlIGNvbnNvbGUuaC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBX
ZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgoKU29ycnkgdGhpcyBvbmUgaXNuJ3QgY29tcGxl
dGUuIFRoZXJlIGFyZSBvdGhlciBpbnN0YW5jZXMgd2hlcmUgc3RyaW5nLmgKYXJlIG5lZWRlZC4g
QnV0IHRoZSBiYXNpYyBpZGVhIGlzIHRoZSBzYW1lLgoKPiAtLS0KPiBDYzogSWFuIEphY2tzb24g
PGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+Cj4gQ2M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdy
YWxsQGFybS5jb20+Cj4gQ2M6IFNhbXVlbCBUaGliYXVsdCA8c2FtdWVsLnRoaWJhdWx0QGVucy1s
eW9uLm9yZz4KPiAKPiBBZnRlciBhcHBseWluZyB0aGlzIHBhdGNoIHRvIG1pbmktb3MgSSB3aWxs
IHVwZGF0ZSBYZW4ncyBDb25maWcubWsgdG8KPiBmaXggdGhlIGJ1aWxkIGZhaWx1cmUgaW4geGVu
LmdpdC4KPiAKPiBJIHdpbGwgYWxzbyB1cGRhdGUgbWluaS1vcydzIGNvcHkgb2YgWGVuIGhlYWRl
cnMgbGF0ZXIuCj4gLS0tCj4gIGxpYi9zeXMuYyB8IDEgKwo+ICBtYWluLmMgICAgfCAxICsKPiAg
MiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEvbGliL3N5
cy5jIGIvbGliL3N5cy5jCj4gaW5kZXggYjE3M2JjOC4uMjNkYzJhNSAxMDA2NDQKPiAtLS0gYS9s
aWIvc3lzLmMKPiArKysgYi9saWIvc3lzLmMKPiBAQCAtMjAsNiArMjAsNyBAQAo+ICAKPiAgI2lm
ZGVmIEhBVkVfTElCQwo+ICAjaW5jbHVkZSA8b3MuaD4KPiArI2luY2x1ZGUgPHN0cmluZy5oPgo+
ICAjaW5jbHVkZSA8Y29uc29sZS5oPgo+ICAjaW5jbHVkZSA8c2NoZWQuaD4KPiAgI2luY2x1ZGUg
PGV2ZW50cy5oPgo+IGRpZmYgLS1naXQgYS9tYWluLmMgYi9tYWluLmMKPiBpbmRleCAyNjMzNjRj
Li40ZTQyZjUzIDEwMDY0NAo+IC0tLSBhL21haW4uYwo+ICsrKyBiL21haW4uYwo+IEBAIC04LDYg
KzgsNyBAQAo+ICAjaW5jbHVkZSA8b3MuaD4KPiAgI2luY2x1ZGUgPGtlcm5lbC5oPgo+ICAjaW5j
bHVkZSA8c2NoZWQuaD4KPiArI2luY2x1ZGUgPHN0cmluZy5oPgo+ICAjaW5jbHVkZSA8Y29uc29s
ZS5oPgo+ICAjaW5jbHVkZSA8bmV0ZnJvbnQuaD4KPiAgI2luY2x1ZGUgPHBjaWZyb250Lmg+Cj4g
LS0gCj4gMi4xMS4wCj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5w
cm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9s
aXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Wed Oct 04 13:39:00 2017
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 04 Oct 2017 13:39:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1dzjt6-0003R6-4l; Wed, 04 Oct 2017 13:39:00 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1dzjt4-0003QZ-9L; Wed, 04 Oct 2017 13:38:58 +0000
Received: from [85.158.143.35] by server-4.bemta-6.messagelabs.com id
 2C/33-03283-174E4D95; Wed, 04 Oct 2017 13:38:57 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrGIsWRWlGSWpSXmKPExsVyoG1Jhm7Bkyu
 RBqdnWFi8/bqE2eL7lslMDkwehz9cYQlgjGLNzEvKr0hgzeg9PY+xYAdXxYR7x1kbGI9ydDFy
 ckgI+EtcWn2GBcQWEtjIKLG+Ka2LkQvI3sAo0fnxExNIgkVARaJ7/UlmEJtNwESiv3EeG4gtI
 qAo8eDlTVaQBmaQ5nkvpoNNEhawleg58Q/M5hXwkpjx8As7SBGvwAQmiTntP4E6OIBWWEjsnM
 YOUSMocXLmE7B6ZgEtiRv/XjKBlDALSEss/wd2KKeApcTD9klge/kFFCS2XHsJVi4KdFvn0jk
 sExgFZyGZNAvJpFkIkxYwMq9i1ChOLSpLLdI1MtBLKspMzyjJTczM0TU0MNPLTS0uTkxPzUlM
 KtZLzs/dxAgMXwYg2MH4a1nAIUZJDiYlUd7qR1cihfiS8lMqMxKLM+KLSnNSiw8xynBwKEnwl
 j8GygkWpaanVqRl5gAjCSYtwcGjJMJbD5LmLS5IzC3OTIdInWJUlBLn5QZJCIAkMkrz4Npg0X
 uJUVZKmJcR6BAhnoLUotzMElT5V4ziHIxKwryhIFN4MvNK4Ka/AlrMBLR4ThPY4pJEhJRUA6N
 Dw9c7fKdFDXYeNVt17eP2f/N0XtcayRvzf3zz/E+cX2iBrIvmZxWdD/xT/Jn2v/367FSU7FJm
 Mw4RLZ1imzb2t3tOxAqeORm+t6tgtsvkpMoTi3xXmZ2zvfdCR7Pkx7snN6M1FIXvWpY+K53/R
 MEsq/dLz7/H772lO24sN7/5SyjNffIODXYlluKMREMt5qLiRADmlTkU2QIAAA==
X-Env-Sender: samuel.thibault@ens-lyon.org
X-Msg-Ref: server-10.tower-21.messagelabs.com!1507124336!69643392!1
X-Originating-IP: [192.134.164.104]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 64737 invoked from network); 4 Oct 2017 13:38:56 -0000
Received: from mail3-relais-sop.national.inria.fr (HELO
 mail3-relais-sop.national.inria.fr) (192.134.164.104)
 by server-10.tower-21.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted
 SMTP; 4 Oct 2017 13:38:56 -0000
X-IronPort-AV: E=Sophos;i="5.42,477,1500933600"; d="scan'208";a="239724202"
Received: from unknown (HELO var.youpi.perso.aquilenet.fr) ([193.50.110.99])
 by mail3-relais-sop.national.inria.fr with ESMTP/TLS/AES256-GCM-SHA384;
 04 Oct 2017 15:38:55 +0200
Received: from samy by var.youpi.perso.aquilenet.fr with local (Exim 4.89)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1dzjt1-0003kF-3F; Wed, 04 Oct 2017 15:38:55 +0200
Date: Wed, 4 Oct 2017 15:38:55 +0200
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
To: Wei Liu <wei.liu2@citrix.com>
Message-ID: <20171004133855.kwueou6haevkjlwx@var.youpi.perso.aquilenet.fr>
Mail-Followup-To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Wei Liu <wei.liu2@citrix.com>,
 Minios-devel <minios-devel@lists.xenproject.org>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Ian Jackson <ian.jackson@eu.citrix.com>,
 Julien Grall <julien.grall@arm.com>
References: <20171004133336.13357-1-wei.liu2@citrix.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <20171004133336.13357-1-wei.liu2@citrix.com>
Organization: I am not organized
User-Agent: NeoMutt/20170113 (1.7.2)
Cc: Minios-devel <minios-devel@lists.xenproject.org>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Julien Grall <julien.grall@arm.com>, Ian Jackson <ian.jackson@eu.citrix.com>
Subject: Re: [Minios-devel] [MINIOS PATCH] Include string.h before console.h
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

V2VpIExpdSwgb24gbWVyLiAwNCBvY3QuIDIwMTcgMTQ6MzM6MzYgKzAxMDAsIHdyb3RlOgo+IFN0
YXJ0aW5nIGZyb20gWGVuIGNvbW1pdCBhZjhkOTM1NjQsIGl0IGlzIHJlcXVpcmVkIHRvIGluY2x1
ZGUgc3RyaW5nLmgKPiBiZWZvcmUgY29uc29sZS5oLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFdlaSBM
aXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CgpSZXZpZXdlZC1ieTogU2FtdWVsIFRoaWJhdWx0IDxz
YW11ZWwudGhpYmF1bHRAZW5zLWx5b24ub3JnPgoKPiAtLS0KPiBDYzogSWFuIEphY2tzb24gPGlh
bi5qYWNrc29uQGV1LmNpdHJpeC5jb20+Cj4gQ2M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxs
QGFybS5jb20+Cj4gQ2M6IFNhbXVlbCBUaGliYXVsdCA8c2FtdWVsLnRoaWJhdWx0QGVucy1seW9u
Lm9yZz4KPiAKPiBBZnRlciBhcHBseWluZyB0aGlzIHBhdGNoIHRvIG1pbmktb3MgSSB3aWxsIHVw
ZGF0ZSBYZW4ncyBDb25maWcubWsgdG8KPiBmaXggdGhlIGJ1aWxkIGZhaWx1cmUgaW4geGVuLmdp
dC4KPiAKPiBJIHdpbGwgYWxzbyB1cGRhdGUgbWluaS1vcydzIGNvcHkgb2YgWGVuIGhlYWRlcnMg
bGF0ZXIuCj4gLS0tCj4gIGxpYi9zeXMuYyB8IDEgKwo+ICBtYWluLmMgICAgfCAxICsKPiAgMiBm
aWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEvbGliL3N5cy5j
IGIvbGliL3N5cy5jCj4gaW5kZXggYjE3M2JjOC4uMjNkYzJhNSAxMDA2NDQKPiAtLS0gYS9saWIv
c3lzLmMKPiArKysgYi9saWIvc3lzLmMKPiBAQCAtMjAsNiArMjAsNyBAQAo+ICAKPiAgI2lmZGVm
IEhBVkVfTElCQwo+ICAjaW5jbHVkZSA8b3MuaD4KPiArI2luY2x1ZGUgPHN0cmluZy5oPgo+ICAj
aW5jbHVkZSA8Y29uc29sZS5oPgo+ICAjaW5jbHVkZSA8c2NoZWQuaD4KPiAgI2luY2x1ZGUgPGV2
ZW50cy5oPgo+IGRpZmYgLS1naXQgYS9tYWluLmMgYi9tYWluLmMKPiBpbmRleCAyNjMzNjRjLi40
ZTQyZjUzIDEwMDY0NAo+IC0tLSBhL21haW4uYwo+ICsrKyBiL21haW4uYwo+IEBAIC04LDYgKzgs
NyBAQAo+ICAjaW5jbHVkZSA8b3MuaD4KPiAgI2luY2x1ZGUgPGtlcm5lbC5oPgo+ICAjaW5jbHVk
ZSA8c2NoZWQuaD4KPiArI2luY2x1ZGUgPHN0cmluZy5oPgo+ICAjaW5jbHVkZSA8Y29uc29sZS5o
Pgo+ICAjaW5jbHVkZSA8bmV0ZnJvbnQuaD4KPiAgI2luY2x1ZGUgPHBjaWZyb250Lmg+Cj4gLS0g
Cj4gMi4xMS4wCj4gCgotLSAKU2FtdWVsCiBCYXR0ZXJ5IDE6IGNoYXJnaW5nLCA5MCUsIGNoYXJn
aW5nIGF0IHplcm8gcmF0ZSAtIHdpbGwgbmV2ZXIgZnVsbHkgY2hhcmdlLgogLSstIGFjcGkgLSBl
dCBwb3VydGFudCwgY2EgbW9udGUgLSstCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBs
aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4v
bWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Wed Oct 04 13:44:03 2017
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 04 Oct 2017 13:44:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1dzjxz-0004TM-C2; Wed, 04 Oct 2017 13:44:03 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=443a8edce=wei.liu2@citrix.com>)
 id 1dzjxx-0004Sh-0v; Wed, 04 Oct 2017 13:44:02 +0000
Received: from [193.109.254.147] by server-7.bemta-6.messagelabs.com id
 AC/34-03610-0A5E4D95; Wed, 04 Oct 2017 13:44:00 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprOIsWRWlGSWpSXmKPExsXitHSDve7Up1c
 iDe4fUbF4+3UJs8X3LZOZHJg8Dn+4whLAGMWamZeUX5HAmnFm217WgpfvJSvePuthbmB8ckK4
 i5GTQ0LAX2LmmSZWEJtNQFniZ2cvG4gtImAi8fvCaRYQm1mgTmLN3+lgtrCAmcTddYcZQWwWA
 RWJnuYfTF2MHBy8AuYSz9vVIUbKS+xquwg2kldAUOLkzCdQYzQlWrf/Zoew5SWat85mBrGFBB
 QkOqYfY5rAyDMLScssJC2zkLQsYGRexahRnFpUllqka2Sil1SUmZ5RkpuYmaNraGCml5taXJy
 YnpqTmFSsl5yfu4kRGEgMQLCDcd/HyEOMkhxMSqK81Y+uRArxJeWnVGYkFmfEF5XmpBYfYpTh
 4FCS4E14ApQTLEpNT61Iy8wBhjRMWoKDR0mE1xwkzVtckJhbnJkOkTrFqMvRcfPuHyYhlrz8v
 FQpcd4KkCIBkKKM0jy4EbD4usQoKyXMywh0lBBPQWpRbmYJqvwrRnEORiVh3lqQKTyZeSVwm1
 4BHcEEdMScJrAjShIRUlINjFbOv5+eFzv7h3m1XLG4yIRYSzfbskvf3bNuiflK7sso9jLzmT+
 l6sAu+T8ZTyfc8xH8ZvNA5UBD4YyFd/kZV+vrlfzx+SVlsCKsv6znmpUoc8d+ldsmmhu2NzOI
 p6e0rllb+vDf3b5Pm62Z0tgmO31PN+9+KtgiHfXnHX+/UdPc84/a/ZUYlViKMxINtZiLihMB4
 TDOI6oCAAA=
X-Env-Sender: prvs=443a8edce=wei.liu2@citrix.com
X-Msg-Ref: server-11.tower-27.messagelabs.com!1507124626!88085584!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 56045 invoked from network); 4 Oct 2017 13:43:48 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-11.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 4 Oct 2017 13:43:48 -0000
X-IronPort-AV: E=Sophos;i="5.42,477,1500940800"; d="scan'208";a="450449105"
From: Wei Liu <wei.liu2@citrix.com>
To: Minios-devel <minios-devel@lists.xenproject.org>
Date: Wed, 4 Oct 2017 14:43:30 +0100
Message-ID: <20171004134330.8008-1-wei.liu2@citrix.com>
X-Mailer: git-send-email 2.11.0
MIME-Version: 1.0
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Wei Liu <wei.liu2@citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>
Subject: [Minios-devel] [MINIOS PATCH] Update public headers from Xen
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0tCiBpbmNsdWRl
L3hlbi9hcmNoLWFybS5oICAgICAgICAgICAgICAgfCAgOTQgKysrLQogaW5jbHVkZS94ZW4vYXJj
aC14ODYvY3B1ZmVhdHVyZXNldC5oIHwgMjYzICsrKysrKysrKysrCiBpbmNsdWRlL3hlbi9hcmNo
LXg4Ni9jcHVpZC5oICAgICAgICAgfCAgMzIgKy0KIGluY2x1ZGUveGVuL2FyY2gteDg2L2h2bS9z
YXZlLmggICAgICB8IDEwMSArKy0tCiBpbmNsdWRlL3hlbi9hcmNoLXg4Ni9wbXUuaCAgICAgICAg
ICAgfCAxNjcgKysrKysrKwogaW5jbHVkZS94ZW4vYXJjaC14ODYveGVuLW1jYS5oICAgICAgIHwg
IDYwICstLQogaW5jbHVkZS94ZW4vYXJjaC14ODYveGVuLXg4Nl8zMi5oICAgIHwgIDY5ICsrLQog
aW5jbHVkZS94ZW4vYXJjaC14ODYveGVuLXg4Nl82NC5oICAgIHwgIDg3ICsrKy0KIGluY2x1ZGUv
eGVuL2FyY2gteDg2L3hlbi5oICAgICAgICAgICB8ICA3NCArKy0KIGluY2x1ZGUveGVuL2RvbWN0
bC5oICAgICAgICAgICAgICAgICB8IDU1NSArKysrKysrKysrKysrLS0tLS0tLS0tCiBpbmNsdWRl
L3hlbi9lbGZub3RlLmggICAgICAgICAgICAgICAgfCAgIDQgKy0KIGluY2x1ZGUveGVuL2Vycm5v
LmggICAgICAgICAgICAgICAgICB8IDEyNCArKysrKwogaW5jbHVkZS94ZW4vZXZlbnRfY2hhbm5l
bC5oICAgICAgICAgIHwgICAyICstCiBpbmNsdWRlL3hlbi9mZWF0dXJlcy5oICAgICAgICAgICAg
ICAgfCAgIDMgKwogaW5jbHVkZS94ZW4vZ2Nvdi5oICAgICAgICAgICAgICAgICAgIHwgMTE1IC0t
LS0tCiBpbmNsdWRlL3hlbi9ncmFudF90YWJsZS5oICAgICAgICAgICAgfCAgMTkgKy0KIGluY2x1
ZGUveGVuL2h2bS9kbV9vcC5oICAgICAgICAgICAgICB8IDQxNyArKysrKysrKysrKysrKysrKwog
aW5jbHVkZS94ZW4vaHZtL2U4MjAuaCAgICAgICAgICAgICAgIHwgICA4ICstCiBpbmNsdWRlL3hl
bi9odm0vaHZtX2luZm9fdGFibGUuaCAgICAgfCAgMTAgKwogaW5jbHVkZS94ZW4vaHZtL2h2bV9v
cC5oICAgICAgICAgICAgIHwgMzQwICsrKysrLS0tLS0tLS0tCiBpbmNsdWRlL3hlbi9odm0vaHZt
X3ZjcHUuaCAgICAgICAgICAgfCAxNDQgKysrKysrCiBpbmNsdWRlL3hlbi9odm0vaHZtX3hzX3N0
cmluZ3MuaCAgICAgfCAgIDMgKwogaW5jbHVkZS94ZW4vaHZtL2lvcmVxLmggICAgICAgICAgICAg
IHwgIDIyICstCiBpbmNsdWRlL3hlbi9odm0vcGFyYW1zLmggICAgICAgICAgICAgfCAxMjkgKysr
KystCiBpbmNsdWRlL3hlbi9odm0vc2F2ZS5oICAgICAgICAgICAgICAgfCAgMTAgKy0KIGluY2x1
ZGUveGVuL2lvLzlwZnMuaCAgICAgICAgICAgICAgICB8ICA0OSArKwogaW5jbHVkZS94ZW4vaW8v
YmxraWYuaCAgICAgICAgICAgICAgIHwgIDc0ICsrLQogaW5jbHVkZS94ZW4vaW8vY29uc29sZS5o
ICAgICAgICAgICAgIHwgICA2ICsKIGluY2x1ZGUveGVuL2lvL2Rpc3BsaWYuaCAgICAgICAgICAg
ICB8IDg2NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS94ZW4v
aW8va2JkaWYuaCAgICAgICAgICAgICAgIHwgNDcyICsrKysrKysrKysrKysrKysrLS0KIGluY2x1
ZGUveGVuL2lvL2xpYnhlbnZjaGFuLmggICAgICAgICB8ICAyNiArLQogaW5jbHVkZS94ZW4vaW8v
bmV0aWYuaCAgICAgICAgICAgICAgIHwgNzcyICsrKysrKysrKysrKysrKysrKysrKysrKysrKyst
LS0KIGluY2x1ZGUveGVuL2lvL3Byb3RvY29scy5oICAgICAgICAgICB8ICAgMiArCiBpbmNsdWRl
L3hlbi9pby9wdmNhbGxzLmggICAgICAgICAgICAgfCAxNTMgKysrKysrKwogaW5jbHVkZS94ZW4v
aW8vcmluZy5oICAgICAgICAgICAgICAgIHwgMTc2ICsrKysrKy0KIGluY2x1ZGUveGVuL2lvL3Nu
ZGlmLmggICAgICAgICAgICAgICB8IDgwMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KwogaW5jbHVkZS94ZW4vaW8vdXNiaWYuaCAgICAgICAgICAgICAgIHwgMTQ2ICsrKysrLQogaW5j
bHVkZS94ZW4vaW8vdnNjc2lpZi5oICAgICAgICAgICAgIHwgIDc0ICsrLQogaW5jbHVkZS94ZW4v
aW8veHNfd2lyZS5oICAgICAgICAgICAgIHwgIDEwICstCiBpbmNsdWRlL3hlbi9rZXhlYy5oICAg
ICAgICAgICAgICAgICAgfCAgMTQgKwogaW5jbHVkZS94ZW4vbWVtX2V2ZW50LmggICAgICAgICAg
ICAgIHwgMTM0IC0tLS0tLQogaW5jbHVkZS94ZW4vbWVtb3J5LmggICAgICAgICAgICAgICAgIHwg
MTE4ICsrKystCiBpbmNsdWRlL3hlbi9waHlzZGV2LmggICAgICAgICAgICAgICAgfCAgIDcgKwog
aW5jbHVkZS94ZW4vcGxhdGZvcm0uaCAgICAgICAgICAgICAgIHwgIDk1ICsrKy0KIGluY2x1ZGUv
eGVuL3BtdS5oICAgICAgICAgICAgICAgICAgICB8IDE0MyArKysrKysKIGluY2x1ZGUveGVuL3Nj
aGVkLmggICAgICAgICAgICAgICAgICB8ICAyOSArLQogaW5jbHVkZS94ZW4vc3lzY3RsLmggICAg
ICAgICAgICAgICAgIHwgNjQ5ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tCiBpbmNsdWRlL3hl
bi90bWVtLmggICAgICAgICAgICAgICAgICAgfCAgNjQgKy0tCiBpbmNsdWRlL3hlbi90cmFjZS5o
ICAgICAgICAgICAgICAgICAgfCAgMTAgKy0KIGluY2x1ZGUveGVuL3ZjcHUuaCAgICAgICAgICAg
ICAgICAgICB8ICAxMiArLQogaW5jbHVkZS94ZW4vdmVyc2lvbi5oICAgICAgICAgICAgICAgIHwg
IDI0ICstCiBpbmNsdWRlL3hlbi92bV9ldmVudC5oICAgICAgICAgICAgICAgfCAzNzggKysrKysr
KysrKysrKysrCiBpbmNsdWRlL3hlbi94ZW4tY29tcGF0LmggICAgICAgICAgICAgfCAgIDIgKy0K
IGluY2x1ZGUveGVuL3hlbi5oICAgICAgICAgICAgICAgICAgICB8IDE0NCArKysrLS0KIGluY2x1
ZGUveGVuL3hlbm9wcm9mLmggICAgICAgICAgICAgICB8ICAgMiArLQogaW5jbHVkZS94ZW4veHNt
L2ZsYXNrX29wLmggICAgICAgICAgIHwgIDE3ICstCiA1NiBmaWxlcyBjaGFuZ2VkLCA3MDQzIGlu
c2VydGlvbnMoKyksIDEyNzggZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVk
ZS94ZW4vYXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVk
ZS94ZW4vYXJjaC14ODYvcG11LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi9lcnJu
by5oCiBkZWxldGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4vZ2Nvdi5oCiBjcmVhdGUgbW9kZSAx
MDA2NDQgaW5jbHVkZS94ZW4vaHZtL2RtX29wLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRl
L3hlbi9odm0vaHZtX3ZjcHUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL2lvLzlw
ZnMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL2lvL2Rpc3BsaWYuaAogY3JlYXRl
IG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL2lvL3B2Y2FsbHMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0
IGluY2x1ZGUveGVuL2lvL3NuZGlmLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi9t
ZW1fZXZlbnQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3BtdS5oCiBjcmVhdGUg
bW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4vdm1fZXZlbnQuaAoKZGlmZiAtLWdpdCBhL2luY2x1ZGUv
eGVuL2FyY2gtYXJtLmggYi9pbmNsdWRlL3hlbi9hcmNoLWFybS5oCmluZGV4IDEyNGZjOTAuLjU3
MDhjZDIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL2FyY2gtYXJtLmgKKysrIGIvaW5jbHVkZS94
ZW4vYXJjaC1hcm0uaApAQCAtNjEsMTUgKzYxLDE1IEBACiAgKgogICogQWxsIG1lbW9yeSB3aGlj
aCBpcyBzaGFyZWQgd2l0aCBvdGhlciBlbnRpdGllcyBpbiB0aGUgc3lzdGVtCiAgKiAoaW5jbHVk
aW5nIHRoZSBoeXBlcnZpc29yIGFuZCBvdGhlciBndWVzdHMpIG11c3QgcmVzaWRlIGluIG1lbW9y
eQotICogd2hpY2ggaXMgbWFwcGVkIGFzIE5vcm1hbCBJbm5lci1jYWNoZWFibGUuIFRoaXMgYXBw
bGllcyB0bzoKKyAqIHdoaWNoIGlzIG1hcHBlZCBhcyBOb3JtYWwgSW5uZXIgV3JpdGUtQmFjayBP
dXRlciBXcml0ZS1CYWNrIElubmVyLVNoYXJlYWJsZS4KKyAqIFRoaXMgYXBwbGllcyB0bzoKICAq
ICAtIGh5cGVyY2FsbCBhcmd1bWVudHMgcGFzc2VkIHZpYSBhIHBvaW50ZXIgdG8gZ3Vlc3QgbWVt
b3J5LgogICogIC0gbWVtb3J5IHNoYXJlZCB2aWEgdGhlIGdyYW50IHRhYmxlIG1lY2hhbmlzbSAo
aW5jbHVkaW5nIFBWIEkvTwogICogICAgcmluZ3MgZXRjKS4KICAqICAtIG1lbW9yeSBzaGFyZWQg
d2l0aCB0aGUgaHlwZXJ2aXNvciAoc3RydWN0IHNoYXJlZF9pbmZvLCBzdHJ1Y3QKICAqICAgIHZj
cHVfaW5mbywgdGhlIGdyYW50IHRhYmxlLCBldGMpLgogICoKLSAqIEFueSBJbm5lciBjYWNoZSBh
bGxvY2F0aW9uIHN0cmF0ZWd5IChXcml0ZS1CYWNrLCBXcml0ZS1UaHJvdWdoIGV0YykKLSAqIGlz
IGFjY2VwdGFibGUuIFRoZXJlIGlzIG5vIHJlc3RyaWN0aW9uIG9uIHRoZSBPdXRlci1jYWNoZWFi
aWxpdHkuCisgKiBBbnkgY2FjaGUgYWxsb2NhdGlvbiBoaW50cyBhcmUgYWNjZXB0YWJsZS4KICAq
LwogCiAvKgpAQCAtMTY1LDYgKzE2NSw3IEBACiAKICNkZWZpbmUgWEVOX0hZUEVSQ0FMTF9UQUcg
ICAwWEVBMQogCisjZGVmaW5lICBpbnQ2NF9hbGlnbmVkX3QgIGludDY0X3QgX19hdHRyaWJ1dGVf
XygoYWxpZ25lZCg4KSkpCiAjZGVmaW5lIHVpbnQ2NF9hbGlnbmVkX3QgdWludDY0X3QgX19hdHRy
aWJ1dGVfXygoYWxpZ25lZCg4KSkpCiAKICNpZm5kZWYgX19BU1NFTUJMWV9fCkBAIC0xNzIsNyAr
MTczLDcgQEAKICAgICB0eXBlZGVmIHVuaW9uIHsgdHlwZSAqcDsgdW5zaWduZWQgbG9uZyBxOyB9
ICAgICAgICAgICAgICAgICBcCiAgICAgICAgIF9fZ3Vlc3RfaGFuZGxlXyAjIyBuYW1lOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHR5cGVkZWYgdW5pb24geyB0eXBlICpw
OyB1aW50NjRfYWxpZ25lZF90IHE7IH0gICAgICAgICAgICAgIFwKLSAgICAgICAgX19ndWVzdF9o
YW5kbGVfNjRfICMjIG5hbWU7CisgICAgICAgIF9fZ3Vlc3RfaGFuZGxlXzY0XyAjIyBuYW1lCiAK
IC8qCiAgKiBYRU5fR1VFU1RfSEFORExFIHJlcHJlc2VudHMgYSBndWVzdCBwb2ludGVyLCB3aGVu
IHBhc3NlZCBhcyBhIGZpZWxkCkBAIC0xOTQsOSArMTk1LDYgQEAKICAgICAgICAgX3N4Z2hyX3Rt
cC0+cSA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgX3N4
Z2hyX3RtcC0+cCA9IHZhbDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB9
IHdoaWxlICggMCApCi0jaWZkZWYgX19YRU5fVE9PTFNfXwotI2RlZmluZSBnZXRfeGVuX2d1ZXN0
X2hhbmRsZSh2YWwsIGhuZCkgIGRvIHsgdmFsID0gKGhuZCkucDsgfSB3aGlsZSAoMCkKLSNlbmRp
ZgogI2RlZmluZSBzZXRfeGVuX2d1ZXN0X2hhbmRsZShobmQsIHZhbCkgc2V0X3hlbl9ndWVzdF9o
YW5kbGVfcmF3KGhuZCwgdmFsKQogCiAjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgIWRlZmluZWQo
X19TVFJJQ1RfQU5TSV9fKQpAQCAtMjk3LDcgKzI5NSwzNSBAQCBzdHJ1Y3QgdmNwdV9ndWVzdF9j
b250ZXh0IHsKIH07CiB0eXBlZGVmIHN0cnVjdCB2Y3B1X2d1ZXN0X2NvbnRleHQgdmNwdV9ndWVz
dF9jb250ZXh0X3Q7CiBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh2Y3B1X2d1ZXN0X2NvbnRleHRf
dCk7Ci0jZW5kaWYKKworLyoKKyAqIHN0cnVjdCB4ZW5fYXJjaF9kb21haW5jb25maWcncyBBQkkg
aXMgY292ZXJlZCBieQorICogWEVOX0RPTUNUTF9JTlRFUkZBQ0VfVkVSU0lPTi4KKyAqLworI2Rl
ZmluZSBYRU5fRE9NQ1RMX0NPTkZJR19HSUNfTkFUSVZFICAgIDAKKyNkZWZpbmUgWEVOX0RPTUNU
TF9DT05GSUdfR0lDX1YyICAgICAgICAxCisjZGVmaW5lIFhFTl9ET01DVExfQ09ORklHX0dJQ19W
MyAgICAgICAgMgorc3RydWN0IHhlbl9hcmNoX2RvbWFpbmNvbmZpZyB7CisgICAgLyogSU4vT1VU
ICovCisgICAgdWludDhfdCBnaWNfdmVyc2lvbjsKKyAgICAvKiBJTiAqLworICAgIHVpbnQzMl90
IG5yX3NwaXM7CisgICAgLyoKKyAgICAgKiBPVVQKKyAgICAgKiBCYXNlZCBvbiB0aGUgcHJvcGVy
dHkgY2xvY2stZnJlcXVlbmN5IGluIHRoZSBEVCB0aW1lciBub2RlLgorICAgICAqIFRoZSBwcm9w
ZXJ0eSBtYXkgYmUgcHJlc2VudCB3aGVuIHRoZSBib290bG9hZGVyL2Zpcm13YXJlIGRvZXNuJ3QK
KyAgICAgKiBzZXQgY29ycmVjdGx5IENOVEZSUSB3aGljaCBob2xkIHRoZSB0aW1lciBmcmVxdWVu
Y3kuCisgICAgICoKKyAgICAgKiBBcyBpdCdzIG5vdCBwb3NzaWJsZSB0byB0cmFwIHRoaXMgcmVn
aXN0ZXIsIHdlIGhhdmUgdG8gcmVwbGljYXRlCisgICAgICogdGhlIHZhbHVlIGluIHRoZSBndWVz
dCBEVC4KKyAgICAgKgorICAgICAqID0gMCA9PiBwcm9wZXJ0eSBub3QgcHJlc2VudAorICAgICAq
ID4gMCA9PiBWYWx1ZSBvZiB0aGUgcHJvcGVydHkKKyAgICAgKgorICAgICAqLworICAgIHVpbnQz
Ml90IGNsb2NrX2ZyZXF1ZW5jeTsKK307CisjZW5kaWYgLyogX19YRU5fXyB8fCBfX1hFTl9UT09M
U19fICovCiAKIHN0cnVjdCBhcmNoX3ZjcHVfaW5mbyB7CiB9OwpAQCAtMzY1LDM4ICszOTEsNDYg
QEAgdHlwZWRlZiB1aW50NjRfdCB4ZW5fY2FsbGJhY2tfdDsKICAqLwogCiAvKiB2R0lDIHYyIG1h
cHBpbmdzICovCi0jZGVmaW5lIEdVRVNUX0dJQ0RfQkFTRSAgIDB4MDMwMDEwMDBVTEwKLSNkZWZp
bmUgR1VFU1RfR0lDRF9TSVpFICAgMHgwMDAwMTAwMFVMTAotI2RlZmluZSBHVUVTVF9HSUNDX0JB
U0UgICAweDAzMDAyMDAwVUxMCi0jZGVmaW5lIEdVRVNUX0dJQ0NfU0laRSAgIDB4MDAwMDAxMDBV
TEwKKyNkZWZpbmUgR1VFU1RfR0lDRF9CQVNFICAgeGVuX21rX3VsbG9uZygweDAzMDAxMDAwKQor
I2RlZmluZSBHVUVTVF9HSUNEX1NJWkUgICB4ZW5fbWtfdWxsb25nKDB4MDAwMDEwMDApCisjZGVm
aW5lIEdVRVNUX0dJQ0NfQkFTRSAgIHhlbl9ta191bGxvbmcoMHgwMzAwMjAwMCkKKyNkZWZpbmUg
R1VFU1RfR0lDQ19TSVpFICAgeGVuX21rX3VsbG9uZygweDAwMDAyMDAwKQogCiAvKiB2R0lDIHYz
IG1hcHBpbmdzICovCi0jZGVmaW5lIEdVRVNUX0dJQ1YzX0dJQ0RfQkFTRSAgICAgIDB4MDMwMDEw
MDBVTEwKLSNkZWZpbmUgR1VFU1RfR0lDVjNfR0lDRF9TSVpFICAgICAgMHgwMDAxMDAwMFVMTAor
I2RlZmluZSBHVUVTVF9HSUNWM19HSUNEX0JBU0UgICAgICB4ZW5fbWtfdWxsb25nKDB4MDMwMDEw
MDApCisjZGVmaW5lIEdVRVNUX0dJQ1YzX0dJQ0RfU0laRSAgICAgIHhlbl9ta191bGxvbmcoMHgw
MDAxMDAwMCkKIAotI2RlZmluZSBHVUVTVF9HSUNWM19SRElTVF9TVFJJREUgICAweDIwMDAwVUxM
CisjZGVmaW5lIEdVRVNUX0dJQ1YzX1JESVNUX1NUUklERSAgIHhlbl9ta191bGxvbmcoMHgwMDAy
MDAwMCkKICNkZWZpbmUgR1VFU1RfR0lDVjNfUkRJU1RfUkVHSU9OUyAgMQogCi0jZGVmaW5lIEdV
RVNUX0dJQ1YzX0dJQ1IwX0JBU0UgICAgIDB4MDMwMjAwMDBVTEwgICAgLyogdkNQVTAgLSB2Q1BV
NyAqLwotI2RlZmluZSBHVUVTVF9HSUNWM19HSUNSMF9TSVpFICAgICAweDAwMTAwMDAwVUxMCisj
ZGVmaW5lIEdVRVNUX0dJQ1YzX0dJQ1IwX0JBU0UgICAgIHhlbl9ta191bGxvbmcoMHgwMzAyMDAw
MCkgLyogdkNQVTAuLjEyNyAqLworI2RlZmluZSBHVUVTVF9HSUNWM19HSUNSMF9TSVpFICAgICB4
ZW5fbWtfdWxsb25nKDB4MDEwMDAwMDApCisKKy8qIEFDUEkgdGFibGVzIHBoeXNpY2FsIGFkZHJl
c3MgKi8KKyNkZWZpbmUgR1VFU1RfQUNQSV9CQVNFIDB4MjAwMDAwMDBVTEwKKyNkZWZpbmUgR1VF
U1RfQUNQSV9TSVpFIDB4MDIwMDAwMDBVTEwKKworLyogUEwwMTEgbWFwcGluZ3MgKi8KKyNkZWZp
bmUgR1VFU1RfUEwwMTFfQkFTRSAgICAweDIyMDAwMDAwVUxMCisjZGVmaW5lIEdVRVNUX1BMMDEx
X1NJWkUgICAgMHgwMDAwMTAwMFVMTAogCiAvKgogICogMTZNQiA9PSA0MDk2IHBhZ2VzIHJlc2Vy
dmVkIGZvciBndWVzdCB0byB1c2UgYXMgYSByZWdpb24gdG8gbWFwIGl0cwogICogZ3JhbnQgdGFi
bGUgaW4uCiAgKi8KLSNkZWZpbmUgR1VFU1RfR05UVEFCX0JBU0UgMHgzODAwMDAwMFVMTAotI2Rl
ZmluZSBHVUVTVF9HTlRUQUJfU0laRSAweDAxMDAwMDAwVUxMCisjZGVmaW5lIEdVRVNUX0dOVFRB
Ql9CQVNFIHhlbl9ta191bGxvbmcoMHgzODAwMDAwMCkKKyNkZWZpbmUgR1VFU1RfR05UVEFCX1NJ
WkUgeGVuX21rX3VsbG9uZygweDAxMDAwMDAwKQogCi0jZGVmaW5lIEdVRVNUX01BR0lDX0JBU0Ug
IDB4MzkwMDAwMDBVTEwKLSNkZWZpbmUgR1VFU1RfTUFHSUNfU0laRSAgMHgwMTAwMDAwMFVMTAor
I2RlZmluZSBHVUVTVF9NQUdJQ19CQVNFICB4ZW5fbWtfdWxsb25nKDB4MzkwMDAwMDApCisjZGVm
aW5lIEdVRVNUX01BR0lDX1NJWkUgIHhlbl9ta191bGxvbmcoMHgwMTAwMDAwMCkKIAogI2RlZmlu
ZSBHVUVTVF9SQU1fQkFOS1MgICAyCiAKLSNkZWZpbmUgR1VFU1RfUkFNMF9CQVNFICAgMHg0MDAw
MDAwMFVMTCAvKiAzR0Igb2YgbG93IFJBTSBAIDFHQiAqLwotI2RlZmluZSBHVUVTVF9SQU0wX1NJ
WkUgICAweGMwMDAwMDAwVUxMCisjZGVmaW5lIEdVRVNUX1JBTTBfQkFTRSAgIHhlbl9ta191bGxv
bmcoMHg0MDAwMDAwMCkgLyogM0dCIG9mIGxvdyBSQU0gQCAxR0IgKi8KKyNkZWZpbmUgR1VFU1Rf
UkFNMF9TSVpFICAgeGVuX21rX3VsbG9uZygweGMwMDAwMDAwKQogCi0jZGVmaW5lIEdVRVNUX1JB
TTFfQkFTRSAgIDB4MDIwMDAwMDAwMFVMTCAvKiAxMDE2R0Igb2YgUkFNIEAgOEdCICovCi0jZGVm
aW5lIEdVRVNUX1JBTTFfU0laRSAgIDB4ZmUwMDAwMDAwMFVMTAorI2RlZmluZSBHVUVTVF9SQU0x
X0JBU0UgICB4ZW5fbWtfdWxsb25nKDB4MDIwMDAwMDAwMCkgLyogMTAxNkdCIG9mIFJBTSBAIDhH
QiAqLworI2RlZmluZSBHVUVTVF9SQU0xX1NJWkUgICB4ZW5fbWtfdWxsb25nKDB4ZmUwMDAwMDAw
MCkKIAogI2RlZmluZSBHVUVTVF9SQU1fQkFTRSAgICBHVUVTVF9SQU0wX0JBU0UgLyogTG93ZXN0
IFJBTSBhZGRyZXNzICovCiAvKiBMYXJnZXN0IGFtb3VudCBvZiBhY3R1YWwgUkFNLCBub3QgaW5j
bHVkaW5nIGhvbGVzICovCkBAIC00MDUsMTIgKzQzOSwxNyBAQCB0eXBlZGVmIHVpbnQ2NF90IHhl
bl9jYWxsYmFja190OwogI2RlZmluZSBHVUVTVF9SQU1fQkFOS19CQVNFUyAgIHsgR1VFU1RfUkFN
MF9CQVNFLCBHVUVTVF9SQU0xX0JBU0UgfQogI2RlZmluZSBHVUVTVF9SQU1fQkFOS19TSVpFUyAg
IHsgR1VFU1RfUkFNMF9TSVpFLCBHVUVTVF9SQU0xX1NJWkUgfQogCisvKiBDdXJyZW50IHN1cHBv
cnRlZCBndWVzdCBWQ1BVcyAqLworI2RlZmluZSBHVUVTVF9NQVhfVkNQVVMgMTI4CisKIC8qIElu
dGVycnVwdHMgKi8KICNkZWZpbmUgR1VFU1RfVElNRVJfVklSVF9QUEkgICAgMjcKICNkZWZpbmUg
R1VFU1RfVElNRVJfUEhZU19TX1BQSSAgMjkKICNkZWZpbmUgR1VFU1RfVElNRVJfUEhZU19OU19Q
UEkgMzAKICNkZWZpbmUgR1VFU1RfRVZUQ0hOX1BQSSAgICAgICAgMzEKIAorI2RlZmluZSBHVUVT
VF9WUEwwMTFfU1BJICAgICAgICAzMgorCiAvKiBQU0NJIGZ1bmN0aW9ucyAqLwogI2RlZmluZSBQ
U0NJX2NwdV9zdXNwZW5kIDAKICNkZWZpbmUgUFNDSV9jcHVfb2ZmICAgICAxCkBAIC00MTksNiAr
NDU4LDExIEBAIHR5cGVkZWYgdWludDY0X3QgeGVuX2NhbGxiYWNrX3Q7CiAKICNlbmRpZgogCisj
aWZuZGVmIF9fQVNTRU1CTFlfXworLyogU3R1YiBkZWZpbml0aW9uIG9mIFBNVSBzdHJ1Y3R1cmUg
Ki8KK3R5cGVkZWYgc3RydWN0IHhlbl9wbXVfYXJjaCB7IHVpbnQ4X3QgZHVtbXk7IH0geGVuX3Bt
dV9hcmNoX3Q7CisjZW5kaWYKKwogI2VuZGlmIC8qICBfX1hFTl9QVUJMSUNfQVJDSF9BUk1fSF9f
ICovCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0
LmggYi9pbmNsdWRlL3hlbi9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMGVlM2VhMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUv
eGVuL2FyY2gteDg2L2NwdWZlYXR1cmVzZXQuaApAQCAtMCwwICsxLDI2MyBAQAorLyoKKyAqIGFy
Y2gteDg2L2NwdWZlYXR1cmVzZXQuaAorICoKKyAqIENQVSBmZWF0dXJlc2V0IGRlZmluaXRpb25z
CisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv
IGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNz
b2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFs
IGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBs
aW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVi
bGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0
aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBp
cworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNz
aW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFu
dGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBS
T1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IK
KyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9S
IENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9U
SEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JU
IE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04g
V0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhF
IFNPRlRXQVJFLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAxNSwgMjAxNiBDaXRyaXggU3lzdGVt
cywgSW5jLgorICovCisKKy8qCisgKiBUaGVyZSBhcmUgdHdvIGV4cGVjdGVkIHdheXMgb2YgaW5j
bHVkaW5nIHRoaXMgaGVhZGVyLgorICoKKyAqIDEpIFRoZSAiZGVmYXVsdCIgY2FzZSAoZXhwZWN0
ZWQgZnJvbSB0b29scyBldGMpLgorICoKKyAqIFNpbXBseSAjaW5jbHVkZSA8cHVibGljL2FyY2gt
eDg2L2NwdWZlYXR1cmVzZXQuaD4KKyAqCisgKiBJbiB0aGlzIGNpcmN1bXN0YW5jZSwgbm9ybWFs
IGhlYWRlciBndWFyZHMgYXBwbHkgYW5kIHRoZSBpbmNsdWRlciBzaGFsbCBnZXQKKyAqIGFuIGVu
dW1lcmF0aW9uIGluIHRoZSBYRU5fWDg2X0ZFQVRVUkVfeHh4IG5hbWVzcGFjZS4KKyAqCisgKiAy
KSBUaGUgc3BlY2lhbCBjYXNlIHdoZXJlIHRoZSBpbmNsdWRlciBwcm92aWRlcyBYRU5fQ1BVRkVB
VFVSRSgpIGluIHNjb3BlLgorICoKKyAqIEluIHRoaXMgY2FzZSwgbm8gaW5jbHVzaW9uIGd1YXJk
cyBhcHBseSBhbmQgdGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IKKyAqIHRoZWlyIFhFTl9D
UFVGRUFUVVJFKCkgYmVpbmcgYXBwcm9wcmlhdGUgaW4gdGhlIGluY2x1ZGVkIGNvbnRleHQuCisg
Ki8KKworI2lmbmRlZiBYRU5fQ1BVRkVBVFVSRQorCisvKgorICogSW5jbHVkZXIgaGFzIG5vdCBw
cm92aWRlZCBhIGN1c3RvbSBYRU5fQ1BVRkVBVFVSRSgpLiAgQXJyYW5nZSBmb3Igbm9ybWFsCisg
KiBoZWFkZXIgZ3VhcmRzLCBhbiBlbnVtIGFuZCBjb25zdGFudHMgaW4gdGhlIFhFTl9YODZfRkVB
VFVSRV94eHggbmFtZXNwYWNlLgorICovCisjaWZuZGVmIF9fWEVOX1BVQkxJQ19BUkNIX1g4Nl9D
UFVGRUFUVVJFU0VUX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfQVJDSF9YODZfQ1BVRkVBVFVS
RVNFVF9IX18KKworI2RlZmluZSBYRU5fQ1BVRkVBVFVSRVNFVF9ERUZBVUxUX0lOQ0xVREUKKwor
I2RlZmluZSBYRU5fQ1BVRkVBVFVSRShuYW1lLCB2YWx1ZSkgWEVOX1g4Nl9GRUFUVVJFXyMjbmFt
ZSA9IHZhbHVlLAorZW51bSB7CisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfQVJDSF9YODZfQ1BV
RkVBVFVSRVNFVF9IX18gKi8KKyNlbmRpZiAvKiAhWEVOX0NQVUZFQVRVUkUgKi8KKworCisjaWZk
ZWYgWEVOX0NQVUZFQVRVUkUKKy8qCisgKiBBIGZlYXR1cmVzZXQgaXMgYSBiaXRtYXAgb2YgeDg2
IGZlYXR1cmVzLCByZXByZXNlbnRlZCBhcyBhIGNvbGxlY3Rpb24gb2YKKyAqIDMyYml0IHdvcmRz
LgorICoKKyAqIFdvcmRzIGFyZSBhcyBzcGVjaWZpZWQgaW4gdmVuZG9ycyBwcm9ncmFtbWluZyBt
YW51YWxzLCBhbmQgc2hhbGwgbm90CisgKiBjb250YWluIGFueSBzeW50aGVzaWVkIHZhbHVlcy4g
IE5ldyB3b3JkcyBtYXkgYmUgYWRkZWQgdG8gdGhlIGVuZCBvZgorICogZmVhdHVyZXNldC4KKyAq
CisgKiBBbGwgZmVhdHVyZXNldCB3b3JkcyBjdXJyZW50bHkgb3JpZ2luYXRlIGZyb20gbGVhdmVz
IHNwZWNpZmllZCBmb3IgdGhlCisgKiBDUFVJRCBpbnN0cnVjdGlvbiwgYnV0IHRoaXMgaXMgbm90
IHByZWNsdWRlIG90aGVyIHNvdXJjZXMgb2YgaW5mb3JtYXRpb24uCisgKi8KKworLyoKKyAqIEF0
dHJpYnV0ZSBzeW50YXg6CisgKgorICogQXR0cmlidXRlcyBmb3IgYSBwYXJ0aWN1bGFyIGZlYXR1
cmUgYXJlIHByb3ZpZGVkIGFzIGNoYXJhY3RlcnMgYmVmb3JlIHRoZQorICogZmlyc3Qgc3BhY2Ug
aW4gdGhlIGNvbW1lbnQgaW1tZWRpYXRlbHkgZm9sbG93aW5nIHRoZSBmZWF0dXJlIHZhbHVlLiAg
Tm90ZSAtCisgKiBub25lIG9mIHRoZXNlIGF0dHJpYnV0ZXMgZm9ybSBwYXJ0IG9mIHRoZSBYZW4g
cHVibGljIEFCSS4KKyAqCisgKiBTcGVjaWFsOiAnIScKKyAqICAgVGhpcyBiaXQgaGFzIHNwZWNp
YWwgcHJvcGVydGllcyBhbmQgaXMgbm90IGEgc3RyYWlnaHQgaW5kaWNhdGlvbiBvZiBhCisgKiAg
IHBpZWNlIG9mIG5ldyBmdW5jdGlvbmFsaXR5LiAgWGVuIHdpbGwgaGFuZGxlIHRoZXNlIGRpZmZl
cmVudGx5LAorICogICBhbmQgbWF5IG92ZXJyaWRlIHRvb2xzdGFjayBzZXR0aW5ncyBjb21wbGV0
ZWx5LgorICoKKyAqIEFwcGxpY2FiaWxpdHkgdG8gZ3Vlc3RzOiAnQScsICdTJyBvciAnSCcKKyAq
ICAgJ0EnID0gQWxsIGd1ZXN0cy4KKyAqICAgJ1MnID0gQWxsIEhWTSBndWVzdHMgKG5vdCBQViBn
dWVzdHMpLgorICogICAnSCcgPSBIVk0gSEFQIGd1ZXN0cyAobm90IFBWIG9yIEhWTSBTaGFkb3cg
Z3Vlc3RzKS4KKyAqLworCisvKiBJbnRlbC1kZWZpbmVkIENQVSBmZWF0dXJlcywgQ1BVSUQgbGV2
ZWwgMHgwMDAwMDAwMS5lZHgsIHdvcmQgMCAqLworWEVOX0NQVUZFQVRVUkUoRlBVLCAgICAgICAg
ICAgMCozMisgMCkgLypBICBPbmJvYXJkIEZQVSAqLworWEVOX0NQVUZFQVRVUkUoVk1FLCAgICAg
ICAgICAgMCozMisgMSkgLypTICBWaXJ0dWFsIE1vZGUgRXh0ZW5zaW9ucyAqLworWEVOX0NQVUZF
QVRVUkUoREUsICAgICAgICAgICAgMCozMisgMikgLypBICBEZWJ1Z2dpbmcgRXh0ZW5zaW9ucyAq
LworWEVOX0NQVUZFQVRVUkUoUFNFLCAgICAgICAgICAgMCozMisgMykgLypTICBQYWdlIFNpemUg
RXh0ZW5zaW9ucyAqLworWEVOX0NQVUZFQVRVUkUoVFNDLCAgICAgICAgICAgMCozMisgNCkgLypB
ICBUaW1lIFN0YW1wIENvdW50ZXIgKi8KK1hFTl9DUFVGRUFUVVJFKE1TUiwgICAgICAgICAgIDAq
MzIrIDUpIC8qQSAgTW9kZWwtU3BlY2lmaWMgUmVnaXN0ZXJzLCBSRE1TUiwgV1JNU1IgKi8KK1hF
Tl9DUFVGRUFUVVJFKFBBRSwgICAgICAgICAgIDAqMzIrIDYpIC8qQSAgUGh5c2ljYWwgQWRkcmVz
cyBFeHRlbnNpb25zICovCitYRU5fQ1BVRkVBVFVSRShNQ0UsICAgICAgICAgICAwKjMyKyA3KSAv
KkEgIE1hY2hpbmUgQ2hlY2sgQXJjaGl0ZWN0dXJlICovCitYRU5fQ1BVRkVBVFVSRShDWDgsICAg
ICAgICAgICAwKjMyKyA4KSAvKkEgIENNUFhDSEc4IGluc3RydWN0aW9uICovCitYRU5fQ1BVRkVB
VFVSRShBUElDLCAgICAgICAgICAwKjMyKyA5KSAvKiFBIE9uYm9hcmQgQVBJQyAqLworWEVOX0NQ
VUZFQVRVUkUoU0VQLCAgICAgICAgICAgMCozMisxMSkgLypBICBTWVNFTlRFUi9TWVNFWElUICov
CitYRU5fQ1BVRkVBVFVSRShNVFJSLCAgICAgICAgICAwKjMyKzEyKSAvKlMgIE1lbW9yeSBUeXBl
IFJhbmdlIFJlZ2lzdGVycyAqLworWEVOX0NQVUZFQVRVUkUoUEdFLCAgICAgICAgICAgMCozMisx
MykgLypTICBQYWdlIEdsb2JhbCBFbmFibGUgKi8KK1hFTl9DUFVGRUFUVVJFKE1DQSwgICAgICAg
ICAgIDAqMzIrMTQpIC8qQSAgTWFjaGluZSBDaGVjayBBcmNoaXRlY3R1cmUgKi8KK1hFTl9DUFVG
RUFUVVJFKENNT1YsICAgICAgICAgIDAqMzIrMTUpIC8qQSAgQ01PViBpbnN0cnVjdGlvbiAoRkNN
T1ZDQyBhbmQgRkNPTUkgdG9vIGlmIEZQVSBwcmVzZW50KSAqLworWEVOX0NQVUZFQVRVUkUoUEFU
LCAgICAgICAgICAgMCozMisxNikgLypBICBQYWdlIEF0dHJpYnV0ZSBUYWJsZSAqLworWEVOX0NQ
VUZFQVRVUkUoUFNFMzYsICAgICAgICAgMCozMisxNykgLypTICAzNi1iaXQgUFNFcyAqLworWEVO
X0NQVUZFQVRVUkUoQ0xGTFVTSCwgICAgICAgMCozMisxOSkgLypBICBDTEZMVVNIIGluc3RydWN0
aW9uICovCitYRU5fQ1BVRkVBVFVSRShEUywgICAgICAgICAgICAwKjMyKzIxKSAvKiAgIERlYnVn
IFN0b3JlICovCitYRU5fQ1BVRkVBVFVSRShBQ1BJLCAgICAgICAgICAwKjMyKzIyKSAvKkEgIEFD
UEkgdmlhIE1TUiAqLworWEVOX0NQVUZFQVRVUkUoTU1YLCAgICAgICAgICAgMCozMisyMykgLypB
ICBNdWx0aW1lZGlhIEV4dGVuc2lvbnMgKi8KK1hFTl9DUFVGRUFUVVJFKEZYU1IsICAgICAgICAg
IDAqMzIrMjQpIC8qQSAgRlhTQVZFIGFuZCBGWFJTVE9SIGluc3RydWN0aW9ucyAqLworWEVOX0NQ
VUZFQVRVUkUoU1NFLCAgICAgICAgICAgMCozMisyNSkgLypBICBTdHJlYW1pbmcgU0lNRCBFeHRl
bnNpb25zICovCitYRU5fQ1BVRkVBVFVSRShTU0UyLCAgICAgICAgICAwKjMyKzI2KSAvKkEgIFN0
cmVhbWluZyBTSU1EIEV4dGVuc2lvbnMtMiAqLworWEVOX0NQVUZFQVRVUkUoU1MsICAgICAgICAg
ICAgMCozMisyNykgLypBICBDUFUgc2VsZiBzbm9vcCAqLworWEVOX0NQVUZFQVRVUkUoSFRULCAg
ICAgICAgICAgMCozMisyOCkgLyohQSBIeXBlci1UaHJlYWRpbmcgVGVjaG5vbG9neSAqLworWEVO
X0NQVUZFQVRVUkUoVE0xLCAgICAgICAgICAgMCozMisyOSkgLyogICBUaGVybWFsIE1vbml0b3Ig
MSAqLworWEVOX0NQVUZFQVRVUkUoUEJFLCAgICAgICAgICAgMCozMiszMSkgLyogICBQZW5kaW5n
IEJyZWFrIEVuYWJsZSAqLworCisvKiBJbnRlbC1kZWZpbmVkIENQVSBmZWF0dXJlcywgQ1BVSUQg
bGV2ZWwgMHgwMDAwMDAwMS5lY3gsIHdvcmQgMSAqLworWEVOX0NQVUZFQVRVUkUoU1NFMywgICAg
ICAgICAgMSozMisgMCkgLypBICBTdHJlYW1pbmcgU0lNRCBFeHRlbnNpb25zLTMgKi8KK1hFTl9D
UFVGRUFUVVJFKFBDTE1VTFFEUSwgICAgIDEqMzIrIDEpIC8qQSAgQ2FycnktbGVzcyBtdWxpdHBs
aWNhdGlvbiAqLworWEVOX0NQVUZFQVRVUkUoRFRFUzY0LCAgICAgICAgMSozMisgMikgLyogICA2
NC1iaXQgRGVidWcgU3RvcmUgKi8KK1hFTl9DUFVGRUFUVVJFKE1PTklUT1IsICAgICAgIDEqMzIr
IDMpIC8qICAgTW9uaXRvci9Nd2FpdCBzdXBwb3J0ICovCitYRU5fQ1BVRkVBVFVSRShEU0NQTCwg
ICAgICAgICAxKjMyKyA0KSAvKiAgIENQTCBRdWFsaWZpZWQgRGVidWcgU3RvcmUgKi8KK1hFTl9D
UFVGRUFUVVJFKFZNWCwgICAgICAgICAgIDEqMzIrIDUpIC8qUyAgVmlydHVhbCBNYWNoaW5lIEV4
dGVuc2lvbnMgKi8KK1hFTl9DUFVGRUFUVVJFKFNNWCwgICAgICAgICAgIDEqMzIrIDYpIC8qICAg
U2FmZXIgTW9kZSBFeHRlbnNpb25zICovCitYRU5fQ1BVRkVBVFVSRShFSVNULCAgICAgICAgICAx
KjMyKyA3KSAvKiAgIEVuaGFuY2VkIFNwZWVkU3RlcCAqLworWEVOX0NQVUZFQVRVUkUoVE0yLCAg
ICAgICAgICAgMSozMisgOCkgLyogICBUaGVybWFsIE1vbml0b3IgMiAqLworWEVOX0NQVUZFQVRV
UkUoU1NTRTMsICAgICAgICAgMSozMisgOSkgLypBICBTdXBwbGVtZW50YWwgU3RyZWFtaW5nIFNJ
TUQgRXh0ZW5zaW9ucy0zICovCitYRU5fQ1BVRkVBVFVSRShGTUEsICAgICAgICAgICAxKjMyKzEy
KSAvKkEgIEZ1c2VkIE11bHRpcGx5IEFkZCAqLworWEVOX0NQVUZFQVRVUkUoQ1gxNiwgICAgICAg
ICAgMSozMisxMykgLypBICBDTVBYQ0hHMTZCICovCitYRU5fQ1BVRkVBVFVSRShYVFBSLCAgICAg
ICAgICAxKjMyKzE0KSAvKiAgIFNlbmQgVGFzayBQcmlvcml0eSBNZXNzYWdlcyAqLworWEVOX0NQ
VUZFQVRVUkUoUERDTSwgICAgICAgICAgMSozMisxNSkgLyogICBQZXJmL0RlYnVnIENhcGFiaWxp
dHkgTVNSICovCitYRU5fQ1BVRkVBVFVSRShQQ0lELCAgICAgICAgICAxKjMyKzE3KSAvKkggIFBy
b2Nlc3MgQ29udGV4dCBJRCAqLworWEVOX0NQVUZFQVRVUkUoRENBLCAgICAgICAgICAgMSozMisx
OCkgLyogICBEaXJlY3QgQ2FjaGUgQWNjZXNzICovCitYRU5fQ1BVRkVBVFVSRShTU0U0XzEsICAg
ICAgICAxKjMyKzE5KSAvKkEgIFN0cmVhbWluZyBTSU1EIEV4dGVuc2lvbnMgNC4xICovCitYRU5f
Q1BVRkVBVFVSRShTU0U0XzIsICAgICAgICAxKjMyKzIwKSAvKkEgIFN0cmVhbWluZyBTSU1EIEV4
dGVuc2lvbnMgNC4yICovCitYRU5fQ1BVRkVBVFVSRShYMkFQSUMsICAgICAgICAxKjMyKzIxKSAv
KiFBIEV4dGVuZGVkIHhBUElDICovCitYRU5fQ1BVRkVBVFVSRShNT1ZCRSwgICAgICAgICAxKjMy
KzIyKSAvKkEgIG1vdmJlIGluc3RydWN0aW9uICovCitYRU5fQ1BVRkVBVFVSRShQT1BDTlQsICAg
ICAgICAxKjMyKzIzKSAvKkEgIFBPUENOVCBpbnN0cnVjdGlvbiAqLworWEVOX0NQVUZFQVRVUkUo
VFNDX0RFQURMSU5FLCAgMSozMisyNCkgLypTICBUU0MgRGVhZGxpbmUgVGltZXIgKi8KK1hFTl9D
UFVGRUFUVVJFKEFFU05JLCAgICAgICAgIDEqMzIrMjUpIC8qQSAgQUVTIGluc3RydWN0aW9ucyAq
LworWEVOX0NQVUZFQVRVUkUoWFNBVkUsICAgICAgICAgMSozMisyNikgLypBICBYU0FWRS9YUlNU
T1IvWFNFVEJWL1hHRVRCViAqLworWEVOX0NQVUZFQVRVUkUoT1NYU0FWRSwgICAgICAgMSozMisy
NykgLyohICBPU1hTQVZFICovCitYRU5fQ1BVRkVBVFVSRShBVlgsICAgICAgICAgICAxKjMyKzI4
KSAvKkEgIEFkdmFuY2VkIFZlY3RvciBFeHRlbnNpb25zICovCitYRU5fQ1BVRkVBVFVSRShGMTZD
LCAgICAgICAgICAxKjMyKzI5KSAvKkEgIEhhbGYtcHJlY2lzaW9uIGNvbnZlcnQgaW5zdHJ1Y3Rp
b24gKi8KK1hFTl9DUFVGRUFUVVJFKFJEUkFORCwgICAgICAgIDEqMzIrMzApIC8qQSAgRGlnaXRh
bCBSYW5kb20gTnVtYmVyIEdlbmVyYXRvciAqLworWEVOX0NQVUZFQVRVUkUoSFlQRVJWSVNPUiwg
ICAgMSozMiszMSkgLyohQSBSdW5uaW5nIHVuZGVyIHNvbWUgaHlwZXJ2aXNvciAqLworCisvKiBB
TUQtZGVmaW5lZCBDUFUgZmVhdHVyZXMsIENQVUlEIGxldmVsIDB4ODAwMDAwMDEuZWR4LCB3b3Jk
IDIgKi8KK1hFTl9DUFVGRUFUVVJFKFNZU0NBTEwsICAgICAgIDIqMzIrMTEpIC8qQSAgU1lTQ0FM
TC9TWVNSRVQgKi8KK1hFTl9DUFVGRUFUVVJFKE5YLCAgICAgICAgICAgIDIqMzIrMjApIC8qQSAg
RXhlY3V0ZSBEaXNhYmxlICovCitYRU5fQ1BVRkVBVFVSRShNTVhFWFQsICAgICAgICAyKjMyKzIy
KSAvKkEgIEFNRCBNTVggZXh0ZW5zaW9ucyAqLworWEVOX0NQVUZFQVRVUkUoRkZYU1IsICAgICAg
ICAgMiozMisyNSkgLypBICBGRlhTUiBpbnN0cnVjdGlvbiBvcHRpbWl6YXRpb25zICovCitYRU5f
Q1BVRkVBVFVSRShQQUdFMUdCLCAgICAgICAyKjMyKzI2KSAvKkggIDFHYiBsYXJnZSBwYWdlIHN1
cHBvcnQgKi8KK1hFTl9DUFVGRUFUVVJFKFJEVFNDUCwgICAgICAgIDIqMzIrMjcpIC8qUyAgUkRU
U0NQICovCitYRU5fQ1BVRkVBVFVSRShMTSwgICAgICAgICAgICAyKjMyKzI5KSAvKkEgIExvbmcg
TW9kZSAoeDg2LTY0KSAqLworWEVOX0NQVUZFQVRVUkUoM0ROT1dFWFQsICAgICAgMiozMiszMCkg
LypBICBBTUQgM0ROb3chIGV4dGVuc2lvbnMgKi8KK1hFTl9DUFVGRUFUVVJFKDNETk9XLCAgICAg
ICAgIDIqMzIrMzEpIC8qQSAgM0ROb3chICovCisKKy8qIEFNRC1kZWZpbmVkIENQVSBmZWF0dXJl
cywgQ1BVSUQgbGV2ZWwgMHg4MDAwMDAwMS5lY3gsIHdvcmQgMyAqLworWEVOX0NQVUZFQVRVUkUo
TEFIRl9MTSwgICAgICAgMyozMisgMCkgLypBICBMQUhGL1NBSEYgaW4gbG9uZyBtb2RlICovCitY
RU5fQ1BVRkVBVFVSRShDTVBfTEVHQUNZLCAgICAzKjMyKyAxKSAvKiFBIElmIHllcyBIeXBlclRo
cmVhZGluZyBub3QgdmFsaWQgKi8KK1hFTl9DUFVGRUFUVVJFKFNWTSwgICAgICAgICAgIDMqMzIr
IDIpIC8qUyAgU2VjdXJlIHZpcnR1YWwgbWFjaGluZSAqLworWEVOX0NQVUZFQVRVUkUoRVhUQVBJ
QywgICAgICAgMyozMisgMykgLyogICBFeHRlbmRlZCBBUElDIHNwYWNlICovCitYRU5fQ1BVRkVB
VFVSRShDUjhfTEVHQUNZLCAgICAzKjMyKyA0KSAvKlMgIENSOCBpbiAzMi1iaXQgbW9kZSAqLwor
WEVOX0NQVUZFQVRVUkUoQUJNLCAgICAgICAgICAgMyozMisgNSkgLypBICBBZHZhbmNlZCBiaXQg
bWFuaXB1bGF0aW9uICovCitYRU5fQ1BVRkVBVFVSRShTU0U0QSwgICAgICAgICAzKjMyKyA2KSAv
KkEgIFNTRS00QSAqLworWEVOX0NQVUZFQVRVUkUoTUlTQUxJR05TU0UsICAgMyozMisgNykgLypB
ICBNaXNhbGlnbmVkIFNTRSBtb2RlICovCitYRU5fQ1BVRkVBVFVSRSgzRE5PV1BSRUZFVENILCAz
KjMyKyA4KSAvKkEgIDNETm93IHByZWZldGNoIGluc3RydWN0aW9ucyAqLworWEVOX0NQVUZFQVRV
UkUoT1NWVywgICAgICAgICAgMyozMisgOSkgLyogICBPUyBWaXNpYmxlIFdvcmthcm91bmQgKi8K
K1hFTl9DUFVGRUFUVVJFKElCUywgICAgICAgICAgIDMqMzIrMTApIC8qICAgSW5zdHJ1Y3Rpb24g
QmFzZWQgU2FtcGxpbmcgKi8KK1hFTl9DUFVGRUFUVVJFKFhPUCwgICAgICAgICAgIDMqMzIrMTEp
IC8qQSAgZXh0ZW5kZWQgQVZYIGluc3RydWN0aW9ucyAqLworWEVOX0NQVUZFQVRVUkUoU0tJTklU
LCAgICAgICAgMyozMisxMikgLyogICBTS0lOSVQvU1RHSSBpbnN0cnVjdGlvbnMgKi8KK1hFTl9D
UFVGRUFUVVJFKFdEVCwgICAgICAgICAgIDMqMzIrMTMpIC8qICAgV2F0Y2hkb2cgdGltZXIgKi8K
K1hFTl9DUFVGRUFUVVJFKExXUCwgICAgICAgICAgIDMqMzIrMTUpIC8qUyAgTGlnaHQgV2VpZ2h0
IFByb2ZpbGluZyAqLworWEVOX0NQVUZFQVRVUkUoRk1BNCwgICAgICAgICAgMyozMisxNikgLypB
ICA0IG9wZXJhbmRzIE1BQyBpbnN0cnVjdGlvbnMgKi8KK1hFTl9DUFVGRUFUVVJFKE5PREVJRF9N
U1IsICAgIDMqMzIrMTkpIC8qICAgTm9kZUlkIE1TUiAqLworWEVOX0NQVUZFQVRVUkUoVEJNLCAg
ICAgICAgICAgMyozMisyMSkgLypBICB0cmFpbGluZyBiaXQgbWFuaXB1bGF0aW9ucyAqLworWEVO
X0NQVUZFQVRVUkUoVE9QT0VYVCwgICAgICAgMyozMisyMikgLyogICB0b3BvbG9neSBleHRlbnNp
b25zIENQVUlEIGxlYWZzICovCitYRU5fQ1BVRkVBVFVSRShEQkVYVCwgICAgICAgICAzKjMyKzI2
KSAvKkEgIGRhdGEgYnJlYWtwb2ludCBleHRlbnNpb24gKi8KK1hFTl9DUFVGRUFUVVJFKE1PTklU
T1JYLCAgICAgIDMqMzIrMjkpIC8qICAgTU9OSVRPUiBleHRlbnNpb24gKE1PTklUT1JYL01XQUlU
WCkgKi8KKworLyogSW50ZWwtZGVmaW5lZCBDUFUgZmVhdHVyZXMsIENQVUlEIGxldmVsIDB4MDAw
MDAwMEQ6MS5lYXgsIHdvcmQgNCAqLworWEVOX0NQVUZFQVRVUkUoWFNBVkVPUFQsICAgICAgNCoz
MisgMCkgLypBICBYU0FWRU9QVCBpbnN0cnVjdGlvbiAqLworWEVOX0NQVUZFQVRVUkUoWFNBVkVD
LCAgICAgICAgNCozMisgMSkgLypBICBYU0FWRUMvWFJTVE9SQyBpbnN0cnVjdGlvbnMgKi8KK1hF
Tl9DUFVGRUFUVVJFKFhHRVRCVjEsICAgICAgIDQqMzIrIDIpIC8qQSAgWEdFVEJWIHdpdGggJWVj
eD0xICovCitYRU5fQ1BVRkVBVFVSRShYU0FWRVMsICAgICAgICA0KjMyKyAzKSAvKlMgIFhTQVZF
Uy9YUlNUT1JTIGluc3RydWN0aW9ucyAqLworCisvKiBJbnRlbC1kZWZpbmVkIENQVSBmZWF0dXJl
cywgQ1BVSUQgbGV2ZWwgMHgwMDAwMDAwNzowLmVieCwgd29yZCA1ICovCitYRU5fQ1BVRkVBVFVS
RShGU0dTQkFTRSwgICAgICA1KjMyKyAwKSAvKkEgIHtSRCxXUn17RlMsR1N9QkFTRSBpbnN0cnVj
dGlvbnMgKi8KK1hFTl9DUFVGRUFUVVJFKFRTQ19BREpVU1QsICAgIDUqMzIrIDEpIC8qUyAgVFND
X0FESlVTVCBNU1IgYXZhaWxhYmxlICovCitYRU5fQ1BVRkVBVFVSRShTR1gsICAgICAgICAgICA1
KjMyKyAyKSAvKiAgIFNvZnR3YXJlIEd1YXJkIGV4dGVuc2lvbnMgKi8KK1hFTl9DUFVGRUFUVVJF
KEJNSTEsICAgICAgICAgIDUqMzIrIDMpIC8qQSAgMXN0IGJpdCBtYW5pcHVsYXRpb24gZXh0ZW5z
aW9ucyAqLworWEVOX0NQVUZFQVRVUkUoSExFLCAgICAgICAgICAgNSozMisgNCkgLypBICBIYXJk
d2FyZSBMb2NrIEVsaXNpb24gKi8KK1hFTl9DUFVGRUFUVVJFKEFWWDIsICAgICAgICAgIDUqMzIr
IDUpIC8qQSAgQVZYMiBpbnN0cnVjdGlvbnMgKi8KK1hFTl9DUFVGRUFUVVJFKEZEUF9FWENQX09O
TFksIDUqMzIrIDYpIC8qISAgeDg3IEZEUCBvbmx5IHVwZGF0ZWQgb24gZXhjZXB0aW9uLiAqLwor
WEVOX0NQVUZFQVRVUkUoU01FUCwgICAgICAgICAgNSozMisgNykgLypTICBTdXBlcnZpc29yIE1v
ZGUgRXhlY3V0aW9uIFByb3RlY3Rpb24gKi8KK1hFTl9DUFVGRUFUVVJFKEJNSTIsICAgICAgICAg
IDUqMzIrIDgpIC8qQSAgMm5kIGJpdCBtYW5pcHVsYXRpb24gZXh0ZW5zaW9ucyAqLworWEVOX0NQ
VUZFQVRVUkUoRVJNUywgICAgICAgICAgNSozMisgOSkgLypBICBFbmhhbmNlZCBSRVAgTU9WU0Iv
U1RPU0IgKi8KK1hFTl9DUFVGRUFUVVJFKElOVlBDSUQsICAgICAgIDUqMzIrMTApIC8qSCAgSW52
YWxpZGF0ZSBQcm9jZXNzIENvbnRleHQgSUQgKi8KK1hFTl9DUFVGRUFUVVJFKFJUTSwgICAgICAg
ICAgIDUqMzIrMTEpIC8qQSAgUmVzdHJpY3RlZCBUcmFuc2FjdGlvbmFsIE1lbW9yeSAqLworWEVO
X0NQVUZFQVRVUkUoUFFNLCAgICAgICAgICAgNSozMisxMikgLyogICBQbGF0Zm9ybSBRb1MgTW9u
aXRvcmluZyAqLworWEVOX0NQVUZFQVRVUkUoTk9fRlBVX1NFTCwgICAgNSozMisxMykgLyohICBG
UFUgQ1MvRFMgc3RvcmVkIGFzIHplcm8gKi8KK1hFTl9DUFVGRUFUVVJFKE1QWCwgICAgICAgICAg
IDUqMzIrMTQpIC8qUyAgTWVtb3J5IFByb3RlY3Rpb24gRXh0ZW5zaW9ucyAqLworWEVOX0NQVUZF
QVRVUkUoUFFFLCAgICAgICAgICAgNSozMisxNSkgLyogICBQbGF0Zm9ybSBRb1MgRW5mb3JjZW1l
bnQgKi8KK1hFTl9DUFVGRUFUVVJFKEFWWDUxMkYsICAgICAgIDUqMzIrMTYpIC8qQSAgQVZYLTUx
MiBGb3VuZGF0aW9uIEluc3RydWN0aW9ucyAqLworWEVOX0NQVUZFQVRVUkUoQVZYNTEyRFEsICAg
ICAgNSozMisxNykgLypBICBBVlgtNTEyIERvdWJsZXdvcmQgJiBRdWFkd29yZCBJbnN0cnMgKi8K
K1hFTl9DUFVGRUFUVVJFKFJEU0VFRCwgICAgICAgIDUqMzIrMTgpIC8qQSAgUkRTRUVEIGluc3Ry
dWN0aW9uICovCitYRU5fQ1BVRkVBVFVSRShBRFgsICAgICAgICAgICA1KjMyKzE5KSAvKkEgIEFE
Q1gsIEFET1ggaW5zdHJ1Y3Rpb25zICovCitYRU5fQ1BVRkVBVFVSRShTTUFQLCAgICAgICAgICA1
KjMyKzIwKSAvKlMgIFN1cGVydmlzb3IgTW9kZSBBY2Nlc3MgUHJldmVudGlvbiAqLworWEVOX0NQ
VUZFQVRVUkUoQVZYNTEySUZNQSwgICAgNSozMisyMSkgLypBICBBVlgtNTEyIEludGVnZXIgRnVz
ZWQgTXVsdGlwbHkgQWRkICovCitYRU5fQ1BVRkVBVFVSRShDTEZMVVNIT1BULCAgICA1KjMyKzIz
KSAvKkEgIENMRkxVU0hPUFQgaW5zdHJ1Y3Rpb24gKi8KK1hFTl9DUFVGRUFUVVJFKENMV0IsICAg
ICAgICAgIDUqMzIrMjQpIC8qQSAgQ0xXQiBpbnN0cnVjdGlvbiAqLworWEVOX0NQVUZFQVRVUkUo
QVZYNTEyUEYsICAgICAgNSozMisyNikgLypBICBBVlgtNTEyIFByZWZldGNoIEluc3RydWN0aW9u
cyAqLworWEVOX0NQVUZFQVRVUkUoQVZYNTEyRVIsICAgICAgNSozMisyNykgLypBICBBVlgtNTEy
IEV4cG9uZW50ICYgUmVjaXByb2NhbCBJbnN0cnMgKi8KK1hFTl9DUFVGRUFUVVJFKEFWWDUxMkNE
LCAgICAgIDUqMzIrMjgpIC8qQSAgQVZYLTUxMiBDb25mbGljdCBEZXRlY3Rpb24gSW5zdHJzICov
CitYRU5fQ1BVRkVBVFVSRShTSEEsICAgICAgICAgICA1KjMyKzI5KSAvKkEgIFNIQTEgJiBTSEEy
NTYgaW5zdHJ1Y3Rpb25zICovCitYRU5fQ1BVRkVBVFVSRShBVlg1MTJCVywgICAgICA1KjMyKzMw
KSAvKkEgIEFWWC01MTIgQnl0ZSBhbmQgV29yZCBJbnN0cnVjdGlvbnMgKi8KK1hFTl9DUFVGRUFU
VVJFKEFWWDUxMlZMLCAgICAgIDUqMzIrMzEpIC8qQSAgQVZYLTUxMiBWZWN0b3IgTGVuZ3RoIEV4
dGVuc2lvbnMgKi8KKworLyogSW50ZWwtZGVmaW5lZCBDUFUgZmVhdHVyZXMsIENQVUlEIGxldmVs
IDB4MDAwMDAwMDc6MC5lY3gsIHdvcmQgNiAqLworWEVOX0NQVUZFQVRVUkUoUFJFRkVUQ0hXVDEs
ICAgNiozMisgMCkgLypBICBQUkVGRVRDSFdUMSBpbnN0cnVjdGlvbiAqLworWEVOX0NQVUZFQVRV
UkUoQVZYNTEyVkJNSSwgICAgNiozMisgMSkgLypBICBBVlgtNTEyIFZlY3RvciBCeXRlIE1hbmlw
dWxhdGlvbiBJbnN0cnMgKi8KK1hFTl9DUFVGRUFUVVJFKFVNSVAsICAgICAgICAgIDYqMzIrIDIp
IC8qUyAgVXNlciBNb2RlIEluc3RydWN0aW9uIFByZXZlbnRpb24gKi8KK1hFTl9DUFVGRUFUVVJF
KFBLVSwgICAgICAgICAgIDYqMzIrIDMpIC8qSCAgUHJvdGVjdGlvbiBLZXlzIGZvciBVc2Vyc3Bh
Y2UgKi8KK1hFTl9DUFVGRUFUVVJFKE9TUEtFLCAgICAgICAgIDYqMzIrIDQpIC8qISAgT1MgUHJv
dGVjdGlvbiBLZXlzIEVuYWJsZSAqLworWEVOX0NQVUZFQVRVUkUoQVZYNTEyX1ZQT1BDTlREUSwg
NiozMisxNCkgLypBICBQT1BDTlQgZm9yIHZlY3RvcnMgb2YgRFcvUVcgKi8KK1hFTl9DUFVGRUFU
VVJFKFJEUElELCAgICAgICAgIDYqMzIrMjIpIC8qQSAgUkRQSUQgaW5zdHJ1Y3Rpb24gKi8KKwor
LyogQU1ELWRlZmluZWQgQ1BVIGZlYXR1cmVzLCBDUFVJRCBsZXZlbCAweDgwMDAwMDA3LmVkeCwg
d29yZCA3ICovCitYRU5fQ1BVRkVBVFVSRShJVFNDLCAgICAgICAgICA3KjMyKyA4KSAvKiAgIElu
dmFyaWFudCBUU0MgKi8KK1hFTl9DUFVGRUFUVVJFKEVGUk8sICAgICAgICAgIDcqMzIrMTApIC8q
ICAgQVBFUkYvTVBFUkYgUmVhZCBPbmx5IGludGVyZmFjZSAqLworCisvKiBBTUQtZGVmaW5lZCBD
UFUgZmVhdHVyZXMsIENQVUlEIGxldmVsIDB4ODAwMDAwMDguZWJ4LCB3b3JkIDggKi8KK1hFTl9D
UFVGRUFUVVJFKENMWkVSTywgICAgICAgIDgqMzIrIDApIC8qQSAgQ0xaRVJPIGluc3RydWN0aW9u
ICovCisKKy8qIEludGVsLWRlZmluZWQgQ1BVIGZlYXR1cmVzLCBDUFVJRCBsZXZlbCAweDAwMDAw
MDA3OjAuZWR4LCB3b3JkIDkgKi8KK1hFTl9DUFVGRUFUVVJFKEFWWDUxMl80Vk5OSVcsIDkqMzIr
IDIpIC8qQSBBVlg1MTIgTmV1cmFsIE5ldHdvcmsgSW5zdHJ1Y3Rpb25zICovCitYRU5fQ1BVRkVB
VFVSRShBVlg1MTJfNEZNQVBTLCA5KjMyKyAzKSAvKkEgQVZYNTEyIE11bHRpcGx5IEFjY3VtdWxh
dGlvbiBTaW5nbGUgUHJlY2lzaW9uICovCisKKyNlbmRpZiAvKiBYRU5fQ1BVRkVBVFVSRSAqLwor
CisvKiBDbGVhbiB1cCBmcm9tIGEgZGVmYXVsdCBpbmNsdWRlLiAgQ2xvc2UgdGhlIGVudW0gKGZv
ciBDKS4gKi8KKyNpZmRlZiBYRU5fQ1BVRkVBVFVSRVNFVF9ERUZBVUxUX0lOQ0xVREUKKyN1bmRl
ZiBYRU5fQ1BVRkVBVFVSRVNFVF9ERUZBVUxUX0lOQ0xVREUKKyN1bmRlZiBYRU5fQ1BVRkVBVFVS
RQorfTsKKworI2VuZGlmIC8qIFhFTl9DUFVGRUFUVVJFU0VUX0RFRkFVTFRfSU5DTFVERSAqLwor
CisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAi
QlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRh
YnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2FyY2gt
eDg2L2NwdWlkLmggYi9pbmNsdWRlL3hlbi9hcmNoLXg4Ni9jcHVpZC5oCmluZGV4IGQ3MDkzNDAu
LmViNzY4NzUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL2FyY2gteDg2L2NwdWlkLmgKKysrIGIv
aW5jbHVkZS94ZW4vYXJjaC14ODYvY3B1aWQuaApAQCAtNzMsMTEgKzczLDI3IEBACiAjZGVmaW5l
IF9YRU5fQ1BVSURfRkVBVDFfTU1VX1BUX1VQREFURV9QUkVTRVJWRV9BRCAwCiAjZGVmaW5lIFhF
Tl9DUFVJRF9GRUFUMV9NTVVfUFRfVVBEQVRFX1BSRVNFUlZFX0FEICAoMXU8PDApCiAKKy8qCisg
KiBMZWFmIDQgKDB4NDAwMDB4MDMpCisgKiBTdWItbGVhZiAwOiBFQVg6IGJpdCAwOiBlbXVsYXRl
ZCB0c2MKKyAqICAgICAgICAgICAgICAgICAgYml0IDE6IGhvc3QgdHNjIGlzIGtub3duIHRvIGJl
IHJlbGlhYmxlCisgKiAgICAgICAgICAgICAgICAgIGJpdCAyOiBSRFRTQ1AgaW5zdHJ1Y3Rpb24g
YXZhaWxhYmxlCisgKiAgICAgICAgICAgICBFQlg6IHRzY19tb2RlOiAwPWRlZmF1bHQgKGVtdWxh
dGUgaWYgbmVjZXNzYXJ5KSwgMT1lbXVsYXRlLAorICogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMj1ubyBlbXVsYXRpb24sIDM9bm8gZW11bGF0aW9uICsgVFNDX0FVWCBzdXBwb3J0CisgKiAg
ICAgICAgICAgICBFQ1g6IGd1ZXN0IHRzYyBmcmVxdWVuY3kgaW4ga0h6CisgKiAgICAgICAgICAg
ICBFRFg6IGd1ZXN0IHRzYyBpbmNhcm5hdGlvbiAobWlncmF0aW9uIGNvdW50KQorICogU3ViLWxl
YWYgMTogRUFYOiB0c2Mgb2Zmc2V0IGxvdyBwYXJ0CisgKiAgICAgICAgICAgICBFQlg6IHRzYyBv
ZmZzZXQgaGlnaCBwYXJ0CisgKiAgICAgICAgICAgICBFQ1g6IG11bHRpcGxpY2F0b3IgZm9yIHRz
Yy0+bnMgY29udmVyc2lvbgorICogICAgICAgICAgICAgRURYOiBzaGlmdCBhbW91bnQgZm9yIHRz
Yy0+bnMgY29udmVyc2lvbgorICogU3ViLWxlYWYgMjogRUFYOiBob3N0IHRzYyBmcmVxdWVuY3kg
aW4ga0h6CisgKi8KKwogLyoKICAqIExlYWYgNSAoMHg0MDAwMHgwNCkKICAqIEhWTS1zcGVjaWZp
YyBmZWF0dXJlcwotICogRUFYOiBGZWF0dXJlcwotICogRUJYOiB2Y3B1IGlkIChpZmYgRUFYIGhh
cyBYRU5fSFZNX0NQVUlEX1ZDUFVfSURfUFJFU0VOVCBmbGFnKQorICogU3ViLWxlYWYgMDogRUFY
OiBGZWF0dXJlcworICogU3ViLWxlYWYgMDogRUJYOiB2Y3B1IGlkIChpZmYgRUFYIGhhcyBYRU5f
SFZNX0NQVUlEX1ZDUFVfSURfUFJFU0VOVCBmbGFnKQogICovCiAjZGVmaW5lIFhFTl9IVk1fQ1BV
SURfQVBJQ19BQ0NFU1NfVklSVCAoMXUgPDwgMCkgLyogVmlydHVhbGl6ZWQgQVBJQyByZWdpc3Rl
cnMgKi8KICNkZWZpbmUgWEVOX0hWTV9DUFVJRF9YMkFQSUNfVklSVCAgICAgICgxdSA8PCAxKSAv
KiBWaXJ0dWFsaXplZCB4MkFQSUMgYWNjZXNzZXMgKi8KQEAgLTg1LDYgKzEwMSwxNiBAQAogI2Rl
ZmluZSBYRU5fSFZNX0NQVUlEX0lPTU1VX01BUFBJTkdTICAgKDF1IDw8IDIpCiAjZGVmaW5lIFhF
Tl9IVk1fQ1BVSURfVkNQVV9JRF9QUkVTRU5UICAoMXUgPDwgMykgLyogdmNwdSBpZCBpcyBwcmVz
ZW50IGluIEVCWCAqLwogCi0jZGVmaW5lIFhFTl9DUFVJRF9NQVhfTlVNX0xFQVZFUyA0CisvKgor
ICogTGVhZiA2ICgweDQwMDAweDA1KQorICogUFYtc3BlY2lmaWMgcGFyYW1ldGVycworICogU3Vi
LWxlYWYgMDogRUFYOiBtYXggYXZhaWxhYmxlIHN1Yi1sZWFmCisgKiBTdWItbGVhZiAwOiBFQlg6
IGJpdHMgMC03OiBtYXggbWFjaGluZSBhZGRyZXNzIHdpZHRoCisgKi8KKworLyogTWF4LiBhZGRy
ZXNzIHdpZHRoIGluIGJpdHMgdGFraW5nIG1lbW9yeSBob3RwbHVnIGludG8gYWNjb3VudC4gKi8K
KyNkZWZpbmUgWEVOX0NQVUlEX01BQ0hJTkVfQUREUkVTU19XSURUSF9NQVNLICgweGZmdSA8PCAw
KQorCisjZGVmaW5lIFhFTl9DUFVJRF9NQVhfTlVNX0xFQVZFUyA1CiAKICNlbmRpZiAvKiBfX1hF
Tl9QVUJMSUNfQVJDSF9YODZfQ1BVSURfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9h
cmNoLXg4Ni9odm0vc2F2ZS5oIGIvaW5jbHVkZS94ZW4vYXJjaC14ODYvaHZtL3NhdmUuaAppbmRl
eCBlZmIwYjYyLi5mZDdiZjNmIDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi9hcmNoLXg4Ni9odm0v
c2F2ZS5oCisrKyBiL2luY2x1ZGUveGVuL2FyY2gteDg2L2h2bS9zYXZlLmgKQEAgLTQ3LDcgKzQ3
LDkgQEAgREVDTEFSRV9IVk1fU0FWRV9UWVBFKEhFQURFUiwgMSwgc3RydWN0IGh2bV9zYXZlX2hl
YWRlcik7CiAvKgogICogUHJvY2Vzc29yCiAgKgotICogQ29tcGF0OiBQcmUtMy40IGRpZG4ndCBo
YXZlIG1zcl90c2NfYXV4CisgKiBDb21wYXQ6CisgKiAgICAgLSBQcmUtMy40IGRpZG4ndCBoYXZl
IG1zcl90c2NfYXV4CisgKiAgICAgLSBQcmUtNC43IGRpZG4ndCBoYXZlIGZwdV9pbml0aWFsaXNl
ZAogICovCiAKIHN0cnVjdCBodm1faHdfY3B1IHsKQEAgLTEzMyw3ICsxMzUsNyBAQCBzdHJ1Y3Qg
aHZtX2h3X2NwdSB7CiAgICAgdWludDY0X3Qgc2hhZG93X2dzOwogCiAgICAgLyogbXNyIGNvbnRl
bnQgc2F2ZWQvcmVzdG9yZWQuICovCi0gICAgdWludDY0X3QgbXNyX2ZsYWdzOworICAgIHVpbnQ2
NF90IG1zcl9mbGFnczsgLyogT2Jzb2xldGUsIGlnbm9yZWQuICovCiAgICAgdWludDY0X3QgbXNy
X2xzdGFyOwogICAgIHVpbnQ2NF90IG1zcl9zdGFyOwogICAgIHVpbnQ2NF90IG1zcl9jc3RhcjsK
QEAgLTE1Nyw2ICsxNTksMTEgQEAgc3RydWN0IGh2bV9od19jcHUgewogICAgIH07CiAgICAgLyog
ZXJyb3IgY29kZSBmb3IgcGVuZGluZyBldmVudCAqLwogICAgIHVpbnQzMl90IGVycm9yX2NvZGU7
CisKKyNkZWZpbmUgX1hFTl9YODZfRlBVX0lOSVRJQUxJU0VEICAgICAgICAwCisjZGVmaW5lIFhF
Tl9YODZfRlBVX0lOSVRJQUxJU0VEICAgICAgICAgKDFVPDxfWEVOX1g4Nl9GUFVfSU5JVElBTElT
RUQpCisgICAgdWludDMyX3QgZmxhZ3M7CisgICAgdWludDMyX3QgcGFkMDsKIH07CiAKIHN0cnVj
dCBodm1faHdfY3B1X2NvbXBhdCB7CkBAIC0yNDIsNyArMjQ5LDcgQEAgc3RydWN0IGh2bV9od19j
cHVfY29tcGF0IHsKICAgICB1aW50NjRfdCBzaGFkb3dfZ3M7CiAKICAgICAvKiBtc3IgY29udGVu
dCBzYXZlZC9yZXN0b3JlZC4gKi8KLSAgICB1aW50NjRfdCBtc3JfZmxhZ3M7CisgICAgdWludDY0
X3QgbXNyX2ZsYWdzOyAvKiBPYnNvbGV0ZSwgaWdub3JlZC4gKi8KICAgICB1aW50NjRfdCBtc3Jf
bHN0YXI7CiAgICAgdWludDY0X3QgbXNyX3N0YXI7CiAgICAgdWludDY0X3QgbXNyX2NzdGFyOwpA
QCAtMjY4LDE5ICsyNzUsMjYgQEAgc3RydWN0IGh2bV9od19jcHVfY29tcGF0IHsKICAgICB1aW50
MzJfdCBlcnJvcl9jb2RlOwogfTsKIAotc3RhdGljIGlubGluZSBpbnQgX2h2bV9od19maXhfY3B1
KHZvaWQgKmgpIHsKK3N0YXRpYyBpbmxpbmUgaW50IF9odm1faHdfZml4X2NwdSh2b2lkICpoLCB1
aW50MzJfdCBzaXplKSB7CiAKICAgICB1bmlvbiBodm1faHdfY3B1X3VuaW9uIHsKICAgICAgICAg
c3RydWN0IGh2bV9od19jcHUgbmF0OwogICAgICAgICBzdHJ1Y3QgaHZtX2h3X2NwdV9jb21wYXQg
Y21wOwogICAgIH0gKnVjcHUgPSAodW5pb24gaHZtX2h3X2NwdV91bmlvbiAqKWg7CiAKLSAgICAv
KiBJZiB3ZSBjb3B5IGZyb20gdGhlIGVuZCBiYWNrd2FyZHMsIHdlIHNob3VsZAotICAgICAqIGJl
IGFibGUgdG8gZG8gdGhlIG1vZGlmaWNhdGlvbiBpbi1wbGFjZSAqLwotICAgIHVjcHUtPm5hdC5l
cnJvcl9jb2RlID0gdWNwdS0+Y21wLmVycm9yX2NvZGU7Ci0gICAgdWNwdS0+bmF0LnBlbmRpbmdf
ZXZlbnQgPSB1Y3B1LT5jbXAucGVuZGluZ19ldmVudDsKLSAgICB1Y3B1LT5uYXQudHNjID0gdWNw
dS0+Y21wLnRzYzsKLSAgICB1Y3B1LT5uYXQubXNyX3RzY19hdXggPSAwOworICAgIGlmICggc2l6
ZSA9PSBzaXplb2Yoc3RydWN0IGh2bV9od19jcHVfY29tcGF0KSApCisgICAgeworICAgICAgICAv
KgorICAgICAgICAgKiBJZiB3ZSBjb3B5IGZyb20gdGhlIGVuZCBiYWNrd2FyZHMsIHdlIHNob3Vs
ZAorICAgICAgICAgKiBiZSBhYmxlIHRvIGRvIHRoZSBtb2RpZmljYXRpb24gaW4tcGxhY2UuCisg
ICAgICAgICAqLworICAgICAgICB1Y3B1LT5uYXQuZXJyb3JfY29kZSA9IHVjcHUtPmNtcC5lcnJv
cl9jb2RlOworICAgICAgICB1Y3B1LT5uYXQucGVuZGluZ19ldmVudCA9IHVjcHUtPmNtcC5wZW5k
aW5nX2V2ZW50OworICAgICAgICB1Y3B1LT5uYXQudHNjID0gdWNwdS0+Y21wLnRzYzsKKyAgICAg
ICAgdWNwdS0+bmF0Lm1zcl90c2NfYXV4ID0gMDsKKyAgICB9CisgICAgLyogTWltaWMgdGhlIG9s
ZCBiZWhhdmlvdXIgYnkgdW5jb25kaXRpb25hbGx5IHNldHRpbmcgZnB1X2luaXRpYWxpc2VkLiAq
LworICAgIHVjcHUtPm5hdC5mbGFncyA9IFhFTl9YODZfRlBVX0lOSVRJQUxJU0VEOwogCiAgICAg
cmV0dXJuIDA7CiB9CkBAIC0zNDcsMzAgKzM2MSw0MSBAQCBERUNMQVJFX0hWTV9TQVZFX1RZUEUo
UElDLCAzLCBzdHJ1Y3QgaHZtX2h3X3ZwaWMpOwogICogSU8tQVBJQwogICovCiAKK3VuaW9uIHZp
b2FwaWNfcmVkaXJfZW50cnkKK3sKKyAgICB1aW50NjRfdCBiaXRzOworICAgIHN0cnVjdCB7Cisg
ICAgICAgIHVpbnQ4X3QgdmVjdG9yOworICAgICAgICB1aW50OF90IGRlbGl2ZXJ5X21vZGU6MzsK
KyAgICAgICAgdWludDhfdCBkZXN0X21vZGU6MTsKKyAgICAgICAgdWludDhfdCBkZWxpdmVyeV9z
dGF0dXM6MTsKKyAgICAgICAgdWludDhfdCBwb2xhcml0eToxOworICAgICAgICB1aW50OF90IHJl
bW90ZV9pcnI6MTsKKyAgICAgICAgdWludDhfdCB0cmlnX21vZGU6MTsKKyAgICAgICAgdWludDhf
dCBtYXNrOjE7CisgICAgICAgIHVpbnQ4X3QgcmVzZXJ2ZTo3OworICAgICAgICB1aW50OF90IHJl
c2VydmVkWzRdOworICAgICAgICB1aW50OF90IGRlc3RfaWQ7CisgICAgfSBmaWVsZHM7Cit9Owor
CiAjZGVmaW5lIFZJT0FQSUNfTlVNX1BJTlMgIDQ4IC8qIDE2IElTQSBJUlFzLCAzMiBub24tbGVn
YWN5IFBDSSBJUlFTLiAqLwogCi1zdHJ1Y3QgaHZtX2h3X3Zpb2FwaWMgewotICAgIHVpbnQ2NF90
IGJhc2VfYWRkcmVzczsKLSAgICB1aW50MzJfdCBpb3JlZ3NlbDsKLSAgICB1aW50MzJfdCBpZDsK
LSAgICB1bmlvbiB2aW9hcGljX3JlZGlyX2VudHJ5Ci0gICAgewotICAgICAgICB1aW50NjRfdCBi
aXRzOwotICAgICAgICBzdHJ1Y3QgewotICAgICAgICAgICAgdWludDhfdCB2ZWN0b3I7Ci0gICAg
ICAgICAgICB1aW50OF90IGRlbGl2ZXJ5X21vZGU6MzsKLSAgICAgICAgICAgIHVpbnQ4X3QgZGVz
dF9tb2RlOjE7Ci0gICAgICAgICAgICB1aW50OF90IGRlbGl2ZXJ5X3N0YXR1czoxOwotICAgICAg
ICAgICAgdWludDhfdCBwb2xhcml0eToxOwotICAgICAgICAgICAgdWludDhfdCByZW1vdGVfaXJy
OjE7Ci0gICAgICAgICAgICB1aW50OF90IHRyaWdfbW9kZToxOwotICAgICAgICAgICAgdWludDhf
dCBtYXNrOjE7Ci0gICAgICAgICAgICB1aW50OF90IHJlc2VydmU6NzsKLSAgICAgICAgICAgIHVp
bnQ4X3QgcmVzZXJ2ZWRbNF07Ci0gICAgICAgICAgICB1aW50OF90IGRlc3RfaWQ7Ci0gICAgICAg
IH0gZmllbGRzOwotICAgIH0gcmVkaXJ0YmxbVklPQVBJQ19OVU1fUElOU107Ci19OworI2RlZmlu
ZSBYRU5fSFZNX1ZJT0FQSUMobmFtZSwgY250KSAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
c3RydWN0IG5hbWUgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICAgICAgdWludDY0X3QgYmFzZV9hZGRyZXNzOyAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgICAgICB1aW50MzJfdCBpb3JlZ3NlbDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgICAgICAgIHVpbnQzMl90IGlkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgICAgICAgdW5pb24gdmlvYXBpY19yZWRpcl9lbnRyeSByZWRpcnRibFtjbnRdOyAgICAg
ICAgXAorICAgIH0KKworWEVOX0hWTV9WSU9BUElDKGh2bV9od192aW9hcGljLCBWSU9BUElDX05V
TV9QSU5TKTsKKworI2lmbmRlZiBfX1hFTl9fCisjdW5kZWYgWEVOX0hWTV9WSU9BUElDCisjZWxz
ZQorI3VuZGVmIFZJT0FQSUNfTlVNX1BJTlMKKyNlbmRpZgogCiBERUNMQVJFX0hWTV9TQVZFX1RZ
UEUoSU9BUElDLCA0LCBzdHJ1Y3QgaHZtX2h3X3Zpb2FwaWMpOwogCkBAIC01NTAsMTIgKzU3NSwx
MSBAQCBzdHJ1Y3QgaHZtX2h3X2NwdV94c2F2ZSB7CiAgICAgc3RydWN0IHsKICAgICAgICAgc3Ry
dWN0IHsgY2hhciB4WzUxMl07IH0gZnB1X3NzZTsKIAotICAgICAgICBzdHJ1Y3QgeworICAgICAg
ICBzdHJ1Y3QgaHZtX2h3X2NwdV94c2F2ZV9oZHIgewogICAgICAgICAgICAgdWludDY0X3QgeHN0
YXRlX2J2OyAgICAgICAgIC8qIFVwZGF0ZWQgYnkgWFJTVE9SICovCi0gICAgICAgICAgICB1aW50
NjRfdCByZXNlcnZlZFs3XTsKKyAgICAgICAgICAgIHVpbnQ2NF90IHhjb21wX2J2OyAgICAgICAg
ICAvKiBVcGRhdGVkIGJ5IFhSU1RPUntDLFN9ICovCisgICAgICAgICAgICB1aW50NjRfdCByZXNl
cnZlZFs2XTsKICAgICAgICAgfSB4c2F2ZV9oZHI7ICAgICAgICAgICAgICAgICAgICAvKiBUaGUg
NjQtYnl0ZSBoZWFkZXIgKi8KLQotICAgICAgICBzdHJ1Y3QgeyBjaGFyIHhbMF07IH0geW1tOyAg
ICAvKiBZTU0gKi8KICAgICB9IHNhdmVfYXJlYTsKIH07CiAKQEAgLTU3NSw3ICs1OTksOSBAQCBz
dHJ1Y3QgaHZtX3ZpcmlkaWFuX2RvbWFpbl9jb250ZXh0IHsKIERFQ0xBUkVfSFZNX1NBVkVfVFlQ
RShWSVJJRElBTl9ET01BSU4sIDE1LCBzdHJ1Y3QgaHZtX3ZpcmlkaWFuX2RvbWFpbl9jb250ZXh0
KTsKIAogc3RydWN0IGh2bV92aXJpZGlhbl92Y3B1X2NvbnRleHQgewotICAgIHVpbnQ2NF90IGFw
aWNfYXNzaXN0OworICAgIHVpbnQ2NF90IHZwX2Fzc2lzdF9tc3I7CisgICAgdWludDhfdCAgdnBf
YXNzaXN0X3ZlY3RvcjsKKyAgICB1aW50OF90ICBfcGFkWzddOwogfTsKIAogREVDTEFSRV9IVk1f
U0FWRV9UWVBFKFZJUklESUFOX1ZDUFUsIDE3LCBzdHJ1Y3QgaHZtX3ZpcmlkaWFuX3ZjcHVfY29u
dGV4dCk7CkBAIC01ODQsNiArNjEwLDcgQEAgc3RydWN0IGh2bV92bWNlX3ZjcHUgewogICAgIHVp
bnQ2NF90IGNhcHM7CiAgICAgdWludDY0X3QgbWNpX2N0bDJfYmFuazA7CiAgICAgdWludDY0X3Qg
bWNpX2N0bDJfYmFuazE7CisgICAgdWludDY0X3QgbWNnX2V4dF9jdGw7CiB9OwogCiBERUNMQVJF
X0hWTV9TQVZFX1RZUEUoVk1DRV9WQ1BVLCAxOCwgc3RydWN0IGh2bV92bWNlX3ZjcHUpOwpkaWZm
IC0tZ2l0IGEvaW5jbHVkZS94ZW4vYXJjaC14ODYvcG11LmggYi9pbmNsdWRlL3hlbi9hcmNoLXg4
Ni9wbXUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OGViZjEyCi0tLSAv
ZGV2L251bGwKKysrIGIvaW5jbHVkZS94ZW4vYXJjaC14ODYvcG11LmgKQEAgLTAsMCArMSwxNjcg
QEAKKy8qCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwg
dG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBh
c3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRl
YWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0
IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw
dWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9m
IHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJl
IGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p
c3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0
YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMg
UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP
UgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMg
T1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1Ig
T1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRP
UlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElP
TiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBU
SEUgU09GVFdBUkUuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDE1IE9yYWNsZSBhbmQvb3IgaXRz
IGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKi8KKworI2lmbmRlZiBfX1hFTl9Q
VUJMSUNfQVJDSF9YODZfUE1VX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfQVJDSF9YODZfUE1V
X0hfXworCisvKiB4ODYtc3BlY2lmaWMgUE1VIGRlZmluaXRpb25zICovCisKKy8qIEFNRCBQTVUg
cmVnaXN0ZXJzIGFuZCBzdHJ1Y3R1cmVzICovCitzdHJ1Y3QgeGVuX3BtdV9hbWRfY3R4dCB7Cisg
ICAgLyoKKyAgICAgKiBPZmZzZXRzIHRvIGNvdW50ZXIgYW5kIGNvbnRyb2wgTVNScyAocmVsYXRp
dmUgdG8geGVuX3BtdV9hcmNoLmMuYW1kKS4KKyAgICAgKiBGb3IgUFYoSCkgZ3Vlc3RzIHRoZXNl
IGZpZWxkcyBhcmUgUk8uCisgICAgICovCisgICAgdWludDMyX3QgY291bnRlcnM7CisgICAgdWlu
dDMyX3QgY3RybHM7CisKKyAgICAvKiBDb3VudGVyIE1TUnMgKi8KKyNpZiBkZWZpbmVkKF9fU1RE
Q19WRVJTSU9OX18pICYmIF9fU1REQ19WRVJTSU9OX18gPj0gMTk5OTAxTAorICAgIHVpbnQ2NF90
IHJlZ3NbXTsKKyNlbGlmIGRlZmluZWQoX19HTlVDX18pCisgICAgdWludDY0X3QgcmVnc1swXTsK
KyNlbmRpZgorfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9wbXVfYW1kX2N0eHQgeGVuX3BtdV9hbWRf
Y3R4dF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3BtdV9hbWRfY3R4dF90KTsKKwor
LyogSW50ZWwgUE1VIHJlZ2lzdGVycyBhbmQgc3RydWN0dXJlcyAqLworc3RydWN0IHhlbl9wbXVf
Y250cl9wYWlyIHsKKyAgICB1aW50NjRfdCBjb3VudGVyOworICAgIHVpbnQ2NF90IGNvbnRyb2w7
Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX3BtdV9jbnRyX3BhaXIgeGVuX3BtdV9jbnRyX3BhaXJf
dDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9wbXVfY250cl9wYWlyX3QpOworCitzdHJ1
Y3QgeGVuX3BtdV9pbnRlbF9jdHh0IHsKKyAgIC8qCisgICAgKiBPZmZzZXRzIHRvIGZpeGVkIGFu
ZCBhcmNoaXRlY3R1cmFsIGNvdW50ZXIgTVNScyAocmVsYXRpdmUgdG8KKyAgICAqIHhlbl9wbXVf
YXJjaC5jLmludGVsKS4KKyAgICAqIEZvciBQVihIKSBndWVzdHMgdGhlc2UgZmllbGRzIGFyZSBS
Ty4KKyAgICAqLworICAgIHVpbnQzMl90IGZpeGVkX2NvdW50ZXJzOworICAgIHVpbnQzMl90IGFy
Y2hfY291bnRlcnM7CisKKyAgICAvKiBQTVUgcmVnaXN0ZXJzICovCisgICAgdWludDY0X3QgZ2xv
YmFsX2N0cmw7CisgICAgdWludDY0X3QgZ2xvYmFsX292Zl9jdHJsOworICAgIHVpbnQ2NF90IGds
b2JhbF9zdGF0dXM7CisgICAgdWludDY0X3QgZml4ZWRfY3RybDsKKyAgICB1aW50NjRfdCBkc19h
cmVhOworICAgIHVpbnQ2NF90IHBlYnNfZW5hYmxlOworICAgIHVpbnQ2NF90IGRlYnVnY3RsOwor
CisgICAgLyogRml4ZWQgYW5kIGFyY2hpdGVjdHVyYWwgY291bnRlciBNU1JzICovCisjaWYgZGVm
aW5lZChfX1NURENfVkVSU0lPTl9fKSAmJiBfX1NURENfVkVSU0lPTl9fID49IDE5OTkwMUwKKyAg
ICB1aW50NjRfdCByZWdzW107CisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKQorICAgIHVpbnQ2NF90
IHJlZ3NbMF07CisjZW5kaWYKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5fcG11X2ludGVsX2N0eHQg
eGVuX3BtdV9pbnRlbF9jdHh0X3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fcG11X2lu
dGVsX2N0eHRfdCk7CisKKy8qIFNhbXBsZWQgZG9tYWluJ3MgcmVnaXN0ZXJzICovCitzdHJ1Y3Qg
eGVuX3BtdV9yZWdzIHsKKyAgICB1aW50NjRfdCBpcDsKKyAgICB1aW50NjRfdCBzcDsKKyAgICB1
aW50NjRfdCBmbGFnczsKKyAgICB1aW50MTZfdCBjczsKKyAgICB1aW50MTZfdCBzczsKKyAgICB1
aW50OF90IGNwbDsKKyAgICB1aW50OF90IHBhZFszXTsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5f
cG11X3JlZ3MgeGVuX3BtdV9yZWdzX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fcG11
X3JlZ3NfdCk7CisKKy8qIFBNVSBmbGFncyAqLworI2RlZmluZSBQTVVfQ0FDSEVEICAgICAgICAg
KDE8PDApIC8qIFBNVSBNU1JzIGFyZSBjYWNoZWQgaW4gdGhlIGNvbnRleHQgKi8KKyNkZWZpbmUg
UE1VX1NBTVBMRV9VU0VSICAgICgxPDwxKSAvKiBTYW1wbGUgaXMgZnJvbSB1c2VyIG9yIGtlcm5l
bCBtb2RlICovCisjZGVmaW5lIFBNVV9TQU1QTEVfUkVBTCAgICAoMTw8MikgLyogU2FtcGxlIGlz
IGZyb20gcmVhbG1vZGUgKi8KKyNkZWZpbmUgUE1VX1NBTVBMRV9QViAgICAgICgxPDwzKSAvKiBT
YW1wbGUgZnJvbSBhIFBWIGd1ZXN0ICovCisKKy8qCisgKiBBcmNoaXRlY3R1cmUtc3BlY2lmaWMg
aW5mb3JtYXRpb24gZGVzY3JpYmluZyBzdGF0ZSBvZiB0aGUgcHJvY2Vzc29yIGF0CisgKiB0aGUg
dGltZSBvZiBQTVUgaW50ZXJydXB0LgorICogRmllbGRzIG9mIHRoaXMgc3RydWN0dXJlIG1hcmtl
ZCBhcyBSVyBmb3IgZ3Vlc3Qgc2hvdWxkIG9ubHkgYmUgd3JpdHRlbiBieQorICogdGhlIGd1ZXN0
IHdoZW4gUE1VX0NBQ0hFRCBiaXQgaW4gcG11X2ZsYWdzIGlzIHNldCAod2hpY2ggaXMgZG9uZSBi
eSB0aGUKKyAqIGh5cGVydmlzb3IgZHVyaW5nIFBNVSBpbnRlcnJ1cHQpLiBIeXBlcnZpc29yIHdp
bGwgcmVhZCB1cGRhdGVkIGRhdGEgaW4KKyAqIFhFTlBNVV9mbHVzaCBoeXBlcmNhbGwgYW5kIGNs
ZWFyIFBNVV9DQUNIRUQgYml0LgorICovCitzdHJ1Y3QgeGVuX3BtdV9hcmNoIHsKKyAgICB1bmlv
biB7CisgICAgICAgIC8qCisgICAgICAgICAqIFByb2Nlc3NvcidzIHJlZ2lzdGVycyBhdCB0aGUg
dGltZSBvZiBpbnRlcnJ1cHQuCisgICAgICAgICAqIFdPIGZvciBoeXBlcnZpc29yLCBSTyBmb3Ig
Z3Vlc3RzLgorICAgICAgICAgKi8KKyAgICAgICAgc3RydWN0IHhlbl9wbXVfcmVncyByZWdzOwor
ICAgICAgICAvKiBQYWRkaW5nIGZvciBhZGRpbmcgbmV3IHJlZ2lzdGVycyB0byB4ZW5fcG11X3Jl
Z3MgaW4gdGhlIGZ1dHVyZSAqLworI2RlZmluZSBYRU5QTVVfUkVHU19QQURfU1ogIDY0CisgICAg
ICAgIHVpbnQ4X3QgcGFkW1hFTlBNVV9SRUdTX1BBRF9TWl07CisgICAgfSByOworCisgICAgLyog
V08gZm9yIGh5cGVydmlzb3IsIFJPIGZvciBndWVzdCAqLworICAgIHVpbnQ2NF90IHBtdV9mbGFn
czsKKworICAgIC8qCisgICAgICogQVBJQyBMVlRQQyByZWdpc3Rlci4KKyAgICAgKiBSVyBmb3Ig
Ym90aCBoeXBlcnZpc29yIGFuZCBndWVzdC4KKyAgICAgKiBPbmx5IEFQSUNfTFZUX01BU0tFRCBi
aXQgaXMgbG9hZGVkIGJ5IHRoZSBoeXBlcnZpc29yIGludG8gaGFyZHdhcmUKKyAgICAgKiBkdXJp
bmcgWEVOUE1VX2ZsdXNoIG9yIFhFTlBNVV9sdnRwY19zZXQuCisgICAgICovCisgICAgdW5pb24g
eworICAgICAgICB1aW50MzJfdCBsYXBpY19sdnRwYzsKKyAgICAgICAgdWludDY0X3QgcGFkOwor
ICAgIH0gbDsKKworICAgIC8qCisgICAgICogVmVuZG9yLXNwZWNpZmljIFBNVSByZWdpc3RlcnMu
CisgICAgICogUlcgZm9yIGJvdGggaHlwZXJ2aXNvciBhbmQgZ3Vlc3QgKHNlZSBleGNlcHRpb25z
IGFib3ZlKS4KKyAgICAgKiBHdWVzdCdzIHVwZGF0ZXMgdG8gdGhpcyBmaWVsZCBhcmUgdmVyaWZp
ZWQgYW5kIHRoZW4gbG9hZGVkIGJ5IHRoZQorICAgICAqIGh5cGVydmlzb3IgaW50byBoYXJkd2Fy
ZSBkdXJpbmcgWEVOUE1VX2ZsdXNoCisgICAgICovCisgICAgdW5pb24geworICAgICAgICBzdHJ1
Y3QgeGVuX3BtdV9hbWRfY3R4dCBhbWQ7CisgICAgICAgIHN0cnVjdCB4ZW5fcG11X2ludGVsX2N0
eHQgaW50ZWw7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogUGFkZGluZyBmb3IgY29udGV4dHMg
KGZpeGVkIHBhcnRzIG9ubHksIGRvZXMgbm90IGluY2x1ZGUgTVNSIGJhbmtzCisgICAgICAgICAq
IHRoYXQgYXJlIHNwZWNpZmllZCBieSBvZmZzZXRzKQorICAgICAgICAgKi8KKyNkZWZpbmUgWEVO
UE1VX0NUWFRfUEFEX1NaICAxMjgKKyAgICAgICAgdWludDhfdCBwYWRbWEVOUE1VX0NUWFRfUEFE
X1NaXTsKKyAgICB9IGM7Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX3BtdV9hcmNoIHhlbl9wbXVf
YXJjaF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3BtdV9hcmNoX3QpOworCisjZW5k
aWYgLyogX19YRU5fUFVCTElDX0FSQ0hfWDg2X1BNVV9IX18gKi8KKy8qCisgKiBMb2NhbCB2YXJp
YWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9m
ZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVu
ZDoKKyAqLworCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9hcmNoLXg4Ni94ZW4tbWNhLmggYi9p
bmNsdWRlL3hlbi9hcmNoLXg4Ni94ZW4tbWNhLmgKaW5kZXggMDQzODJlZC4uZGMzNTI2NyAxMDA2
NDQKLS0tIGEvaW5jbHVkZS94ZW4vYXJjaC14ODYveGVuLW1jYS5oCisrKyBiL2luY2x1ZGUveGVu
L2FyY2gteDg2L3hlbi1tY2EuaApAQCAtMSwxMSArMSwxMSBAQAogLyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgogICogYXJjaC14ODYvbWNhLmgKLSAqIAorICoKICAqIENvbnRyaWJ1dGVkIGJ5IEFkdmFu
Y2VkIE1pY3JvIERldmljZXMsIEluYy4KICAqIEF1dGhvcjogQ2hyaXN0b3BoIEVnZ2VyIDxDaHJp
c3RvcGguRWdnZXJAYW1kLmNvbT4KICAqCiAgKiBHdWVzdCBPUyBtYWNoaW5lIGNoZWNrIGludGVy
ZmFjZSB0byB4ODYgWGVuLgotICogCisgKgogICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl
ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQogICogb2Yg
dGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNv
ZnR3YXJlIiksIHRvCiAgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9u
LCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQpAQCAtODgsNiArODgsOCBAQAogI2Rl
ZmluZSBYRU5fTUNfTk9UREVMSVZFUkVEIDB4MTAKIC8qIE5vdGUsIFhFTl9NQ19DQU5OT1RIQU5E
TEUgYW5kIFhFTl9NQ19OT1RERUxJVkVSRUQgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gKi8KIAor
LyogQXBwbGljYWJsZSB0byBhbGwgbWNfdmNwdWlkIGZpZWxkcyBiZWxvdy4gKi8KKyNkZWZpbmUg
WEVOX01DX1ZDUFVJRF9JTlZBTElEIDB4ZmZmZgogCiAjaWZuZGVmIF9fQVNTRU1CTFlfXwogCkBA
IC0xNTYsNyArMTU4LDcgQEAgc3RydWN0IG1jaW5mb19tc3IgewogfTsKIAogLyogY29udGFpbnMg
bWMgaW5mb3JtYXRpb24gZnJvbSBvdGhlcgotICogb3IgYWRkaXRpb25hbCBtYyBNU1JzICovIAor
ICogb3IgYWRkaXRpb25hbCBtYyBNU1JzICovCiBzdHJ1Y3QgbWNpbmZvX2V4dGVuZGVkIHsKICAg
ICBzdHJ1Y3QgbWNpbmZvX2NvbW1vbiBjb21tb247CiAKQEAgLTE5MywxMCArMTk1LDEwIEBAIHN0
cnVjdCBtY2luZm9fZXh0ZW5kZWQgewogLyogTDMgY2FjaGUgZGlzYWJsZSBBY3Rpb24gKi8KICNk
ZWZpbmUgTUNfQUNUSU9OX0NBQ0hFX1NIUklOSyAoMHgxIDw8IDIpCiAKLS8qIEJlbG93IGludGVy
ZmFjZSB1c2VkIGJldHdlZW4gWEVOL0RPTTAgZm9yIHBhc3NpbmcgWEVOJ3MgcmVjb3ZlcnkgYWN0
aW9uIAotICogaW5mb3JtYXRpb24gdG8gRE9NMC4gCisvKiBCZWxvdyBpbnRlcmZhY2UgdXNlZCBi
ZXR3ZWVuIFhFTi9ET00wIGZvciBwYXNzaW5nIFhFTidzIHJlY292ZXJ5IGFjdGlvbgorICogaW5m
b3JtYXRpb24gdG8gRE9NMC4KICAqIHVzYWdlIFNlbmFyaW86IEFmdGVyIG9mZmxpbmluZyBicm9r
ZW4gcGFnZSwgWEVOIG1pZ2h0IHBhc3MgaXRzIHBhZ2Ugb2ZmbGluZQotICogcmVjb3ZlcnkgYWN0
aW9uIHJlc3VsdCB0byBET00wLiBET00wIHdpbGwgc2F2ZSB0aGUgaW5mb3JtYXRpb24gaW4gCisg
KiByZWNvdmVyeSBhY3Rpb24gcmVzdWx0IHRvIERPTTAuIERPTTAgd2lsbCBzYXZlIHRoZSBpbmZv
cm1hdGlvbiBpbgogICogbm9uLXZvbGF0aWxlIG1lbW9yeSBmb3IgZnVydGhlciBwcm9hY3RpdmUg
YWN0aW9ucywgc3VjaCBhcyBvZmZsaW5pbmcgdGhlCiAgKiBlYXN5IGJyb2tlbiBwYWdlIGVhcmxp
ZXIgd2hlbiBkb2luZyBuZXh0IHJlYm9vdC4KICovCkBAIC0yNTUsOCArMjU3LDggQEAgREVGSU5F
X1hFTl9HVUVTVF9IQU5ETEUobWNfaW5mb190KTsKICNkZWZpbmUgTUNfQ0FQU19BTURfRUNYCTYJ
LyogY3B1aWQgbGV2ZWwgMHg4MDAwMDAwMSAoJWVjeCkgKi8KIAogc3RydWN0IG1jaW5mb19sb2dp
Y2FsX2NwdSB7Ci0gICAgdWludDMyX3QgbWNfY3B1bnI7ICAgICAgICAgIAotICAgIHVpbnQzMl90
IG1jX2NoaXBpZDsgCisgICAgdWludDMyX3QgbWNfY3B1bnI7CisgICAgdWludDMyX3QgbWNfY2hp
cGlkOwogICAgIHVpbnQxNl90IG1jX2NvcmVpZDsKICAgICB1aW50MTZfdCBtY190aHJlYWRpZDsK
ICAgICB1aW50MzJfdCBtY19hcGljaWQ7CkBAIC0yODEsNyArMjgzLDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgbWNpbmZvX2xvZ2ljYWxfY3B1IHhlbl9tY19sb2dpY2FsX2NwdV90OwogREVGSU5FX1hFTl9H
VUVTVF9IQU5ETEUoeGVuX21jX2xvZ2ljYWxfY3B1X3QpOwogCiAKLS8qIAorLyoKICAqIE9TJ3Mg
c2hvdWxkIHVzZSB0aGVzZSBpbnN0ZWFkIG9mIHdyaXRpbmcgdGhlaXIgb3duIGxvb2t1cCBmdW5j
dGlvbgogICogZWFjaCB3aXRoIGl0cyBvd24gYnVncyBhbmQgZHJhd2JhY2tzLgogICogV2UgdXNl
IG1hY3JvcyBpbnN0ZWFkIG9mIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb25zIHRvIGFsbG93IGd1ZXN0
cwpAQCAtMzEyLDggKzMxNCw4IEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9tY19sb2dp
Y2FsX2NwdV90KTsKICAgICAgICAgc3RydWN0IG1jaW5mb19jb21tb24gKl9taWM7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBmb3VuZCA9IDA7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLQkoX3JldCkgPSBOVUxM
OwkJCQkJCVwKLQlpZiAoX21pID09IE5VTEwpIGJyZWFrOwkJCQkJXAorICAgICAgICAoX3JldCkg
PSBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg
ICAgaWYgKF9taSA9PSBOVUxMKSBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCiAgICAgICAgIF9taWMgPSB4ODZfbWNpbmZvX2ZpcnN0KF9taSk7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAogICAgICAgICBmb3IgKGkgPSAwOyBpIDwgeDg2X21jaW5mb19uZW50cmll
cyhfbWkpOyBpKyspIHsgICAgICAgIFwKICAgICAgICAgICAgIGlmIChfbWljLT50eXBlID09IChf
dHlwZSkpIHsgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC0zNDUsOCArMzQ3LDggQEAgc3Ry
dWN0IHhlbl9tY19mZXRjaCB7CiAgICAgLyogSU4vT1VUIHZhcmlhYmxlcy4gKi8KICAgICB1aW50
MzJfdCBmbGFnczsJLyogSU46IFhFTl9NQ19OT05VUkdFTlQsIFhFTl9NQ19VUkdFTlQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBYRU5fTUNfQUNLIGlmIGFjaydpbmcgYW4gZWFybGllciBm
ZXRjaCAqLwotCQkJLyogT1VUOiBYRU5fTUNfT0ssIFhFTl9NQ19GRVRDSEZBSUxFRCwKLQkJCSAg
IFhFTl9NQ19OT0RBVEEsIFhFTl9NQ19OT01BVENIICovCisgICAgICAgICAgICAgICAgICAgICAg
IC8qIE9VVDogWEVOX01DX09LLCBYRU5fTUNfRkVUQ0hGQUlMRUQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIFhFTl9NQ19OT0RBVEEsIFhFTl9NQ19OT01BVENIICovCiAgICAgdWludDMyX3Qg
X3BhZDA7CiAgICAgdWludDY0X3QgZmV0Y2hfaWQ7CS8qIE9VVDogaWQgZm9yIGFjaywgSU46IGlk
IHdlIGFyZSBhY2snaW5nICovCiAKQEAgLTM3OCwzMCArMzgwLDMzIEBAIERFRklORV9YRU5fR1VF
U1RfSEFORExFKHhlbl9tY19ub3RpZnlkb21haW5fdCk7CiAKICNkZWZpbmUgWEVOX01DX3BoeXNj
cHVpbmZvIDMKIHN0cnVjdCB4ZW5fbWNfcGh5c2NwdWluZm8gewotCS8qIElOL09VVCAqLwotCXVp
bnQzMl90IG5jcHVzOwotCXVpbnQzMl90IF9wYWQwOwotCS8qIE9VVCAqLwotCVhFTl9HVUVTVF9I
QU5ETEUoeGVuX21jX2xvZ2ljYWxfY3B1X3QpIGluZm87CisgICAgLyogSU4vT1VUICovCisgICAg
dWludDMyX3QgbmNwdXM7CisgICAgdWludDMyX3QgX3BhZDA7CisgICAgLyogT1VUICovCisgICAg
WEVOX0dVRVNUX0hBTkRMRSh4ZW5fbWNfbG9naWNhbF9jcHVfdCkgaW5mbzsKIH07CiAKICNkZWZp
bmUgWEVOX01DX21zcmluamVjdCAgICA0CiAjZGVmaW5lIE1DX01TUklOSl9NQVhNU1JTICAgICAg
IDgKIHN0cnVjdCB4ZW5fbWNfbXNyaW5qZWN0IHsKLSAgICAgICAvKiBJTiAqLwotCXVpbnQzMl90
IG1jaW5qX2NwdW5yOyAgICAgICAgICAgLyogdGFyZ2V0IHByb2Nlc3NvciBpZCAqLwotCXVpbnQz
Ml90IG1jaW5qX2ZsYWdzOyAgICAgICAgICAgLyogc2VlIE1DX01TUklOSl9GXyogYmVsb3cgKi8K
LQl1aW50MzJfdCBtY2lual9jb3VudDsgICAgICAgICAgIC8qIDAgLi4gY291bnQtMSBpbiBhcnJh
eSBhcmUgdmFsaWQgKi8KLQl1aW50MzJfdCBfcGFkMDsKLQlzdHJ1Y3QgbWNpbmZvX21zciBtY2lu
al9tc3JbTUNfTVNSSU5KX01BWE1TUlNdOworICAgIC8qIElOICovCisgICAgdWludDMyX3QgbWNp
bmpfY3B1bnI7ICAgICAgICAgICAvKiB0YXJnZXQgcHJvY2Vzc29yIGlkICovCisgICAgdWludDMy
X3QgbWNpbmpfZmxhZ3M7ICAgICAgICAgICAvKiBzZWUgTUNfTVNSSU5KX0ZfKiBiZWxvdyAqLwor
ICAgIHVpbnQzMl90IG1jaW5qX2NvdW50OyAgICAgICAgICAgLyogMCAuLiBjb3VudC0xIGluIGFy
cmF5IGFyZSB2YWxpZCAqLworICAgIGRvbWlkX3QgIG1jaW5qX2RvbWlkOyAgICAgICAgICAgLyog
dmFsaWQgb25seSBpZiBNQ19NU1JJTkpfRl9HUEFERFIgaXMKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHByZXNlbnQgaW4gbWNpbmpfZmxhZ3MgKi8KKyAgICB1aW50MTZf
dCBfcGFkMDsKKyAgICBzdHJ1Y3QgbWNpbmZvX21zciBtY2lual9tc3JbTUNfTVNSSU5KX01BWE1T
UlNdOwogfTsKIAogLyogRmxhZ3MgZm9yIG1jaW5qX2ZsYWdzIGFib3ZlOyBiaXRzIDE2LTMxIGFy
ZSByZXNlcnZlZCAqLwogI2RlZmluZSBNQ19NU1JJTkpfRl9JTlRFUlBPU0UgICAweDEKKyNkZWZp
bmUgTUNfTVNSSU5KX0ZfR1BBRERSICAgICAgMHgyCiAKICNkZWZpbmUgWEVOX01DX21jZWluamVj
dCAgICA1CiBzdHJ1Y3QgeGVuX21jX21jZWluamVjdCB7Ci0JdW5zaWduZWQgaW50IG1jZWlual9j
cHVucjsgICAgICAvKiB0YXJnZXQgcHJvY2Vzc29yIGlkICovCisgICAgdW5zaWduZWQgaW50IG1j
ZWlual9jcHVucjsgICAgICAvKiB0YXJnZXQgcHJvY2Vzc29yIGlkICovCiB9OwogCiAjaWYgZGVm
aW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCkBAIC00MDksMTIgKzQxNCwx
MyBAQCBzdHJ1Y3QgeGVuX21jX21jZWluamVjdCB7CiAjZGVmaW5lIFhFTl9NQ19JTkpFQ1RfVFlQ
RV9NQVNLICAgICAweDcKICNkZWZpbmUgWEVOX01DX0lOSkVDVF9UWVBFX01DRSAgICAgIDB4MAog
I2RlZmluZSBYRU5fTUNfSU5KRUNUX1RZUEVfQ01DSSAgICAgMHgxCisjZGVmaW5lIFhFTl9NQ19J
TkpFQ1RfVFlQRV9MTUNFICAgICAweDIKIAogI2RlZmluZSBYRU5fTUNfSU5KRUNUX0NQVV9CUk9B
RENBU1QgMHg4CiAKIHN0cnVjdCB4ZW5fbWNfaW5qZWN0X3YyIHsKLQl1aW50MzJfdCBmbGFnczsK
LQlzdHJ1Y3QgeGVuY3RsX2JpdG1hcCBjcHVtYXA7CisgICAgdWludDMyX3QgZmxhZ3M7CisgICAg
c3RydWN0IHhlbmN0bF9iaXRtYXAgY3B1bWFwOwogfTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9p
bmNsdWRlL3hlbi9hcmNoLXg4Ni94ZW4teDg2XzMyLmggYi9pbmNsdWRlL3hlbi9hcmNoLXg4Ni94
ZW4teDg2XzMyLmgKaW5kZXggNjMzOTcyNy4uYWEzODhiNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS94
ZW4vYXJjaC14ODYveGVuLXg4Nl8zMi5oCisrKyBiL2luY2x1ZGUveGVuL2FyY2gteDg2L3hlbi14
ODZfMzIuaApAQCAtNTUsNDMgKzU1LDM4IEBACiAjZGVmaW5lIEZMQVRfVVNFUl9EUyAgICBGTEFU
X1JJTkczX0RTCiAjZGVmaW5lIEZMQVRfVVNFUl9TUyAgICBGTEFUX1JJTkczX1NTCiAKLSNpZmRl
ZiBDT05GSUdfUEFSQVZJUlQKICNkZWZpbmUgX19IWVBFUlZJU09SX1ZJUlRfU1RBUlRfUEFFICAg
IDB4RjU4MDAwMDAKICNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9TVEFSVF9QQUUgICAgIDB4RjU4
MDAwMDAKICNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9FTkRfUEFFICAgICAgIDB4RjY4MDAwMDAK
LSNkZWZpbmUgSFlQRVJWSVNPUl9WSVJUX1NUQVJUX1BBRSAgICAgIFwKLSAgICBta191bnNpZ25l
ZF9sb25nKF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUX1BBRSkKLSNkZWZpbmUgTUFDSDJQSFlTX1ZJ
UlRfU1RBUlRfUEFFICAgICAgIFwKLSAgICBta191bnNpZ25lZF9sb25nKF9fTUFDSDJQSFlTX1ZJ
UlRfU1RBUlRfUEFFKQotI2RlZmluZSBNQUNIMlBIWVNfVklSVF9FTkRfUEFFICAgICAgICAgXAot
ICAgIG1rX3Vuc2lnbmVkX2xvbmcoX19NQUNIMlBIWVNfVklSVF9FTkRfUEFFKQorI2RlZmluZSBI
WVBFUlZJU09SX1ZJUlRfU1RBUlRfUEFFICAgICAgeGVuX21rX3Vsb25nKF9fSFlQRVJWSVNPUl9W
SVJUX1NUQVJUX1BBRSkKKyNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRfU1RBUlRfUEFFICAgICAgIHhl
bl9ta191bG9uZyhfX01BQ0gyUEhZU19WSVJUX1NUQVJUX1BBRSkKKyNkZWZpbmUgTUFDSDJQSFlT
X1ZJUlRfRU5EX1BBRSAgICAgICAgIHhlbl9ta191bG9uZyhfX01BQ0gyUEhZU19WSVJUX0VORF9Q
QUUpCiAKIC8qIE5vbi1QQUUgYm91bmRzIGFyZSBvYnNvbGV0ZS4gKi8KICNkZWZpbmUgX19IWVBF
UlZJU09SX1ZJUlRfU1RBUlRfTk9OUEFFIDB4RkMwMDAwMDAKICNkZWZpbmUgX19NQUNIMlBIWVNf
VklSVF9TVEFSVF9OT05QQUUgIDB4RkMwMDAwMDAKICNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9F
TkRfTk9OUEFFICAgIDB4RkM0MDAwMDAKICNkZWZpbmUgSFlQRVJWSVNPUl9WSVJUX1NUQVJUX05P
TlBBRSAgIFwKLSAgICBta191bnNpZ25lZF9sb25nKF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUX05P
TlBBRSkKKyAgICB4ZW5fbWtfdWxvbmcoX19IWVBFUlZJU09SX1ZJUlRfU1RBUlRfTk9OUEFFKQog
I2RlZmluZSBNQUNIMlBIWVNfVklSVF9TVEFSVF9OT05QQUUgICAgXAotICAgIG1rX3Vuc2lnbmVk
X2xvbmcoX19NQUNIMlBIWVNfVklSVF9TVEFSVF9OT05QQUUpCisgICAgeGVuX21rX3Vsb25nKF9f
TUFDSDJQSFlTX1ZJUlRfU1RBUlRfTk9OUEFFKQogI2RlZmluZSBNQUNIMlBIWVNfVklSVF9FTkRf
Tk9OUEFFICAgICAgXAotICAgIG1rX3Vuc2lnbmVkX2xvbmcoX19NQUNIMlBIWVNfVklSVF9FTkRf
Tk9OUEFFKQorICAgIHhlbl9ta191bG9uZyhfX01BQ0gyUEhZU19WSVJUX0VORF9OT05QQUUpCiAK
ICNkZWZpbmUgX19IWVBFUlZJU09SX1ZJUlRfU1RBUlQgX19IWVBFUlZJU09SX1ZJUlRfU1RBUlRf
UEFFCiAjZGVmaW5lIF9fTUFDSDJQSFlTX1ZJUlRfU1RBUlQgIF9fTUFDSDJQSFlTX1ZJUlRfU1RB
UlRfUEFFCiAjZGVmaW5lIF9fTUFDSDJQSFlTX1ZJUlRfRU5EICAgIF9fTUFDSDJQSFlTX1ZJUlRf
RU5EX1BBRQogCiAjaWZuZGVmIEhZUEVSVklTT1JfVklSVF9TVEFSVAotI2RlZmluZSBIWVBFUlZJ
U09SX1ZJUlRfU1RBUlQgbWtfdW5zaWduZWRfbG9uZyhfX0hZUEVSVklTT1JfVklSVF9TVEFSVCkK
KyNkZWZpbmUgSFlQRVJWSVNPUl9WSVJUX1NUQVJUIHhlbl9ta191bG9uZyhfX0hZUEVSVklTT1Jf
VklSVF9TVEFSVCkKICNlbmRpZgogCi0jZGVmaW5lIE1BQ0gyUEhZU19WSVJUX1NUQVJUICBta191
bnNpZ25lZF9sb25nKF9fTUFDSDJQSFlTX1ZJUlRfU1RBUlQpCi0jZGVmaW5lIE1BQ0gyUEhZU19W
SVJUX0VORCAgICBta191bnNpZ25lZF9sb25nKF9fTUFDSDJQSFlTX1ZJUlRfRU5EKQorI2RlZmlu
ZSBNQUNIMlBIWVNfVklSVF9TVEFSVCAgeGVuX21rX3Vsb25nKF9fTUFDSDJQSFlTX1ZJUlRfU1RB
UlQpCisjZGVmaW5lIE1BQ0gyUEhZU19WSVJUX0VORCAgICB4ZW5fbWtfdWxvbmcoX19NQUNIMlBI
WVNfVklSVF9FTkQpCiAjZGVmaW5lIE1BQ0gyUEhZU19OUl9FTlRSSUVTICAoKE1BQ0gyUEhZU19W
SVJUX0VORC1NQUNIMlBIWVNfVklSVF9TVEFSVCk+PjIpCiAjaWZuZGVmIG1hY2hpbmVfdG9fcGh5
c19tYXBwaW5nCiAjZGVmaW5lIG1hY2hpbmVfdG9fcGh5c19tYXBwaW5nICgodW5zaWduZWQgbG9u
ZyAqKU1BQ0gyUEhZU19WSVJUX1NUQVJUKQogI2VuZGlmCi0jZW5kaWYKIAogLyogMzItLzY0LWJp
dCBpbnZhcmlhYmlsaXR5IGZvciBjb250cm9sIGludGVyZmFjZXMgKGRvbWN0bC9zeXNjdGwpLiAq
LwogI2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKQpAQCAtMTA2
LDYgKzEwMSw3IEBACiAgICAgZG8geyBpZiAoIHNpemVvZihobmQpID09IDggKSAqKHVpbnQ2NF90
ICopJihobmQpID0gMDsgICBcCiAgICAgICAgICAoaG5kKS5wID0gdmFsOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgfSB3aGlsZSAoIDAgKQorI2RlZmluZSAgaW50
NjRfYWxpZ25lZF90ICBpbnQ2NF90IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkpKQogI2RlZmlu
ZSB1aW50NjRfYWxpZ25lZF90IHVpbnQ2NF90IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkpKQog
I2RlZmluZSBfX1hFTl9HVUVTVF9IQU5ETEVfNjQobmFtZSkgX19ndWVzdF9oYW5kbGVfNjRfICMj
IG5hbWUKICNkZWZpbmUgWEVOX0dVRVNUX0hBTkRMRV82NChuYW1lKSBfX1hFTl9HVUVTVF9IQU5E
TEVfNjQobmFtZSkKQEAgLTExMywyMiArMTA5LDQ0IEBACiAKICNpZm5kZWYgX19BU1NFTUJMWV9f
CiAKKyNpZiBkZWZpbmVkKFhFTl9HRU5FUkFUSU5HX0NPTVBBVF9IRUFERVJTKQorLyogbm90aGlu
ZyAqLworI2VsaWYgZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCisv
KiBBbm9ueW1vdXMgdW5pb25zIGluY2x1ZGUgYWxsIHBlcm1pc3NpYmxlIG5hbWVzIChlLmcuLCBh
bC9haC9heC9lYXgpLiAqLworI2RlZmluZSBfX0RFQ0xfUkVHX0xPOCh3aGljaCkgdW5pb24geyBc
CisgICAgdWludDMyX3QgZSAjIyB3aGljaCAjIyB4OyBcCisgICAgdWludDE2X3Qgd2hpY2ggIyMg
eDsgXAorICAgIHN0cnVjdCB7IFwKKyAgICAgICAgdWludDhfdCB3aGljaCAjIyBsOyBcCisgICAg
ICAgIHVpbnQ4X3Qgd2hpY2ggIyMgaDsgXAorICAgIH07IFwKK30KKyNkZWZpbmUgX19ERUNMX1JF
R19MTzE2KG5hbWUpIHVuaW9uIHsgXAorICAgIHVpbnQzMl90IGUgIyMgbmFtZSwgX2UgIyMgbmFt
ZTsgXAorICAgIHVpbnQxNl90IG5hbWU7IFwKK30KKyNlbHNlCisvKiBPdGhlciBzb3VyY2VzIG11
c3QgYWx3YXlzIHVzZSB0aGUgcHJvcGVyIDMyLWJpdCBuYW1lIChlLmcuLCBlYXgpLiAqLworI2Rl
ZmluZSBfX0RFQ0xfUkVHX0xPOCh3aGljaCkgdWludDMyX3QgZSAjIyB3aGljaCAjIyB4CisjZGVm
aW5lIF9fREVDTF9SRUdfTE8xNihuYW1lKSB1aW50MzJfdCBlICMjIG5hbWUKKyNlbmRpZgorCiBz
dHJ1Y3QgY3B1X3VzZXJfcmVncyB7Ci0gICAgdWludDMyX3QgZWJ4OwotICAgIHVpbnQzMl90IGVj
eDsKLSAgICB1aW50MzJfdCBlZHg7Ci0gICAgdWludDMyX3QgZXNpOwotICAgIHVpbnQzMl90IGVk
aTsKLSAgICB1aW50MzJfdCBlYnA7Ci0gICAgdWludDMyX3QgZWF4OworICAgIF9fREVDTF9SRUdf
TE84KGIpOworICAgIF9fREVDTF9SRUdfTE84KGMpOworICAgIF9fREVDTF9SRUdfTE84KGQpOwor
ICAgIF9fREVDTF9SRUdfTE8xNihzaSk7CisgICAgX19ERUNMX1JFR19MTzE2KGRpKTsKKyAgICBf
X0RFQ0xfUkVHX0xPMTYoYnApOworICAgIF9fREVDTF9SRUdfTE84KGEpOwogICAgIHVpbnQxNl90
IGVycm9yX2NvZGU7ICAgIC8qIHByaXZhdGUgKi8KICAgICB1aW50MTZfdCBlbnRyeV92ZWN0b3I7
ICAvKiBwcml2YXRlICovCi0gICAgdWludDMyX3QgZWlwOworICAgIF9fREVDTF9SRUdfTE8xNihp
cCk7CiAgICAgdWludDE2X3QgY3M7CiAgICAgdWludDhfdCAgc2F2ZWRfdXBjYWxsX21hc2s7CiAg
ICAgdWludDhfdCAgX3BhZDA7Ci0gICAgdWludDMyX3QgZWZsYWdzOyAgICAgICAgLyogZWZsYWdz
LklGID09ICFzYXZlZF91cGNhbGxfbWFzayAqLwotICAgIHVpbnQzMl90IGVzcDsKKyAgICBfX0RF
Q0xfUkVHX0xPMTYoZmxhZ3MpOyAvKiBlZmxhZ3MuSUYgPT0gIXNhdmVkX3VwY2FsbF9tYXNrICov
CisgICAgX19ERUNMX1JFR19MTzE2KHNwKTsKICAgICB1aW50MTZfdCBzcywgX3BhZDE7CiAgICAg
dWludDE2X3QgZXMsIF9wYWQyOwogICAgIHVpbnQxNl90IGRzLCBfcGFkMzsKQEAgLTEzOCw2ICsx
NTYsOSBAQCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyB7CiB0eXBlZGVmIHN0cnVjdCBjcHVfdXNlcl9y
ZWdzIGNwdV91c2VyX3JlZ3NfdDsKIERFRklORV9YRU5fR1VFU1RfSEFORExFKGNwdV91c2VyX3Jl
Z3NfdCk7CiAKKyN1bmRlZiBfX0RFQ0xfUkVHX0xPOAorI3VuZGVmIF9fREVDTF9SRUdfTE8xNgor
CiAvKgogICogUGFnZS1kaXJlY3RvcnkgYWRkcmVzc2VzIGFib3ZlIDRHQiBkbyBub3QgZml0IGlu
dG8gYXJjaGl0ZWN0dXJhbCAlY3IzLgogICogV2hlbiBhY2Nlc3NpbmcgJWNyMywgb3IgZXF1aXZh
bGVudCBmaWVsZCBpbiB2Y3B1X2d1ZXN0X2NvbnRleHQsIGd1ZXN0cwpkaWZmIC0tZ2l0IGEvaW5j
bHVkZS94ZW4vYXJjaC14ODYveGVuLXg4Nl82NC5oIGIvaW5jbHVkZS94ZW4vYXJjaC14ODYveGVu
LXg4Nl82NC5oCmluZGV4IDJjMDAxMTEuLjk3OGY4Y2IgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVu
L2FyY2gteDg2L3hlbi14ODZfNjQuaAorKysgYi9pbmNsdWRlL3hlbi9hcmNoLXg4Ni94ZW4teDg2
XzY0LmgKQEAgLTcwLDI0ICs3MCwyMiBAQAogI2RlZmluZSBGTEFUX1VTRVJfU1MzMiBGTEFUX1JJ
TkczX1NTMzIKICNkZWZpbmUgRkxBVF9VU0VSX1NTICAgRkxBVF9VU0VSX1NTNjQKIAotI2lmZGVm
IENPTkZJR19QQVJBVklSVAogI2RlZmluZSBfX0hZUEVSVklTT1JfVklSVF9TVEFSVCAweEZGRkY4
MDAwMDAwMDAwMDAKICNkZWZpbmUgX19IWVBFUlZJU09SX1ZJUlRfRU5EICAgMHhGRkZGODgwMDAw
MDAwMDAwCiAjZGVmaW5lIF9fTUFDSDJQSFlTX1ZJUlRfU1RBUlQgIDB4RkZGRjgwMDAwMDAwMDAw
MAogI2RlZmluZSBfX01BQ0gyUEhZU19WSVJUX0VORCAgICAweEZGRkY4MDQwMDAwMDAwMDAKIAog
I2lmbmRlZiBIWVBFUlZJU09SX1ZJUlRfU1RBUlQKLSNkZWZpbmUgSFlQRVJWSVNPUl9WSVJUX1NU
QVJUIG1rX3Vuc2lnbmVkX2xvbmcoX19IWVBFUlZJU09SX1ZJUlRfU1RBUlQpCi0jZGVmaW5lIEhZ
UEVSVklTT1JfVklSVF9FTkQgICBta191bnNpZ25lZF9sb25nKF9fSFlQRVJWSVNPUl9WSVJUX0VO
RCkKKyNkZWZpbmUgSFlQRVJWSVNPUl9WSVJUX1NUQVJUIHhlbl9ta191bG9uZyhfX0hZUEVSVklT
T1JfVklSVF9TVEFSVCkKKyNkZWZpbmUgSFlQRVJWSVNPUl9WSVJUX0VORCAgIHhlbl9ta191bG9u
ZyhfX0hZUEVSVklTT1JfVklSVF9FTkQpCiAjZW5kaWYKIAotI2RlZmluZSBNQUNIMlBIWVNfVklS
VF9TVEFSVCAgbWtfdW5zaWduZWRfbG9uZyhfX01BQ0gyUEhZU19WSVJUX1NUQVJUKQotI2RlZmlu
ZSBNQUNIMlBIWVNfVklSVF9FTkQgICAgbWtfdW5zaWduZWRfbG9uZyhfX01BQ0gyUEhZU19WSVJU
X0VORCkKKyNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRfU1RBUlQgIHhlbl9ta191bG9uZyhfX01BQ0gy
UEhZU19WSVJUX1NUQVJUKQorI2RlZmluZSBNQUNIMlBIWVNfVklSVF9FTkQgICAgeGVuX21rX3Vs
b25nKF9fTUFDSDJQSFlTX1ZJUlRfRU5EKQogI2RlZmluZSBNQUNIMlBIWVNfTlJfRU5UUklFUyAg
KChNQUNIMlBIWVNfVklSVF9FTkQtTUFDSDJQSFlTX1ZJUlRfU1RBUlQpPj4zKQogI2lmbmRlZiBt
YWNoaW5lX3RvX3BoeXNfbWFwcGluZwogI2RlZmluZSBtYWNoaW5lX3RvX3BoeXNfbWFwcGluZyAo
KHVuc2lnbmVkIGxvbmcgKilIWVBFUlZJU09SX1ZJUlRfU1RBUlQpCiAjZW5kaWYKLSNlbmRpZgog
CiAvKgogICogaW50IEhZUEVSVklTT1Jfc2V0X3NlZ21lbnRfYmFzZSh1bnNpZ25lZCBpbnQgd2hp
Y2gsIHVuc2lnbmVkIGxvbmcgYmFzZSkKQEAgLTEzMiw3ICsxMzAsMzUgQEAgc3RydWN0IGlyZXRf
Y29udGV4dCB7CiAgICAgLyogQm90dG9tIG9mIGlyZXQgc3RhY2sgZnJhbWUuICovCiB9OwogCi0j
aWYgZGVmaW5lZChfX0dOVUNfXykgJiYgIWRlZmluZWQoX19TVFJJQ1RfQU5TSV9fKQorI2lmIGRl
ZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKQorLyogQW5vbnltb3VzIHVu
aW9ucyBpbmNsdWRlIGFsbCBwZXJtaXNzaWJsZSBuYW1lcyAoZS5nLiwgYWwvYWgvYXgvZWF4L3Jh
eCkuICovCisjZGVmaW5lIF9fREVDTF9SRUdfTE9ISSh3aGljaCkgdW5pb24geyBcCisgICAgdWlu
dDY0X3QgciAjIyB3aGljaCAjIyB4OyBcCisgICAgdWludDMyX3QgZSAjIyB3aGljaCAjIyB4OyBc
CisgICAgdWludDE2X3Qgd2hpY2ggIyMgeDsgXAorICAgIHN0cnVjdCB7IFwKKyAgICAgICAgdWlu
dDhfdCB3aGljaCAjIyBsOyBcCisgICAgICAgIHVpbnQ4X3Qgd2hpY2ggIyMgaDsgXAorICAgIH07
IFwKK30KKyNkZWZpbmUgX19ERUNMX1JFR19MTzgobmFtZSkgdW5pb24geyBcCisgICAgdWludDY0
X3QgciAjIyBuYW1lOyBcCisgICAgdWludDMyX3QgZSAjIyBuYW1lOyBcCisgICAgdWludDE2X3Qg
bmFtZTsgXAorICAgIHVpbnQ4X3QgbmFtZSAjIyBsOyBcCit9CisjZGVmaW5lIF9fREVDTF9SRUdf
TE8xNihuYW1lKSB1bmlvbiB7IFwKKyAgICB1aW50NjRfdCByICMjIG5hbWU7IFwKKyAgICB1aW50
MzJfdCBlICMjIG5hbWU7IFwKKyAgICB1aW50MTZfdCBuYW1lOyBcCit9CisjZGVmaW5lIF9fREVD
TF9SRUdfSEkobnVtKSB1bmlvbiB7IFwKKyAgICB1aW50NjRfdCByICMjIG51bTsgXAorICAgIHVp
bnQzMl90IHIgIyMgbnVtICMjIGQ7IFwKKyAgICB1aW50MTZfdCByICMjIG51bSAjIyB3OyBcCisg
ICAgdWludDhfdCByICMjIG51bSAjIyBiOyBcCit9CisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKSAm
JiAhZGVmaW5lZChfX1NUUklDVF9BTlNJX18pCiAvKiBBbm9ueW1vdXMgdW5pb24gaW5jbHVkZXMg
Ym90aCAzMi0gYW5kIDY0LWJpdCBuYW1lcyAoZS5nLiwgZWF4L3JheCkuICovCiAjZGVmaW5lIF9f
REVDTF9SRUcobmFtZSkgdW5pb24geyBcCiAgICAgdWludDY0X3QgciAjIyBuYW1lLCBlICMjIG5h
bWU7IFwKQEAgLTE0MywzMCArMTY5LDM3IEBAIHN0cnVjdCBpcmV0X2NvbnRleHQgewogI2RlZmlu
ZSBfX0RFQ0xfUkVHKG5hbWUpIHVpbnQ2NF90IHIgIyMgbmFtZQogI2VuZGlmCiAKKyNpZm5kZWYg
X19ERUNMX1JFR19MT0hJCisjZGVmaW5lIF9fREVDTF9SRUdfTE9ISShuYW1lKSBfX0RFQ0xfUkVH
KG5hbWUgIyMgeCkKKyNkZWZpbmUgX19ERUNMX1JFR19MTzggICAgICAgIF9fREVDTF9SRUcKKyNk
ZWZpbmUgX19ERUNMX1JFR19MTzE2ICAgICAgIF9fREVDTF9SRUcKKyNkZWZpbmUgX19ERUNMX1JF
R19ISShudW0pICAgIHVpbnQ2NF90IHIgIyMgbnVtCisjZW5kaWYKKwogc3RydWN0IGNwdV91c2Vy
X3JlZ3MgewotICAgIHVpbnQ2NF90IHIxNTsKLSAgICB1aW50NjRfdCByMTQ7Ci0gICAgdWludDY0
X3QgcjEzOwotICAgIHVpbnQ2NF90IHIxMjsKLSAgICBfX0RFQ0xfUkVHKGJwKTsKLSAgICBfX0RF
Q0xfUkVHKGJ4KTsKLSAgICB1aW50NjRfdCByMTE7Ci0gICAgdWludDY0X3QgcjEwOwotICAgIHVp
bnQ2NF90IHI5OwotICAgIHVpbnQ2NF90IHI4OwotICAgIF9fREVDTF9SRUcoYXgpOwotICAgIF9f
REVDTF9SRUcoY3gpOwotICAgIF9fREVDTF9SRUcoZHgpOwotICAgIF9fREVDTF9SRUcoc2kpOwot
ICAgIF9fREVDTF9SRUcoZGkpOworICAgIF9fREVDTF9SRUdfSEkoMTUpOworICAgIF9fREVDTF9S
RUdfSEkoMTQpOworICAgIF9fREVDTF9SRUdfSEkoMTMpOworICAgIF9fREVDTF9SRUdfSEkoMTIp
OworICAgIF9fREVDTF9SRUdfTE84KGJwKTsKKyAgICBfX0RFQ0xfUkVHX0xPSEkoYik7CisgICAg
X19ERUNMX1JFR19ISSgxMSk7CisgICAgX19ERUNMX1JFR19ISSgxMCk7CisgICAgX19ERUNMX1JF
R19ISSg5KTsKKyAgICBfX0RFQ0xfUkVHX0hJKDgpOworICAgIF9fREVDTF9SRUdfTE9ISShhKTsK
KyAgICBfX0RFQ0xfUkVHX0xPSEkoYyk7CisgICAgX19ERUNMX1JFR19MT0hJKGQpOworICAgIF9f
REVDTF9SRUdfTE84KHNpKTsKKyAgICBfX0RFQ0xfUkVHX0xPOChkaSk7CiAgICAgdWludDMyX3Qg
ZXJyb3JfY29kZTsgICAgLyogcHJpdmF0ZSAqLwogICAgIHVpbnQzMl90IGVudHJ5X3ZlY3Rvcjsg
IC8qIHByaXZhdGUgKi8KLSAgICBfX0RFQ0xfUkVHKGlwKTsKKyAgICBfX0RFQ0xfUkVHX0xPMTYo
aXApOwogICAgIHVpbnQxNl90IGNzLCBfcGFkMFsxXTsKICAgICB1aW50OF90ICBzYXZlZF91cGNh
bGxfbWFzazsKICAgICB1aW50OF90ICBfcGFkMVszXTsKLSAgICBfX0RFQ0xfUkVHKGZsYWdzKTsg
ICAgICAvKiByZmxhZ3MuSUYgPT0gIXNhdmVkX3VwY2FsbF9tYXNrICovCi0gICAgX19ERUNMX1JF
RyhzcCk7CisgICAgX19ERUNMX1JFR19MTzE2KGZsYWdzKTsgLyogcmZsYWdzLklGID09ICFzYXZl
ZF91cGNhbGxfbWFzayAqLworICAgIF9fREVDTF9SRUdfTE84KHNwKTsKICAgICB1aW50MTZfdCBz
cywgX3BhZDJbM107CiAgICAgdWludDE2X3QgZXMsIF9wYWQzWzNdOwogICAgIHVpbnQxNl90IGRz
LCBfcGFkNFszXTsKQEAgLTE3Nyw2ICsyMTAsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgY3B1X3VzZXJf
cmVncyBjcHVfdXNlcl9yZWdzX3Q7CiBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShjcHVfdXNlcl9y
ZWdzX3QpOwogCiAjdW5kZWYgX19ERUNMX1JFRworI3VuZGVmIF9fREVDTF9SRUdfTE9ISQorI3Vu
ZGVmIF9fREVDTF9SRUdfTE84CisjdW5kZWYgX19ERUNMX1JFR19MTzE2CisjdW5kZWYgX19ERUNM
X1JFR19ISQogCiAjZGVmaW5lIHhlbl9wZm5fdG9fY3IzKHBmbikgKCh1bnNpZ25lZCBsb25nKShw
Zm4pIDw8IDEyKQogI2RlZmluZSB4ZW5fY3IzX3RvX3BmbihjcjMpICgodW5zaWduZWQgbG9uZyko
Y3IzKSA+PiAxMikKZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2FyY2gteDg2L3hlbi5oIGIvaW5j
bHVkZS94ZW4vYXJjaC14ODYveGVuLmgKaW5kZXggYzVlODgwYi4uZmY5MTgzMSAxMDA2NDQKLS0t
IGEvaW5jbHVkZS94ZW4vYXJjaC14ODYveGVuLmgKKysrIGIvaW5jbHVkZS94ZW4vYXJjaC14ODYv
eGVuLmgKQEAgLTU0LDEzICs1NCwyMCBAQAogI2RlZmluZSBYRU5fR1VFU1RfSEFORExFKG5hbWUp
ICAgICAgICAgIF9fWEVOX0dVRVNUX0hBTkRMRShuYW1lKQogI2RlZmluZSBYRU5fR1VFU1RfSEFO
RExFX1BBUkFNKG5hbWUpICAgIFhFTl9HVUVTVF9IQU5ETEUobmFtZSkKICNkZWZpbmUgc2V0X3hl
bl9ndWVzdF9oYW5kbGVfcmF3KGhuZCwgdmFsKSAgZG8geyAoaG5kKS5wID0gdmFsOyB9IHdoaWxl
ICgwKQotI2lmZGVmIF9fWEVOX1RPT0xTX18KLSNkZWZpbmUgZ2V0X3hlbl9ndWVzdF9oYW5kbGUo
dmFsLCBobmQpICBkbyB7IHZhbCA9IChobmQpLnA7IH0gd2hpbGUgKDApCi0jZW5kaWYKICNkZWZp
bmUgc2V0X3hlbl9ndWVzdF9oYW5kbGUoaG5kLCB2YWwpIHNldF94ZW5fZ3Vlc3RfaGFuZGxlX3Jh
dyhobmQsIHZhbCkKIAogI2lmIGRlZmluZWQoX19pMzg2X18pCisjIGlmZGVmIF9fWEVOX18KK19f
RGVGaU5lX18gX19ERUNMX1JFR19MTzgod2hpY2gpIHVpbnQzMl90IGUgIyMgd2hpY2ggIyMgeAor
X19EZUZpTmVfXyBfX0RFQ0xfUkVHX0xPMTYobmFtZSkgdW5pb24geyB1aW50MzJfdCBlICMjIG5h
bWU7IH0KKyMgZW5kaWYKICNpbmNsdWRlICJ4ZW4teDg2XzMyLmgiCisjIGlmZGVmIF9fWEVOX18K
K19fVW5EZUZfXyBfX0RFQ0xfUkVHX0xPOAorX19VbkRlRl9fIF9fREVDTF9SRUdfTE8xNgorX19E
ZUZpTmVfXyBfX0RFQ0xfUkVHX0xPOCh3aGljaCkgZSAjIyB3aGljaCAjIyB4CitfX0RlRmlOZV9f
IF9fREVDTF9SRUdfTE8xNihuYW1lKSBlICMjIG5hbWUKKyMgZW5kaWYKICNlbGlmIGRlZmluZWQo
X194ODZfNjRfXykKICNpbmNsdWRlICJ4ZW4teDg2XzY0LmgiCiAjZW5kaWYKQEAgLTE1MiwxNyAr
MTU5LDE1IEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKHRyYXBfaW5mb190KTsKIHR5cGVkZWYg
dWludDY0X3QgdHNjX3RpbWVzdGFtcF90OyAvKiBSRFRTQyB0aW1lc3RhbXAgKi8KIAogLyoKLSAq
IFRoZSBmb2xsb3dpbmcgaXMgYWxsIENQVSBjb250ZXh0LiBOb3RlIHRoYXQgdGhlIGZwdV9jdHh0
IGJsb2NrIGlzIGZpbGxlZCAKKyAqIFRoZSBmb2xsb3dpbmcgaXMgYWxsIENQVSBjb250ZXh0LiBO
b3RlIHRoYXQgdGhlIGZwdV9jdHh0IGJsb2NrIGlzIGZpbGxlZAogICogaW4gYnkgRlhTQVZFIGlm
IHRoZSBDUFUgaGFzIGZlYXR1cmUgRlhTUjsgb3RoZXJ3aXNlIEZTQVZFIGlzIHVzZWQuCiAgKgot
ICogQWxzbyBub3RlIHRoYXQgd2hlbiBjYWxsaW5nIERPTUNUTF9zZXR2Y3B1Y29udGV4dCBhbmQg
VkNQVV9pbml0aWFsaXNlCi0gKiBmb3IgSFZNIGFuZCBQVkggZ3Vlc3RzLCBub3QgYWxsIGluZm9y
bWF0aW9uIGluIHRoaXMgc3RydWN0dXJlIGlzIHVwZGF0ZWQ6Ci0gKgotICogLSBGb3IgSFZNIGd1
ZXN0cywgdGhlIHN0cnVjdHVyZXMgcmVhZCBpbmNsdWRlOiBmcHVfY3R4dCAoaWYKLSAqIFZHQ1Rf
STM4N19WQUxJRCBpcyBzZXQpLCBmbGFncywgdXNlcl9yZWdzLCBkZWJ1Z3JlZ1sqXQorICogQWxz
byBub3RlIHRoYXQgd2hlbiBjYWxsaW5nIERPTUNUTF9zZXR2Y3B1Y29udGV4dCBmb3IgSFZNIGd1
ZXN0cywgbm90IGFsbAorICogaW5mb3JtYXRpb24gaW4gdGhpcyBzdHJ1Y3R1cmUgaXMgdXBkYXRl
ZCwgdGhlIGZpZWxkcyByZWFkIGluY2x1ZGU6IGZwdV9jdHh0CisgKiAoaWYgVkdDVF9JMzg3X1ZB
TElEIGlzIHNldCksIGZsYWdzLCB1c2VyX3JlZ3MgYW5kIGRlYnVncmVnWypdLgogICoKLSAqIC0g
UFZIIGd1ZXN0cyBhcmUgdGhlIHNhbWUgYXMgSFZNIGd1ZXN0cywgYnV0IGFkZGl0aW9uYWxseSB1
c2UgY3RybHJlZ1szXSB0bwotICogc2V0IGNyMy4gQWxsIG90aGVyIGZpZWxkcyBub3QgdXNlZCBz
aG91bGQgYmUgc2V0IHRvIDAuCisgKiBOb3RlOiBWQ1BVT1BfaW5pdGlhbGlzZSBmb3IgSFZNIGd1
ZXN0cyBpcyBub24tc3ltZXRyaWMgd2l0aAorICogRE9NQ1RMX3NldHZjcHVjb250ZXh0LCBhbmQg
dXNlcyBzdHJ1Y3QgdmNwdV9odm1fY29udGV4dCBmcm9tIGh2bS9odm1fdmNwdS5oCiAgKi8KIHN0
cnVjdCB2Y3B1X2d1ZXN0X2NvbnRleHQgewogICAgIC8qIEZQVSByZWdpc3RlcnMgY29tZSBmaXJz
dCBzbyB0aGV5IGNhbiBiZSBhbGlnbmVkIGZvciBGWFNBVkUvRlhSU1RPUi4gKi8KQEAgLTI1NSw5
ICsyNjAsNTYgQEAgc3RydWN0IGFyY2hfc2hhcmVkX2luZm8gewogICAgIHVuc2lnbmVkIGxvbmcg
cDJtX2NyMzsgICAgICAgICAvKiBjcjMgdmFsdWUgb2YgdGhlIHAybSBhZGRyZXNzIHNwYWNlICov
CiAgICAgdW5zaWduZWQgbG9uZyBwMm1fdmFkZHI7ICAgICAgIC8qIHZpcnR1YWwgYWRkcmVzcyBv
ZiB0aGUgcDJtIGxpc3QgKi8KICAgICB1bnNpZ25lZCBsb25nIHAybV9nZW5lcmF0aW9uOyAgLyog
Z2VuZXJhdGlvbiBjb3VudCBvZiBwMm0gbWFwcGluZyAqLworI2lmZGVmIF9faTM4Nl9fCisgICAg
LyogVGhlcmUncyBubyByb29tIGZvciB0aGlzIGZpZWxkIGluIHRoZSBnZW5lcmljIHN0cnVjdHVy
ZS4gKi8KKyAgICB1aW50MzJfdCB3Y19zZWNfaGk7CisjZW5kaWYKIH07CiB0eXBlZGVmIHN0cnVj
dCBhcmNoX3NoYXJlZF9pbmZvIGFyY2hfc2hhcmVkX2luZm9fdDsKIAorI2lmIGRlZmluZWQoX19Y
RU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKQorLyoKKyAqIHN0cnVjdCB4ZW5fYXJjaF9k
b21haW5jb25maWcncyBBQkkgaXMgY292ZXJlZCBieQorICogWEVOX0RPTUNUTF9JTlRFUkZBQ0Vf
VkVSU0lPTi4KKyAqLworc3RydWN0IHhlbl9hcmNoX2RvbWFpbmNvbmZpZyB7CisjZGVmaW5lIF9Y
RU5fWDg2X0VNVV9MQVBJQyAgICAgICAgICAwCisjZGVmaW5lIFhFTl9YODZfRU1VX0xBUElDICAg
ICAgICAgICAoMVU8PF9YRU5fWDg2X0VNVV9MQVBJQykKKyNkZWZpbmUgX1hFTl9YODZfRU1VX0hQ
RVQgICAgICAgICAgIDEKKyNkZWZpbmUgWEVOX1g4Nl9FTVVfSFBFVCAgICAgICAgICAgICgxVTw8
X1hFTl9YODZfRU1VX0hQRVQpCisjZGVmaW5lIF9YRU5fWDg2X0VNVV9QTSAgICAgICAgICAgICAy
CisjZGVmaW5lIFhFTl9YODZfRU1VX1BNICAgICAgICAgICAgICAoMVU8PF9YRU5fWDg2X0VNVV9Q
TSkKKyNkZWZpbmUgX1hFTl9YODZfRU1VX1JUQyAgICAgICAgICAgIDMKKyNkZWZpbmUgWEVOX1g4
Nl9FTVVfUlRDICAgICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX1JUQykKKyNkZWZpbmUgX1hF
Tl9YODZfRU1VX0lPQVBJQyAgICAgICAgIDQKKyNkZWZpbmUgWEVOX1g4Nl9FTVVfSU9BUElDICAg
ICAgICAgICgxVTw8X1hFTl9YODZfRU1VX0lPQVBJQykKKyNkZWZpbmUgX1hFTl9YODZfRU1VX1BJ
QyAgICAgICAgICAgIDUKKyNkZWZpbmUgWEVOX1g4Nl9FTVVfUElDICAgICAgICAgICAgICgxVTw8
X1hFTl9YODZfRU1VX1BJQykKKyNkZWZpbmUgX1hFTl9YODZfRU1VX1ZHQSAgICAgICAgICAgIDYK
KyNkZWZpbmUgWEVOX1g4Nl9FTVVfVkdBICAgICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX1ZH
QSkKKyNkZWZpbmUgX1hFTl9YODZfRU1VX0lPTU1VICAgICAgICAgIDcKKyNkZWZpbmUgWEVOX1g4
Nl9FTVVfSU9NTVUgICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX0lPTU1VKQorI2RlZmluZSBf
WEVOX1g4Nl9FTVVfUElUICAgICAgICAgICAgOAorI2RlZmluZSBYRU5fWDg2X0VNVV9QSVQgICAg
ICAgICAgICAgKDFVPDxfWEVOX1g4Nl9FTVVfUElUKQorI2RlZmluZSBfWEVOX1g4Nl9FTVVfVVNF
X1BJUlEgICAgICAgOQorI2RlZmluZSBYRU5fWDg2X0VNVV9VU0VfUElSUSAgICAgICAgKDFVPDxf
WEVOX1g4Nl9FTVVfVVNFX1BJUlEpCisKKyNkZWZpbmUgWEVOX1g4Nl9FTVVfQUxMICAgICAgICAg
ICAgIChYRU5fWDg2X0VNVV9MQVBJQyB8IFhFTl9YODZfRU1VX0hQRVQgfCAgXAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9YODZfRU1VX1BNIHwgWEVOX1g4Nl9FTVVf
UlRDIHwgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX1g4
Nl9FTVVfSU9BUElDIHwgWEVOX1g4Nl9FTVVfUElDIHwgIFwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBYRU5fWDg2X0VNVV9WR0EgfCBYRU5fWDg2X0VNVV9JT01NVSB8ICAg
XAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9YODZfRU1VX1BJVCB8
IFhFTl9YODZfRU1VX1VTRV9QSVJRKQorICAgIHVpbnQzMl90IGVtdWxhdGlvbl9mbGFnczsKK307
CisKKy8qIExvY2F0aW9uIG9mIG9ubGluZSBWQ1BVIGJpdG1hcC4gKi8KKyNkZWZpbmUgWEVOX0FD
UElfQ1BVX01BUCAgICAgICAgICAgICAweGFmMDAKKyNkZWZpbmUgWEVOX0FDUElfQ1BVX01BUF9M
RU4gICAgICAgICAoKEhWTV9NQVhfVkNQVVMgKyA3KSAvIDgpCisKKy8qIEdQRTAgYml0IHNldCBk
dXJpbmcgQ1BVIGhvdHBsdWcgKi8KKyNkZWZpbmUgWEVOX0FDUElfR1BFMF9DUFVIUF9CSVQgICAg
ICAyCisjZW5kaWYKKwogI2VuZGlmIC8qICFfX0FTU0VNQkxZX18gKi8KIAogLyoKZGlmZiAtLWdp
dCBhL2luY2x1ZGUveGVuL2RvbWN0bC5oIGIvaW5jbHVkZS94ZW4vZG9tY3RsLmgKaW5kZXggNTdl
MmVkNy4uODg1MzQ0NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4vZG9tY3RsLmgKKysrIGIvaW5j
bHVkZS94ZW4vZG9tY3RsLmgKQEAgLTMzLDExICszMywxMiBAQAogI2VuZGlmCiAKICNpbmNsdWRl
ICJ4ZW4uaCIKKyNpbmNsdWRlICJldmVudF9jaGFubmVsLmgiCiAjaW5jbHVkZSAiZ3JhbnRfdGFi
bGUuaCIKICNpbmNsdWRlICJodm0vc2F2ZS5oIgogI2luY2x1ZGUgIm1lbW9yeS5oIgogCi0jZGVm
aW5lIFhFTl9ET01DVExfSU5URVJGQUNFX1ZFUlNJT04gMHgwMDAwMDAwYQorI2RlZmluZSBYRU5f
RE9NQ1RMX0lOVEVSRkFDRV9WRVJTSU9OIDB4MDAwMDAwMGUKIAogLyoKICAqIE5CLiB4ZW5fZG9t
Y3RsLmRvbWFpbiBpcyBhbiBJTi9PVVQgcGFyYW1ldGVyIGZvciB0aGlzIG9wZXJhdGlvbi4KQEAg
LTYwLDI2ICs2MSwxMiBAQCBzdHJ1Y3QgeGVuX2RvbWN0bF9jcmVhdGVkb21haW4gewogIC8qIERp
c2FibGUgb3V0LW9mLXN5bmMgc2hhZG93IHBhZ2UgdGFibGVzPyAqLwogI2RlZmluZSBfWEVOX0RP
TUNUTF9DREZfb29zX29mZiAgICAgICAzCiAjZGVmaW5lIFhFTl9ET01DVExfQ0RGX29vc19vZmYg
ICAgICAgICgxVTw8X1hFTl9ET01DVExfQ0RGX29vc19vZmYpCi0gLyogSXMgdGhpcyBhIFBWSCBn
dWVzdCAoYXMgb3Bwb3NlZCB0byBhbiBIVk0gb3IgUFYgZ3Vlc3QpPyAqLwotI2RlZmluZSBfWEVO
X0RPTUNUTF9DREZfcHZoX2d1ZXN0ICAgICA0Ci0jZGVmaW5lIFhFTl9ET01DVExfQ0RGX3B2aF9n
dWVzdCAgICAgICgxVTw8X1hFTl9ET01DVExfQ0RGX3B2aF9ndWVzdCkKKyAvKiBJcyB0aGlzIGEg
eGVuc3RvcmUgZG9tYWluPyAqLworI2RlZmluZSBfWEVOX0RPTUNUTF9DREZfeHNfZG9tYWluICAg
ICA0CisjZGVmaW5lIFhFTl9ET01DVExfQ0RGX3hzX2RvbWFpbiAgICAgICgxVTw8X1hFTl9ET01D
VExfQ0RGX3hzX2RvbWFpbikKICAgICB1aW50MzJfdCBmbGFnczsKKyAgICBzdHJ1Y3QgeGVuX2Fy
Y2hfZG9tYWluY29uZmlnIGNvbmZpZzsKIH07Ci10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX2Ny
ZWF0ZWRvbWFpbiB4ZW5fZG9tY3RsX2NyZWF0ZWRvbWFpbl90OwotREVGSU5FX1hFTl9HVUVTVF9I
QU5ETEUoeGVuX2RvbWN0bF9jcmVhdGVkb21haW5fdCk7Ci0KLSNpZiBkZWZpbmVkKF9fYXJtX18p
IHx8IGRlZmluZWQoX19hYXJjaDY0X18pCi0jZGVmaW5lIFhFTl9ET01DVExfQ09ORklHX0dJQ19E
RUZBVUxUICAgMAotI2RlZmluZSBYRU5fRE9NQ1RMX0NPTkZJR19HSUNfVjIgICAgICAgIDEKLSNk
ZWZpbmUgWEVOX0RPTUNUTF9DT05GSUdfR0lDX1YzICAgICAgICAyCi0vKiBYRU5fRE9NQ1RMX2Nv
bmZpZ3VyZV9kb21haW4gKi8KLXN0cnVjdCB4ZW5fZG9tY3RsX2FybV9jb25maWd1cmVkb21haW4g
ewotICAgIC8qIElOL09VVCBwYXJhbWV0ZXJzICovCi0gICAgdWludDhfdCBnaWNfdmVyc2lvbjsK
LX07Ci10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX2FybV9jb25maWd1cmVkb21haW4geGVuX2Rv
bWN0bF9hcm1fY29uZmlndXJlZG9tYWluX3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5f
ZG9tY3RsX2FybV9jb25maWd1cmVkb21haW5fdCk7Ci0jZW5kaWYKIAogLyogWEVOX0RPTUNUTF9n
ZXRkb21haW5pbmZvICovCiBzdHJ1Y3QgeGVuX2RvbWN0bF9nZXRkb21haW5pbmZvIHsKQEAgLTEw
Niw5ICs5MywxMiBAQCBzdHJ1Y3QgeGVuX2RvbWN0bF9nZXRkb21haW5pbmZvIHsKICAvKiBCZWlu
ZyBkZWJ1Z2dlZC4gICovCiAjZGVmaW5lIF9YRU5fRE9NSU5GX2RlYnVnZ2VkICA2CiAjZGVmaW5l
IFhFTl9ET01JTkZfZGVidWdnZWQgICAoMVU8PF9YRU5fRE9NSU5GX2RlYnVnZ2VkKQotLyogZG9t
YWluIGlzIFBWSCAqLwotI2RlZmluZSBfWEVOX0RPTUlORl9wdmhfZ3Vlc3QgNwotI2RlZmluZSBY
RU5fRE9NSU5GX3B2aF9ndWVzdCAgKDFVPDxfWEVOX0RPTUlORl9wdmhfZ3Vlc3QpCisvKiBkb21h
aW4gaXMgYSB4ZW5zdG9yZSBkb21haW4gKi8KKyNkZWZpbmUgX1hFTl9ET01JTkZfeHNfZG9tYWlu
IDcKKyNkZWZpbmUgWEVOX0RPTUlORl94c19kb21haW4gICgxVTw8X1hFTl9ET01JTkZfeHNfZG9t
YWluKQorLyogZG9tYWluIGhhcyBoYXJkd2FyZSBhc3Npc3RlZCBwYWdpbmcgKi8KKyNkZWZpbmUg
X1hFTl9ET01JTkZfaGFwICAgICAgIDgKKyNkZWZpbmUgWEVOX0RPTUlORl9oYXAgICAgICAgICgx
VTw8X1hFTl9ET01JTkZfaGFwKQogIC8qIFhFTl9ET01JTkZfc2h1dGRvd24gZ3Vlc3Qtc3VwcGxp
ZWQgY29kZS4gICovCiAjZGVmaW5lIFhFTl9ET01JTkZfc2h1dGRvd25tYXNrIDI1NQogI2RlZmlu
ZSBYRU5fRE9NSU5GX3NodXRkb3duc2hpZnQgMTYKQEAgLTE0Miw4ICsxMzIsNiBAQCBzdHJ1Y3Qg
eGVuX2RvbWN0bF9nZXRtZW1saXN0IHsKICAgICAvKiBPVVQgdmFyaWFibGVzLiAqLwogICAgIHVp
bnQ2NF9hbGlnbmVkX3QgbnVtX3BmbnM7CiB9OwotdHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF9n
ZXRtZW1saXN0IHhlbl9kb21jdGxfZ2V0bWVtbGlzdF90OwotREVGSU5FX1hFTl9HVUVTVF9IQU5E
TEUoeGVuX2RvbWN0bF9nZXRtZW1saXN0X3QpOwogCiAKIC8qIFhFTl9ET01DVExfZ2V0cGFnZWZy
YW1laW5mbyAqLwpAQCAtMTYxLDI3ICsxNDksNiBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4
ZW5fZG9tY3RsX2dldG1lbWxpc3RfdCk7CiAjZGVmaW5lIFhFTl9ET01DVExfUEZJTkZPX0JST0tF
TiAgKDB4ZFU8PDI4KSAvKiBicm9rZW4gcGFnZSAqLwogI2RlZmluZSBYRU5fRE9NQ1RMX1BGSU5G
T19MVEFCX01BU0sgKDB4ZlU8PDI4KQogCi1zdHJ1Y3QgeGVuX2RvbWN0bF9nZXRwYWdlZnJhbWVp
bmZvIHsKLSAgICAvKiBJTiB2YXJpYWJsZXMuICovCi0gICAgdWludDY0X2FsaWduZWRfdCBnbWZu
OyAvKiBHTUZOIHRvIHF1ZXJ5ICovCi0gICAgLyogT1VUIHZhcmlhYmxlcy4gKi8KLSAgICAvKiBJ
cyB0aGUgcGFnZSBQSU5ORUQgdG8gYSB0eXBlPyAqLwotICAgIHVpbnQzMl90IHR5cGU7ICAgICAg
ICAgLyogc2VlIGFib3ZlIHR5cGUgZGVmcyAqLwotfTsKLXR5cGVkZWYgc3RydWN0IHhlbl9kb21j
dGxfZ2V0cGFnZWZyYW1laW5mbyB4ZW5fZG9tY3RsX2dldHBhZ2VmcmFtZWluZm9fdDsKLURFRklO
RV9YRU5fR1VFU1RfSEFORExFKHhlbl9kb21jdGxfZ2V0cGFnZWZyYW1laW5mb190KTsKLQotCi0v
KiBYRU5fRE9NQ1RMX2dldHBhZ2VmcmFtZWluZm8yICovCi1zdHJ1Y3QgeGVuX2RvbWN0bF9nZXRw
YWdlZnJhbWVpbmZvMiB7Ci0gICAgLyogSU4gdmFyaWFibGVzLiAqLwotICAgIHVpbnQ2NF9hbGln
bmVkX3QgbnVtOwotICAgIC8qIElOL09VVCB2YXJpYWJsZXMuICovCi0gICAgWEVOX0dVRVNUX0hB
TkRMRV82NCh1aW50MzIpIGFycmF5OwotfTsKLXR5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxfZ2V0
cGFnZWZyYW1laW5mbzIgeGVuX2RvbWN0bF9nZXRwYWdlZnJhbWVpbmZvMl90OwotREVGSU5FX1hF
Tl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9nZXRwYWdlZnJhbWVpbmZvMl90KTsKLQogLyogWEVO
X0RPTUNUTF9nZXRwYWdlZnJhbWVpbmZvMyAqLwogc3RydWN0IHhlbl9kb21jdGxfZ2V0cGFnZWZy
YW1laW5mbzMgewogICAgIC8qIElOIHZhcmlhYmxlcy4gKi8KQEAgLTIxNyw4ICsxODQsMTEgQEAg
c3RydWN0IHhlbl9kb21jdGxfZ2V0cGFnZWZyYW1laW5mbzMgewogI2RlZmluZSBYRU5fRE9NQ1RM
X1NIQURPV19PUF9FTkFCTEVfVEVTVCAgICAgICAxCiAgLyogRXF1aXYuIHRvIEVOQUJMRSB3aXRo
IG1vZGUgZmxhZyBFTkFCTEVfTE9HX0RJUlRZLiAqLwogI2RlZmluZSBYRU5fRE9NQ1RMX1NIQURP
V19PUF9FTkFCTEVfTE9HRElSVFkgICAyCi0gLyogRXF1aXYuIHRvIEVOQUJMRSB3aXRoIG1vZGUg
ZmxhZ3MgRU5BQkxFX1JFRkNPVU5UIGFuZCBFTkFCTEVfVFJBTlNMQVRFLiAqLworIC8qCisgICog
Tm8gbG9uZ2VyIHN1cHBvcnRlZCwgd2FzIGVxdWl2LiB0byBFTkFCTEUgd2l0aCBtb2RlIGZsYWdz
CisgICogRU5BQkxFX1JFRkNPVU5UIGFuZCBFTkFCTEVfVFJBTlNMQVRFOgogI2RlZmluZSBYRU5f
RE9NQ1RMX1NIQURPV19PUF9FTkFCTEVfVFJBTlNMQVRFICAzCisgICovCiAKIC8qIE1vZGUgZmxh
Z3MgZm9yIFhFTl9ET01DVExfU0hBRE9XX09QX0VOQUJMRS4gKi8KICAvKgpAQCAtMjQxLDE5ICsy
MTEsMjUgQEAgc3RydWN0IHhlbl9kb21jdGxfZ2V0cGFnZWZyYW1laW5mbzMgewogICAqLwogI2Rl
ZmluZSBYRU5fRE9NQ1RMX1NIQURPV19FTkFCTEVfRVhURVJOQUwgICgxIDw8IDQpCiAKKy8qIE1v
ZGUgZmxhZ3MgZm9yIFhFTl9ET01DVExfU0hBRE9XX09QX3tDTEVBTixQRUVLfS4gKi8KKyAvKgor
ICAqIFRoaXMgaXMgdGhlIGZpbmFsIGl0ZXJhdGlvbjogUmVxdWVzdGluZyB0byBpbmNsdWRlIHBh
Z2VzIG1hcHBlZAorICAqIHdyaXRhYmx5IGJ5IHRoZSBoeXBlcnZpc29yIGluIHRoZSBkaXJ0eSBi
aXRtYXAuCisgICovCisjZGVmaW5lIFhFTl9ET01DVExfU0hBRE9XX0xPR0RJUlRZX0ZJTkFMICAg
KDEgPDwgMCkKKwogc3RydWN0IHhlbl9kb21jdGxfc2hhZG93X29wX3N0YXRzIHsKICAgICB1aW50
MzJfdCBmYXVsdF9jb3VudDsKICAgICB1aW50MzJfdCBkaXJ0eV9jb3VudDsKIH07Ci10eXBlZGVm
IHN0cnVjdCB4ZW5fZG9tY3RsX3NoYWRvd19vcF9zdGF0cyB4ZW5fZG9tY3RsX3NoYWRvd19vcF9z
dGF0c190OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9zaGFkb3dfb3Bfc3Rh
dHNfdCk7CiAKIHN0cnVjdCB4ZW5fZG9tY3RsX3NoYWRvd19vcCB7CiAgICAgLyogSU4gdmFyaWFi
bGVzLiAqLwogICAgIHVpbnQzMl90ICAgICAgIG9wOyAgICAgICAvKiBYRU5fRE9NQ1RMX1NIQURP
V19PUF8qICovCiAKLSAgICAvKiBPUF9FTkFCTEUgKi8KLSAgICB1aW50MzJfdCAgICAgICBtb2Rl
OyAgICAgLyogWEVOX0RPTUNUTF9TSEFET1dfRU5BQkxFXyogKi8KKyAgICAvKiBPUF9FTkFCTEU6
IFhFTl9ET01DVExfU0hBRE9XX0VOQUJMRV8qICovCisgICAgLyogT1BfUEVBSyAvIE9QX0NMRUFO
OiBYRU5fRE9NQ1RMX1NIQURPV19MT0dESVJUWV8qICovCisgICAgdWludDMyX3QgICAgICAgbW9k
ZTsKIAogICAgIC8qIE9QX0dFVF9BTExPQ0FUSU9OIC8gT1BfU0VUX0FMTE9DQVRJT04gKi8KICAg
ICB1aW50MzJfdCAgICAgICBtYjsgICAgICAgLyogU2hhZG93IG1lbW9yeSBhbGxvY2F0aW9uIGlu
IE1CICovCkBAIC0yNjMsOCArMjM5LDYgQEAgc3RydWN0IHhlbl9kb21jdGxfc2hhZG93X29wIHsK
ICAgICB1aW50NjRfYWxpZ25lZF90IHBhZ2VzOyAvKiBTaXplIG9mIGJ1ZmZlci4gVXBkYXRlZCB3
aXRoIGFjdHVhbCBzaXplLiAqLwogICAgIHN0cnVjdCB4ZW5fZG9tY3RsX3NoYWRvd19vcF9zdGF0
cyBzdGF0czsKIH07Ci10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX3NoYWRvd19vcCB4ZW5fZG9t
Y3RsX3NoYWRvd19vcF90OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9zaGFk
b3dfb3BfdCk7CiAKIAogLyogWEVOX0RPTUNUTF9tYXhfbWVtICovCkBAIC0yNzIsOCArMjQ2LDYg
QEAgc3RydWN0IHhlbl9kb21jdGxfbWF4X21lbSB7CiAgICAgLyogSU4gdmFyaWFibGVzLiAqLwog
ICAgIHVpbnQ2NF9hbGlnbmVkX3QgbWF4X21lbWtiOwogfTsKLXR5cGVkZWYgc3RydWN0IHhlbl9k
b21jdGxfbWF4X21lbSB4ZW5fZG9tY3RsX21heF9tZW1fdDsKLURFRklORV9YRU5fR1VFU1RfSEFO
RExFKHhlbl9kb21jdGxfbWF4X21lbV90KTsKIAogCiAvKiBYRU5fRE9NQ1RMX3NldHZjcHVjb250
ZXh0ICovCkBAIC0yODIsOCArMjU0LDYgQEAgc3RydWN0IHhlbl9kb21jdGxfdmNwdWNvbnRleHQg
ewogICAgIHVpbnQzMl90ICAgICAgICAgICAgICB2Y3B1OyAgICAgICAgICAgICAgICAgIC8qIElO
ICovCiAgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh2Y3B1X2d1ZXN0X2NvbnRleHRfdCkgY3R4dDsg
LyogSU4vT1VUICovCiB9OwotdHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF92Y3B1Y29udGV4dCB4
ZW5fZG9tY3RsX3ZjcHVjb250ZXh0X3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9t
Y3RsX3ZjcHVjb250ZXh0X3QpOwogCiAKIC8qIFhFTl9ET01DVExfZ2V0dmNwdWluZm8gKi8KQEAg
LTI5Nyw4ICsyNjcsNiBAQCBzdHJ1Y3QgeGVuX2RvbWN0bF9nZXR2Y3B1aW5mbyB7CiAgICAgdWlu
dDY0X2FsaWduZWRfdCBjcHVfdGltZTsgICAgICAgIC8qIHRvdGFsIGNwdSB0aW1lIGNvbnN1bWVk
IChucykgKi8KICAgICB1aW50MzJfdCBjcHU7ICAgICAgICAgICAgICAgICAgICAgLyogY3VycmVu
dCBtYXBwaW5nICAgKi8KIH07Ci10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX2dldHZjcHVpbmZv
IHhlbl9kb21jdGxfZ2V0dmNwdWluZm9fdDsKLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9k
b21jdGxfZ2V0dmNwdWluZm9fdCk7CiAKIAogLyogR2V0L3NldCB0aGUgTlVNQSBub2RlKHMpIHdp
dGggd2hpY2ggdGhlIGd1ZXN0IGhhcyBhZmZpbml0eSB3aXRoLiAqLwpAQCAtMzA3LDggKzI3NSw2
IEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9kb21jdGxfZ2V0dmNwdWluZm9fdCk7CiBz
dHJ1Y3QgeGVuX2RvbWN0bF9ub2RlYWZmaW5pdHkgewogICAgIHN0cnVjdCB4ZW5jdGxfYml0bWFw
IG5vZGVtYXA7LyogSU4gKi8KIH07Ci10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX25vZGVhZmZp
bml0eSB4ZW5fZG9tY3RsX25vZGVhZmZpbml0eV90OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo
eGVuX2RvbWN0bF9ub2RlYWZmaW5pdHlfdCk7CiAKIAogLyogR2V0L3NldCB3aGljaCBwaHlzaWNh
bCBjcHVzIGEgdmNwdSBjYW4gZXhlY3V0ZSBvbi4gKi8KQEAgLTMyMyw2ICsyODksOSBAQCBzdHJ1
Y3QgeGVuX2RvbWN0bF92Y3B1YWZmaW5pdHkgewogIC8qIFNldC9nZXQgdGhlIHNvZnQgYWZmaW5p
dHkgZm9yIHZjcHUgKi8KICNkZWZpbmUgX1hFTl9WQ1BVQUZGSU5JVFlfU09GVCAgMQogI2RlZmlu
ZSBYRU5fVkNQVUFGRklOSVRZX1NPRlQgICAoMVU8PF9YRU5fVkNQVUFGRklOSVRZX1NPRlQpCisg
LyogVW5kbyBTQ0hFRE9QX3Bpbl9vdmVycmlkZSAqLworI2RlZmluZSBfWEVOX1ZDUFVBRkZJTklU
WV9GT1JDRSAyCisjZGVmaW5lIFhFTl9WQ1BVQUZGSU5JVFlfRk9SQ0UgICgxVTw8X1hFTl9WQ1BV
QUZGSU5JVFlfRk9SQ0UpCiAgICAgdWludDMyX3QgZmxhZ3M7CiAgICAgLyoKICAgICAgKiBJTi9P
VVQgdmFyaWFibGVzLgpAQCAtMzQzLDcxICszMTIsOTUgQEAgc3RydWN0IHhlbl9kb21jdGxfdmNw
dWFmZmluaXR5IHsKICAgICBzdHJ1Y3QgeGVuY3RsX2JpdG1hcCBjcHVtYXBfaGFyZDsKICAgICBz
dHJ1Y3QgeGVuY3RsX2JpdG1hcCBjcHVtYXBfc29mdDsKIH07Ci10eXBlZGVmIHN0cnVjdCB4ZW5f
ZG9tY3RsX3ZjcHVhZmZpbml0eSB4ZW5fZG9tY3RsX3ZjcHVhZmZpbml0eV90OwotREVGSU5FX1hF
Tl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF92Y3B1YWZmaW5pdHlfdCk7CiAKIAogLyogWEVOX0RP
TUNUTF9tYXhfdmNwdXMgKi8KIHN0cnVjdCB4ZW5fZG9tY3RsX21heF92Y3B1cyB7CiAgICAgdWlu
dDMyX3QgbWF4OyAgICAgICAgICAgLyogbWF4aW11bSBudW1iZXIgb2YgdmNwdXMgKi8KIH07Ci10
eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX21heF92Y3B1cyB4ZW5fZG9tY3RsX21heF92Y3B1c190
OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9tYXhfdmNwdXNfdCk7CiAKIAog
LyogWEVOX0RPTUNUTF9zY2hlZHVsZXJfb3AgKi8KIC8qIFNjaGVkdWxlciB0eXBlcy4gKi8KLSNk
ZWZpbmUgWEVOX1NDSEVEVUxFUl9TRURGICAgICA0CisvKiAjZGVmaW5lIFhFTl9TQ0hFRFVMRVJf
U0VERiAgNCAoUmVtb3ZlZCkgKi8KICNkZWZpbmUgWEVOX1NDSEVEVUxFUl9DUkVESVQgICA1CiAj
ZGVmaW5lIFhFTl9TQ0hFRFVMRVJfQ1JFRElUMiAgNgogI2RlZmluZSBYRU5fU0NIRURVTEVSX0FS
SU5DNjUzIDcKICNkZWZpbmUgWEVOX1NDSEVEVUxFUl9SVERTICAgICA4CisjZGVmaW5lIFhFTl9T
Q0hFRFVMRVJfTlVMTCAgICAgOQorCitzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZF9jcmVkaXQgewor
ICAgIHVpbnQxNl90IHdlaWdodDsKKyAgICB1aW50MTZfdCBjYXA7Cit9OworCitzdHJ1Y3QgeGVu
X2RvbWN0bF9zY2hlZF9jcmVkaXQyIHsKKyAgICB1aW50MTZfdCB3ZWlnaHQ7CisgICAgdWludDE2
X3QgY2FwOworfTsKKworc3RydWN0IHhlbl9kb21jdGxfc2NoZWRfcnRkcyB7CisgICAgdWludDMy
X3QgcGVyaW9kOworICAgIHVpbnQzMl90IGJ1ZGdldDsKK307CisKK3R5cGVkZWYgc3RydWN0IHhl
bl9kb21jdGxfc2NoZWRwYXJhbV92Y3B1IHsKKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCB4
ZW5fZG9tY3RsX3NjaGVkX2NyZWRpdCBjcmVkaXQ7CisgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3Rs
X3NjaGVkX2NyZWRpdDIgY3JlZGl0MjsKKyAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfc2NoZWRf
cnRkcyBydGRzOworICAgIH0gdTsKKyAgICB1aW50MzJfdCB2Y3B1aWQ7Cit9IHhlbl9kb21jdGxf
c2NoZWRwYXJhbV92Y3B1X3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9tY3RsX3Nj
aGVkcGFyYW1fdmNwdV90KTsKIAotLyogU2V0IG9yIGdldCBpbmZvPyAqLworLyoKKyAqIFNldCBv
ciBnZXQgaW5mbz8KKyAqIEZvciBzY2hlZHVsZXJzIHN1cHBvcnRpbmcgcGVyLXZjcHUgc2V0dGlu
Z3MgKGUuZy4sIFJURFMpOgorICogIFhFTl9ET01DVExfU0NIRURPUF9wdXRpbmZvIHNldHMgcGFy
YW1zIGZvciBhbGwgdmNwdXM7CisgKiAgWEVOX0RPTUNUTF9TQ0hFRE9QX2dldGluZm8gZ2V0cyBk
ZWZhdWx0IHBhcmFtczsKKyAqICBYRU5fRE9NQ1RMX1NDSEVET1BfcHV0KGdldCl2Y3B1aW5mbyBz
ZXRzIChnZXRzKSBwYXJhbXMgb2YgdmNwdXM7CisgKgorICogRm9yIHNjaGVkdWxlcnMgbm90IHN1
cHBvcnRpbmcgcGVyLXZjcHUgc2V0dGluZ3M6CisgKiAgWEVOX0RPTUNUTF9TQ0hFRE9QX3B1dGlu
Zm8gc2V0cyBwYXJhbXMgZm9yIGFsbCB2Y3B1czsKKyAqICBYRU5fRE9NQ1RMX1NDSEVET1BfZ2V0
aW5mbyBnZXRzIGRvbWFpbi13aXNlIHBhcmFtczsKKyAqICBYRU5fRE9NQ1RMX1NDSEVET1BfcHV0
KGdldCl2Y3B1aW5mbyByZXR1cm5zIGVycm9yOworICovCiAjZGVmaW5lIFhFTl9ET01DVExfU0NI
RURPUF9wdXRpbmZvIDAKICNkZWZpbmUgWEVOX0RPTUNUTF9TQ0hFRE9QX2dldGluZm8gMQorI2Rl
ZmluZSBYRU5fRE9NQ1RMX1NDSEVET1BfcHV0dmNwdWluZm8gMgorI2RlZmluZSBYRU5fRE9NQ1RM
X1NDSEVET1BfZ2V0dmNwdWluZm8gMwogc3RydWN0IHhlbl9kb21jdGxfc2NoZWR1bGVyX29wIHsK
ICAgICB1aW50MzJfdCBzY2hlZF9pZDsgIC8qIFhFTl9TQ0hFRFVMRVJfKiAqLwogICAgIHVpbnQz
Ml90IGNtZDsgICAgICAgLyogWEVOX0RPTUNUTF9TQ0hFRE9QXyogKi8KKyAgICAvKiBJTi9PVVQg
Ki8KICAgICB1bmlvbiB7Ci0gICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVkX3NlZGYgewot
ICAgICAgICAgICAgdWludDY0X2FsaWduZWRfdCBwZXJpb2Q7Ci0gICAgICAgICAgICB1aW50NjRf
YWxpZ25lZF90IHNsaWNlOwotICAgICAgICAgICAgdWludDY0X2FsaWduZWRfdCBsYXRlbmN5Owot
ICAgICAgICAgICAgdWludDMyX3QgZXh0cmF0aW1lOwotICAgICAgICAgICAgdWludDMyX3Qgd2Vp
Z2h0OwotICAgICAgICB9IHNlZGY7Ci0gICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVkX2Ny
ZWRpdCB7Ci0gICAgICAgICAgICB1aW50MTZfdCB3ZWlnaHQ7Ci0gICAgICAgICAgICB1aW50MTZf
dCBjYXA7Ci0gICAgICAgIH0gY3JlZGl0OwotICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hl
ZF9jcmVkaXQyIHsKLSAgICAgICAgICAgIHVpbnQxNl90IHdlaWdodDsKLSAgICAgICAgfSBjcmVk
aXQyOwotICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZF9ydGRzIHsKLSAgICAgICAgICAg
IHVpbnQzMl90IHBlcmlvZDsKLSAgICAgICAgICAgIHVpbnQzMl90IGJ1ZGdldDsKLSAgICAgICAg
fSBydGRzOworICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZF9jcmVkaXQgY3JlZGl0Owor
ICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZF9jcmVkaXQyIGNyZWRpdDI7CisgICAgICAg
IHN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVkX3J0ZHMgcnRkczsKKyAgICAgICAgc3RydWN0IHsKKyAg
ICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQoeGVuX2RvbWN0bF9zY2hlZHBhcmFtX3ZjcHVf
dCkgdmNwdXM7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogSU46IE51bWJlciBvZiBl
bGVtZW50cyBpbiB2Y3B1cyBhcnJheS4KKyAgICAgICAgICAgICAqIE9VVDogTnVtYmVyIG9mIHBy
b2Nlc3NlZCBlbGVtZW50cyBvZiB2Y3B1cyBhcnJheS4KKyAgICAgICAgICAgICAqLworICAgICAg
ICAgICAgdWludDMyX3QgbnJfdmNwdXM7CisgICAgICAgICAgICB1aW50MzJfdCBwYWRkaW5nOwor
ICAgICAgICB9IHY7CiAgICAgfSB1OwogfTsKLXR5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxfc2No
ZWR1bGVyX29wIHhlbl9kb21jdGxfc2NoZWR1bGVyX29wX3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hB
TkRMRSh4ZW5fZG9tY3RsX3NjaGVkdWxlcl9vcF90KTsKIAogCiAvKiBYRU5fRE9NQ1RMX3NldGRv
bWFpbmhhbmRsZSAqLwogc3RydWN0IHhlbl9kb21jdGxfc2V0ZG9tYWluaGFuZGxlIHsKICAgICB4
ZW5fZG9tYWluX2hhbmRsZV90IGhhbmRsZTsKIH07Ci10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3Rs
X3NldGRvbWFpbmhhbmRsZSB4ZW5fZG9tY3RsX3NldGRvbWFpbmhhbmRsZV90OwotREVGSU5FX1hF
Tl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9zZXRkb21haW5oYW5kbGVfdCk7CiAKIAogLyogWEVO
X0RPTUNUTF9zZXRkZWJ1Z2dpbmcgKi8KIHN0cnVjdCB4ZW5fZG9tY3RsX3NldGRlYnVnZ2luZyB7
CiAgICAgdWludDhfdCBlbmFibGU7CiB9OwotdHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF9zZXRk
ZWJ1Z2dpbmcgeGVuX2RvbWN0bF9zZXRkZWJ1Z2dpbmdfdDsKLURFRklORV9YRU5fR1VFU1RfSEFO
RExFKHhlbl9kb21jdGxfc2V0ZGVidWdnaW5nX3QpOwogCiAKIC8qIFhFTl9ET01DVExfaXJxX3Bl
cm1pc3Npb24gKi8KQEAgLTQxNSw4ICs0MDgsNiBAQCBzdHJ1Y3QgeGVuX2RvbWN0bF9pcnFfcGVy
bWlzc2lvbiB7CiAgICAgdWludDhfdCBwaXJxOwogICAgIHVpbnQ4X3QgYWxsb3dfYWNjZXNzOyAg
ICAvKiBmbGFnIHRvIHNwZWNpZnkgZW5hYmxlL2Rpc2FibGUgb2YgSVJRIGFjY2VzcyAqLwogfTsK
LXR5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxfaXJxX3Blcm1pc3Npb24geGVuX2RvbWN0bF9pcnFf
cGVybWlzc2lvbl90OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9pcnFfcGVy
bWlzc2lvbl90KTsKIAogCiAvKiBYRU5fRE9NQ1RMX2lvbWVtX3Blcm1pc3Npb24gKi8KQEAgLTQy
NSw4ICs0MTYsNiBAQCBzdHJ1Y3QgeGVuX2RvbWN0bF9pb21lbV9wZXJtaXNzaW9uIHsKICAgICB1
aW50NjRfYWxpZ25lZF90IG5yX21mbnM7ICAvKiBudW1iZXIgb2YgcGFnZXMgaW4gcmFuZ2UgKD4w
KSAqLwogICAgIHVpbnQ4X3QgIGFsbG93X2FjY2VzczsgICAgIC8qIGFsbG93ICghMCkgb3IgZGVu
eSAoMCkgYWNjZXNzIHRvIHJhbmdlPyAqLwogfTsKLXR5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxf
aW9tZW1fcGVybWlzc2lvbiB4ZW5fZG9tY3RsX2lvbWVtX3Blcm1pc3Npb25fdDsKLURFRklORV9Y
RU5fR1VFU1RfSEFORExFKHhlbl9kb21jdGxfaW9tZW1fcGVybWlzc2lvbl90KTsKIAogCiAvKiBY
RU5fRE9NQ1RMX2lvcG9ydF9wZXJtaXNzaW9uICovCkBAIC00MzUsNDIgKzQyNCwzNCBAQCBzdHJ1
Y3QgeGVuX2RvbWN0bF9pb3BvcnRfcGVybWlzc2lvbiB7CiAgICAgdWludDMyX3QgbnJfcG9ydHM7
ICAgICAgICAgICAgICAgIC8qIHNpemUgb2YgcG9ydCByYW5nZSAqLwogICAgIHVpbnQ4X3QgIGFs
bG93X2FjY2VzczsgICAgICAgICAgICAvKiBhbGxvdyBvciBkZW55IGFjY2VzcyB0byByYW5nZT8g
Ki8KIH07Ci10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX2lvcG9ydF9wZXJtaXNzaW9uIHhlbl9k
b21jdGxfaW9wb3J0X3Blcm1pc3Npb25fdDsKLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9k
b21jdGxfaW9wb3J0X3Blcm1pc3Npb25fdCk7CiAKIAogLyogWEVOX0RPTUNUTF9oeXBlcmNhbGxf
aW5pdCAqLwogc3RydWN0IHhlbl9kb21jdGxfaHlwZXJjYWxsX2luaXQgewogICAgIHVpbnQ2NF9h
bGlnbmVkX3QgIGdtZm47ICAgICAgICAgICAvKiBHTUZOIHRvIGJlIGluaXRpYWxpc2VkICovCiB9
OwotdHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF9oeXBlcmNhbGxfaW5pdCB4ZW5fZG9tY3RsX2h5
cGVyY2FsbF9pbml0X3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9tY3RsX2h5cGVy
Y2FsbF9pbml0X3QpOwogCiAKIC8qIFhFTl9ET01DVExfc2V0dGltZW9mZnNldCAqLwogc3RydWN0
IHhlbl9kb21jdGxfc2V0dGltZW9mZnNldCB7Ci0gICAgaW50MzJfdCAgdGltZV9vZmZzZXRfc2Vj
b25kczsgLyogYXBwbGllZCB0byBkb21haW4gd2FsbGNsb2NrIHRpbWUgKi8KKyAgICBpbnQ2NF9h
bGlnbmVkX3QgdGltZV9vZmZzZXRfc2Vjb25kczsgLyogYXBwbGllZCB0byBkb21haW4gd2FsbGNs
b2NrIHRpbWUgKi8KIH07Ci10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX3NldHRpbWVvZmZzZXQg
eGVuX2RvbWN0bF9zZXR0aW1lb2Zmc2V0X3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5f
ZG9tY3RsX3NldHRpbWVvZmZzZXRfdCk7CiAKIC8qIFhFTl9ET01DVExfZ2V0aHZtY29udGV4dCAq
LwogLyogWEVOX0RPTUNUTF9zZXRodm1jb250ZXh0ICovCi10eXBlZGVmIHN0cnVjdCB4ZW5fZG9t
Y3RsX2h2bWNvbnRleHQgeworc3RydWN0IHhlbl9kb21jdGxfaHZtY29udGV4dCB7CiAgICAgdWlu
dDMyX3Qgc2l6ZTsgLyogSU4vT1VUOiBzaXplIG9mIGJ1ZmZlciAvIGJ5dGVzIGZpbGxlZCAqLwog
ICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQodWludDgpIGJ1ZmZlcjsgLyogSU4vT1VUOiBkYXRhLCBv
ciBjYWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBnZXRodm1j
b250ZXh0IHdpdGggTlVMTAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICogYnVmZmVyIHRvIGdldCBzaXplIHJlcSdkICovCi19IHhlbl9kb21jdGxfaHZtY29udGV4dF90
OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9odm1jb250ZXh0X3QpOworfTsK
IAogCiAvKiBYRU5fRE9NQ1RMX3NldF9hZGRyZXNzX3NpemUgKi8KIC8qIFhFTl9ET01DVExfZ2V0
X2FkZHJlc3Nfc2l6ZSAqLwotdHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF9hZGRyZXNzX3NpemUg
eworc3RydWN0IHhlbl9kb21jdGxfYWRkcmVzc19zaXplIHsKICAgICB1aW50MzJfdCBzaXplOwot
fSB4ZW5fZG9tY3RsX2FkZHJlc3Nfc2l6ZV90OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVu
X2RvbWN0bF9hZGRyZXNzX3NpemVfdCk7Cit9OwogCiAKIC8qIFhFTl9ET01DVExfc2VuZHRyaWdn
ZXIgKi8KQEAgLTQ4MywxOSArNDY0LDQwIEBAIHN0cnVjdCB4ZW5fZG9tY3RsX3NlbmR0cmlnZ2Vy
IHsKICAgICB1aW50MzJfdCAgdHJpZ2dlcjsgIC8qIElOICovCiAgICAgdWludDMyX3QgIHZjcHU7
ICAgICAvKiBJTiAqLwogfTsKLXR5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxfc2VuZHRyaWdnZXIg
eGVuX2RvbWN0bF9zZW5kdHJpZ2dlcl90OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2Rv
bWN0bF9zZW5kdHJpZ2dlcl90KTsKIAogCi0vKiBBc3NpZ24gUENJIGRldmljZSB0byBIVk0gZ3Vl
c3QuIFNldHMgdXAgSU9NTVUgc3RydWN0dXJlcy4gKi8KKy8qIEFzc2lnbiBhIGRldmljZSB0byBh
IGd1ZXN0LiBTZXRzIHVwIElPTU1VIHN0cnVjdHVyZXMuICovCiAvKiBYRU5fRE9NQ1RMX2Fzc2ln
bl9kZXZpY2UgKi8KLS8qIFhFTl9ET01DVExfdGVzdF9hc3NpZ25fZGV2aWNlICovCi0vKiBYRU5f
RE9NQ1RMX2RlYXNzaWduX2RldmljZSAqLworLyoKKyAqIFhFTl9ET01DVExfdGVzdF9hc3NpZ25f
ZGV2aWNlOiBQYXNzIERPTUlEX0lOVkFMSUQgdG8gZmluZCBvdXQgd2hldGhlciB0aGUKKyAqIGdp
dmVuIGRldmljZSBpcyBhc3NpZ25lZCB0byBhbnkgRG9tVSBhdCBhbGwuIFBhc3MgYSBzcGVjaWZp
YyBkb21haW4gSUQgdG8KKyAqIGZpbmQgb3V0IHdoZXRoZXIgdGhlIGdpdmVuIGRldmljZSBjYW4g
YmUgYXNzaWduZWQgdG8gdGhhdCBkb21haW4uCisgKi8KKy8qCisgKiBYRU5fRE9NQ1RMX2RlYXNz
aWduX2RldmljZTogVGhlIGJlaGF2aW9yIG9mIHRoaXMgRE9NQ1RMIGRpZmZlcnMKKyAqIGJldHdl
ZW4gdGhlIGRpZmZlcmVudCB0eXBlIG9mIGRldmljZToKKyAqICAtIFBDSSBkZXZpY2UgKFhFTl9E
T01DVExfREVWX1BDSSkgd2lsbCBiZSByZWFzc2lnbmVkIHRvIERPTTAKKyAqICAtIERUIGRldmlj
ZSAoWEVOX0RPTUNUTF9ERVZfRFQpIHdpbGwgbGVmdCB1bmFzc2lnbmVkLiBET00wCisgKiAgd2ls
bCBoYXZlIHRvIGNhbGwgWEVOX0RPTUNUTF9hc3NpZ25fZGV2aWNlIGluIG9yZGVyIHRvIHVzZSB0
aGUKKyAqICBkZXZpY2UuCisgKi8KKyNkZWZpbmUgWEVOX0RPTUNUTF9ERVZfUENJICAgICAgMAor
I2RlZmluZSBYRU5fRE9NQ1RMX0RFVl9EVCAgICAgICAxCiBzdHJ1Y3QgeGVuX2RvbWN0bF9hc3Np
Z25fZGV2aWNlIHsKLSAgICB1aW50MzJfdCAgbWFjaGluZV9zYmRmOyAgIC8qIG1hY2hpbmUgUENJ
IElEIG9mIGFzc2lnbmVkIGRldmljZSAqLworICAgIC8qIElOICovCisgICAgdWludDMyX3QgZGV2
OyAgIC8qIFhFTl9ET01DVExfREVWXyogKi8KKyAgICB1aW50MzJfdCBmbGFnczsKKyNkZWZpbmUg
WEVOX0RPTUNUTF9ERVZfUkRNX1JFTEFYRUQgICAgICAxIC8qIGFzc2lnbiBvbmx5ICovCisgICAg
dW5pb24geworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgdWludDMyX3QgbWFjaGluZV9z
YmRmOyAgIC8qIG1hY2hpbmUgUENJIElEIG9mIGFzc2lnbmVkIGRldmljZSAqLworICAgICAgICB9
IHBjaTsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIHVpbnQzMl90IHNpemU7IC8qIExl
bmd0aCBvZiB0aGUgcGF0aCAqLworICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV82NChjaGFy
KSBwYXRoOyAvKiBwYXRoIHRvIHRoZSBkZXZpY2UgdHJlZSBub2RlICovCisgICAgICAgIH0gZHQ7
CisgICAgfSB1OwogfTsKLXR5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxfYXNzaWduX2RldmljZSB4
ZW5fZG9tY3RsX2Fzc2lnbl9kZXZpY2VfdDsKLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9k
b21jdGxfYXNzaWduX2RldmljZV90KTsKIAogLyogUmV0cmlldmUgc2libGluZyBkZXZpY2VzIGlu
Zm9tYXRpb24gb2YgbWFjaGluZV9zYmRmICovCiAvKiBYRU5fRE9NQ1RMX2dldF9kZXZpY2VfZ3Jv
dXAgKi8KQEAgLTUwNSwyMiArNTA3LDIwIEBAIHN0cnVjdCB4ZW5fZG9tY3RsX2dldF9kZXZpY2Vf
Z3JvdXAgewogICAgIHVpbnQzMl90ICBudW1fc2RldnM7ICAgICAgICAvKiBPVVQgKi8KICAgICBY
RU5fR1VFU1RfSEFORExFXzY0KHVpbnQzMikgIHNkZXZfYXJyYXk7ICAgLyogT1VUICovCiB9Owot
dHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF9nZXRfZGV2aWNlX2dyb3VwIHhlbl9kb21jdGxfZ2V0
X2RldmljZV9ncm91cF90OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9nZXRf
ZGV2aWNlX2dyb3VwX3QpOwogCiAvKiBQYXNzLXRocm91Z2ggaW50ZXJydXB0czogYmluZCByZWFs
IGlycSAtPiBodm0gZGV2Zm4uICovCiAvKiBYRU5fRE9NQ1RMX2JpbmRfcHRfaXJxICovCiAvKiBY
RU5fRE9NQ1RMX3VuYmluZF9wdF9pcnEgKi8KLXR5cGVkZWYgZW51bSBwdF9pcnFfdHlwZV9lIHsK
K2VudW0gcHRfaXJxX3R5cGUgewogICAgIFBUX0lSUV9UWVBFX1BDSSwKICAgICBQVF9JUlFfVFlQ
RV9JU0EsCiAgICAgUFRfSVJRX1RZUEVfTVNJLAogICAgIFBUX0lSUV9UWVBFX01TSV9UUkFOU0xB
VEUsCi19IHB0X2lycV90eXBlX3Q7CisgICAgUFRfSVJRX1RZUEVfU1BJLCAgICAvKiBBUk06IHZh
bGlkIHJhbmdlIDMyLTEwMTkgKi8KK307CiBzdHJ1Y3QgeGVuX2RvbWN0bF9iaW5kX3B0X2lycSB7
CiAgICAgdWludDMyX3QgbWFjaGluZV9pcnE7Ci0gICAgcHRfaXJxX3R5cGVfdCBpcnFfdHlwZTsK
LSAgICB1aW50MzJfdCBodm1fZG9taWQ7CisgICAgdWludDMyX3QgaXJxX3R5cGU7IC8qIGVudW0g
cHRfaXJxX3R5cGUgKi8KIAogICAgIHVuaW9uIHsKICAgICAgICAgc3RydWN0IHsKQEAgLTUzNCwx
NiArNTM0LDMyIEBAIHN0cnVjdCB4ZW5fZG9tY3RsX2JpbmRfcHRfaXJxIHsKICAgICAgICAgc3Ry
dWN0IHsKICAgICAgICAgICAgIHVpbnQ4X3QgZ3ZlYzsKICAgICAgICAgICAgIHVpbnQzMl90IGdm
bGFnczsKKyNkZWZpbmUgWEVOX0RPTUNUTF9WTVNJX1g4Nl9ERVNUX0lEX01BU0sgMHgwMDAwZmYK
KyNkZWZpbmUgWEVOX0RPTUNUTF9WTVNJX1g4Nl9SSF9NQVNLICAgICAgMHgwMDAxMDAKKyNkZWZp
bmUgWEVOX0RPTUNUTF9WTVNJX1g4Nl9ETV9NQVNLICAgICAgMHgwMDAyMDAKKyNkZWZpbmUgWEVO
X0RPTUNUTF9WTVNJX1g4Nl9ERUxJVl9NQVNLICAgMHgwMDcwMDAKKyNkZWZpbmUgWEVOX0RPTUNU
TF9WTVNJX1g4Nl9UUklHX01BU0sgICAgMHgwMDgwMDAKKyNkZWZpbmUgWEVOX0RPTUNUTF9WTVNJ
X1g4Nl9VTk1BU0tFRCAgICAgMHgwMTAwMDAKKwogICAgICAgICAgICAgdWludDY0X2FsaWduZWRf
dCBndGFibGU7CiAgICAgICAgIH0gbXNpOworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAg
dWludDE2X3Qgc3BpOworICAgICAgICB9IHNwaTsKICAgICB9IHU7CiB9OwotdHlwZWRlZiBzdHJ1
Y3QgeGVuX2RvbWN0bF9iaW5kX3B0X2lycSB4ZW5fZG9tY3RsX2JpbmRfcHRfaXJxX3Q7Ci1ERUZJ
TkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9tY3RsX2JpbmRfcHRfaXJxX3QpOwogCiAKIC8qIEJp
bmQgbWFjaGluZSBJL08gYWRkcmVzcyByYW5nZSAtPiBIVk0gYWRkcmVzcyByYW5nZS4gKi8KIC8q
IFhFTl9ET01DVExfbWVtb3J5X21hcHBpbmcgKi8KKy8qIFJldHVybnMKKyAgIC0gemVybyAgICAg
c3VjY2VzcywgZXZlcnl0aGluZyBkb25lCisgICAtIC1FMkJJRyAgIHBhc3NlZCBpbiBucl9tZm5z
IHZhbHVlIHRvbyBsYXJnZSBmb3IgdGhlIGltcGxlbWVudGF0aW9uCisgICAtIHBvc2l0aXZlIHBh
cnRpYWwgc3VjY2VzcyBmb3IgdGhlIGZpcnN0IDxyZXN1bHQ+IHBhZ2UgZnJhbWVzICh3aXRoCisg
ICAgICAgICAgICAgIDxyZXN1bHQ+IGxlc3MgdGhhbiBucl9tZm5zKSwgcmVxdWlyaW5nIHJlLWlu
dm9jYXRpb24gYnkgdGhlCisgICAgICAgICAgICAgIGNhbGxlciBhZnRlciB1cGRhdGluZyBpbnB1
dHMKKyAgIC0gbmVnYXRpdmUgZXJyb3I7IG90aGVyIHRoYW4gLUUyQklHCisqLwogI2RlZmluZSBE
UENJX0FERF9NQVBQSU5HICAgICAgICAgMQogI2RlZmluZSBEUENJX1JFTU9WRV9NQVBQSU5HICAg
ICAgMAogc3RydWN0IHhlbl9kb21jdGxfbWVtb3J5X21hcHBpbmcgewpAQCAtNTUzLDggKzU2OSw2
IEBAIHN0cnVjdCB4ZW5fZG9tY3RsX21lbW9yeV9tYXBwaW5nIHsKICAgICB1aW50MzJfdCBhZGRf
bWFwcGluZzsgICAgICAgLyogYWRkIG9yIHJlbW92ZSBtYXBwaW5nICovCiAgICAgdWludDMyX3Qg
cGFkZGluZzsgICAgICAgICAgIC8qIHBhZGRpbmcgZm9yIDY0LWJpdCBhbGlnbmVkIHN0cnVjdHVy
ZSAqLwogfTsKLXR5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxfbWVtb3J5X21hcHBpbmcgeGVuX2Rv
bWN0bF9tZW1vcnlfbWFwcGluZ190OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0
bF9tZW1vcnlfbWFwcGluZ190KTsKIAogCiAvKiBCaW5kIG1hY2hpbmUgSS9PIHBvcnQgcmFuZ2Ug
LT4gSFZNIEkvTyBwb3J0IHJhbmdlLiAqLwpAQCAtNTY1LDggKzU3OSw2IEBAIHN0cnVjdCB4ZW5f
ZG9tY3RsX2lvcG9ydF9tYXBwaW5nIHsKICAgICB1aW50MzJfdCBucl9wb3J0czsgICAgICAgIC8q
IHNpemUgb2YgcG9ydCByYW5nZSAqLwogICAgIHVpbnQzMl90IGFkZF9tYXBwaW5nOyAgICAgLyog
YWRkIG9yIHJlbW92ZSBtYXBwaW5nICovCiB9OwotdHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF9p
b3BvcnRfbWFwcGluZyB4ZW5fZG9tY3RsX2lvcG9ydF9tYXBwaW5nX3Q7Ci1ERUZJTkVfWEVOX0dV
RVNUX0hBTkRMRSh4ZW5fZG9tY3RsX2lvcG9ydF9tYXBwaW5nX3QpOwogCiAKIC8qCkBAIC01ODUs
OCArNTk3LDYgQEAgc3RydWN0IHhlbl9kb21jdGxfcGluX21lbV9jYWNoZWF0dHIgewogICAgIHVp
bnQ2NF9hbGlnbmVkX3Qgc3RhcnQsIGVuZDsKICAgICB1aW50MzJfdCB0eXBlOyAvKiBYRU5fRE9N
Q1RMX01FTV9DQUNIRUFUVFJfKiAqLwogfTsKLXR5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxfcGlu
X21lbV9jYWNoZWF0dHIgeGVuX2RvbWN0bF9waW5fbWVtX2NhY2hlYXR0cl90OwotREVGSU5FX1hF
Tl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9waW5fbWVtX2NhY2hlYXR0cl90KTsKIAogCiAvKiBY
RU5fRE9NQ1RMX3NldF9leHRfdmNwdWNvbnRleHQgKi8KQEAgLTYxOCw4ICs2MjgsNiBAQCBzdHJ1
Y3QgeGVuX2RvbWN0bF9leHRfdmNwdWNvbnRleHQgewogI2VuZGlmCiAjZW5kaWYKIH07Ci10eXBl
ZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX2V4dF92Y3B1Y29udGV4dCB4ZW5fZG9tY3RsX2V4dF92Y3B1
Y29udGV4dF90OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9leHRfdmNwdWNv
bnRleHRfdCk7CiAKIC8qCiAgKiBTZXQgdGhlIHRhcmdldCBkb21haW4gZm9yIGEgZG9tYWluCkBA
IC02MjgsOCArNjM2LDYgQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9leHRf
dmNwdWNvbnRleHRfdCk7CiBzdHJ1Y3QgeGVuX2RvbWN0bF9zZXRfdGFyZ2V0IHsKICAgICBkb21p
ZF90IHRhcmdldDsKIH07Ci10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX3NldF90YXJnZXQgeGVu
X2RvbWN0bF9zZXRfdGFyZ2V0X3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9tY3Rs
X3NldF90YXJnZXRfdCk7CiAKICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2
XzY0X18pCiAjIGRlZmluZSBYRU5fQ1BVSURfSU5QVVRfVU5VU0VEICAweEZGRkZGRkZGCkBAIC02
NDEsOCArNjQ3LDYgQEAgc3RydWN0IHhlbl9kb21jdGxfY3B1aWQgewogICB1aW50MzJfdCBlY3g7
CiAgIHVpbnQzMl90IGVkeDsKIH07Ci10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX2NwdWlkIHhl
bl9kb21jdGxfY3B1aWRfdDsKLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9kb21jdGxfY3B1
aWRfdCk7CiAjZW5kaWYKIAogLyoKQEAgLTY2NSw4ICs2NjksNiBAQCBERUZJTkVfWEVOX0dVRVNU
X0hBTkRMRSh4ZW5fZG9tY3RsX2NwdWlkX3QpOwogc3RydWN0IHhlbl9kb21jdGxfc3Vic2NyaWJl
IHsKICAgICB1aW50MzJfdCBwb3J0OyAvKiBJTiAqLwogfTsKLXR5cGVkZWYgc3RydWN0IHhlbl9k
b21jdGxfc3Vic2NyaWJlIHhlbl9kb21jdGxfc3Vic2NyaWJlX3Q7Ci1ERUZJTkVfWEVOX0dVRVNU
X0hBTkRMRSh4ZW5fZG9tY3RsX3N1YnNjcmliZV90KTsKIAogLyoKICAqIERlZmluZSB0aGUgbWF4
aW11bSBtYWNoaW5lIGFkZHJlc3Mgc2l6ZSB3aGljaCBzaG91bGQgYmUgYWxsb2NhdGVkCkBAIC02
ODcsNDEgKzY4OSwzNCBAQCBzdHJ1Y3QgeGVuX2RvbWN0bF9kZWJ1Z19vcCB7CiAgICAgdWludDMy
X3Qgb3A7ICAgLyogSU4gKi8KICAgICB1aW50MzJfdCB2Y3B1OyAvKiBJTiAqLwogfTsKLXR5cGVk
ZWYgc3RydWN0IHhlbl9kb21jdGxfZGVidWdfb3AgeGVuX2RvbWN0bF9kZWJ1Z19vcF90OwotREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9kZWJ1Z19vcF90KTsKIAogLyoKICAqIFJl
cXVlc3QgYSBwYXJ0aWN1bGFyIHJlY29yZCBmcm9tIHRoZSBIVk0gY29udGV4dAogICovCiAvKiBY
RU5fRE9NQ1RMX2dldGh2bWNvbnRleHRfcGFydGlhbCAqLwotdHlwZWRlZiBzdHJ1Y3QgeGVuX2Rv
bWN0bF9odm1jb250ZXh0X3BhcnRpYWwgeworc3RydWN0IHhlbl9kb21jdGxfaHZtY29udGV4dF9w
YXJ0aWFsIHsKICAgICB1aW50MzJfdCB0eXBlOyAgICAgICAgICAgICAgICAgICAgICAvKiBJTjog
VHlwZSBvZiByZWNvcmQgcmVxdWlyZWQgKi8KICAgICB1aW50MzJfdCBpbnN0YW5jZTsgICAgICAg
ICAgICAgICAgICAvKiBJTjogSW5zdGFuY2Ugb2YgdGhhdCB0eXBlICovCisgICAgdWludDY0X2Fs
aWduZWRfdCBidWZzejsgICAgICAgICAgICAgLyogSU46IHNpemUgb2YgYnVmZmVyICovCiAgICAg
WEVOX0dVRVNUX0hBTkRMRV82NCh1aW50OCkgYnVmZmVyOyAgLyogT1VUOiBidWZmZXIgdG8gd3Jp
dGUgcmVjb3JkIGludG8gKi8KLX0geGVuX2RvbWN0bF9odm1jb250ZXh0X3BhcnRpYWxfdDsKLURF
RklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9kb21jdGxfaHZtY29udGV4dF9wYXJ0aWFsX3QpOwor
fTsKIAogLyogWEVOX0RPTUNUTF9kaXNhYmxlX21pZ3JhdGUgKi8KLXR5cGVkZWYgc3RydWN0IHhl
bl9kb21jdGxfZGlzYWJsZV9taWdyYXRlIHsKK3N0cnVjdCB4ZW5fZG9tY3RsX2Rpc2FibGVfbWln
cmF0ZSB7CiAgICAgdWludDMyX3QgZGlzYWJsZTsgLyogSU46IDE6IGRpc2FibGUgbWlncmF0aW9u
IGFuZCByZXN0b3JlICovCi19IHhlbl9kb21jdGxfZGlzYWJsZV9taWdyYXRlX3Q7Cit9OwogCiAK
IC8qIFhFTl9ET01DVExfZ2V0dHNjaW5mbyAqLwogLyogWEVOX0RPTUNUTF9zZXR0c2NpbmZvICov
Ci1zdHJ1Y3QgeGVuX2d1ZXN0X3RzY19pbmZvIHsKK3N0cnVjdCB4ZW5fZG9tY3RsX3RzY19pbmZv
IHsKKyAgICAvKiBJTi9PVVQgKi8KICAgICB1aW50MzJfdCB0c2NfbW9kZTsKICAgICB1aW50MzJf
dCBndHNjX2toejsKICAgICB1aW50MzJfdCBpbmNhcm5hdGlvbjsKICAgICB1aW50MzJfdCBwYWQ7
CiAgICAgdWludDY0X2FsaWduZWRfdCBlbGFwc2VkX25zZWM7CiB9OwotdHlwZWRlZiBzdHJ1Y3Qg
eGVuX2d1ZXN0X3RzY19pbmZvIHhlbl9ndWVzdF90c2NfaW5mb190OwotREVGSU5FX1hFTl9HVUVT
VF9IQU5ETEUoeGVuX2d1ZXN0X3RzY19pbmZvX3QpOwotdHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0
bF90c2NfaW5mbyB7Ci0gICAgWEVOX0dVRVNUX0hBTkRMRV82NCh4ZW5fZ3Vlc3RfdHNjX2luZm9f
dCkgb3V0X2luZm87IC8qIE9VVCAqLwotICAgIHhlbl9ndWVzdF90c2NfaW5mb190IGluZm87IC8q
IElOICovCi19IHhlbl9kb21jdGxfdHNjX2luZm9fdDsKIAogLyogWEVOX0RPTUNUTF9nZGJzeF9n
dWVzdG1lbWlvICAgICAgZ3Vlc3QgbWVtIGlvICovCiBzdHJ1Y3QgeGVuX2RvbWN0bF9nZGJzeF9t
ZW1pbyB7CkBAIC03NTAsMTAgKzc0NSwyMSBAQCBzdHJ1Y3QgeGVuX2RvbWN0bF9nZGJzeF9kb21z
dGF0dXMgewogfTsKIAogLyoKLSAqIE1lbW9yeSBldmVudCBvcGVyYXRpb25zCisgKiBWTSBldmVu
dCBvcGVyYXRpb25zCiAgKi8KIAotLyogWEVOX0RPTUNUTF9tZW1fZXZlbnRfb3AgKi8KKy8qIFhF
Tl9ET01DVExfdm1fZXZlbnRfb3AgKi8KKworLyoKKyAqIFRoZXJlIGFyZSBjdXJyZW50bHkgdGhy
ZWUgcmluZ3MgYXZhaWxhYmxlIGZvciBWTSBldmVudHM6CisgKiBzaGFyaW5nLCBtb25pdG9yIGFu
ZCBwYWdpbmcuIFRoaXMgaHlwZXJjYWxsIGFsbG93cyBvbmUgdG8KKyAqIGNvbnRyb2wgdGhlc2Ug
cmluZ3MgKGVuYWJsZS9kaXNhYmxlKSwgYXMgd2VsbCBhcyB0byBzaWduYWwKKyAqIHRvIHRoZSBo
eXBlcnZpc29yIHRvIHB1bGwgcmVzcG9uc2VzIChyZXN1bWUpIGZyb20gdGhlIGdpdmVuCisgKiBy
aW5nLgorICovCisjZGVmaW5lIFhFTl9WTV9FVkVOVF9FTkFCTEUgICAgICAgICAgICAgICAwCisj
ZGVmaW5lIFhFTl9WTV9FVkVOVF9ESVNBQkxFICAgICAgICAgICAgICAxCisjZGVmaW5lIFhFTl9W
TV9FVkVOVF9SRVNVTUUgICAgICAgICAgICAgICAyCiAKIC8qCiAgKiBEb21haW4gbWVtb3J5IHBh
Z2luZwpAQCAtNzYyLDQyICs3NjgsMzggQEAgc3RydWN0IHhlbl9kb21jdGxfZ2Ric3hfZG9tc3Rh
dHVzIHsKICAqIHBhZ2VyPC0+aHlwZXJ2aXNvciBpbnRlcmZhY2UuIFVzZSBYRU5NRU1fcGFnaW5n
X29wKgogICogdG8gcGVyZm9ybSBwZXItcGFnZSBvcGVyYXRpb25zLgogICoKLSAqIFRoZSBYRU5f
RE9NQ1RMX01FTV9FVkVOVF9PUF9QQUdJTkdfRU5BQkxFIGRvbWN0bCByZXR1cm5zIHNldmVyYWwK
KyAqIFRoZSBYRU5fVk1fRVZFTlRfUEFHSU5HX0VOQUJMRSBkb21jdGwgcmV0dXJucyBzZXZlcmFs
CiAgKiBub24tc3RhbmRhcmQgZXJyb3IgY29kZXMgdG8gaW5kaWNhdGUgd2h5IHBhZ2luZyBjb3Vs
ZCBub3QgYmUgZW5hYmxlZDoKICAqIEVOT0RFViAtIGhvc3QgbGFja3MgSEFQIHN1cHBvcnQgKEVQ
VC9OUFQpIG9yIEhBUCBpcyBkaXNhYmxlZCBpbiBndWVzdAogICogRU1MSU5LIC0gZ3Vlc3QgaGFz
IGlvbW11IHBhc3N0aHJvdWdoIGVuYWJsZWQKICAqIEVYREVWICAtIGd1ZXN0IGhhcyBQb0QgZW5h
YmxlZAogICogRUJVU1kgIC0gZ3Vlc3QgaGFzIG9yIGhhZCBwYWdpbmcgZW5hYmxlZCwgcmluZyBi
dWZmZXIgc3RpbGwgYWN0aXZlCiAgKi8KLSNkZWZpbmUgWEVOX0RPTUNUTF9NRU1fRVZFTlRfT1Bf
UEFHSU5HICAgICAgICAgICAgMQotCi0jZGVmaW5lIFhFTl9ET01DVExfTUVNX0VWRU5UX09QX1BB
R0lOR19FTkFCTEUgICAgIDAKLSNkZWZpbmUgWEVOX0RPTUNUTF9NRU1fRVZFTlRfT1BfUEFHSU5H
X0RJU0FCTEUgICAgMQorI2RlZmluZSBYRU5fRE9NQ1RMX1ZNX0VWRU5UX09QX1BBR0lORyAgICAg
ICAgICAgIDEKIAogLyoKLSAqIEFjY2VzcyBwZXJtaXNzaW9ucy4KKyAqIE1vbml0b3IgaGVscGVy
LgogICoKICAqIEFzIHdpdGggcGFnaW5nLCB1c2UgdGhlIGRvbWN0bCBmb3IgdGVhcmRvd24vc2V0
dXAgb2YgdGhlCiAgKiBoZWxwZXI8LT5oeXBlcnZpc29yIGludGVyZmFjZS4KICAqCi0gKiBUaGVy
ZSBhcmUgSFZNIGh5cGVyY2FsbHMgdG8gc2V0IHRoZSBwZXItcGFnZSBhY2Nlc3MgcGVybWlzc2lv
bnMgb2YgZXZlcnkKLSAqIHBhZ2UgaW4gYSBkb21haW4uICBXaGVuIG9uZSBvZiB0aGVzZSBwZXJt
aXNzaW9ucy0taW5kZXBlbmRlbnQsIHJlYWQsIAotICogd3JpdGUsIGFuZCBleGVjdXRlLS1pcyB2
aW9sYXRlZCwgdGhlIFZDUFUgaXMgcGF1c2VkIGFuZCBhIG1lbW9yeSBldmVudCAKLSAqIGlzIHNl
bnQgd2l0aCB3aGF0IGhhcHBlbmVkLiAgKFNlZSBwdWJsaWMvbWVtX2V2ZW50LmgpIC4KKyAqIFRo
ZSBtb25pdG9yIGludGVyZmFjZSBjYW4gYmUgdXNlZCB0byByZWdpc3RlciBmb3IgdmFyaW91cyBW
TSBldmVudHMuIEZvcgorICogZXhhbXBsZSwgdGhlcmUgYXJlIEhWTSBoeXBlcmNhbGxzIHRvIHNl
dCB0aGUgcGVyLXBhZ2UgYWNjZXNzIHBlcm1pc3Npb25zCisgKiBvZiBldmVyeSBwYWdlIGluIGEg
ZG9tYWluLiAgV2hlbiBvbmUgb2YgdGhlc2UgcGVybWlzc2lvbnMtLWluZGVwZW5kZW50LAorICog
cmVhZCwgd3JpdGUsIGFuZCBleGVjdXRlLS1pcyB2aW9sYXRlZCwgdGhlIFZDUFUgaXMgcGF1c2Vk
IGFuZCBhIG1lbW9yeSBldmVudAorICogaXMgc2VudCB3aXRoIHdoYXQgaGFwcGVuZWQuIFRoZSBt
ZW1vcnkgZXZlbnQgaGFuZGxlciBjYW4gdGhlbiByZXN1bWUgdGhlCisgKiBWQ1BVIGFuZCByZWRv
IHRoZSBhY2Nlc3Mgd2l0aCBhIFhFTl9WTV9FVkVOVF9SRVNVTUUgb3B0aW9uLgogICoKLSAqIFRo
ZSBtZW1vcnkgZXZlbnQgaGFuZGxlciBjYW4gdGhlbiByZXN1bWUgdGhlIFZDUFUgYW5kIHJlZG8g
dGhlIGFjY2VzcyAKLSAqIHdpdGggYSBYRU5NRU1fYWNjZXNzX29wX3Jlc3VtZSBoeXBlcmNhbGwu
CisgKiBTZWUgcHVibGljL3ZtX2V2ZW50LmggZm9yIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBldmVu
dHMgdGhhdCBjYW4gYmUKKyAqIHN1YnNjcmliZWQgdG8gdmlhIHRoZSBtb25pdG9yIGludGVyZmFj
ZS4KICAqCi0gKiBUaGUgWEVOX0RPTUNUTF9NRU1fRVZFTlRfT1BfQUNDRVNTX0VOQUJMRSBkb21j
dGwgcmV0dXJucyBzZXZlcmFsCisgKiBUaGUgWEVOX1ZNX0VWRU5UX01PTklUT1JfKiBkb21jdGxz
IHJldHVybnMKICAqIG5vbi1zdGFuZGFyZCBlcnJvciBjb2RlcyB0byBpbmRpY2F0ZSB3aHkgYWNj
ZXNzIGNvdWxkIG5vdCBiZSBlbmFibGVkOgogICogRU5PREVWIC0gaG9zdCBsYWNrcyBIQVAgc3Vw
cG9ydCAoRVBUL05QVCkgb3IgSEFQIGlzIGRpc2FibGVkIGluIGd1ZXN0CiAgKiBFQlVTWSAgLSBn
dWVzdCBoYXMgb3IgaGFkIGFjY2VzcyBlbmFibGVkLCByaW5nIGJ1ZmZlciBzdGlsbCBhY3RpdmUK
KyAqCiAgKi8KLSNkZWZpbmUgWEVOX0RPTUNUTF9NRU1fRVZFTlRfT1BfQUNDRVNTICAgICAgICAg
ICAgICAgICAgICAgICAgMgotCi0jZGVmaW5lIFhFTl9ET01DVExfTUVNX0VWRU5UX09QX0FDQ0VT
U19FTkFCTEUgICAgICAgICAgICAgICAgIDAKLSNkZWZpbmUgWEVOX0RPTUNUTF9NRU1fRVZFTlRf
T1BfQUNDRVNTX0RJU0FCTEUgICAgICAgICAgICAgICAgMQotI2RlZmluZSBYRU5fRE9NQ1RMX01F
TV9FVkVOVF9PUF9BQ0NFU1NfRU5BQkxFX0lOVFJPU1BFQ1RJT04gICAyCisjZGVmaW5lIFhFTl9E
T01DVExfVk1fRVZFTlRfT1BfTU9OSVRPUiAgICAgICAgICAgMgogCiAvKgogICogU2hhcmluZyBF
Tk9NRU0gaGVscGVyLgpAQCAtODEyLDIxICs4MTQsMTYgQEAgc3RydWN0IHhlbl9kb21jdGxfZ2Ri
c3hfZG9tc3RhdHVzIHsKICAqIE5vdGUgdGhhdCBzaHJpbmcgY2FuIGJlIHR1cm5lZCBvbiAoYXMg
cGVyIHRoZSBkb21jdGwgYmVsb3cpCiAgKiAqd2l0aG91dCogdGhpcyByaW5nIGJlaW5nIHNldHVw
LgogICovCi0jZGVmaW5lIFhFTl9ET01DVExfTUVNX0VWRU5UX09QX1NIQVJJTkcgICAgICAgICAg
IDMKLQotI2RlZmluZSBYRU5fRE9NQ1RMX01FTV9FVkVOVF9PUF9TSEFSSU5HX0VOQUJMRSAgICAw
Ci0jZGVmaW5lIFhFTl9ET01DVExfTUVNX0VWRU5UX09QX1NIQVJJTkdfRElTQUJMRSAgIDEKKyNk
ZWZpbmUgWEVOX0RPTUNUTF9WTV9FVkVOVF9PUF9TSEFSSU5HICAgICAgICAgICAzCiAKIC8qIFVz
ZSBmb3IgdGVhcmRvd24vc2V0dXAgb2YgaGVscGVyPC0+aHlwZXJ2aXNvciBpbnRlcmZhY2UgZm9y
IHBhZ2luZywgCiAgKiBhY2Nlc3MgYW5kIHNoYXJpbmcuKi8KLXN0cnVjdCB4ZW5fZG9tY3RsX21l
bV9ldmVudF9vcCB7Ci0gICAgdWludDMyX3QgICAgICAgb3A7ICAgICAgICAgICAvKiBYRU5fRE9N
Q1RMX01FTV9FVkVOVF9PUF8qXyogKi8KLSAgICB1aW50MzJfdCAgICAgICBtb2RlOyAgICAgICAg
IC8qIFhFTl9ET01DVExfTUVNX0VWRU5UX09QXyogKi8KK3N0cnVjdCB4ZW5fZG9tY3RsX3ZtX2V2
ZW50X29wIHsKKyAgICB1aW50MzJfdCAgICAgICBvcDsgICAgICAgICAgIC8qIFhFTl9WTV9FVkVO
VF8qICovCisgICAgdWludDMyX3QgICAgICAgbW9kZTsgICAgICAgICAvKiBYRU5fRE9NQ1RMX1ZN
X0VWRU5UX09QXyogKi8KIAogICAgIHVpbnQzMl90IHBvcnQ7ICAgICAgICAgICAgICAvKiBPVVQ6
IGV2ZW50IGNoYW5uZWwgZm9yIHJpbmcgKi8KIH07Ci10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3Rs
X21lbV9ldmVudF9vcCB4ZW5fZG9tY3RsX21lbV9ldmVudF9vcF90OwotREVGSU5FX1hFTl9HVUVT
VF9IQU5ETEUoeGVuX2RvbWN0bF9tZW1fZXZlbnRfb3BfdCk7CiAKIC8qCiAgKiBNZW1vcnkgc2hh
cmluZyBvcGVyYXRpb25zCkBAIC04NDIsOCArODM5LDYgQEAgc3RydWN0IHhlbl9kb21jdGxfbWVt
X3NoYXJpbmdfb3AgewogICAgICAgICB1aW50OF90IGVuYWJsZTsgICAgICAgICAgICAgICAgICAg
LyogQ09OVFJPTCAqLwogICAgIH0gdTsKIH07Ci10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX21l
bV9zaGFyaW5nX29wIHhlbl9kb21jdGxfbWVtX3NoYXJpbmdfb3BfdDsKLURFRklORV9YRU5fR1VF
U1RfSEFORExFKHhlbl9kb21jdGxfbWVtX3NoYXJpbmdfb3BfdCk7CiAKIHN0cnVjdCB4ZW5fZG9t
Y3RsX2F1ZGl0X3AybSB7CiAgICAgLyogT1VUIGVycm9yIGNvdW50cyAqLwpAQCAtODUxLDE0ICs4
NDYsMTAgQEAgc3RydWN0IHhlbl9kb21jdGxfYXVkaXRfcDJtIHsKICAgICB1aW50NjRfdCBtMnBf
YmFkOwogICAgIHVpbnQ2NF90IHAybV9iYWQ7CiB9OwotdHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0
bF9hdWRpdF9wMm0geGVuX2RvbWN0bF9hdWRpdF9wMm1fdDsKLURFRklORV9YRU5fR1VFU1RfSEFO
RExFKHhlbl9kb21jdGxfYXVkaXRfcDJtX3QpOwogCiBzdHJ1Y3QgeGVuX2RvbWN0bF9zZXRfdmly
cV9oYW5kbGVyIHsKICAgICB1aW50MzJfdCB2aXJxOyAvKiBJTiAqLwogfTsKLXR5cGVkZWYgc3Ry
dWN0IHhlbl9kb21jdGxfc2V0X3ZpcnFfaGFuZGxlciB4ZW5fZG9tY3RsX3NldF92aXJxX2hhbmRs
ZXJfdDsKLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9kb21jdGxfc2V0X3ZpcnFfaGFuZGxl
cl90KTsKIAogI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKIC8q
IFhFTl9ET01DVExfc2V0dmNwdWV4dHN0YXRlICovCkBAIC04ODEsOCArODcyLDYgQEAgc3RydWN0
IHhlbl9kb21jdGxfdmNwdWV4dHN0YXRlIHsKICAgICB1aW50NjRfYWxpZ25lZF90ICAgICAgICAg
c2l6ZTsKICAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQ2NCkgYnVmZmVyOwogfTsKLXR5cGVk
ZWYgc3RydWN0IHhlbl9kb21jdGxfdmNwdWV4dHN0YXRlIHhlbl9kb21jdGxfdmNwdWV4dHN0YXRl
X3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9tY3RsX3ZjcHVleHRzdGF0ZV90KTsK
ICNlbmRpZgogCiAvKiBYRU5fRE9NQ1RMX3NldF9hY2Nlc3NfcmVxdWlyZWQ6IHNldHMgd2hldGhl
ciBhIG1lbW9yeSBldmVudCBsaXN0ZW5lcgpAQCAtODkyLDE0ICs4ODEsMTAgQEAgREVGSU5FX1hF
Tl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF92Y3B1ZXh0c3RhdGVfdCk7CiBzdHJ1Y3QgeGVuX2Rv
bWN0bF9zZXRfYWNjZXNzX3JlcXVpcmVkIHsKICAgICB1aW50OF90IGFjY2Vzc19yZXF1aXJlZDsK
IH07Ci10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX3NldF9hY2Nlc3NfcmVxdWlyZWQgeGVuX2Rv
bWN0bF9zZXRfYWNjZXNzX3JlcXVpcmVkX3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5f
ZG9tY3RsX3NldF9hY2Nlc3NfcmVxdWlyZWRfdCk7CiAKIHN0cnVjdCB4ZW5fZG9tY3RsX3NldF9i
cm9rZW5fcGFnZV9wMm0gewogICAgIHVpbnQ2NF9hbGlnbmVkX3QgcGZuOwogfTsKLXR5cGVkZWYg
c3RydWN0IHhlbl9kb21jdGxfc2V0X2Jyb2tlbl9wYWdlX3AybSB4ZW5fZG9tY3RsX3NldF9icm9r
ZW5fcGFnZV9wMm1fdDsKLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9kb21jdGxfc2V0X2Jy
b2tlbl9wYWdlX3AybV90KTsKIAogLyoKICAqIFhFTl9ET01DVExfc2V0X21heF9ldnRjaG46IHNl
dHMgdGhlIG1heGltdW0gZXZlbnQgY2hhbm5lbCBwb3J0CkBAIC05MDksOCArODk0LDYgQEAgREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9zZXRfYnJva2VuX3BhZ2VfcDJtX3QpOwog
c3RydWN0IHhlbl9kb21jdGxfc2V0X21heF9ldnRjaG4gewogICAgIHVpbnQzMl90IG1heF9wb3J0
OwogfTsKLXR5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxfc2V0X21heF9ldnRjaG4geGVuX2RvbWN0
bF9zZXRfbWF4X2V2dGNobl90OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9z
ZXRfbWF4X2V2dGNobl90KTsKIAogLyoKICAqIEFSTTogQ2xlYW4gYW5kIGludmFsaWRhdGUgY2Fj
aGVzIGFzc29jaWF0ZWQgd2l0aCBnaXZlbiByZWdpb24gb2YKQEAgLTkyMCw4ICs5MDMsNiBAQCBz
dHJ1Y3QgeGVuX2RvbWN0bF9jYWNoZWZsdXNoIHsKICAgICAvKiBJTjogcGFnZSByYW5nZSB0byBm
bHVzaC4gKi8KICAgICB4ZW5fcGZuX3Qgc3RhcnRfcGZuLCBucl9wZm5zOwogfTsKLXR5cGVkZWYg
c3RydWN0IHhlbl9kb21jdGxfY2FjaGVmbHVzaCB4ZW5fZG9tY3RsX2NhY2hlZmx1c2hfdDsKLURF
RklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9kb21jdGxfY2FjaGVmbHVzaF90KTsKIAogI2lmIGRl
ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKIHN0cnVjdCB4ZW5fZG9tY3Rs
X3ZjcHVfbXNyIHsKQEAgLTk1NCwzNiArOTM1LDQyIEBAIHN0cnVjdCB4ZW5fZG9tY3RsX3ZjcHVf
bXNycyB7CiAgICAgdWludDMyX3QgbXNyX2NvdW50OyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8qIElOL09VVCAqLwogICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQoeGVuX2RvbWN0bF92Y3B1
X21zcl90KSBtc3JzOyAvKiBJTi9PVVQgKi8KIH07Ci10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3Rs
X3ZjcHVfbXNycyB4ZW5fZG9tY3RsX3ZjcHVfbXNyc190OwotREVGSU5FX1hFTl9HVUVTVF9IQU5E
TEUoeGVuX2RvbWN0bF92Y3B1X21zcnNfdCk7CiAjZW5kaWYKIAotLyoKLSAqIFVzZSBpbiBYRU5f
RE9NQ1RMX3NldHZudW1haW5mbyB0byBzZXQKLSAqIHZOVU1BIGRvbWFpbiB0b3BvbG9neS4KLSAq
LworLyogWEVOX0RPTUNUTF9zZXR2bnVtYWluZm86IHNwZWNpZmllcyBhIHZpcnR1YWwgTlVNQSB0
b3BvbG9neSBmb3IgdGhlIGd1ZXN0ICovCiBzdHJ1Y3QgeGVuX2RvbWN0bF92bnVtYSB7CisgICAg
LyogSU46IG51bWJlciBvZiB2TlVNQSBub2RlcyB0byBzZXR1cC4gU2hhbGwgYmUgZ3JlYXRlciB0
aGFuIDAgKi8KICAgICB1aW50MzJfdCBucl92bm9kZXM7CisgICAgLyogSU46IG51bWJlciBvZiBt
ZW1vcnkgcmFuZ2VzIHRvIHNldHVwICovCiAgICAgdWludDMyX3QgbnJfdm1lbXJhbmdlczsKKyAg
ICAvKgorICAgICAqIElOOiBudW1iZXIgb2YgdkNQVXMgb2YgdGhlIGRvbWFpbiAodXNlZCBhcyBz
aXplIG9mIHRoZSB2Y3B1X3RvX3Zub2RlCisgICAgICogYXJyYXkgZGVjbGFyZWQgYmVsb3cpLiBT
aGFsbCBiZSBlcXVhbCB0byB0aGUgZG9tYWluJ3MgbWF4X3ZjcHVzLgorICAgICAqLwogICAgIHVp
bnQzMl90IG5yX3ZjcHVzOwotICAgIHVpbnQzMl90IHBhZDsKKyAgICB1aW50MzJfdCBwYWQ7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG11c3QgYmUgemVybyAqLworCisgICAg
LyoKKyAgICAgKiBJTjogYXJyYXkgZm9yIHNwZWNpZnlpbmcgdGhlIGRpc3RhbmNlcyBvZiB0aGUg
dk5VTUEgbm9kZXMKKyAgICAgKiBiZXR3ZWVuIGVhY2ggb3RoZXJzLiBTaGFsbCBoYXZlIG5yX3Zu
b2Rlcypucl92bm9kZXMgZWxlbWVudHMuCisgICAgICovCiAgICAgWEVOX0dVRVNUX0hBTkRMRV82
NCh1aW50KSB2ZGlzdGFuY2U7CisgICAgLyoKKyAgICAgKiBJTjogYXJyYXkgZm9yIHNwZWNpZnlp
bmcgdG8gd2hhdCB2TlVNQSBub2RlIGVhY2ggdkNQVSBiZWxvbmdzLgorICAgICAqIFNoYWxsIGhh
dmUgbnJfdmNwdXMgZWxlbWVudHMuCisgICAgICovCiAgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh1
aW50KSB2Y3B1X3RvX3Zub2RlOwotCiAgICAgLyoKLSAgICAgKiB2bm9kZXMgdG8gcGh5c2ljYWwg
TlVNQSBub2RlcyBtYXNrLgotICAgICAqIFRoaXMga2VwdCBvbiBwZXItZG9tYWluIGJhc2lzIGZv
cgotICAgICAqIGludGVyZXN0ZWQgY29uc3VtZXJzLCBzdWNoIGFzIG51bWEgYXdhcmUgYmFsbG9v
bmluZy4KKyAgICAgKiBJTjogYXJyYXkgZm9yIHNwZWNpZnlpbmcgb24gd2hhdCBwaHlzaWNhbCBO
VU1BIG5vZGUgZWFjaCB2TlVNQQorICAgICAqIG5vZGUgaXMgcGxhY2VkLiBTaGFsbCBoYXZlIG5y
X3Zub2RlcyBlbGVtZW50cy4KICAgICAgKi8KICAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQp
IHZub2RlX3RvX3Bub2RlOwotCiAgICAgLyoKLSAgICAgKiBtZW1vcnkgcmFnZXMgZm9yIGVhY2gg
dk5VTUEgbm9kZQorICAgICAqIElOOiBhcnJheSBmb3Igc3BlY2lmeWluZyB0aGUgbWVtb3J5IHJh
bmdlcy4gU2hhbGwgaGF2ZQorICAgICAqIG5yX3ZtZW1yYW5nZXMgZWxlbWVudHMuCiAgICAgICov
CiAgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh4ZW5fdm1lbXJhbmdlX3QpIHZtZW1yYW5nZTsKIH07
Ci10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX3ZudW1hIHhlbl9kb21jdGxfdm51bWFfdDsKLURF
RklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9kb21jdGxfdm51bWFfdCk7CiAKIHN0cnVjdCB4ZW5f
ZG9tY3RsX3Bzcl9jbXRfb3AgewogI2RlZmluZSBYRU5fRE9NQ1RMX1BTUl9DTVRfT1BfREVUQUNI
ICAgICAgICAgMApAQCAtOTkyLDggKzk3OSwxMjcgQEAgc3RydWN0IHhlbl9kb21jdGxfcHNyX2Nt
dF9vcCB7CiAgICAgdWludDMyX3QgY21kOwogICAgIHVpbnQzMl90IGRhdGE7CiB9OwotdHlwZWRl
ZiBzdHJ1Y3QgeGVuX2RvbWN0bF9wc3JfY210X29wIHhlbl9kb21jdGxfcHNyX2NtdF9vcF90Owot
REVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9wc3JfY210X29wX3QpOworCisvKiAg
WEVOX0RPTUNUTF9NT05JVE9SXyoKKyAqCisgKiBFbmFibGUvZGlzYWJsZSBtb25pdG9yaW5nIHZh
cmlvdXMgVk0gZXZlbnRzLgorICogVGhpcyBkb21jdGwgY29uZmlndXJlcyB3aGF0IGV2ZW50cyB3
aWxsIGJlIHJlcG9ydGVkIHRvIGhlbHBlciBhcHBzCisgKiB2aWEgdGhlIHJpbmcgYnVmZmVyICJN
T05JVE9SIi4gVGhlIHJpbmcgaGFzIHRvIGJlIGZpcnN0IGVuYWJsZWQKKyAqIHdpdGggdGhlIGRv
bWN0bCBYRU5fRE9NQ1RMX1ZNX0VWRU5UX09QX01PTklUT1IuCisgKgorICogR0VUX0NBUEFCSUxJ
VElFUyBjYW4gYmUgdXNlZCB0byBkZXRlcm1pbmUgd2hpY2ggb2YgdGhlc2UgZmVhdHVyZXMgaXMK
KyAqIGF2YWlsYWJsZSBvbiBhIGdpdmVuIHBsYXRmb3JtLgorICoKKyAqIE5PVElDRTogbWVtX2Fj
Y2VzcyBldmVudHMgYXJlIGFsc28gZGVsaXZlcmVkIHZpYSB0aGUgIk1PTklUT1IiIHJpbmcgYnVm
ZmVyOworICogaG93ZXZlciwgZW5hYmxpbmcvZGlzYWJsaW5nIHRob3NlIGV2ZW50cyBpcyBwZXJm
b3JtZWQgd2l0aCB0aGUgdXNlIG9mCisgKiBtZW1vcnlfb3AgaHlwZXJjYWxscyEKKyAqLworI2Rl
ZmluZSBYRU5fRE9NQ1RMX01PTklUT1JfT1BfRU5BQkxFICAgICAgICAgICAgMAorI2RlZmluZSBY
RU5fRE9NQ1RMX01PTklUT1JfT1BfRElTQUJMRSAgICAgICAgICAgMQorI2RlZmluZSBYRU5fRE9N
Q1RMX01PTklUT1JfT1BfR0VUX0NBUEFCSUxJVElFUyAgMgorI2RlZmluZSBYRU5fRE9NQ1RMX01P
TklUT1JfT1BfRU1VTEFURV9FQUNIX1JFUCAgMworCisjZGVmaW5lIFhFTl9ET01DVExfTU9OSVRP
Ul9FVkVOVF9XUklURV9DVFJMUkVHICAgICAgICAgMAorI2RlZmluZSBYRU5fRE9NQ1RMX01PTklU
T1JfRVZFTlRfTU9WX1RPX01TUiAgICAgICAgICAgIDEKKyNkZWZpbmUgWEVOX0RPTUNUTF9NT05J
VE9SX0VWRU5UX1NJTkdMRVNURVAgICAgICAgICAgICAyCisjZGVmaW5lIFhFTl9ET01DVExfTU9O
SVRPUl9FVkVOVF9TT0ZUV0FSRV9CUkVBS1BPSU5UICAgMworI2RlZmluZSBYRU5fRE9NQ1RMX01P
TklUT1JfRVZFTlRfR1VFU1RfUkVRVUVTVCAgICAgICAgIDQKKyNkZWZpbmUgWEVOX0RPTUNUTF9N
T05JVE9SX0VWRU5UX0RFQlVHX0VYQ0VQVElPTiAgICAgICA1CisjZGVmaW5lIFhFTl9ET01DVExf
TU9OSVRPUl9FVkVOVF9DUFVJRCAgICAgICAgICAgICAgICAgNgorI2RlZmluZSBYRU5fRE9NQ1RM
X01PTklUT1JfRVZFTlRfUFJJVklMRUdFRF9DQUxMICAgICAgIDcKKyNkZWZpbmUgWEVOX0RPTUNU
TF9NT05JVE9SX0VWRU5UX0lOVEVSUlVQVCAgICAgICAgICAgICA4CisjZGVmaW5lIFhFTl9ET01D
VExfTU9OSVRPUl9FVkVOVF9ERVNDX0FDQ0VTUyAgICAgICAgICAgOQorI2RlZmluZSBYRU5fRE9N
Q1RMX01PTklUT1JfRVZFTlRfRU1VTF9VTklNUExFTUVOVEVEICAgIDEwCisKK3N0cnVjdCB4ZW5f
ZG9tY3RsX21vbml0b3Jfb3AgeworICAgIHVpbnQzMl90IG9wOyAvKiBYRU5fRE9NQ1RMX01PTklU
T1JfT1BfKiAqLworCisgICAgLyoKKyAgICAgKiBXaGVuIHVzZWQgd2l0aCBFTkFCTEUvRElTQUJM
RSB0aGlzIGhhcyB0byBiZSBzZXQgdG8KKyAgICAgKiB0aGUgcmVxdWVzdGVkIFhFTl9ET01DVExf
TU9OSVRPUl9FVkVOVF8qIHZhbHVlLgorICAgICAqIFdpdGggR0VUX0NBUEFCSUxJVElFUyB0aGlz
IGZpZWxkIHJldHVybnMgYSBiaXRtYXAgb2YKKyAgICAgKiBldmVudHMgc3VwcG9ydGVkIGJ5IHRo
ZSBwbGF0Zm9ybSwgaW4gdGhlIGZvcm1hdAorICAgICAqICgxIDw8IFhFTl9ET01DVExfTU9OSVRP
Ul9FVkVOVF8qKS4KKyAgICAgKi8KKyAgICB1aW50MzJfdCBldmVudDsKKworICAgIC8qCisgICAg
ICogRnVydGhlciBvcHRpb25zIHdoZW4gaXNzdWluZyBYRU5fRE9NQ1RMX01PTklUT1JfT1BfRU5B
QkxFLgorICAgICAqLworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAg
IC8qIFdoaWNoIGNvbnRyb2wgcmVnaXN0ZXIgKi8KKyAgICAgICAgICAgIHVpbnQ4X3QgaW5kZXg7
CisgICAgICAgICAgICAvKiBQYXVzZSB2Q1BVIHVudGlsIHJlc3BvbnNlICovCisgICAgICAgICAg
ICB1aW50OF90IHN5bmM7CisgICAgICAgICAgICAvKiBTZW5kIGV2ZW50IG9ubHkgb24gYSBjaGFu
Z2Ugb2YgdmFsdWUgKi8KKyAgICAgICAgICAgIHVpbnQ4X3Qgb25jaGFuZ2Vvbmx5OworICAgICAg
ICAgICAgLyogQWxsaWdubWVudCBwYWRkaW5nICovCisgICAgICAgICAgICB1aW50OF90IHBhZDE7
CisgICAgICAgICAgICB1aW50MzJfdCBwYWQyOworICAgICAgICAgICAgLyoKKyAgICAgICAgICAg
ICAqIFNlbmQgZXZlbnQgb25seSBpZiB0aGUgY2hhbmdlZCBiaXQgaW4gdGhlIGNvbnRyb2wgcmVn
aXN0ZXIKKyAgICAgICAgICAgICAqIGlzIG5vdCBtYXNrZWQuCisgICAgICAgICAgICAgKi8KKyAg
ICAgICAgICAgIHVpbnQ2NF9hbGlnbmVkX3QgYml0bWFzazsKKyAgICAgICAgfSBtb3ZfdG9fY3I7
CisKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIHVpbnQzMl90IG1zcjsKKyAgICAgICAg
fSBtb3ZfdG9fbXNyOworCisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICAvKiBQYXVzZSB2
Q1BVIHVudGlsIHJlc3BvbnNlICovCisgICAgICAgICAgICB1aW50OF90IHN5bmM7CisgICAgICAg
ICAgICB1aW50OF90IGFsbG93X3VzZXJzcGFjZTsKKyAgICAgICAgfSBndWVzdF9yZXF1ZXN0Owor
CisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICAvKiBQYXVzZSB2Q1BVIHVudGlsIHJlc3Bv
bnNlICovCisgICAgICAgICAgICB1aW50OF90IHN5bmM7CisgICAgICAgIH0gZGVidWdfZXhjZXB0
aW9uOworICAgIH0gdTsKK307CisKK3N0cnVjdCB4ZW5fZG9tY3RsX3Bzcl9jYXRfb3AgeworI2Rl
ZmluZSBYRU5fRE9NQ1RMX1BTUl9DQVRfT1BfU0VUX0wzX0NCTSAgICAgMAorI2RlZmluZSBYRU5f
RE9NQ1RMX1BTUl9DQVRfT1BfR0VUX0wzX0NCTSAgICAgMQorI2RlZmluZSBYRU5fRE9NQ1RMX1BT
Ul9DQVRfT1BfU0VUX0wzX0NPREUgICAgMgorI2RlZmluZSBYRU5fRE9NQ1RMX1BTUl9DQVRfT1Bf
U0VUX0wzX0RBVEEgICAgMworI2RlZmluZSBYRU5fRE9NQ1RMX1BTUl9DQVRfT1BfR0VUX0wzX0NP
REUgICAgNAorI2RlZmluZSBYRU5fRE9NQ1RMX1BTUl9DQVRfT1BfR0VUX0wzX0RBVEEgICAgNQor
I2RlZmluZSBYRU5fRE9NQ1RMX1BTUl9DQVRfT1BfU0VUX0wyX0NCTSAgICAgNgorI2RlZmluZSBY
RU5fRE9NQ1RMX1BTUl9DQVRfT1BfR0VUX0wyX0NCTSAgICAgNworICAgIHVpbnQzMl90IGNtZDsg
ICAgICAgLyogSU46IFhFTl9ET01DVExfUFNSX0NBVF9PUF8qICovCisgICAgdWludDMyX3QgdGFy
Z2V0OyAgICAvKiBJTiAqLworICAgIHVpbnQ2NF90IGRhdGE7ICAgICAgLyogSU4vT1VUICovCit9
OworCitzdHJ1Y3QgeGVuX2RvbWN0bF9zZXRfZ250dGFiX2xpbWl0cyB7CisgICAgdWludDMyX3Qg
Z3JhbnRfZnJhbWVzOyAgICAgLyogSU4gKi8KKyAgICB1aW50MzJfdCBtYXB0cmFja19mcmFtZXM7
ICAvKiBJTiAqLworfTsKKworLyogWEVOX0RPTUNUTF92dWFydF9vcCAqLworc3RydWN0IHhlbl9k
b21jdGxfdnVhcnRfb3AgeworI2RlZmluZSBYRU5fRE9NQ1RMX1ZVQVJUX09QX0lOSVQgIDAKKyAg
ICAgICAgdWludDMyX3QgY21kOyAgICAgICAgICAgLyogWEVOX0RPTUNUTF9WVUFSVF9PUF8qICov
CisjZGVmaW5lIFhFTl9ET01DVExfVlVBUlRfVFlQRV9WUEwwMTEgMAorICAgICAgICB1aW50MzJf
dCB0eXBlOyAgICAgICAgICAvKiBJTiAtIHR5cGUgb2YgdnVhcnQuCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqICAgICAgQ3VycmVudGx5IG9ubHkgdnBsMDExIHN1cHBvcnRlZC4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgIHVpbnQ2NF9hbGln
bmVkX3QgIGdmbjsgIC8qIElOIC0gZ3Vlc3QgZ2ZuIHRvIGJlIHVzZWQgYXMgYQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgIHJpbmcgYnVmZmVyLgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgZG9taWRfdCBjb25zb2xlX2RvbWlkOyAg
LyogSU4gLSBkb21pZCBvZiBkb21haW4gcnVubmluZyB0aGUKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICogICAgICBiYWNrZW5kIGNvbnNvbGUuCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqLworICAgICAgICB1aW50OF90IHBhZFsyXTsKKyAgICAgICAgZXZ0Y2hu
X3BvcnRfdCBldnRjaG47ICAgLyogT1VUIC0gcmVtb3RlIHBvcnQgb2YgdGhlIGV2ZW50CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgIGNoYW5uZWwgdXNlZCBmb3Igc2Vu
ZGluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICByaW5nIGJ1ZmZl
ciBldmVudHMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworfTsKIAogc3Ry
dWN0IHhlbl9kb21jdGwgewogICAgIHVpbnQzMl90IGNtZDsKQEAgLTEwMDMsOCArMTEwOSw4IEBA
IHN0cnVjdCB4ZW5fZG9tY3RsIHsKICNkZWZpbmUgWEVOX0RPTUNUTF91bnBhdXNlZG9tYWluICAg
ICAgICAgICAgICAgICAgNAogI2RlZmluZSBYRU5fRE9NQ1RMX2dldGRvbWFpbmluZm8gICAgICAg
ICAgICAgICAgICA1CiAjZGVmaW5lIFhFTl9ET01DVExfZ2V0bWVtbGlzdCAgICAgICAgICAgICAg
ICAgICAgIDYKLSNkZWZpbmUgWEVOX0RPTUNUTF9nZXRwYWdlZnJhbWVpbmZvICAgICAgICAgICAg
ICAgNwotI2RlZmluZSBYRU5fRE9NQ1RMX2dldHBhZ2VmcmFtZWluZm8yICAgICAgICAgICAgICA4
CisvKiAjZGVmaW5lIFhFTl9ET01DVExfZ2V0cGFnZWZyYW1laW5mbyAgICAgICAgICAgIDcgT2Jz
b2xldGUgLSB1c2UgZ2V0cGFnZWZyYW1laW5mbzMgKi8KKy8qICNkZWZpbmUgWEVOX0RPTUNUTF9n
ZXRwYWdlZnJhbWVpbmZvMiAgICAgICAgICAgOCBPYnNvbGV0ZSAtIHVzZSBnZXRwYWdlZnJhbWVp
bmZvMyAqLwogI2RlZmluZSBYRU5fRE9NQ1RMX3NldHZjcHVhZmZpbml0eSAgICAgICAgICAgICAg
ICA5CiAjZGVmaW5lIFhFTl9ET01DVExfc2hhZG93X29wICAgICAgICAgICAgICAgICAgICAgMTAK
ICNkZWZpbmUgWEVOX0RPTUNUTF9tYXhfbWVtICAgICAgICAgICAgICAgICAgICAgICAxMQpAQCAt
MTA0OSw3ICsxMTU1LDcgQEAgc3RydWN0IHhlbl9kb21jdGwgewogI2RlZmluZSBYRU5fRE9NQ1RM
X3N1cHByZXNzX3NwdXJpb3VzX3BhZ2VfZmF1bHRzIDUzCiAjZGVmaW5lIFhFTl9ET01DVExfZGVi
dWdfb3AgICAgICAgICAgICAgICAgICAgICAgNTQKICNkZWZpbmUgWEVOX0RPTUNUTF9nZXRodm1j
b250ZXh0X3BhcnRpYWwgICAgICAgICA1NQotI2RlZmluZSBYRU5fRE9NQ1RMX21lbV9ldmVudF9v
cCAgICAgICAgICAgICAgICAgIDU2CisjZGVmaW5lIFhFTl9ET01DVExfdm1fZXZlbnRfb3AgICAg
ICAgICAgICAgICAgICAgNTYKICNkZWZpbmUgWEVOX0RPTUNUTF9tZW1fc2hhcmluZ19vcCAgICAg
ICAgICAgICAgICA1NwogI2RlZmluZSBYRU5fRE9NQ1RMX2Rpc2FibGVfbWlncmF0ZSAgICAgICAg
ICAgICAgIDU4CiAjZGVmaW5lIFhFTl9ET01DVExfZ2V0dHNjaW5mbyAgICAgICAgICAgICAgICAg
ICAgNTkKQEAgLTEwNjksNyArMTE3NSwxMSBAQCBzdHJ1Y3QgeGVuX2RvbWN0bCB7CiAjZGVmaW5l
IFhFTl9ET01DVExfc2V0X3ZjcHVfbXNycyAgICAgICAgICAgICAgICAgNzMKICNkZWZpbmUgWEVO
X0RPTUNUTF9zZXR2bnVtYWluZm8gICAgICAgICAgICAgICAgICA3NAogI2RlZmluZSBYRU5fRE9N
Q1RMX3Bzcl9jbXRfb3AgICAgICAgICAgICAgICAgICAgIDc1Ci0jZGVmaW5lIFhFTl9ET01DVExf
YXJtX2NvbmZpZ3VyZV9kb21haW4gICAgICAgICAgNzYKKyNkZWZpbmUgWEVOX0RPTUNUTF9tb25p
dG9yX29wICAgICAgICAgICAgICAgICAgICA3NworI2RlZmluZSBYRU5fRE9NQ1RMX3Bzcl9jYXRf
b3AgICAgICAgICAgICAgICAgICAgIDc4CisjZGVmaW5lIFhFTl9ET01DVExfc29mdF9yZXNldCAg
ICAgICAgICAgICAgICAgICAgNzkKKyNkZWZpbmUgWEVOX0RPTUNUTF9zZXRfZ250dGFiX2xpbWl0
cyAgICAgICAgICAgICA4MAorI2RlZmluZSBYRU5fRE9NQ1RMX3Z1YXJ0X29wICAgICAgICAgICAg
ICAgICAgICAgIDgxCiAjZGVmaW5lIFhFTl9ET01DVExfZ2Ric3hfZ3Vlc3RtZW1pbyAgICAgICAg
ICAgIDEwMDAKICNkZWZpbmUgWEVOX0RPTUNUTF9nZGJzeF9wYXVzZXZjcHUgICAgICAgICAgICAg
MTAwMQogI2RlZmluZSBYRU5fRE9NQ1RMX2dkYnN4X3VucGF1c2V2Y3B1ICAgICAgICAgICAxMDAy
CkBAIC0xMDc4LDEzICsxMTg4LDggQEAgc3RydWN0IHhlbl9kb21jdGwgewogICAgIGRvbWlkX3Qg
IGRvbWFpbjsKICAgICB1bmlvbiB7CiAgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX2NyZWF0ZWRv
bWFpbiAgICAgIGNyZWF0ZWRvbWFpbjsKLSNpZiBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQo
X19hYXJjaDY0X18pCi0gICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX2FybV9jb25maWd1cmVkb21h
aW4gY29uZmlndXJlZG9tYWluOwotI2VuZGlmCiAgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX2dl
dGRvbWFpbmluZm8gICAgIGdldGRvbWFpbmluZm87CiAgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3Rs
X2dldG1lbWxpc3QgICAgICAgIGdldG1lbWxpc3Q7Ci0gICAgICAgIHN0cnVjdCB4ZW5fZG9tY3Rs
X2dldHBhZ2VmcmFtZWluZm8gIGdldHBhZ2VmcmFtZWluZm87Ci0gICAgICAgIHN0cnVjdCB4ZW5f
ZG9tY3RsX2dldHBhZ2VmcmFtZWluZm8yIGdldHBhZ2VmcmFtZWluZm8yOwogICAgICAgICBzdHJ1
Y3QgeGVuX2RvbWN0bF9nZXRwYWdlZnJhbWVpbmZvMyBnZXRwYWdlZnJhbWVpbmZvMzsKICAgICAg
ICAgc3RydWN0IHhlbl9kb21jdGxfbm9kZWFmZmluaXR5ICAgICAgbm9kZWFmZmluaXR5OwogICAg
ICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF92Y3B1YWZmaW5pdHkgICAgICB2Y3B1YWZmaW5pdHk7CkBA
IC0xMTE3LDcgKzEyMjIsNyBAQCBzdHJ1Y3QgeGVuX2RvbWN0bCB7CiAgICAgICAgIHN0cnVjdCB4
ZW5fZG9tY3RsX3NldF90YXJnZXQgICAgICAgIHNldF90YXJnZXQ7CiAgICAgICAgIHN0cnVjdCB4
ZW5fZG9tY3RsX3N1YnNjcmliZSAgICAgICAgIHN1YnNjcmliZTsKICAgICAgICAgc3RydWN0IHhl
bl9kb21jdGxfZGVidWdfb3AgICAgICAgICAgZGVidWdfb3A7Ci0gICAgICAgIHN0cnVjdCB4ZW5f
ZG9tY3RsX21lbV9ldmVudF9vcCAgICAgIG1lbV9ldmVudF9vcDsKKyAgICAgICAgc3RydWN0IHhl
bl9kb21jdGxfdm1fZXZlbnRfb3AgICAgICAgdm1fZXZlbnRfb3A7CiAgICAgICAgIHN0cnVjdCB4
ZW5fZG9tY3RsX21lbV9zaGFyaW5nX29wICAgIG1lbV9zaGFyaW5nX29wOwogI2lmIGRlZmluZWQo
X19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKICAgICAgICAgc3RydWN0IHhlbl9kb21j
dGxfY3B1aWQgICAgICAgICAgICAgY3B1aWQ7CkBAIC0xMTM1LDYgKzEyNDAsMTAgQEAgc3RydWN0
IHhlbl9kb21jdGwgewogICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9nZGJzeF9kb21zdGF0dXMg
ICBnZGJzeF9kb21zdGF0dXM7CiAgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX3ZudW1hICAgICAg
ICAgICAgIHZudW1hOwogICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9wc3JfY210X29wICAgICAg
ICBwc3JfY210X29wOworICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9tb25pdG9yX29wICAgICAg
ICBtb25pdG9yX29wOworICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9wc3JfY2F0X29wICAgICAg
ICBwc3JfY2F0X29wOworICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9zZXRfZ250dGFiX2xpbWl0
cyBzZXRfZ250dGFiX2xpbWl0czsKKyAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfdnVhcnRfb3Ag
ICAgICAgICAgdnVhcnRfb3A7CiAgICAgICAgIHVpbnQ4X3QgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhZFsxMjhdOwogICAgIH0gdTsKIH07CmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9l
bGZub3RlLmggYi9pbmNsdWRlL3hlbi9lbGZub3RlLmgKaW5kZXggMzUzOTg1Zi4uOTM2YWE2NSAx
MDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4vZWxmbm90ZS5oCisrKyBiL2luY2x1ZGUveGVuL2VsZm5v
dGUuaApAQCAtMTczLDcgKzE3Myw5IEBACiAgKiBUaGUgKG5vbi1kZWZhdWx0KSBsb2NhdGlvbiB0
aGUgaW5pdGlhbCBwaHlzLXRvLW1hY2hpbmUgbWFwIHNob3VsZCBiZQogICogcGxhY2VkIGF0IGJ5
IHRoZSBoeXBlcnZpc29yIChEb20wKSBvciB0aGUgdG9vbHMgKERvbVUpLgogICogVGhlIGtlcm5l
bCBtdXN0IGJlIHByZXBhcmVkIGZvciB0aGlzIG1hcHBpbmcgdG8gYmUgZXN0YWJsaXNoZWQgdXNp
bmcKLSAqIGxhcmdlIHBhZ2VzLCBkZXNwaXRlIHN1Y2ggb3RoZXJ3aXNlIG5vdCBiZWluZyBhdmFp
bGFibGUgdG8gZ3Vlc3RzLgorICogbGFyZ2UgcGFnZXMsIGRlc3BpdGUgc3VjaCBvdGhlcndpc2Ug
bm90IGJlaW5nIGF2YWlsYWJsZSB0byBndWVzdHMuIE5vdGUKKyAqIHRoYXQgdGhlc2UgbGFyZ2Ug
cGFnZXMgbWF5IGJlIG1pc2FsaWduZWQgaW4gUEZOIHNwYWNlICh0aGV5J2xsIG9idmlvdXNseQor
ICogYmUgYWxpZ25lZCBpbiBNRk4gYW5kIHZpcnR1YWwgYWRkcmVzcyBzcGFjZXMpLgogICogVGhl
IGtlcm5lbCBtdXN0IGFsc28gYmUgYWJsZSB0byBoYW5kbGUgdGhlIHBhZ2UgdGFibGUgcGFnZXMg
dXNlZCBmb3IKICAqIHRoaXMgbWFwcGluZyBub3QgYmVpbmcgYWNjZXNzaWJsZSB0aHJvdWdoIHRo
ZSBpbml0aWFsIG1hcHBpbmcuCiAgKiAoT25seSB4ODYtNjQgc3VwcG9ydHMgdGhpcyBhdCBwcmVz
ZW50LikKZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2Vycm5vLmggYi9pbmNsdWRlL3hlbi9lcnJu
by5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwNWMxMTIKLS0tIC9kZXYv
bnVsbAorKysgYi9pbmNsdWRlL3hlbi9lcnJuby5oCkBAIC0wLDAgKzEsMTI0IEBACisvKgorICog
VGhlcmUgYXJlIHR3byBleHBlY3RlZCB3YXlzIG9mIGluY2x1ZGluZyB0aGlzIGhlYWRlci4KKyAq
CisgKiAxKSBUaGUgImRlZmF1bHQiIGNhc2UgKGV4cGVjdGVkIGZyb20gdG9vbHMgZXRjKS4KKyAq
CisgKiBTaW1wbHkgI2luY2x1ZGUgPHB1YmxpYy9lcnJuby5oPgorICoKKyAqIEluIHRoaXMgY2ly
Y3Vtc3RhbmNlLCBub3JtYWwgaGVhZGVyIGd1YXJkcyBhcHBseSBhbmQgdGhlIGluY2x1ZGVyIHNo
YWxsIGdldAorICogYW4gZW51bWVyYXRpb24gaW4gdGhlIFhFTl94eHggbmFtZXNwYWNlLCBhcHBy
b3ByaWF0ZSBmb3IgQyBvciBhc3NlbWJseS4KKyAqCisgKiAyKSBUaGUgc3BlY2lhbCBjYXNlIHdo
ZXJlIHRoZSBpbmNsdWRlciBwcm92aWRlcyBhIFhFTl9FUlJOTygpIGluIHNjb3BlLgorICoKKyAq
IEluIHRoaXMgY2FzZSwgbm8gaW5jbHVzaW9uIGd1YXJkcyBhcHBseSBhbmQgdGhlIGNhbGxlciBp
cyByZXNwb25zaWJsZSBmb3IKKyAqIHRoZWlyIFhFTl9FUlJOTygpIGJlaW5nIGFwcHJvcHJpYXRl
IGluIHRoZSBpbmNsdWRlZCBjb250ZXh0LiAgVGhlIGhlYWRlcgorICogd2lsbCB1bmlsYXRlcmFs
bHkgI3VuZGVmIFhFTl9FUlJOTygpLgorICovCisKKyNpZm5kZWYgWEVOX0VSUk5PCisKKy8qCisg
KiBJbmNsdWRlciBoYXMgbm90IHByb3ZpZGVkIGEgY3VzdG9tIFhFTl9FUlJOTygpLiAgQXJyYW5n
ZSBmb3Igbm9ybWFsIGhlYWRlcgorICogZ3VhcmRzLCBhbiBhdXRvbWF0aWMgZW51bSAoZm9yIEMg
Y29kZSkgYW5kIGNvbnN0YW50cyBpbiB0aGUgWEVOX3h4eAorICogbmFtZXNwYWNlLgorICovCisj
aWZuZGVmIF9fWEVOX1BVQkxJQ19FUlJOT19IX18KKyNkZWZpbmUgX19YRU5fUFVCTElDX0VSUk5P
X0hfXworCisjZGVmaW5lIFhFTl9FUlJOT19ERUZBVUxUX0lOQ0xVREUKKworI2lmbmRlZiBfX0FT
U0VNQkxZX18KKworI2RlZmluZSBYRU5fRVJSTk8obmFtZSwgdmFsdWUpIFhFTl8jI25hbWUgPSB2
YWx1ZSwKK2VudW0geGVuX2Vycm5vIHsKKworI2VsaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05f
XyA8IDB4MDAwNDA3MDAKKworI2RlZmluZSBYRU5fRVJSTk8obmFtZSwgdmFsdWUpIC5lcXUgWEVO
XyMjbmFtZSwgdmFsdWUKKworI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLworCisjZW5kaWYgLyog
X19YRU5fUFVCTElDX0VSUk5PX0hfXyAqLworI2VuZGlmIC8qICFYRU5fRVJSTk8gKi8KKworLyog
YCBlbnVtIG5lZ19lcnJub3ZhbCB7ICBbIC1FZm9vIGZvciBlYWNoIEVmb28gaW4gdGhlIGxpc3Qg
YmVsb3cgXSAgfSAqLworLyogYCBlbnVtIGVycm5vdmFsIHsgKi8KKworI2lmZGVmIFhFTl9FUlJO
TworCisvKgorICogVmFsdWVzIG9yaWdpbmF0aW5nIGZyb20geDg2IExpbnV4LiBQbGVhc2UgY29u
c2lkZXIgdXNpbmcgcmVzcGVjdGl2ZQorICogdmFsdWVzIHdoZW4gYWRkaW5nIG5ldyBkZWZpbml0
aW9ucyBoZXJlLgorICoKKyAqIFRoZSBzZXQgb2YgaWRlbnRpZmllcnMgdG8gYmUgYWRkZWQgaGVy
ZSBzaG91bGRuJ3QgZXh0ZW5kIGJleW9uZCB3aGF0CisgKiBQT1NJWCBtYW5kYXRlcyAoc2VlIGUu
Zy4KKyAqIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy85Njk5OTE5Nzk5L2Jh
c2VkZWZzL2Vycm5vLmguaHRtbCkKKyAqIHdpdGggdGhlIGV4Y2VwdGlvbiB0aGF0IHdlIHN1cHBv
cnQgc29tZSBvcHRpb25hbCAoWFNSKSB2YWx1ZXMKKyAqIHNwZWNpZmllZCB0aGVyZSAoYnV0IG5v
IG5ldyBvbmVzIHNob3VsZCBiZSBhZGRlZCkuCisgKi8KKworWEVOX0VSUk5PKEVQRVJNLAkgMSkJ
LyogT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgKi8KK1hFTl9FUlJOTyhFTk9FTlQsCSAyKQkvKiBO
byBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5ICovCitYRU5fRVJSTk8oRVNSQ0gsCSAzKQkvKiBObyBz
dWNoIHByb2Nlc3MgKi8KKyNpZmRlZiBfX1hFTl9fIC8qIEludGVybmFsIG9ubHksIHNob3VsZCBu
ZXZlciBiZSBleHBvc2VkIHRvIHRoZSBndWVzdC4gKi8KK1hFTl9FUlJOTyhFSU5UUiwJIDQpCS8q
IEludGVycnVwdGVkIHN5c3RlbSBjYWxsICovCisjZW5kaWYKK1hFTl9FUlJOTyhFSU8sCQkgNSkJ
LyogSS9PIGVycm9yICovCitYRU5fRVJSTk8oRU5YSU8sCSA2KQkvKiBObyBzdWNoIGRldmljZSBv
ciBhZGRyZXNzICovCitYRU5fRVJSTk8oRTJCSUcsCSA3KQkvKiBBcmcgbGlzdCB0b28gbG9uZyAq
LworWEVOX0VSUk5PKEVOT0VYRUMsCSA4KQkvKiBFeGVjIGZvcm1hdCBlcnJvciAqLworWEVOX0VS
Uk5PKEVCQURGLAkgOSkJLyogQmFkIGZpbGUgbnVtYmVyICovCitYRU5fRVJSTk8oRUNISUxELAkx
MCkJLyogTm8gY2hpbGQgcHJvY2Vzc2VzICovCitYRU5fRVJSTk8oRUFHQUlOLAkxMSkJLyogVHJ5
IGFnYWluICovCitYRU5fRVJSTk8oRVdPVUxEQkxPQ0ssCTExKQkvKiBPcGVyYXRpb24gd291bGQg
YmxvY2suICBBbGlhc2VzIEVBR0FJTiAqLworWEVOX0VSUk5PKEVOT01FTSwJMTIpCS8qIE91dCBv
ZiBtZW1vcnkgKi8KK1hFTl9FUlJOTyhFQUNDRVMsCTEzKQkvKiBQZXJtaXNzaW9uIGRlbmllZCAq
LworWEVOX0VSUk5PKEVGQVVMVCwJMTQpCS8qIEJhZCBhZGRyZXNzICovCitYRU5fRVJSTk8oRUJV
U1ksCTE2KQkvKiBEZXZpY2Ugb3IgcmVzb3VyY2UgYnVzeSAqLworWEVOX0VSUk5PKEVFWElTVCwJ
MTcpCS8qIEZpbGUgZXhpc3RzICovCitYRU5fRVJSTk8oRVhERVYsCTE4KQkvKiBDcm9zcy1kZXZp
Y2UgbGluayAqLworWEVOX0VSUk5PKEVOT0RFViwJMTkpCS8qIE5vIHN1Y2ggZGV2aWNlICovCitY
RU5fRVJSTk8oRUlTRElSLAkyMSkJLyogSXMgYSBkaXJlY3RvcnkgKi8KK1hFTl9FUlJOTyhFSU5W
QUwsCTIyKQkvKiBJbnZhbGlkIGFyZ3VtZW50ICovCitYRU5fRVJSTk8oRU5GSUxFLAkyMykJLyog
RmlsZSB0YWJsZSBvdmVyZmxvdyAqLworWEVOX0VSUk5PKEVNRklMRSwJMjQpCS8qIFRvbyBtYW55
IG9wZW4gZmlsZXMgKi8KK1hFTl9FUlJOTyhFTk9TUEMsCTI4KQkvKiBObyBzcGFjZSBsZWZ0IG9u
IGRldmljZSAqLworWEVOX0VSUk5PKEVST0ZTLAkzMCkJLyogUmVhZC1vbmx5IGZpbGUgc3lzdGVt
ICovCitYRU5fRVJSTk8oRU1MSU5LLAkzMSkJLyogVG9vIG1hbnkgbGlua3MgKi8KK1hFTl9FUlJO
TyhFRE9NLAkJMzMpCS8qIE1hdGggYXJndW1lbnQgb3V0IG9mIGRvbWFpbiBvZiBmdW5jICovCitY
RU5fRVJSTk8oRVJBTkdFLAkzNCkJLyogTWF0aCByZXN1bHQgbm90IHJlcHJlc2VudGFibGUgKi8K
K1hFTl9FUlJOTyhFREVBRExLLAkzNSkJLyogUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIg
Ki8KK1hFTl9FUlJOTyhFREVBRExPQ0ssCTM1KQkvKiBSZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBv
Y2N1ci4gQWxpYXNlcyBFREVBRExLICovCitYRU5fRVJSTk8oRU5BTUVUT09MT05HLAkzNikJLyog
RmlsZSBuYW1lIHRvbyBsb25nICovCitYRU5fRVJSTk8oRU5PTENLLAkzNykJLyogTm8gcmVjb3Jk
IGxvY2tzIGF2YWlsYWJsZSAqLworWEVOX0VSUk5PKEVOT1NZUywJMzgpCS8qIEZ1bmN0aW9uIG5v
dCBpbXBsZW1lbnRlZCAqLworWEVOX0VSUk5PKEVOT1RFTVBUWSwJMzkpCS8qIERpcmVjdG9yeSBu
b3QgZW1wdHkgKi8KK1hFTl9FUlJOTyhFTk9EQVRBLAk2MSkJLyogTm8gZGF0YSBhdmFpbGFibGUg
Ki8KK1hFTl9FUlJOTyhFVElNRSwJNjIpCS8qIFRpbWVyIGV4cGlyZWQgKi8KK1hFTl9FUlJOTyhF
QkFETVNHLAk3NCkJLyogTm90IGEgZGF0YSBtZXNzYWdlICovCitYRU5fRVJSTk8oRU9WRVJGTE9X
LAk3NSkJLyogVmFsdWUgdG9vIGxhcmdlIGZvciBkZWZpbmVkIGRhdGEgdHlwZSAqLworWEVOX0VS
Uk5PKEVJTFNFUSwJODQpCS8qIElsbGVnYWwgYnl0ZSBzZXF1ZW5jZSAqLworI2lmZGVmIF9fWEVO
X18gLyogSW50ZXJuYWwgb25seSwgc2hvdWxkIG5ldmVyIGJlIGV4cG9zZWQgdG8gdGhlIGd1ZXN0
LiAqLworWEVOX0VSUk5PKEVSRVNUQVJULAk4NSkJLyogSW50ZXJydXB0ZWQgc3lzdGVtIGNhbGwg
c2hvdWxkIGJlIHJlc3RhcnRlZCAqLworI2VuZGlmCitYRU5fRVJSTk8oRU5PVFNPQ0ssCTg4KQkv
KiBTb2NrZXQgb3BlcmF0aW9uIG9uIG5vbi1zb2NrZXQgKi8KK1hFTl9FUlJOTyhFT1BOT1RTVVBQ
LAk5NSkJLyogT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gdHJhbnNwb3J0IGVuZHBvaW50ICov
CitYRU5fRVJSTk8oRUFERFJJTlVTRSwJOTgpCS8qIEFkZHJlc3MgYWxyZWFkeSBpbiB1c2UgKi8K
K1hFTl9FUlJOTyhFQUREUk5PVEFWQUlMLCA5OSkJLyogQ2Fubm90IGFzc2lnbiByZXF1ZXN0ZWQg
YWRkcmVzcyAqLworWEVOX0VSUk5PKEVOT0JVRlMsCTEwNSkJLyogTm8gYnVmZmVyIHNwYWNlIGF2
YWlsYWJsZSAqLworWEVOX0VSUk5PKEVJU0NPTk4sCTEwNikJLyogVHJhbnNwb3J0IGVuZHBvaW50
IGlzIGFscmVhZHkgY29ubmVjdGVkICovCitYRU5fRVJSTk8oRU5PVENPTk4sCTEwNykJLyogVHJh
bnNwb3J0IGVuZHBvaW50IGlzIG5vdCBjb25uZWN0ZWQgKi8KK1hFTl9FUlJOTyhFVElNRURPVVQs
CTExMCkJLyogQ29ubmVjdGlvbiB0aW1lZCBvdXQgKi8KKworI3VuZGVmIFhFTl9FUlJOTworI2Vu
ZGlmIC8qIFhFTl9FUlJOTyAqLworLyogYCB9ICovCisKKy8qIENsZWFuIHVwIGZyb20gYSBkZWZh
dWx0IGluY2x1ZGUuICBDbG9zZSB0aGUgZW51bSAoZm9yIEMpLiAqLworI2lmZGVmIFhFTl9FUlJO
T19ERUZBVUxUX0lOQ0xVREUKKyN1bmRlZiBYRU5fRVJSTk9fREVGQVVMVF9JTkNMVURFCisjaWZu
ZGVmIF9fQVNTRU1CTFlfXworfTsKKyNlbmRpZgorCisjZW5kaWYgLyogWEVOX0VSUk5PX0RFRkFV
TFRfSU5DTFVERSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vZXZlbnRfY2hhbm5lbC5oIGIv
aW5jbHVkZS94ZW4vZXZlbnRfY2hhbm5lbC5oCmluZGV4IDA1ZTUzMWQuLjQ0YzU0OWQgMTAwNjQ0
Ci0tLSBhL2luY2x1ZGUveGVuL2V2ZW50X2NoYW5uZWwuaAorKysgYi9pbmNsdWRlL3hlbi9ldmVu
dF9jaGFubmVsLmgKQEAgLTg1LDcgKzg1LDcgQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoZXZ0
Y2huX3BvcnRfdCk7CiAgKiBpcyBhbGxvY2F0ZWQgaW4gPGRvbT4gYW5kIHJldHVybmVkIGFzIDxw
b3J0Pi4KICAqIE5PVEVTOgogICogIDEuIElmIHRoZSBjYWxsZXIgaXMgdW5wcml2aWxlZ2VkIHRo
ZW4gPGRvbT4gbXVzdCBiZSBET01JRF9TRUxGLgotICogIDIuIDxyZG9tPiBtYXkgYmUgRE9NSURf
U0VMRiwgYWxsb3dpbmcgbG9vcGJhY2sgY29ubmVjdGlvbnMuCisgKiAgMi4gPHJlbW90ZV9kb20+
IG1heSBiZSBET01JRF9TRUxGLCBhbGxvd2luZyBsb29wYmFjayBjb25uZWN0aW9ucy4KICAqLwog
c3RydWN0IGV2dGNobl9hbGxvY191bmJvdW5kIHsKICAgICAvKiBJTiBwYXJhbWV0ZXJzICovCmRp
ZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9mZWF0dXJlcy5oIGIvaW5jbHVkZS94ZW4vZmVhdHVyZXMu
aAppbmRleCAxNmQ5MmFhLi4yMTEwYjA0IDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi9mZWF0dXJl
cy5oCisrKyBiL2luY2x1ZGUveGVuL2ZlYXR1cmVzLmgKQEAgLTk5LDYgKzk5LDkgQEAKICNkZWZp
bmUgWEVORkVBVF9ncmFudF9tYXBfaWRlbnRpdHkgICAgICAgIDEyCiAgKi8KIAorLyogR3Vlc3Qg
Y2FuIHVzZSBYRU5NRU1GX3Zub2RlIHRvIHNwZWNpZnkgdmlydHVhbCBub2RlIGZvciBtZW1vcnkg
b3AuICovCisjZGVmaW5lIFhFTkZFQVRfbWVtb3J5X29wX3Zub2RlX3N1cHBvcnRlZCAxMworCiAj
ZGVmaW5lIFhFTkZFQVRfTlJfU1VCTUFQUyAxCiAKICNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfRkVB
VFVSRVNfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9nY292LmggYi9pbmNsdWRlL3hl
bi9nY292LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFiMjliNDguLjAwMDAwMDAK
LS0tIGEvaW5jbHVkZS94ZW4vZ2Nvdi5oCisrKyAvZGV2L251bGwKQEAgLTEsMTE1ICswLDAgQEAK
LS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKLSAqIGdjb3YuaAotICoKLSAqIENvdmVyYWdlIHN0cnVj
dHVyZXMgZXhwb3J0ZWQgYnkgWGVuLgotICogU3RydWN0dXJlIGlzIGRpZmZlcmVudCBmcm9tIEdj
YyBvbmUuCi0gKgotICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFy
Z2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQotICogb2YgdGhpcyBzb2Z0d2FyZSBh
bmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCi0g
KiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0
aG91dCBsaW1pdGF0aW9uIHRoZQotICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn
ZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCi0gKiBzZWxsIGNvcGll
cyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0
d2FyZSBpcwotICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9uczoKLSAqCi0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw
ZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgotICogYWxsIGNvcGllcyBvciBz
dWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJF
IElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJF
U1MgT1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCi0gKiBBVVRI
T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VT
IE9SIE9USEVSCi0gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU
LCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwotICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F
Q1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgotICogREVBTElOR1Mg
SU4gVEhFIFNPRlRXQVJFLgotICoKLSAqIENvcHlyaWdodCAoYykgMjAxMywgQ2l0cml4IFN5c3Rl
bXMgUiZEIEx0ZC4KLSAqLwotCi0jaWZuZGVmIF9fWEVOX1BVQkxJQ19HQ09WX0hfXwotI2RlZmlu
ZSBfX1hFTl9QVUJMSUNfR0NPVl9IX18gX19YRU5fUFVCTElDX0dDT1ZfSF9fCi0KLSNkZWZpbmUg
WEVOQ09WX0NPVU5URVJTICAgICAgICAgNQotI2RlZmluZSBYRU5DT1ZfVEFHX0JBU0UgICAgICAg
ICAweDU4NTQ0MzAwdQotI2RlZmluZSBYRU5DT1ZfVEFHX0ZJTEUgICAgICAgICAoWEVOQ09WX1RB
R19CQVNFKzB4NDZ1KQotI2RlZmluZSBYRU5DT1ZfVEFHX0ZVTkMgICAgICAgICAoWEVOQ09WX1RB
R19CQVNFKzB4NjZ1KQotI2RlZmluZSBYRU5DT1ZfVEFHX0NPVU5URVIobikgICAoWEVOQ09WX1RB
R19CQVNFKzB4MzB1KygobikmMHhmdSkpCi0jZGVmaW5lIFhFTkNPVl9UQUdfRU5EICAgICAgICAg
IChYRU5DT1ZfVEFHX0JBU0UrMHgyZXUpCi0jZGVmaW5lIFhFTkNPVl9JU19UQUdfQ09VTlRFUihu
KSBcCi0gICAgKChuKSA+PSBYRU5DT1ZfVEFHX0NPVU5URVIoMCkgJiYgKG4pIDwgWEVOQ09WX1RB
R19DT1VOVEVSKFhFTkNPVl9DT1VOVEVSUykpCi0jZGVmaW5lIFhFTkNPVl9DT1VOVEVSX05VTShu
KSAoKG4pLVhFTkNPVl9UQUdfQ09VTlRFUigwKSkKLQotLyoKLSAqIFRoZSBtYWluIHN0cnVjdHVy
ZSBmb3IgdGhlIGJsb2IgaXMKLSAqIEJMT0IgOj0gRklMRS4uIEVORAotICogRklMRSA6PSBUQUdf
RklMRSBWRVJTSU9OIFNUQU1QIEZJTEVOQU1FIENPVU5URVJTIEZVTkNUSU9OUwotICogRklMRU5B
TUUgOj0gTEVOIGNoYXJhY3RlcnMKLSAqICAgY2hhcmFjdGVycyBhcmUgcGFkZGVkIHRvIDMyIGJp
dAotICogTEVOIDo9IDMyIGJpdCB2YWx1ZQotICogQ09VTlRFUlMgOj0gVEFHX0NPVU5URVIobikg
TlVNIENPVU5URVIuLgotICogTlVNIDo9IDMyIGJpdCB2YWxpZQotICogQ09VTlRFUiA6PSA2NCBi
aXQgdmFsdWUKLSAqIEZVTkNUSU9OUyA6PSBUQUdfRlVOQyBOVU0gRlVOQ1RJT04uLgotICogRlVO
Q1RJT04gOj0gSURFTlQgQ0hFQ0tTVU0gTlVNX0NPVU5URVJTCi0gKgotICogQWxsIHRhZ2dlZCBz
dHJ1Y3R1cmVzIGFyZSBhbGlnbmVkIHRvIDggYnl0ZXMKLSAqLwotCi0vKioKLSAqIEZpbGUgaW5m
b3JtYXRpb24KLSAqIFByZWZpeGVkIHdpdGggWEVOQ09WX1RBR19GSUxFIGFuZCBhIHN0cmluZyB3
aXRoIGZpbGVuYW1lCi0gKiBBbGlnbmVkIHRvIDggYnl0ZXMKLSAqLwotc3RydWN0IHhlbmNvdl9m
aWxlCi17Ci0gICAgdWludDMyX3QgdGFnOyAvKiBYRU5DT1ZfVEFHX0ZJTEUgKi8KLSAgICB1aW50
MzJfdCB2ZXJzaW9uOwotICAgIHVpbnQzMl90IHN0YW1wOwotICAgIHVpbnQzMl90IGZuX2xlbjsK
LSAgICBjaGFyIGZpbGVuYW1lWzFdOwotfTsKLQotCi0vKioKLSAqIENvdW50ZXJzIGluZm9ybWF0
aW9uCi0gKiBQcmVmaXhlZCB3aXRoIFhFTkNPVl9UQUdfQ09VTlRFUihuKSB3aGVyZSBuIGlzIDAu
LihYRU5DT1ZfQ09VTlRFUlMtMSkKLSAqIEFsaWduZWQgdG8gOCBieXRlcwotICovCi1zdHJ1Y3Qg
eGVuY292X2NvdW50ZXIKLXsKLSAgICB1aW50MzJfdCB0YWc7IC8qIFhFTkNPVl9UQUdfQ09VTlRF
UihuKSAqLwotICAgIHVpbnQzMl90IG51bTsKLSAgICB1aW50NjRfdCB2YWx1ZXNbMV07Ci19Owot
Ci0vKioKLSAqIEluZm9ybWF0aW9uIGZvciBlYWNoIGZ1bmN0aW9uCi0gKiBOdW1iZXIgb2YgY291
bnRlciBpcyBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIGNvdW50ZXIgc3RydWN0dXJlcyBnb3QgYmVm
b3JlCi0gKi8KLXN0cnVjdCB4ZW5jb3ZfZnVuY3Rpb24KLXsKLSAgICB1aW50MzJfdCBpZGVudDsK
LSAgICB1aW50MzJfdCBjaGVja3N1bTsKLSAgICB1aW50MzJfdCBudW1fY291bnRlcnNbMV07Ci19
OwotCi0vKioKLSAqIEluZm9ybWF0aW9uIGZvciBhbGwgZnVuY3Rpb25zCi0gKiBBbGlnbmVkIHRv
IDggYnl0ZXMKLSAqLwotc3RydWN0IHhlbmNvdl9mdW5jdGlvbnMKLXsKLSAgICB1aW50MzJfdCB0
YWc7IC8qIFhFTkNPVl9UQUdfRlVOQyAqLwotICAgIHVpbnQzMl90IG51bTsKLSAgICBzdHJ1Y3Qg
eGVuY292X2Z1bmN0aW9uIHhlbmNvdl9mdW5jdGlvblsxXTsKLX07Ci0KLS8qKgotICogVGVybWlu
YXRvcgotICovCi1zdHJ1Y3QgeGVuY292X2VuZAotewotICAgIHVpbnQzMl90IHRhZzsgLyogWEVO
Q09WX1RBR19FTkQgKi8KLX07Ci0KLSNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfR0NPVl9IX18gKi8K
LQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vZ3JhbnRfdGFibGUuaCBiL2luY2x1ZGUveGVuL2dy
YW50X3RhYmxlLmgKaW5kZXggMjBkNGU3Ny4uMDE4MDM2ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS94
ZW4vZ3JhbnRfdGFibGUuaAorKysgYi9pbmNsdWRlL3hlbi9ncmFudF90YWJsZS5oCkBAIC00Myw3
ICs0Myw3IEBACiAgKiB0YWJsZSBhcmUgaWRlbnRpZmllZCBieSBncmFudCByZWZlcmVuY2VzLiBB
IGdyYW50IHJlZmVyZW5jZSBpcyBhbgogICogaW50ZWdlciwgd2hpY2ggaW5kZXhlcyBpbnRvIHRo
ZSBncmFudCB0YWJsZS4gSXQgYWN0cyBhcyBhCiAgKiBjYXBhYmlsaXR5IHdoaWNoIHRoZSBncmFu
dGVlIGNhbiB1c2UgdG8gcGVyZm9ybSBvcGVyYXRpb25zIG9uIHRoZQotICogZ3JhbnRlcuKAmXMg
bWVtb3J5LgorICogZ3JhbnRlcidzIG1lbW9yeS4KICAqCiAgKiBUaGlzIGNhcGFiaWxpdHktYmFz
ZWQgc3lzdGVtIGFsbG93cyBzaGFyZWQtbWVtb3J5IGNvbW11bmljYXRpb25zCiAgKiBiZXR3ZWVu
IHVucHJpdmlsZWdlZCBkb21haW5zLiBBIGdyYW50IHJlZmVyZW5jZSBhbHNvIGVuY2Fwc3VsYXRl
cwpAQCAtMTM0LDggKzEzNCwxMCBAQCBzdHJ1Y3QgZ3JhbnRfZW50cnlfdjEgewogICAgIC8qIFRo
ZSBkb21haW4gYmVpbmcgZ3JhbnRlZCBmb3JlaWduIHByaXZpbGVnZXMuIFtHU1RdICovCiAgICAg
ZG9taWRfdCAgZG9taWQ7CiAgICAgLyoKLSAgICAgKiBHVEZfcGVybWl0X2FjY2VzczogRnJhbWUg
dGhhdCBAZG9taWQgaXMgYWxsb3dlZCB0byBtYXAgYW5kIGFjY2Vzcy4gW0dTVF0KLSAgICAgKiBH
VEZfYWNjZXB0X3RyYW5zZmVyOiBGcmFtZSB3aG9zZSBvd25lcnNoaXAgdHJhbnNmZXJyZWQgYnkg
QGRvbWlkLiBbWEVOXQorICAgICAqIEdURl9wZXJtaXRfYWNjZXNzOiBHRk4gdGhhdCBAZG9taWQg
aXMgYWxsb3dlZCB0byBtYXAgYW5kIGFjY2Vzcy4gW0dTVF0KKyAgICAgKiBHVEZfYWNjZXB0X3Ry
YW5zZmVyOiBHRk4gdGhhdCBAZG9taWQgaXMgYWxsb3dlZCB0byB0cmFuc2ZlciBpbnRvLiBbR1NU
XQorICAgICAqIEdURl90cmFuc2Zlcl9jb21wbGV0ZWQ6IE1GTiB3aG9zZSBvd25lcnNoaXAgdHJh
bnNmZXJyZWQgYnkgQGRvbWlkCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgKG5vbi10
cmFuc2xhdGVkIGd1ZXN0cyBvbmx5KS4gW1hFTl0KICAgICAgKi8KICAgICB1aW50MzJfdCBmcmFt
ZTsKIH07CkBAIC0zMjEsNyArMzIzLDcgQEAgdHlwZWRlZiB1aW50MzJfdCBncmFudF9oYW5kbGVf
dDsKIC8qCiAgKiBHTlRUQUJPUF9tYXBfZ3JhbnRfcmVmOiBNYXAgdGhlIGdyYW50IGVudHJ5ICg8
ZG9tPiw8cmVmPikgZm9yIGFjY2VzcwogICogYnkgZGV2aWNlcyBhbmQvb3IgaG9zdCBDUFVzLiBJ
ZiBzdWNjZXNzZnVsLCA8aGFuZGxlPiBpcyBhIHRyYWNraW5nIG51bWJlcgotICogdGhhdCBtdXN0
IGJlIHByZXNlbnRlZCBsYXRlciB0byBkZXN0cm95IHRoZSBtYXBwaW5nKHMpLiBPbiBlcnJvciwg
PGhhbmRsZT4KKyAqIHRoYXQgbXVzdCBiZSBwcmVzZW50ZWQgbGF0ZXIgdG8gZGVzdHJveSB0aGUg
bWFwcGluZyhzKS4gT24gZXJyb3IsIDxzdGF0dXM+CiAgKiBpcyBhIG5lZ2F0aXZlIHN0YXR1cyBj
b2RlLgogICogTk9URVM6CiAgKiAgMS4gSWYgR05UTUFQX2RldmljZV9tYXAgaXMgc3BlY2lmaWVk
IHRoZW4gPGRldl9idXNfYWRkcj4gaXMgdGhlIGFkZHJlc3MKQEAgLTQwOSwxMiArNDExLDEzIEBA
IHR5cGVkZWYgc3RydWN0IGdudHRhYl9kdW1wX3RhYmxlIGdudHRhYl9kdW1wX3RhYmxlX3Q7CiBE
RUZJTkVfWEVOX0dVRVNUX0hBTkRMRShnbnR0YWJfZHVtcF90YWJsZV90KTsKIAogLyoKLSAqIEdO
VFRBQk9QX3RyYW5zZmVyX2dyYW50X3JlZjogVHJhbnNmZXIgPGZyYW1lPiB0byBhIGZvcmVpZ24g
ZG9tYWluLiBUaGUKLSAqIGZvcmVpZ24gZG9tYWluIGhhcyBwcmV2aW91c2x5IHJlZ2lzdGVyZWQg
aXRzIGludGVyZXN0IGluIHRoZSB0cmFuc2ZlciB2aWEKLSAqIDxkb21pZCwgcmVmPi4KKyAqIEdO
VFRBQk9QX3RyYW5zZmVyOiBUcmFuc2ZlciA8ZnJhbWU+IHRvIGEgZm9yZWlnbiBkb21haW4uIFRo
ZSBmb3JlaWduIGRvbWFpbgorICogaGFzIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBpdHMgaW50ZXJl
c3QgaW4gdGhlIHRyYW5zZmVyIHZpYSA8ZG9taWQsIHJlZj4uCiAgKgogICogTm90ZSB0aGF0LCBl
dmVuIGlmIHRoZSB0cmFuc2ZlciBmYWlscywgdGhlIHNwZWNpZmllZCBwYWdlIG5vIGxvbmdlciBi
ZWxvbmdzCiAgKiB0byB0aGUgY2FsbGluZyBkb21haW4gKnVubGVzcyogdGhlIGVycm9yIGlzIEdO
VFNUX2JhZF9wYWdlLgorICoKKyAqIE5vdGUgZnVydGhlciB0aGF0IG9ubHkgUFYgZ3Vlc3RzIGNh
biB1c2UgdGhpcyBvcGVyYXRpb24uCiAgKi8KIHN0cnVjdCBnbnR0YWJfdHJhbnNmZXIgewogICAg
IC8qIElOIHBhcmFtZXRlcnMuICovCkBAIC00NTMsNyArNDU2LDcgQEAgREVGSU5FX1hFTl9HVUVT
VF9IQU5ETEUoZ250dGFiX3RyYW5zZmVyX3QpOwogCiBzdHJ1Y3QgZ250dGFiX2NvcHkgewogICAg
IC8qIElOIHBhcmFtZXRlcnMuICovCi0gICAgc3RydWN0IHsKKyAgICBzdHJ1Y3QgZ250dGFiX2Nv
cHlfcHRyIHsKICAgICAgICAgdW5pb24gewogICAgICAgICAgICAgZ3JhbnRfcmVmX3QgcmVmOwog
ICAgICAgICAgICAgeGVuX3Bmbl90ICAgZ21mbjsKZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2h2
bS9kbV9vcC5oIGIvaW5jbHVkZS94ZW4vaHZtL2RtX29wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNmJiYWI1ZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL2h2
bS9kbV9vcC5oCkBAIC0wLDAgKzEsNDE3IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDE2LCBD
aXRyaXggU3lzdGVtcyBJbmMKKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBm
cmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlz
IHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdh
cmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGlu
Y2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBt
b2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAq
IHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdo
b20gdGhlIFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl
IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwg
Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBU
SEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkg
S0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBU
TyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xB
SU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04g
T0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0Yg
T1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisg
KiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisKKyNpZm5kZWYgX19YRU5fUFVC
TElDX0hWTV9ETV9PUF9IX18KKyNkZWZpbmUgX19YRU5fUFVCTElDX0hWTV9ETV9PUF9IX18KKwor
I2luY2x1ZGUgIi4uL3hlbi5oIgorCisjaWYgZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9f
WEVOX1RPT0xTX18pCisKKyNpbmNsdWRlICIuLi9ldmVudF9jaGFubmVsLmgiCisKKyNpZm5kZWYg
dWludDY0X2FsaWduZWRfdAorI2RlZmluZSB1aW50NjRfYWxpZ25lZF90IHVpbnQ2NF90CisjZW5k
aWYKKworLyoKKyAqIElPUkVRIFNlcnZlcnMKKyAqCisgKiBUaGUgaW50ZXJmYWNlIGJldHdlZW4g
YW4gSS9PIGVtdWxhdG9yIGFuIFhlbiBpcyBjYWxsZWQgYW4gSU9SRVEgU2VydmVyLgorICogQSBk
b21haW4gc3VwcG9ydHMgYSBzaW5nbGUgJ2xlZ2FjeScgSU9SRVEgU2VydmVyIHdoaWNoIGlzIGlu
c3RhbnRpYXRlZCBpZgorICogcGFyYW1ldGVyLi4uCisgKgorICogSFZNX1BBUkFNX0lPUkVRX1BG
TiBpcyByZWFkICh0byBnZXQgdGhlIGdmbiBjb250YWluaW5nIHRoZSBzeW5jaHJvbm91cworICog
aW9yZXEgc3RydWN0dXJlcyksIG9yLi4uCisgKiBIVk1fUEFSQU1fQlVGSU9SRVFfUEZOIGlzIHJl
YWQgKHRvIGdldCB0aGUgZ2ZuIGNvbnRhaW5pbmcgdGhlIGJ1ZmZlcmVkCisgKiBpb3JlcSByaW5n
KSwgb3IuLi4KKyAqIEhWTV9QQVJBTV9CVUZJT1JFUV9FVlRDSE4gaXMgcmVhZCAodG8gZ2V0IHRo
ZSBldmVudCBjaGFubmVsIHRoYXQgWGVuIHVzZXMKKyAqIHRvIHJlcXVlc3QgYnVmZmVyZWQgSS9P
IGVtdWxhdGlvbikuCisgKgorICogVGhlIGZvbGxvd2luZyBoeXBlcmNhbGxzIGZhY2lsaXRhdGUg
dGhlIGNyZWF0aW9uIG9mIElPUkVRIFNlcnZlcnMgZm9yCisgKiAnc2Vjb25kYXJ5JyBlbXVsYXRv
cnMgd2hpY2ggYXJlIGludm9rZWQgdG8gaW1wbGVtZW50IHBvcnQgSS9PLCBtZW1vcnksIG9yCisg
KiBQQ0kgY29uZmlnIHNwYWNlIHJhbmdlcyB3aGljaCB0aGV5IGV4cGxpY2l0bHkgcmVnaXN0ZXIu
CisgKi8KKwordHlwZWRlZiB1aW50MTZfdCBpb3NlcnZpZF90OworCisvKgorICogWEVOX0RNT1Bf
Y3JlYXRlX2lvcmVxX3NlcnZlcjogSW5zdGFudGlhdGUgYSBuZXcgSU9SRVEgU2VydmVyIGZvciBh
CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnkgZW11bGF0b3IuCisg
KgorICogVGhlIDxpZD4gaGFuZGVkIGJhY2sgaXMgdW5pcXVlIGZvciB0YXJnZXQgZG9tYWluLiBU
aGUgdmFsdXIgb2YKKyAqIDxoYW5kbGVfYnVmaW9yZXE+IHNob3VsZCBiZSBvbmUgb2YgSFZNX0lP
UkVRU1JWX0JVRklPUkVRXyogZGVmaW5lZCBpbgorICogaHZtX29wLmguIElmIHRoZSB2YWx1ZSBp
cyBIVk1fSU9SRVFTUlZfQlVGSU9SRVFfT0ZGIHRoZW4gIHRoZSBidWZmZXJlZAorICogaW9yZXEg
cmluZyB3aWxsIG5vdCBiZSBhbGxvY2F0ZWQgYW5kIGhlbmNlIGFsbCBlbXVsYXRpb24gcmVxdWVz
dHMgdG8KKyAqIHRoaXMgc2VydmVyIHdpbGwgYmUgc3luY2hyb25vdXMuCisgKi8KKyNkZWZpbmUg
WEVOX0RNT1BfY3JlYXRlX2lvcmVxX3NlcnZlciAxCisKK3N0cnVjdCB4ZW5fZG1fb3BfY3JlYXRl
X2lvcmVxX3NlcnZlciB7CisgICAgLyogSU4gLSBzaG91bGQgc2VydmVyIGhhbmRsZSBidWZmZXJl
ZCBpb3JlcXMgKi8KKyAgICB1aW50OF90IGhhbmRsZV9idWZpb3JlcTsKKyAgICB1aW50OF90IHBh
ZFszXTsKKyAgICAvKiBPVVQgLSBzZXJ2ZXIgaWQgKi8KKyAgICBpb3NlcnZpZF90IGlkOworfTsK
KworLyoKKyAqIFhFTl9ETU9QX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbzogR2V0IGFsbCB0aGUgaW5m
b3JtYXRpb24gbmVjZXNzYXJ5IHRvCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFjY2VzcyBJT1JFUSBTZXJ2ZXIgPGlkPi4KKyAqCisgKiBUaGUgZW11bGF0b3IgbmVlZHMgdG8g
bWFwIHRoZSBzeW5jaHJvbm91cyBpb3JlcSBzdHJ1Y3R1cmVzIGFuZCBidWZmZXJlZAorICogaW9y
ZXEgcmluZyAoaWYgaXQgZXhpc3RzKSB0aGF0IFhlbiB1c2VzIHRvIHJlcXVlc3QgZW11bGF0aW9u
LiBUaGVzZSBhcmUKKyAqIGhvc3RlZCBpbiB0aGUgdGFyZ2V0IGRvbWFpbidzIGdtZm5zIDxpb3Jl
cV9nZm4+IGFuZCA8YnVmaW9yZXFfZ2ZuPgorICogcmVzcGVjdGl2ZWx5LiBJbiBhZGRpdGlvbiwg
aWYgdGhlIElPUkVRIFNlcnZlciBpcyBoYW5kbGluZyBidWZmZXJlZAorICogZW11bGF0aW9uIHJl
cXVlc3RzLCB0aGUgZW11bGF0b3IgbmVlZHMgdG8gYmluZCB0byBldmVudCBjaGFubmVsCisgKiA8
YnVmaW9yZXFfcG9ydD4gdG8gbGlzdGVuIGZvciB0aGVtLiAoVGhlIGV2ZW50IGNoYW5uZWxzIHVz
ZWQgZm9yCisgKiBzeW5jaHJvbm91cyBlbXVsYXRpb24gcmVxdWVzdHMgYXJlIHNwZWNpZmllZCBp
biB0aGUgcGVyLUNQVSBpb3JlcQorICogc3RydWN0dXJlcyBpbiA8aW9yZXFfZ2ZuPikuCisgKiBJ
ZiB0aGUgSU9SRVEgU2VydmVyIGlzIG5vdCBoYW5kbGluZyBidWZmZXJlZCBlbXVsYXRpb24gcmVx
dWVzdHMgdGhlbiB0aGUKKyAqIHZhbHVlcyBoYW5kZWQgYmFjayBpbiA8YnVmaW9yZXFfZ2ZuPiBh
bmQgPGJ1ZmlvcmVxX3BvcnQ+IHdpbGwgYm90aCBiZSAwLgorICovCisjZGVmaW5lIFhFTl9ETU9Q
X2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyAyCisKK3N0cnVjdCB4ZW5fZG1fb3BfZ2V0X2lvcmVxX3Nl
cnZlcl9pbmZvIHsKKyAgICAvKiBJTiAtIHNlcnZlciBpZCAqLworICAgIGlvc2VydmlkX3QgaWQ7
CisgICAgdWludDE2X3QgcGFkOworICAgIC8qIE9VVCAtIGJ1ZmZlcmVkIGlvcmVxIHBvcnQgKi8K
KyAgICBldnRjaG5fcG9ydF90IGJ1ZmlvcmVxX3BvcnQ7CisgICAgLyogT1VUIC0gc3luYyBpb3Jl
cSBnZm4gKi8KKyAgICB1aW50NjRfYWxpZ25lZF90IGlvcmVxX2dmbjsKKyAgICAvKiBPVVQgLSBi
dWZmZXJlZCBpb3JlcSBnZm4gKi8KKyAgICB1aW50NjRfYWxpZ25lZF90IGJ1ZmlvcmVxX2dmbjsK
K307CisKKy8qCisgKiBYRU5fRE1PUF9tYXBfaW9fcmFuZ2VfdG9faW9yZXFfc2VydmVyOiBSZWdp
c3RlciBhbiBJL08gcmFuZ2UgZm9yCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBlbXVsYXRpb24gYnkgdGhlIGNsaWVudCBvZgorICogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgSU9SRVEgU2VydmVyIDxpZD4uCisgKiBYRU5fRE1PUF91bm1h
cF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZlcjogRGVyZWdpc3RlciBhbiBJL08gcmFuZ2UKKyAq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c2x5IHJl
Z2lzdGVyZWQgZm9yCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZW11bGF0aW9uIGJ5IHRoZSBjbGllbnQgb2YKKyAqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBJT1JFUSBTZXJ2ZXIgPGlkPi4KKyAqCisgKiBUaGVyZSBhcmUg
dGhyZWUgdHlwZXMgb2YgSS9PIHRoYXQgY2FuIGJlIGVtdWxhdGVkOiBwb3J0IEkvTywgbWVtb3J5
CisgKiBhY2Nlc3NlcyBhbmQgUENJIGNvbmZpZyBzcGFjZSBhY2Nlc3Nlcy4gVGhlIDx0eXBlPiBm
aWVsZCBkZW5vdGVzIHdoaWNoCisgKiB0eXBlIG9mIHJhbmdlKiB0aGUgPHN0YXJ0PiBhbmQgPGVu
ZD4gKGluY2x1c2l2ZSkgZmllbGRzIGFyZSBzcGVjaWZ5aW5nLgorICogUENJIGNvbmZpZyBzcGFj
ZSByYW5nZXMgYXJlIHNwZWNpZmllZCBieSBzZWdtZW50L2J1cy9kZXZpY2UvZnVuY3Rpb24KKyAq
IHZhbHVlcyB3aGljaCBzaG91bGQgYmUgZW5jb2RlZCB1c2luZyB0aGUgRE1PUF9QQ0lfU0JERiBo
ZWxwZXIgbWFjcm8KKyAqIGJlbG93LgorICoKKyAqIE5PVEU6IHVubGVzcyBhbiBlbXVsYXRpb24g
cmVxdWVzdCBmYWxscyBlbnRpcmVseSB3aXRoaW4gYSByYW5nZSBtYXBwZWQKKyAqIGJ5IGEgc2Vj
b25kYXJ5IGVtdWxhdG9yLCBpdCB3aWxsIG5vdCBiZSBwYXNzZWQgdG8gdGhhdCBlbXVsYXRvci4K
KyAqLworI2RlZmluZSBYRU5fRE1PUF9tYXBfaW9fcmFuZ2VfdG9faW9yZXFfc2VydmVyIDMKKyNk
ZWZpbmUgWEVOX0RNT1BfdW5tYXBfaW9fcmFuZ2VfZnJvbV9pb3JlcV9zZXJ2ZXIgNAorCitzdHJ1
Y3QgeGVuX2RtX29wX2lvcmVxX3NlcnZlcl9yYW5nZSB7CisgICAgLyogSU4gLSBzZXJ2ZXIgaWQg
Ki8KKyAgICBpb3NlcnZpZF90IGlkOworICAgIHVpbnQxNl90IHBhZDsKKyAgICAvKiBJTiAtIHR5
cGUgb2YgcmFuZ2UgKi8KKyAgICB1aW50MzJfdCB0eXBlOworIyBkZWZpbmUgWEVOX0RNT1BfSU9f
UkFOR0VfUE9SVCAgIDAgLyogSS9PIHBvcnQgcmFuZ2UgKi8KKyMgZGVmaW5lIFhFTl9ETU9QX0lP
X1JBTkdFX01FTU9SWSAxIC8qIE1NSU8gcmFuZ2UgKi8KKyMgZGVmaW5lIFhFTl9ETU9QX0lPX1JB
TkdFX1BDSSAgICAyIC8qIFBDSSBzZWdtZW50L2J1cy9kZXYvZnVuYyByYW5nZSAqLworICAgIC8q
IElOIC0gaW5jbHVzaXZlIHN0YXJ0IGFuZCBlbmQgb2YgcmFuZ2UgKi8KKyAgICB1aW50NjRfYWxp
Z25lZF90IHN0YXJ0LCBlbmQ7Cit9OworCisjZGVmaW5lIFhFTl9ETU9QX1BDSV9TQkRGKHMsYixk
LGYpIFwKKwkoKCgocykgJiAweGZmZmYpIDw8IDE2KSB8ICBcCisJICgoKGIpICYgMHhmZikgPDwg
OCkgfCAgICAgXAorCSAoKChkKSAmIDB4MWYpIDw8IDMpIHwgICAgIFwKKwkgKChmKSAmIDB4MDcp
KQorCisvKgorICogWEVOX0RNT1Bfc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZTogRW5hYmxlIG9yIGRp
c2FibGUgdGhlIElPUkVRIFNlcnZlciA8aWQ+CisgKgorICogVGhlIElPUkVRIFNlcnZlciB3aWxs
IG5vdCBiZSBwYXNzZWQgYW55IGVtdWxhdGlvbiByZXF1ZXN0cyB1bnRpbCBpdCBpcworICogaW4g
dGhlIGVuYWJsZWQgc3RhdGUuCisgKiBOb3RlIHRoYXQgdGhlIGNvbnRlbnRzIG9mIHRoZSBpb3Jl
cV9nZm4gYW5kIGJ1ZmlvcmVxX2dmbiAoc2VlCisgKiBYRU5fRE1PUF9nZXRfaW9yZXFfc2VydmVy
X2luZm8pIGFyZSBub3QgbWVhbmluZ2Z1bCB1bnRpbCB0aGUgSU9SRVEgU2VydmVyCisgKiBpcyBp
biB0aGUgZW5hYmxlZCBzdGF0ZS4KKyAqLworI2RlZmluZSBYRU5fRE1PUF9zZXRfaW9yZXFfc2Vy
dmVyX3N0YXRlIDUKKworc3RydWN0IHhlbl9kbV9vcF9zZXRfaW9yZXFfc2VydmVyX3N0YXRlIHsK
KyAgICAvKiBJTiAtIHNlcnZlciBpZCAqLworICAgIGlvc2VydmlkX3QgaWQ7CisgICAgLyogSU4g
LSBlbmFibGVkPyAqLworICAgIHVpbnQ4X3QgZW5hYmxlZDsKKyAgICB1aW50OF90IHBhZDsKK307
CisKKy8qCisgKiBYRU5fRE1PUF9kZXN0cm95X2lvcmVxX3NlcnZlcjogRGVzdHJveSB0aGUgSU9S
RVEgU2VydmVyIDxpZD4uCisgKgorICogQW55IHJlZ2lzdGVyZWQgSS9PIHJhbmdlcyB3aWxsIGJl
IGF1dG9tYXRpY2FsbHkgZGVyZWdpc3RlcmVkLgorICovCisjZGVmaW5lIFhFTl9ETU9QX2Rlc3Ry
b3lfaW9yZXFfc2VydmVyIDYKKworc3RydWN0IHhlbl9kbV9vcF9kZXN0cm95X2lvcmVxX3NlcnZl
ciB7CisgICAgLyogSU4gLSBzZXJ2ZXIgaWQgKi8KKyAgICBpb3NlcnZpZF90IGlkOworICAgIHVp
bnQxNl90IHBhZDsKK307CisKKy8qCisgKiBYRU5fRE1PUF90cmFja19kaXJ0eV92cmFtOiBUcmFj
ayBtb2RpZmljYXRpb25zIHRvIHRoZSBzcGVjaWZpZWQgcGZuCisgKiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByYW5nZS4KKyAqCisgKiBOT1RFOiBUaGUgYml0bWFwIHBhc3NlZCBiYWNrIHRv
IHRoZSBjYWxsZXIgaXMgcGFzc2VkIGluIGEKKyAqICAgICAgIHNlY29uZGFyeSBidWZmZXIuCisg
Ki8KKyNkZWZpbmUgWEVOX0RNT1BfdHJhY2tfZGlydHlfdnJhbSA3CisKK3N0cnVjdCB4ZW5fZG1f
b3BfdHJhY2tfZGlydHlfdnJhbSB7CisgICAgLyogSU4gLSBudW1iZXIgb2YgcGFnZXMgdG8gYmUg
dHJhY2tlZCAqLworICAgIHVpbnQzMl90IG5yOworICAgIHVpbnQzMl90IHBhZDsKKyAgICAvKiBJ
TiAtIGZpcnN0IHBmbiB0byB0cmFjayAqLworICAgIHVpbnQ2NF9hbGlnbmVkX3QgZmlyc3RfcGZu
OworfTsKKworLyoKKyAqIFhFTl9ETU9QX3NldF9wY2lfaW50eF9sZXZlbDogU2V0IHRoZSBsb2dp
Y2FsIGxldmVsIG9mIG9uZSBvZiBhIGRvbWFpbidzCisgKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFBDSSBJTlR4IHBpbnMuCisgKi8KKyNkZWZpbmUgWEVOX0RNT1Bfc2V0X3BjaV9pbnR4
X2xldmVsIDgKKworc3RydWN0IHhlbl9kbV9vcF9zZXRfcGNpX2ludHhfbGV2ZWwgeworICAgIC8q
IElOIC0gUENJIElOVHggaWRlbnRpZmljYXRpb24gKGRvbWFpbjpidXM6ZGV2aWNlOmludHgpICov
CisgICAgdWludDE2X3QgZG9tYWluOworICAgIHVpbnQ4X3QgYnVzLCBkZXZpY2UsIGludHg7Cisg
ICAgLyogSU4gLSBMZXZlbDogMCAtPiBkZWFzc2VydGVkLCAxIC0+IGFzc2VydGVkICovCisgICAg
dWludDhfdCAgbGV2ZWw7Cit9OworCisvKgorICogWEVOX0RNT1Bfc2V0X2lzYV9pcnFfbGV2ZWw6
IFNldCB0aGUgbG9naWNhbCBsZXZlbCBvZiBhIG9uZSBvZiBhIGRvbWFpbidzCisgKiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgSVNBIElSUSBsaW5lcy4KKyAqLworI2RlZmluZSBYRU5fRE1P
UF9zZXRfaXNhX2lycV9sZXZlbCA5CisKK3N0cnVjdCB4ZW5fZG1fb3Bfc2V0X2lzYV9pcnFfbGV2
ZWwgeworICAgIC8qIElOIC0gSVNBIElSUSAoMC0xNSkgKi8KKyAgICB1aW50OF90ICBpc2FfaXJx
OworICAgIC8qIElOIC0gTGV2ZWw6IDAgLT4gZGVhc3NlcnRlZCwgMSAtPiBhc3NlcnRlZCAqLwor
ICAgIHVpbnQ4X3QgIGxldmVsOworfTsKKworLyoKKyAqIFhFTl9ETU9QX3NldF9wY2lfbGlua19y
b3V0ZTogTWFwIGEgUENJIElOVHggbGluZSB0byBhbiBJUlEgbGluZS4KKyAqLworI2RlZmluZSBY
RU5fRE1PUF9zZXRfcGNpX2xpbmtfcm91dGUgMTAKKworc3RydWN0IHhlbl9kbV9vcF9zZXRfcGNp
X2xpbmtfcm91dGUgeworICAgIC8qIFBDSSBJTlR4IGxpbmUgKDAtMykgKi8KKyAgICB1aW50OF90
ICBsaW5rOworICAgIC8qIElTQSBJUlEgKDEtMTUpIG9yIDAgLT4gZGlzYWJsZSBsaW5rICovCisg
ICAgdWludDhfdCAgaXNhX2lycTsKK307CisKKy8qCisgKiBYRU5fRE1PUF9tb2RpZmllZF9tZW1v
cnk6IE5vdGlmeSB0aGF0IGEgc2V0IG9mIHBhZ2VzIHdlcmUgbW9kaWZpZWQgYnkKKyAqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYW4gZW11bGF0b3IuCisgKgorICogRE1PUCBidWYgMSBjb250
YWlucyBhbiBhcnJheSBvZiB4ZW5fZG1fb3BfbW9kaWZpZWRfbWVtb3J5X2V4dGVudCB3aXRoCisg
KiBAbnJfZXh0ZW50cyBlbnRyaWVzLgorICoKKyAqIE9uIGVycm9yLCBAbnJfZXh0ZW50cyB3aWxs
IGNvbnRhaW4gdGhlIGluZGV4KzEgb2YgdGhlIGV4dGVudCB0aGF0CisgKiBoYWQgdGhlIGVycm9y
LiAgSXQgaXMgbm90IGRlZmluZWQgaWYgb3Igd2hpY2ggcGFnZXMgbWF5IGhhdmUgYmVlbgorICog
bWFya2VkIGFzIGRpcnR5LCBpbiB0aGlzIGV2ZW50LgorICovCisjZGVmaW5lIFhFTl9ETU9QX21v
ZGlmaWVkX21lbW9yeSAxMQorCitzdHJ1Y3QgeGVuX2RtX29wX21vZGlmaWVkX21lbW9yeSB7Cisg
ICAgLyoKKyAgICAgKiBJTiAtIE51bWJlciBvZiBleHRlbnRzIHRvIGJlIHByb2Nlc3NlZAorICAg
ICAqIE9VVCAtcmV0dXJucyBuKzEgZm9yIGZhaWxpbmcgZXh0ZW50CisgICAgICovCisgICAgdWlu
dDMyX3QgbnJfZXh0ZW50czsKKyAgICAvKiBJTi9PVVQgLSBNdXN0IGJlIHNldCB0byAwICovCisg
ICAgdWludDMyX3Qgb3BhcXVlOworfTsKKworc3RydWN0IHhlbl9kbV9vcF9tb2RpZmllZF9tZW1v
cnlfZXh0ZW50IHsKKyAgICAvKiBJTiAtIG51bWJlciBvZiBjb250aWd1b3VzIHBhZ2VzIG1vZGlm
aWVkICovCisgICAgdWludDMyX3QgbnI7CisgICAgdWludDMyX3QgcGFkOworICAgIC8qIElOIC0g
Zmlyc3QgcGZuIG1vZGlmaWVkICovCisgICAgdWludDY0X2FsaWduZWRfdCBmaXJzdF9wZm47Cit9
OworCisvKgorICogWEVOX0RNT1Bfc2V0X21lbV90eXBlOiBOb3RpZnkgdGhhdCBhIHJlZ2lvbiBv
ZiBtZW1vcnkgaXMgdG8gYmUgdHJlYXRlZAorICogICAgICAgICAgICAgICAgICAgICAgICBpbiBh
IHNwZWNpZmljIHdheS4gKFNlZSBkZWZpbml0aW9uIG9mCisgKiAgICAgICAgICAgICAgICAgICAg
ICAgIGh2bW1lbV90eXBlX3QpLgorICoKKyAqIE5PVEU6IEluIHRoZSBldmVudCBvZiBhIGNvbnRp
bnVhdGlvbiAocmV0dXJuIGNvZGUgLUVSRVNUQVJUKSwgdGhlCisgKiAgICAgICBAZmlyc3RfcGZu
IGlzIHNldCB0byB0aGUgdmFsdWUgb2YgdGhlIHBmbiBvZiB0aGUgcmVtYWluaW5nCisgKiAgICAg
ICByZWdpb24gYW5kIEBuciByZWR1Y2VkIHRvIHRoZSBzaXplIG9mIHRoZSByZW1haW5pbmcgcmVn
aW9uLgorICovCisjZGVmaW5lIFhFTl9ETU9QX3NldF9tZW1fdHlwZSAxMgorCitzdHJ1Y3QgeGVu
X2RtX29wX3NldF9tZW1fdHlwZSB7CisgICAgLyogSU4gLSBudW1iZXIgb2YgY29udGlndW91cyBw
YWdlcyAqLworICAgIHVpbnQzMl90IG5yOworICAgIC8qIElOIC0gbmV3IGh2bW1lbV90eXBlX3Qg
b2YgcmVnaW9uICovCisgICAgdWludDE2X3QgbWVtX3R5cGU7CisgICAgdWludDE2X3QgcGFkOwor
ICAgIC8qIElOIC0gZmlyc3QgcGZuIGluIHJlZ2lvbiAqLworICAgIHVpbnQ2NF9hbGlnbmVkX3Qg
Zmlyc3RfcGZuOworfTsKKworLyoKKyAqIFhFTl9ETU9QX2luamVjdF9ldmVudDogSW5qZWN0IGFu
IGV2ZW50IGludG8gYSBWQ1BVLCB3aGljaCB3aWxsCisgKiAgICAgICAgICAgICAgICAgICAgICAg
IGdldCB0YWtlbiB1cCB3aGVuIGl0IGlzIG5leHQgc2NoZWR1bGVkLgorICoKKyAqIE5vdGUgdGhh
dCB0aGUgY2FsbGVyIHNob3VsZCBrbm93IGVub3VnaCBvZiB0aGUgc3RhdGUgb2YgdGhlIENQVSBi
ZWZvcmUKKyAqIGluamVjdGluZywgdG8ga25vdyB3aGF0IHRoZSBlZmZlY3Qgb2YgaW5qZWN0aW5n
IHRoZSBldmVudCB3aWxsIGJlLgorICovCisjZGVmaW5lIFhFTl9ETU9QX2luamVjdF9ldmVudCAx
MworCitzdHJ1Y3QgeGVuX2RtX29wX2luamVjdF9ldmVudCB7CisgICAgLyogSU4gLSBpbmRleCBv
ZiB2Q1BVICovCisgICAgdWludDMyX3QgdmNwdWlkOworICAgIC8qIElOIC0gaW50ZXJydXB0IHZl
Y3RvciAqLworICAgIHVpbnQ4X3QgdmVjdG9yOworICAgIC8qIElOIC0gZXZlbnQgdHlwZSAoRE1P
UF9FVkVOVF8qICkgKi8KKyAgICB1aW50OF90IHR5cGU7CisvKiBOQi4gVGhpcyBlbnVtZXJhdGlv
biBwcmVjaXNlbHkgbWF0Y2hlcyBodm0uaDpYODZfRVZFTlRUWVBFXyogKi8KKyMgZGVmaW5lIFhF
Tl9ETU9QX0VWRU5UX2V4dF9pbnQgICAgMCAvKiBleHRlcm5hbCBpbnRlcnJ1cHQgKi8KKyMgZGVm
aW5lIFhFTl9ETU9QX0VWRU5UX25taSAgICAgICAgMiAvKiBubWkgKi8KKyMgZGVmaW5lIFhFTl9E
TU9QX0VWRU5UX2h3X2V4YyAgICAgMyAvKiBoYXJkd2FyZSBleGNlcHRpb24gKi8KKyMgZGVmaW5l
IFhFTl9ETU9QX0VWRU5UX3N3X2ludCAgICAgNCAvKiBzb2Z0d2FyZSBpbnRlcnJ1cHQgKENEIG5u
KSAqLworIyBkZWZpbmUgWEVOX0RNT1BfRVZFTlRfcHJpX3N3X2V4YyA1IC8qIElDRUJQIChGMSkg
Ki8KKyMgZGVmaW5lIFhFTl9ETU9QX0VWRU5UX3N3X2V4YyAgICAgNiAvKiBJTlQzIChDQyksIElO
VE8gKENFKSAqLworICAgIC8qIElOIC0gaW5zdHJ1Y3Rpb24gbGVuZ3RoICovCisgICAgdWludDhf
dCBpbnNuX2xlbjsKKyAgICB1aW50OF90IHBhZDA7CisgICAgLyogSU4gLSBlcnJvciBjb2RlIChv
ciB+MCB0byBza2lwKSAqLworICAgIHVpbnQzMl90IGVycm9yX2NvZGU7CisgICAgdWludDMyX3Qg
cGFkMTsKKyAgICAvKiBJTiAtIENSMiBmb3IgcGFnZSBmYXVsdHMgKi8KKyAgICB1aW50NjRfYWxp
Z25lZF90IGNyMjsKK307CisKKy8qCisgKiBYRU5fRE1PUF9pbmplY3RfbXNpOiBJbmplY3QgYW4g
TVNJIGZvciBhbiBlbXVsYXRlZCBkZXZpY2UuCisgKi8KKyNkZWZpbmUgWEVOX0RNT1BfaW5qZWN0
X21zaSAxNAorCitzdHJ1Y3QgeGVuX2RtX29wX2luamVjdF9tc2kgeworICAgIC8qIElOIC0gTVNJ
IGRhdGEgKGxvd2VyIDMyIGJpdHMpICovCisgICAgdWludDMyX3QgZGF0YTsKKyAgICB1aW50MzJf
dCBwYWQ7CisgICAgLyogSU4gLSBNU0kgYWRkcmVzcyAoMHhmZWV4eHh4eCkgKi8KKyAgICB1aW50
NjRfYWxpZ25lZF90IGFkZHI7Cit9OworCisvKgorICogWEVOX0RNT1BfbWFwX21lbV90eXBlX3Rv
X2lvcmVxX3NlcnZlciA6IG1hcCBvciB1bm1hcCB0aGUgSU9SRVEgU2VydmVyIDxpZD4KKyAqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBzcGVjaWZpYyBtZW1vcnkgdHlw
ZSA8dHlwZT4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Igc3Bl
Y2lmaWMgYWNjZXNzZXMgPGZsYWdzPgorICoKKyAqIEZvciBub3csIGZsYWdzIG9ubHkgYWNjZXB0
IHRoZSB2YWx1ZSBvZiBYRU5fRE1PUF9JT1JFUV9NRU1fQUNDRVNTX1dSSVRFLAorICogd2hpY2gg
bWVhbnMgb25seSB3cml0ZSBvcGVyYXRpb25zIGFyZSB0byBiZSBmb3J3YXJkZWQgdG8gYW4gaW9y
ZXEgc2VydmVyLgorICogU3VwcG9ydCBmb3IgdGhlIGVtdWxhdGlvbiBvZiByZWFkIG9wZXJhdGlv
bnMgY2FuIGJlIGFkZGVkIHdoZW4gYW4gaW9yZXEKKyAqIHNlcnZlciBoYXMgc3VjaCByZXF1aXJl
bWVudCBpbiBmdXR1cmUuCisgKi8KKyNkZWZpbmUgWEVOX0RNT1BfbWFwX21lbV90eXBlX3RvX2lv
cmVxX3NlcnZlciAxNQorCitzdHJ1Y3QgeGVuX2RtX29wX21hcF9tZW1fdHlwZV90b19pb3JlcV9z
ZXJ2ZXIgeworICAgIGlvc2VydmlkX3QgaWQ7ICAgICAgLyogSU4gLSBpb3JlcSBzZXJ2ZXIgaWQg
Ki8KKyAgICB1aW50MTZfdCB0eXBlOyAgICAgIC8qIElOIC0gbWVtb3J5IHR5cGUgKi8KKyAgICB1
aW50MzJfdCBmbGFnczsgICAgIC8qIElOIC0gdHlwZXMgb2YgYWNjZXNzZXMgdG8gYmUgZm9yd2Fy
ZGVkIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW9yZXEgc2VydmVyLiBmbGFn
cyB3aXRoIDAgbWVhbnMgdG8gdW5tYXAgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICBp
b3JlcSBzZXJ2ZXIgKi8KKworI2RlZmluZSBYRU5fRE1PUF9JT1JFUV9NRU1fQUNDRVNTX1JFQUQg
KDF1IDw8IDApCisjZGVmaW5lIFhFTl9ETU9QX0lPUkVRX01FTV9BQ0NFU1NfV1JJVEUgKDF1IDw8
IDEpCisKKyAgICB1aW50NjRfdCBvcGFxdWU7ICAgIC8qIElOL09VVCAtIG9ubHkgdXNlZCBmb3Ig
aHlwZXJjYWxsIGNvbnRpbnVhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhcyB0
byBiZSBzZXQgdG8gemVybyBieSB0aGUgY2FsbGVyICovCit9OworCitzdHJ1Y3QgeGVuX2RtX29w
IHsKKyAgICB1aW50MzJfdCBvcDsKKyAgICB1aW50MzJfdCBwYWQ7CisgICAgdW5pb24geworICAg
ICAgICBzdHJ1Y3QgeGVuX2RtX29wX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIgY3JlYXRlX2lvcmVxX3Nl
cnZlcjsKKyAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9nZXRfaW9yZXFfc2VydmVyX2luZm8gZ2V0
X2lvcmVxX3NlcnZlcl9pbmZvOworICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX2lvcmVxX3NlcnZl
cl9yYW5nZSBtYXBfaW9fcmFuZ2VfdG9faW9yZXFfc2VydmVyOworICAgICAgICBzdHJ1Y3QgeGVu
X2RtX29wX2lvcmVxX3NlcnZlcl9yYW5nZSB1bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZl
cjsKKyAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9zZXRfaW9yZXFfc2VydmVyX3N0YXRlIHNldF9p
b3JlcV9zZXJ2ZXJfc3RhdGU7CisgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3BfZGVzdHJveV9pb3Jl
cV9zZXJ2ZXIgZGVzdHJveV9pb3JlcV9zZXJ2ZXI7CisgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3Bf
dHJhY2tfZGlydHlfdnJhbSB0cmFja19kaXJ0eV92cmFtOworICAgICAgICBzdHJ1Y3QgeGVuX2Rt
X29wX3NldF9wY2lfaW50eF9sZXZlbCBzZXRfcGNpX2ludHhfbGV2ZWw7CisgICAgICAgIHN0cnVj
dCB4ZW5fZG1fb3Bfc2V0X2lzYV9pcnFfbGV2ZWwgc2V0X2lzYV9pcnFfbGV2ZWw7CisgICAgICAg
IHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X3BjaV9saW5rX3JvdXRlIHNldF9wY2lfbGlua19yb3V0ZTsK
KyAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9tb2RpZmllZF9tZW1vcnkgbW9kaWZpZWRfbWVtb3J5
OworICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9tZW1fdHlwZSBzZXRfbWVtX3R5cGU7Cisg
ICAgICAgIHN0cnVjdCB4ZW5fZG1fb3BfaW5qZWN0X2V2ZW50IGluamVjdF9ldmVudDsKKyAgICAg
ICAgc3RydWN0IHhlbl9kbV9vcF9pbmplY3RfbXNpIGluamVjdF9tc2k7CisgICAgICAgIHN0cnVj
dCB4ZW5fZG1fb3BfbWFwX21lbV90eXBlX3RvX2lvcmVxX3NlcnZlcgorICAgICAgICAgICAgICAg
IG1hcF9tZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXI7CisgICAgfSB1OworfTsKKworI2VuZGlmIC8q
IF9fWEVOX18gfHwgX19YRU5fVE9PTFNfXyAqLworCitzdHJ1Y3QgeGVuX2RtX29wX2J1ZiB7Cisg
ICAgWEVOX0dVRVNUX0hBTkRMRSh2b2lkKSBoOworICAgIHhlbl91bG9uZ190IHNpemU7Cit9Owor
dHlwZWRlZiBzdHJ1Y3QgeGVuX2RtX29wX2J1ZiB4ZW5fZG1fb3BfYnVmX3Q7CitERUZJTkVfWEVO
X0dVRVNUX0hBTkRMRSh4ZW5fZG1fb3BfYnVmX3QpOworCisvKiBgIGVudW0gbmVnX2Vycm5vdmFs
CisgKiBgIEhZUEVSVklTT1JfZG1fb3AoZG9taWRfdCBkb21pZCwKKyAqIGAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBpbnQgbnJfYnVmcywKKyAqIGAgICAgICAgICAgICAgICAgICB4ZW5fZG1f
b3BfYnVmX3QgYnVmc1tdKQorICogYAorICoKKyAqIEBkb21pZCBpcyB0aGUgZG9tYWluIHRoZSBo
eXBlcmNhbGwgb3BlcmF0ZXMgb24uCisgKiBAbnJfYnVmcyBpcyB0aGUgbnVtYmVyIG9mIGJ1ZmZl
cnMgaW4gdGhlIEBidWZzIGFycmF5LgorICogQGJ1ZnMgcG9pbnRzIHRvIGFuIGFycmF5IG9mIGJ1
ZmZlcnMgd2hlcmUgQGJ1ZnNbMF0gY29udGFpbnMgYSBzdHJ1Y3QKKyAqIHhlbl9kbV9vcCwgZGVz
Y3JpYmluZyB0aGUgc3BlY2lmaWMgZGV2aWNlIG1vZGVsIG9wZXJhdGlvbiBhbmQgaXRzCisgKiBw
YXJhbWV0ZXJzLgorICogQGJ1ZnNbMS4uXSBtYXkgYmUgcmVmZXJlbmNlZCBpbiB0aGUgcGFyYW1l
dGVycyBmb3IgdGhlIHB1cnBvc2VzIG9mCisgKiBwYXNzaW5nIGV4dHJhIGluZm9ybWF0aW9uIHRv
IG9yIGZyb20gdGhlIGRvbWFpbi4KKyAqLworCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0hWTV9E
TV9PUF9IX18gKi8KKworLyoKKyAqIExvY2FsIHZhcmlhYmxlczoKKyAqIG1vZGU6IEMKKyAqIGMt
ZmlsZS1zdHlsZTogIkJTRCIKKyAqIGMtYmFzaWMtb2Zmc2V0OiA0CisgKiB0YWItd2lkdGg6IDQK
KyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorICogRW5kOgorICovCmRpZmYgLS1naXQgYS9pbmNs
dWRlL3hlbi9odm0vZTgyMC5oIGIvaW5jbHVkZS94ZW4vaHZtL2U4MjAuaAppbmRleCA1YmRjMjI3
Li40YzQyZjMzIDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi9odm0vZTgyMC5oCisrKyBiL2luY2x1
ZGUveGVuL2h2bS9lODIwLmgKQEAgLTEsNCArMSwzIEBACi0KIC8qCiAgKiBQZXJtaXNzaW9uIGlz
IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcg
YSBjb3B5CiAgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24g
ZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KQEAgLTE3LDExICsxNiwxNSBAQAogICogTElBQklM
SVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0Us
IEFSSVNJTkcKICAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRX
QVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKICAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAq
CisgKiBDb3B5cmlnaHQgKGMpIDIwMDYsIEtlaXIgRnJhc2VyCiAgKi8KIAogI2lmbmRlZiBfX1hF
Tl9QVUJMSUNfSFZNX0U4MjBfSF9fCiAjZGVmaW5lIF9fWEVOX1BVQkxJQ19IVk1fRTgyMF9IX18K
IAorI2luY2x1ZGUgIi4uL3hlbi5oIgorCiAvKiBFODIwIGxvY2F0aW9uIGluIEhWTSB2aXJ0dWFs
IGFkZHJlc3Mgc3BhY2UuICovCiAjZGVmaW5lIEhWTV9FODIwX1BBR0UgICAgICAgIDB4MDAwOTAw
MDAKICNkZWZpbmUgSFZNX0U4MjBfTlJfT0ZGU0VUICAgMHgwMDAwMDFFOApAQCAtMjksNiArMzIs
NyBAQAogCiAjZGVmaW5lIEhWTV9CRUxPV180R19SQU1fRU5EICAgICAgICAweEYwMDAwMDAwCiAj
ZGVmaW5lIEhWTV9CRUxPV180R19NTUlPX1NUQVJUICAgICBIVk1fQkVMT1dfNEdfUkFNX0VORAot
I2RlZmluZSBIVk1fQkVMT1dfNEdfTU1JT19MRU5HVEggICAgKCgxVUxMIDw8IDMyKSAtIEhWTV9C
RUxPV180R19NTUlPX1NUQVJUKQorI2RlZmluZSBIVk1fQkVMT1dfNEdfTU1JT19MRU5HVEggICAg
KCh4ZW5fbWtfdWxsb25nKDEpIDw8IDMyKSAtIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBIVk1fQkVMT1dfNEdfTU1JT19TVEFSVCkKIAogI2VuZGlmIC8qIF9fWEVOX1BV
QkxJQ19IVk1fRTgyMF9IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2h2bS9odm1faW5m
b190YWJsZS5oIGIvaW5jbHVkZS94ZW4vaHZtL2h2bV9pbmZvX3RhYmxlLmgKaW5kZXggMzYwODVm
YS4uMDhjMjUyZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4vaHZtL2h2bV9pbmZvX3RhYmxlLmgK
KysrIGIvaW5jbHVkZS94ZW4vaHZtL2h2bV9pbmZvX3RhYmxlLmgKQEAgLTIwLDYgKzIwLDggQEAK
ICAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Ig
T1RIRVJXSVNFLCBBUklTSU5HCiAgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRI
IFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCiAgKiBERUFMSU5HUyBJTiBUSEUgU09G
VFdBUkUuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA2LCBLZWlyIEZyYXNlcgogICovCiAKICNp
Zm5kZWYgX19YRU5fUFVCTElDX0hWTV9IVk1fSU5GT19UQUJMRV9IX18KQEAgLTMyLDYgKzM0LDE0
IEBACiAvKiBNYXhpbXVtIHdlIGNhbiBzdXBwb3J0IHdpdGggY3VycmVudCB2TEFQSUMgSUQgbWFw
cGluZy4gKi8KICNkZWZpbmUgSFZNX01BWF9WQ1BVUyAgICAgICAgMTI4CiAKKy8qCisgKiBJbiBz
b21lIGNhc2VzIFNNUCBIVk0gZ3Vlc3RzIG1heSByZXF1aXJlIGtub3dsZWRnZSBvZiBYZW4ncyBp
ZGVhIG9mIHZDUFUgaWRzCisgKiBmb3IgdGhlaXIgdkNQVXMuIEZvciBleGFtcGxlLCBIWVBFUlZJ
U09SX3ZjcHVfb3AgYW5kIHNvbWUgRVZUQ0hOT1BfKgorICogaHlwZXJjYWxscyB0YWtlIHZjcHUg
aWQgYXMgYSBwYXJhbWV0ZXIuIEl0IGlzIHZhbGlkIGZvciBIVk0gZ3Vlc3RzIHRvIGFzc3VtZQor
ICogdGhhdCBYZW4ncyB2Q1BVIGlkIGFsd2F5cyBlcXVhbHMgdG8gQUNQSSAobm90IEFQSUMhKSBp
ZCBpbiBNQURUIHRhYmxlIHdoaWNoCisgKiBpcyBhbHdheXMgcHJlc2VudCBmb3IgU01QIGd1ZXN0
cy4KKyAqLworCiBzdHJ1Y3QgaHZtX2luZm9fdGFibGUgewogICAgIGNoYXIgICAgICAgIHNpZ25h
dHVyZVs4XTsgLyogIkhWTSBJTkZPIiAqLwogICAgIHVpbnQzMl90ICAgIGxlbmd0aDsKZGlmZiAt
LWdpdCBhL2luY2x1ZGUveGVuL2h2bS9odm1fb3AuaCBiL2luY2x1ZGUveGVuL2h2bS9odm1fb3Au
aAppbmRleCBjZGUzNTcxLi4wYmRhZmRmIDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi9odm0vaHZt
X29wLmgKKysrIGIvaW5jbHVkZS94ZW4vaHZtL2h2bV9vcC5oCkBAIC0xNiw2ICsxNiw4IEBACiAg
KiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9U
SEVSV0lTRSwgQVJJU0lORwogICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBU
SEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgogICogREVBTElOR1MgSU4gVEhFIFNPRlRX
QVJFLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAwNywgS2VpciBGcmFzZXIKICAqLwogCiAjaWZu
ZGVmIF9fWEVOX1BVQkxJQ19IVk1fSFZNX09QX0hfXwpAQCAtMzYsNiArMzgsOCBAQCBzdHJ1Y3Qg
eGVuX2h2bV9wYXJhbSB7CiB0eXBlZGVmIHN0cnVjdCB4ZW5faHZtX3BhcmFtIHhlbl9odm1fcGFy
YW1fdDsKIERFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1fcGFyYW1fdCk7CiAKKyNpZiBf
X1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDA0MDkwMAorCiAvKiBTZXQgdGhlIGxvZ2lj
YWwgbGV2ZWwgb2Ygb25lIG9mIGEgZG9tYWluJ3MgUENJIElOVHggd2lyZXMuICovCiAjZGVmaW5l
IEhWTU9QX3NldF9wY2lfaW50eF9sZXZlbCAgMgogc3RydWN0IHhlbl9odm1fc2V0X3BjaV9pbnR4
X2xldmVsIHsKQEAgLTc0LDYgKzc4LDggQEAgc3RydWN0IHhlbl9odm1fc2V0X3BjaV9saW5rX3Jv
dXRlIHsKIHR5cGVkZWYgc3RydWN0IHhlbl9odm1fc2V0X3BjaV9saW5rX3JvdXRlIHhlbl9odm1f
c2V0X3BjaV9saW5rX3JvdXRlX3Q7CiBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX3Nl
dF9wY2lfbGlua19yb3V0ZV90KTsKIAorI2VuZGlmIC8qIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9O
X18gPCAweDAwMDQwOTAwICovCisKIC8qIEZsdXNoZXMgYWxsIFZDUFUgVExCczogQGFyZyBtdXN0
IGJlIE5VTEwuICovCiAjZGVmaW5lIEhWTU9QX2ZsdXNoX3RsYnMgICAgICAgICAgNQogCkBAIC04
MSw1OCArODcsMjEgQEAgdHlwZWRlZiBlbnVtIHsKICAgICBIVk1NRU1fcmFtX3J3LCAgICAgICAg
ICAgICAvKiBOb3JtYWwgcmVhZC93cml0ZSBndWVzdCBSQU0gKi8KICAgICBIVk1NRU1fcmFtX3Jv
LCAgICAgICAgICAgICAvKiBSZWFkLW9ubHk7IHdyaXRlcyBhcmUgZGlzY2FyZGVkICovCiAgICAg
SFZNTUVNX21taW9fZG0sICAgICAgICAgICAgLyogUmVhZHMgYW5kIHdyaXRlIGdvIHRvIHRoZSBk
ZXZpY2UgbW9kZWwgKi8KLSAgICBIVk1NRU1fbW1pb193cml0ZV9kbSAgICAgICAvKiBSZWFkLW9u
bHk7IHdyaXRlcyBnbyB0byB0aGUgZGV2aWNlIG1vZGVsICovCisjaWYgX19YRU5fSU5URVJGQUNF
X1ZFUlNJT05fXyA8IDB4MDAwNDA3MDAKKyAgICBIVk1NRU1fbW1pb193cml0ZV9kbSwgICAgICAv
KiBSZWFkLW9ubHk7IHdyaXRlcyBnbyB0byB0aGUgZGV2aWNlIG1vZGVsICovCisjZWxzZQorICAg
IEhWTU1FTV91bnVzZWQsICAgICAgICAgICAgIC8qIFBsYWNlaG9sZGVyOyBzZXR0aW5nIG1lbW9y
eSB0byB0aGlzIHR5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsIGZh
aWwgZm9yIGNvZGUgYWZ0ZXIgNC43LjAgKi8KKyNlbmRpZgorICAgIEhWTU1FTV9pb3JlcV9zZXJ2
ZXIgICAgICAgIC8qIE1lbW9yeSB0eXBlIGNsYWltZWQgYnkgYW4gaW9yZXEgc2VydmVyOyB0eXBl
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlcyB0byB0aGlzIHZhbHVl
IGFyZSBvbmx5IGFsbG93ZWQgYWZ0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhbiBpb3JlcSBzZXJ2ZXIgaGFzIGNsYWltZWQgaXRzIG93bmVyc2hpcC4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBPbmx5IHBhZ2VzIHdpdGggSFZNTUVNX3JhbV9ydyBhcmUg
YWxsb3dlZCB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZSB0byB0
aGlzIHR5cGU7IGNvbnZlcnNlbHksIHBhZ2VzIHdpdGgKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aGlzIHR5cGUgYXJlIG9ubHkgYWxsb3dlZCB0byBiZSBjaGFuZ2VkIGJhY2sK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBIVk1NRU1fcmFtX3J3LiAqLwog
fSBodm1tZW1fdHlwZV90OwogCi0vKiBGb2xsb3dpbmcgdG9vbHMtb25seSBpbnRlcmZhY2VzIG1h
eSBjaGFuZ2UgaW4gZnV0dXJlLiAqLwotI2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChf
X1hFTl9UT09MU19fKQotCi0vKiBUcmFjayBkaXJ0eSBWUkFNLiAqLwotI2RlZmluZSBIVk1PUF90
cmFja19kaXJ0eV92cmFtICAgIDYKLXN0cnVjdCB4ZW5faHZtX3RyYWNrX2RpcnR5X3ZyYW0gewot
ICAgIC8qIERvbWFpbiB0byBiZSB0cmFja2VkLiAqLwotICAgIGRvbWlkX3QgIGRvbWlkOwotICAg
IC8qIE51bWJlciBvZiBwYWdlcyB0byB0cmFjay4gKi8KLSAgICB1aW50MzJfdCBucjsKLSAgICAv
KiBGaXJzdCBwZm4gdG8gdHJhY2suICovCi0gICAgdWludDY0X2FsaWduZWRfdCBmaXJzdF9wZm47
Ci0gICAgLyogT1VUIHZhcmlhYmxlLiAqLwotICAgIC8qIERpcnR5IGJpdG1hcCBidWZmZXIuICov
Ci0gICAgWEVOX0dVRVNUX0hBTkRMRV82NCh1aW50OCkgZGlydHlfYml0bWFwOwotfTsKLXR5cGVk
ZWYgc3RydWN0IHhlbl9odm1fdHJhY2tfZGlydHlfdnJhbSB4ZW5faHZtX3RyYWNrX2RpcnR5X3Zy
YW1fdDsKLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1fdHJhY2tfZGlydHlfdnJhbV90
KTsKLQotLyogTm90aWZ5IHRoYXQgc29tZSBwYWdlcyBnb3QgbW9kaWZpZWQgYnkgdGhlIERldmlj
ZSBNb2RlbC4gKi8KLSNkZWZpbmUgSFZNT1BfbW9kaWZpZWRfbWVtb3J5ICAgIDcKLXN0cnVjdCB4
ZW5faHZtX21vZGlmaWVkX21lbW9yeSB7Ci0gICAgLyogRG9tYWluIHRvIGJlIHVwZGF0ZWQuICov
Ci0gICAgZG9taWRfdCAgZG9taWQ7Ci0gICAgLyogTnVtYmVyIG9mIHBhZ2VzLiAqLwotICAgIHVp
bnQzMl90IG5yOwotICAgIC8qIEZpcnN0IHBmbi4gKi8KLSAgICB1aW50NjRfYWxpZ25lZF90IGZp
cnN0X3BmbjsKLX07Ci10eXBlZGVmIHN0cnVjdCB4ZW5faHZtX21vZGlmaWVkX21lbW9yeSB4ZW5f
aHZtX21vZGlmaWVkX21lbW9yeV90OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9t
b2RpZmllZF9tZW1vcnlfdCk7Ci0KLSNkZWZpbmUgSFZNT1Bfc2V0X21lbV90eXBlICAgIDgKLS8q
IE5vdGlmeSB0aGF0IGEgcmVnaW9uIG9mIG1lbW9yeSBpcyB0byBiZSB0cmVhdGVkIGluIGEgc3Bl
Y2lmaWMgd2F5LiAqLwotc3RydWN0IHhlbl9odm1fc2V0X21lbV90eXBlIHsKLSAgICAvKiBEb21h
aW4gdG8gYmUgdXBkYXRlZC4gKi8KLSAgICBkb21pZF90IGRvbWlkOwotICAgIC8qIE1lbW9yeSB0
eXBlICovCi0gICAgdWludDE2X3QgaHZtbWVtX3R5cGU7Ci0gICAgLyogTnVtYmVyIG9mIHBhZ2Vz
LiAqLwotICAgIHVpbnQzMl90IG5yOwotICAgIC8qIEZpcnN0IHBmbi4gKi8KLSAgICB1aW50NjRf
YWxpZ25lZF90IGZpcnN0X3BmbjsKLX07Ci10eXBlZGVmIHN0cnVjdCB4ZW5faHZtX3NldF9tZW1f
dHlwZSB4ZW5faHZtX3NldF9tZW1fdHlwZV90OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVu
X2h2bV9zZXRfbWVtX3R5cGVfdCk7Ci0KLSNlbmRpZiAvKiBkZWZpbmVkKF9fWEVOX18pIHx8IGRl
ZmluZWQoX19YRU5fVE9PTFNfXykgKi8KLQogLyogSGludCBmcm9tIFBWIGRyaXZlcnMgZm9yIHBh
Z2V0YWJsZSBkZXN0cnVjdGlvbi4gKi8KICNkZWZpbmUgSFZNT1BfcGFnZXRhYmxlX2R5aW5nICAg
ICAgICA5CiBzdHJ1Y3QgeGVuX2h2bV9wYWdldGFibGVfZHlpbmcgewpAQCAtMTcwLDM4ICsxMzks
NiBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX3hlbnRyYWNlX3QpOwogLyogRGVw
cmVjYXRlZCBieSBYRU5NRU1fYWNjZXNzX29wX2dldF9hY2Nlc3MgKi8KICNkZWZpbmUgSFZNT1Bf
Z2V0X21lbV9hY2Nlc3MgICAgICAgIDEzCiAKLSNkZWZpbmUgSFZNT1BfaW5qZWN0X3RyYXAgICAg
ICAgICAgICAxNAotLyogSW5qZWN0IGEgdHJhcCBpbnRvIGEgVkNQVSwgd2hpY2ggd2lsbCBnZXQg
dGFrZW4gdXAgb24gdGhlIG5leHQKLSAqIHNjaGVkdWxpbmcgb2YgaXQuIE5vdGUgdGhhdCB0aGUg
Y2FsbGVyIHNob3VsZCBrbm93IGVub3VnaCBvZiB0aGUKLSAqIHN0YXRlIG9mIHRoZSBDUFUgYmVm
b3JlIGluamVjdGluZywgdG8ga25vdyB3aGF0IHRoZSBlZmZlY3Qgb2YKLSAqIGluamVjdGluZyB0
aGUgdHJhcCB3aWxsIGJlLgotICovCi1zdHJ1Y3QgeGVuX2h2bV9pbmplY3RfdHJhcCB7Ci0gICAg
LyogRG9tYWluIHRvIGJlIHF1ZXJpZWQuICovCi0gICAgZG9taWRfdCBkb21pZDsKLSAgICAvKiBW
Q1BVICovCi0gICAgdWludDMyX3QgdmNwdWlkOwotICAgIC8qIFZlY3RvciBudW1iZXIgKi8KLSAg
ICB1aW50MzJfdCB2ZWN0b3I7Ci0gICAgLyogVHJhcCB0eXBlIChIVk1PUF9UUkFQXyopICovCi0g
ICAgdWludDMyX3QgdHlwZTsKLS8qIE5CLiBUaGlzIGVudW1lcmF0aW9uIHByZWNpc2VseSBtYXRj
aGVzIGh2bS5oOlg4Nl9FVkVOVFRZUEVfKiAqLwotIyBkZWZpbmUgSFZNT1BfVFJBUF9leHRfaW50
ICAgIDAgLyogZXh0ZXJuYWwgaW50ZXJydXB0ICovCi0jIGRlZmluZSBIVk1PUF9UUkFQX25taSAg
ICAgICAgMiAvKiBubWkgKi8KLSMgZGVmaW5lIEhWTU9QX1RSQVBfaHdfZXhjICAgICAzIC8qIGhh
cmR3YXJlIGV4Y2VwdGlvbiAqLwotIyBkZWZpbmUgSFZNT1BfVFJBUF9zd19pbnQgICAgIDQgLyog
c29mdHdhcmUgaW50ZXJydXB0IChDRCBubikgKi8KLSMgZGVmaW5lIEhWTU9QX1RSQVBfcHJpX3N3
X2V4YyA1IC8qIElDRUJQIChGMSkgKi8KLSMgZGVmaW5lIEhWTU9QX1RSQVBfc3dfZXhjICAgICA2
IC8qIElOVDMgKENDKSwgSU5UTyAoQ0UpICovCi0gICAgLyogRXJyb3IgY29kZSwgb3IgfjB1IHRv
IHNraXAgKi8KLSAgICB1aW50MzJfdCBlcnJvcl9jb2RlOwotICAgIC8qIEludHJ1Y3Rpb24gbGVu
Z3RoICovCi0gICAgdWludDMyX3QgaW5zbl9sZW47Ci0gICAgLyogQ1IyIGZvciBwYWdlIGZhdWx0
cyAqLwotICAgIHVpbnQ2NF9hbGlnbmVkX3QgY3IyOwotfTsKLXR5cGVkZWYgc3RydWN0IHhlbl9o
dm1faW5qZWN0X3RyYXAgeGVuX2h2bV9pbmplY3RfdHJhcF90OwotREVGSU5FX1hFTl9HVUVTVF9I
QU5ETEUoeGVuX2h2bV9pbmplY3RfdHJhcF90KTsKLQogI2VuZGlmIC8qIGRlZmluZWQoX19YRU5f
XykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKSAqLwogCiAjZGVmaW5lIEhWTU9QX2dldF9tZW1f
dHlwZSAgICAxNQpAQCAtMjIxLDE1MiArMTU4LDE4IEBAIERFRklORV9YRU5fR1VFU1RfSEFORExF
KHhlbl9odm1fZ2V0X21lbV90eXBlX3QpOwogLyogRm9sbG93aW5nIHRvb2xzLW9ubHkgaW50ZXJm
YWNlcyBtYXkgY2hhbmdlIGluIGZ1dHVyZS4gKi8KICNpZiBkZWZpbmVkKF9fWEVOX18pIHx8IGRl
ZmluZWQoX19YRU5fVE9PTFNfXykKIAotLyogTVNJIGluamVjdGlvbiBmb3IgZW11bGF0ZWQgZGV2
aWNlcyAqLwotI2RlZmluZSBIVk1PUF9pbmplY3RfbXNpICAgICAgICAgMTYKLXN0cnVjdCB4ZW5f
aHZtX2luamVjdF9tc2kgewotICAgIC8qIERvbWFpbiB0byBiZSBpbmplY3RlZCAqLwotICAgIGRv
bWlkX3QgICBkb21pZDsKLSAgICAvKiBEYXRhIC0tIGxvd2VyIDMyIGJpdHMgKi8KLSAgICB1aW50
MzJfdCAgZGF0YTsKLSAgICAvKiBBZGRyZXNzICgweGZlZXh4eHh4KSAqLwotICAgIHVpbnQ2NF90
ICBhZGRyOwotfTsKLXR5cGVkZWYgc3RydWN0IHhlbl9odm1faW5qZWN0X21zaSB4ZW5faHZtX2lu
amVjdF9tc2lfdDsKLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1faW5qZWN0X21zaV90
KTsKLQogLyoKLSAqIElPUkVRIFNlcnZlcnMKLSAqCi0gKiBUaGUgaW50ZXJmYWNlIGJldHdlZW4g
YW4gSS9PIGVtdWxhdG9yIGFuIFhlbiBpcyBjYWxsZWQgYW4gSU9SRVEgU2VydmVyLgotICogQSBk
b21haW4gc3VwcG9ydHMgYSBzaW5nbGUgJ2xlZ2FjeScgSU9SRVEgU2VydmVyIHdoaWNoIGlzIGlu
c3RhbnRpYXRlZCBpZgotICogcGFyYW1ldGVyLi4uCi0gKgotICogSFZNX1BBUkFNX0lPUkVRX1BG
TiBpcyByZWFkICh0byBnZXQgdGhlIGdtZm4gY29udGFpbmluZyB0aGUgc3luY2hyb25vdXMKLSAq
IGlvcmVxIHN0cnVjdHVyZXMpLCBvci4uLgotICogSFZNX1BBUkFNX0JVRklPUkVRX1BGTiBpcyBy
ZWFkICh0byBnZXQgdGhlIGdtZm4gY29udGFpbmluZyB0aGUgYnVmZmVyZWQKLSAqIGlvcmVxIHJp
bmcpLCBvci4uLgotICogSFZNX1BBUkFNX0JVRklPUkVRX0VWVENITiBpcyByZWFkICh0byBnZXQg
dGhlIGV2ZW50IGNoYW5uZWwgdGhhdCBYZW4gdXNlcwotICogdG8gcmVxdWVzdCBidWZmZXJlZCBJ
L08gZW11bGF0aW9uKS4KLSAqIAotICogVGhlIGZvbGxvd2luZyBoeXBlcmNhbGxzIGZhY2lsaXRh
dGUgdGhlIGNyZWF0aW9uIG9mIElPUkVRIFNlcnZlcnMgZm9yCi0gKiAnc2Vjb25kYXJ5JyBlbXVs
YXRvcnMgd2hpY2ggYXJlIGludm9rZWQgdG8gaW1wbGVtZW50IHBvcnQgSS9PLCBtZW1vcnksIG9y
Ci0gKiBQQ0kgY29uZmlnIHNwYWNlIHJhbmdlcyB3aGljaCB0aGV5IGV4cGxpY2l0bHkgcmVnaXN0
ZXIuCisgKiBEZWZpbml0aW9ucyByZWxhdGluZyB0byBETU9QX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIu
IChEZWZpbmVkIGhlcmUgZm9yCisgKiBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSkuCiAgKi8KIAot
dHlwZWRlZiB1aW50MTZfdCBpb3NlcnZpZF90OwotCisjZGVmaW5lIEhWTV9JT1JFUVNSVl9CVUZJ
T1JFUV9PRkYgICAgMAorI2RlZmluZSBIVk1fSU9SRVFTUlZfQlVGSU9SRVFfTEVHQUNZIDEKIC8q
Ci0gKiBIVk1PUF9jcmVhdGVfaW9yZXFfc2VydmVyOiBJbnN0YW50aWF0ZSBhIG5ldyBJT1JFUSBT
ZXJ2ZXIgZm9yIGEgc2Vjb25kYXJ5Ci0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbXVs
YXRvciBzZXJ2aWNpbmcgZG9tYWluIDxkb21pZD4uCi0gKgotICogVGhlIDxpZD4gaGFuZGVkIGJh
Y2sgaXMgdW5pcXVlIGZvciA8ZG9taWQ+LiBJZiA8aGFuZGxlX2J1ZmlvcmVxPiBpcyB6ZXJvCi0g
KiB0aGUgYnVmZmVyZWQgaW9yZXEgcmluZyB3aWxsIG5vdCBiZSBhbGxvY2F0ZWQgYW5kIGhlbmNl
IGFsbCBlbXVsYXRpb24KLSAqIHJlcXVlc3RlcyB0byB0aGlzIHNlcnZlciB3aWxsIGJlIHN5bmNo
cm9ub3VzLgorICogVXNlIHRoaXMgd2hlbiByZWFkX3BvaW50ZXIgZ2V0cyB1cGRhdGVkIGF0b21p
Y2FsbHkgYW5kCisgKiB0aGUgcG9pbnRlciBwYWlyIGdldHMgcmVhZCBhdG9taWNhbGx5OgogICov
Ci0jZGVmaW5lIEhWTU9QX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIgMTcKLXN0cnVjdCB4ZW5faHZtX2Ny
ZWF0ZV9pb3JlcV9zZXJ2ZXIgewotICAgIGRvbWlkX3QgZG9taWQ7ICAgICAgICAgICAvKiBJTiAt
IGRvbWFpbiB0byBiZSBzZXJ2aWNlZCAqLwotICAgIHVpbnQ4X3QgaGFuZGxlX2J1ZmlvcmVxOyAv
KiBJTiAtIHNob3VsZCBzZXJ2ZXIgaGFuZGxlIGJ1ZmZlcmVkIGlvcmVxcyAqLwotICAgIGlvc2Vy
dmlkX3QgaWQ7ICAgICAgICAgICAvKiBPVVQgLSBzZXJ2ZXIgaWQgKi8KLX07Ci10eXBlZGVmIHN0
cnVjdCB4ZW5faHZtX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIgeGVuX2h2bV9jcmVhdGVfaW9yZXFfc2Vy
dmVyX3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX2NyZWF0ZV9pb3JlcV9zZXJ2
ZXJfdCk7Ci0KLS8qCi0gKiBIVk1PUF9nZXRfaW9yZXFfc2VydmVyX2luZm86IEdldCBhbGwgdGhl
IGluZm9ybWF0aW9uIG5lY2Vzc2FyeSB0byBhY2Nlc3MKLSAqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgSU9SRVEgU2VydmVyIDxpZD4uIAotICoKLSAqIFRoZSBlbXVsYXRvciBuZWVkcyB0
byBtYXAgdGhlIHN5bmNocm9ub3VzIGlvcmVxIHN0cnVjdHVyZXMgYW5kIGJ1ZmZlcmVkCi0gKiBp
b3JlcSByaW5nIChpZiBpdCBleGlzdHMpIHRoYXQgWGVuIHVzZXMgdG8gcmVxdWVzdCBlbXVsYXRp
b24uIFRoZXNlIGFyZQotICogaG9zdGVkIGluIGRvbWFpbiA8ZG9taWQ+J3MgZ21mbnMgPGlvcmVx
X3Bmbj4gYW5kIDxidWZpb3JlcV9wZm4+Ci0gKiByZXNwZWN0aXZlbHkuIEluIGFkZGl0aW9uLCBp
ZiB0aGUgSU9SRVEgU2VydmVyIGlzIGhhbmRsaW5nIGJ1ZmZlcmVkCi0gKiBlbXVsYXRpb24gcmVx
dWVzdHMsIHRoZSBlbXVsYXRvciBuZWVkcyB0byBiaW5kIHRvIGV2ZW50IGNoYW5uZWwKLSAqIDxi
dWZpb3JlcV9wb3J0PiB0byBsaXN0ZW4gZm9yIHRoZW0uIChUaGUgZXZlbnQgY2hhbm5lbHMgdXNl
ZCBmb3IKLSAqIHN5bmNocm9ub3VzIGVtdWxhdGlvbiByZXF1ZXN0cyBhcmUgc3BlY2lmaWVkIGlu
IHRoZSBwZXItQ1BVIGlvcmVxCi0gKiBzdHJ1Y3R1cmVzIGluIDxpb3JlcV9wZm4+KS4KLSAqIElm
IHRoZSBJT1JFUSBTZXJ2ZXIgaXMgbm90IGhhbmRsaW5nIGJ1ZmZlcmVkIGVtdWxhdGlvbiByZXF1
ZXN0cyB0aGVuIHRoZQotICogdmFsdWVzIGhhbmRlZCBiYWNrIGluIDxidWZpb3JlcV9wZm4+IGFu
ZCA8YnVmaW9yZXFfcG9ydD4gd2lsbCBib3RoIGJlIDAuCi0gKi8KLSNkZWZpbmUgSFZNT1BfZ2V0
X2lvcmVxX3NlcnZlcl9pbmZvIDE4Ci1zdHJ1Y3QgeGVuX2h2bV9nZXRfaW9yZXFfc2VydmVyX2lu
Zm8gewotICAgIGRvbWlkX3QgZG9taWQ7ICAgICAgICAgICAgICAgICAvKiBJTiAtIGRvbWFpbiB0
byBiZSBzZXJ2aWNlZCAqLwotICAgIGlvc2VydmlkX3QgaWQ7ICAgICAgICAgICAgICAgICAvKiBJ
TiAtIHNlcnZlciBpZCAqLwotICAgIGV2dGNobl9wb3J0X3QgYnVmaW9yZXFfcG9ydDsgICAvKiBP
VVQgLSBidWZmZXJlZCBpb3JlcSBwb3J0ICovCi0gICAgdWludDY0X2FsaWduZWRfdCBpb3JlcV9w
Zm47ICAgIC8qIE9VVCAtIHN5bmMgaW9yZXEgcGZuICovCi0gICAgdWludDY0X2FsaWduZWRfdCBi
dWZpb3JlcV9wZm47IC8qIE9VVCAtIGJ1ZmZlcmVkIGlvcmVxIHBmbiAqLwotfTsKLXR5cGVkZWYg
c3RydWN0IHhlbl9odm1fZ2V0X2lvcmVxX3NlcnZlcl9pbmZvIHhlbl9odm1fZ2V0X2lvcmVxX3Nl
cnZlcl9pbmZvX3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX2dldF9pb3JlcV9z
ZXJ2ZXJfaW5mb190KTsKLQotLyoKLSAqIEhWTV9tYXBfaW9fcmFuZ2VfdG9faW9yZXFfc2VydmVy
OiBSZWdpc3RlciBhbiBJL08gcmFuZ2Ugb2YgZG9tYWluIDxkb21pZD4KLSAqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmb3IgZW11bGF0aW9uIGJ5IHRoZSBjbGllbnQgb2YgSU9S
RVEKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXJ2ZXIgPGlkPgotICog
SFZNX3VubWFwX2lvX3JhbmdlX2Zyb21faW9yZXFfc2VydmVyOiBEZXJlZ2lzdGVyIGFuIEkvTyBy
YW5nZSBvZiA8ZG9taWQ+Ci0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZvciBlbXVsYXRpb24gYnkgdGhlIGNsaWVudCBvZiBJT1JFUQotICogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBTZXJ2ZXIgPGlkPgotICoKLSAqIFRoZXJlIGFyZSB0aHJl
ZSB0eXBlcyBvZiBJL08gdGhhdCBjYW4gYmUgZW11bGF0ZWQ6IHBvcnQgSS9PLCBtZW1vcnkgYWNj
ZXNzZXMKLSAqIGFuZCBQQ0kgY29uZmlnIHNwYWNlIGFjY2Vzc2VzLiBUaGUgPHR5cGU+IGZpZWxk
IGRlbm90ZXMgd2hpY2ggdHlwZSBvZiByYW5nZQotICogdGhlIDxzdGFydD4gYW5kIDxlbmQ+IChp
bmNsdXNpdmUpIGZpZWxkcyBhcmUgc3BlY2lmeWluZy4KLSAqIFBDSSBjb25maWcgc3BhY2UgcmFu
Z2VzIGFyZSBzcGVjaWZpZWQgYnkgc2VnbWVudC9idXMvZGV2aWNlL2Z1bmN0aW9uIHZhbHVlcwot
ICogd2hpY2ggc2hvdWxkIGJlIGVuY29kZWQgdXNpbmcgdGhlIEhWTU9QX1BDSV9TQkRGIGhlbHBl
ciBtYWNybyBiZWxvdy4KLSAqCi0gKiBOT1RFOiB1bmxlc3MgYW4gZW11bGF0aW9uIHJlcXVlc3Qg
ZmFsbHMgZW50aXJlbHkgd2l0aGluIGEgcmFuZ2UgbWFwcGVkCi0gKiBieSBhIHNlY29uZGFyeSBl
bXVsYXRvciwgaXQgd2lsbCBub3QgYmUgcGFzc2VkIHRvIHRoYXQgZW11bGF0b3IuCi0gKi8KLSNk
ZWZpbmUgSFZNT1BfbWFwX2lvX3JhbmdlX3RvX2lvcmVxX3NlcnZlciAxOQotI2RlZmluZSBIVk1P
UF91bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZlciAyMAotc3RydWN0IHhlbl9odm1faW9f
cmFuZ2UgewotICAgIGRvbWlkX3QgZG9taWQ7ICAgICAgICAgICAgICAgLyogSU4gLSBkb21haW4g
dG8gYmUgc2VydmljZWQgKi8KLSAgICBpb3NlcnZpZF90IGlkOyAgICAgICAgICAgICAgIC8qIElO
IC0gc2VydmVyIGlkICovCi0gICAgdWludDMyX3QgdHlwZTsgICAgICAgICAgICAgICAvKiBJTiAt
IHR5cGUgb2YgcmFuZ2UgKi8KLSMgZGVmaW5lIEhWTU9QX0lPX1JBTkdFX1BPUlQgICAwIC8qIEkv
TyBwb3J0IHJhbmdlICovCi0jIGRlZmluZSBIVk1PUF9JT19SQU5HRV9NRU1PUlkgMSAvKiBNTUlP
IHJhbmdlICovCi0jIGRlZmluZSBIVk1PUF9JT19SQU5HRV9QQ0kgICAgMiAvKiBQQ0kgc2VnbWVu
dC9idXMvZGV2L2Z1bmMgcmFuZ2UgKi8KLSAgICB1aW50NjRfYWxpZ25lZF90IHN0YXJ0LCBlbmQ7
IC8qIElOIC0gaW5jbHVzaXZlIHN0YXJ0IGFuZCBlbmQgb2YgcmFuZ2UgKi8KLX07Ci10eXBlZGVm
IHN0cnVjdCB4ZW5faHZtX2lvX3JhbmdlIHhlbl9odm1faW9fcmFuZ2VfdDsKLURFRklORV9YRU5f
R1VFU1RfSEFORExFKHhlbl9odm1faW9fcmFuZ2VfdCk7Ci0KLSNkZWZpbmUgSFZNT1BfUENJX1NC
REYocyxiLGQsZikgICAgICAgICAgICAgICAgIFwKLQkoKCgocykgJiAweGZmZmYpIDw8IDE2KSB8
ICAgICAgICAgICAgICAgICAgIFwKLQkgKCgoYikgJiAweGZmKSA8PCA4KSB8ICAgICAgICAgICAg
ICAgICAgICAgIFwKLQkgKCgoZCkgJiAweDFmKSA8PCAzKSB8ICAgICAgICAgICAgICAgICAgICAg
IFwKLQkgKChmKSAmIDB4MDcpKQotCi0vKgotICogSFZNT1BfZGVzdHJveV9pb3JlcV9zZXJ2ZXI6
IERlc3Ryb3kgdGhlIElPUkVRIFNlcnZlciA8aWQ+IHNlcnZpY2luZyBkb21haW4KLSAqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8ZG9taWQ+LgotICoKLSAqIEFueSByZWdpc3RlcmVkIEkv
TyByYW5nZXMgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGRlcmVnaXN0ZXJlZC4KLSAqLwotI2RlZmlu
ZSBIVk1PUF9kZXN0cm95X2lvcmVxX3NlcnZlciAyMQotc3RydWN0IHhlbl9odm1fZGVzdHJveV9p
b3JlcV9zZXJ2ZXIgewotICAgIGRvbWlkX3QgZG9taWQ7IC8qIElOIC0gZG9tYWluIHRvIGJlIHNl
cnZpY2VkICovCi0gICAgaW9zZXJ2aWRfdCBpZDsgLyogSU4gLSBzZXJ2ZXIgaWQgKi8KLX07Ci10
eXBlZGVmIHN0cnVjdCB4ZW5faHZtX2Rlc3Ryb3lfaW9yZXFfc2VydmVyIHhlbl9odm1fZGVzdHJv
eV9pb3JlcV9zZXJ2ZXJfdDsKLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1fZGVzdHJv
eV9pb3JlcV9zZXJ2ZXJfdCk7Ci0KLS8qCi0gKiBIVk1PUF9zZXRfaW9yZXFfc2VydmVyX3N0YXRl
OiBFbmFibGUgb3IgZGlzYWJsZSB0aGUgSU9SRVEgU2VydmVyIDxpZD4gc2VydmljaW5nCi0gKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4gPGRvbWlkPi4KLSAqCi0gKiBUaGUg
SU9SRVEgU2VydmVyIHdpbGwgbm90IGJlIHBhc3NlZCBhbnkgZW11bGF0aW9uIHJlcXVlc3RzIHVu
dGlsIGl0IGlzIGluIHRoZQotICogZW5hYmxlZCBzdGF0ZS4KLSAqIE5vdGUgdGhhdCB0aGUgY29u
dGVudHMgb2YgdGhlIGlvcmVxX3BmbiBhbmQgYnVmaW9yZXFfZm4gKHNlZQotICogSFZNT1BfZ2V0
X2lvcmVxX3NlcnZlcl9pbmZvKSBhcmUgbm90IG1lYW5pbmdmdWwgdW50aWwgdGhlIElPUkVRIFNl
cnZlciBpcyBpbgotICogdGhlIGVuYWJsZWQgc3RhdGUuCi0gKi8KLSNkZWZpbmUgSFZNT1Bfc2V0
X2lvcmVxX3NlcnZlcl9zdGF0ZSAyMgotc3RydWN0IHhlbl9odm1fc2V0X2lvcmVxX3NlcnZlcl9z
dGF0ZSB7Ci0gICAgZG9taWRfdCBkb21pZDsgICAvKiBJTiAtIGRvbWFpbiB0byBiZSBzZXJ2aWNl
ZCAqLwotICAgIGlvc2VydmlkX3QgaWQ7ICAgLyogSU4gLSBzZXJ2ZXIgaWQgKi8KLSAgICB1aW50
OF90IGVuYWJsZWQ7IC8qIElOIC0gZW5hYmxlZD8gKi8gICAgCi19OwotdHlwZWRlZiBzdHJ1Y3Qg
eGVuX2h2bV9zZXRfaW9yZXFfc2VydmVyX3N0YXRlIHhlbl9odm1fc2V0X2lvcmVxX3NlcnZlcl9z
dGF0ZV90OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9zZXRfaW9yZXFfc2VydmVy
X3N0YXRlX3QpOworI2RlZmluZSBIVk1fSU9SRVFTUlZfQlVGSU9SRVFfQVRPTUlDIDIKIAogI2Vu
ZGlmIC8qIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKSAqLwogCkBA
IC0zODksNiArMTkyLDk3IEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1fZXZ0Y2hu
X3VwY2FsbF92ZWN0b3JfdCk7CiAKICNlbmRpZiAvKiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp
bmVkKF9feDg2XzY0X18pICovCiAKKyNkZWZpbmUgSFZNT1BfZ3Vlc3RfcmVxdWVzdF92bV9ldmVu
dCAyNAorCisvKiBIVk1PUF9hbHRwMm06IHBlcmZvcm0gYWx0cDJtIHN0YXRlIG9wZXJhdGlvbnMg
Ki8KKyNkZWZpbmUgSFZNT1BfYWx0cDJtIDI1CisKKyNkZWZpbmUgSFZNT1BfQUxUUDJNX0lOVEVS
RkFDRV9WRVJTSU9OIDB4MDAwMDAwMDEKKworc3RydWN0IHhlbl9odm1fYWx0cDJtX2RvbWFpbl9z
dGF0ZSB7CisgICAgLyogSU4gb3IgT1VUIHZhcmlhYmxlIG9uL29mZiAqLworICAgIHVpbnQ4X3Qg
c3RhdGU7Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fZG9tYWluX3N0YXRlIHhl
bl9odm1fYWx0cDJtX2RvbWFpbl9zdGF0ZV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVu
X2h2bV9hbHRwMm1fZG9tYWluX3N0YXRlX3QpOworCitzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fdmNw
dV9lbmFibGVfbm90aWZ5IHsKKyAgICB1aW50MzJfdCB2Y3B1X2lkOworICAgIHVpbnQzMl90IHBh
ZDsKKyAgICAvKiAjVkUgaW5mbyBhcmVhIGdmbiAqLworICAgIHVpbnQ2NF90IGdmbjsKK307Cit0
eXBlZGVmIHN0cnVjdCB4ZW5faHZtX2FsdHAybV92Y3B1X2VuYWJsZV9ub3RpZnkgeGVuX2h2bV9h
bHRwMm1fdmNwdV9lbmFibGVfbm90aWZ5X3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5f
aHZtX2FsdHAybV92Y3B1X2VuYWJsZV9ub3RpZnlfdCk7CisKK3N0cnVjdCB4ZW5faHZtX2FsdHAy
bV92aWV3IHsKKyAgICAvKiBJTi9PVVQgdmFyaWFibGUgKi8KKyAgICB1aW50MTZfdCB2aWV3Owor
ICAgIC8qIENyZWF0ZSB2aWV3IG9ubHk6IGRlZmF1bHQgYWNjZXNzIHR5cGUKKyAgICAgKiBOT1RF
OiBjdXJyZW50bHkgaWdub3JlZCAqLworICAgIHVpbnQxNl90IGh2bW1lbV9kZWZhdWx0X2FjY2Vz
czsgLyogeGVubWVtX2FjY2Vzc190ICovCit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9hbHRw
Mm1fdmlldyB4ZW5faHZtX2FsdHAybV92aWV3X3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4
ZW5faHZtX2FsdHAybV92aWV3X3QpOworCitzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fc2V0X21lbV9h
Y2Nlc3MgeworICAgIC8qIHZpZXcgKi8KKyAgICB1aW50MTZfdCB2aWV3OworICAgIC8qIE1lbW9y
eSB0eXBlICovCisgICAgdWludDE2X3QgaHZtbWVtX2FjY2VzczsgLyogeGVubWVtX2FjY2Vzc190
ICovCisgICAgdWludDMyX3QgcGFkOworICAgIC8qIGdmbiAqLworICAgIHVpbnQ2NF90IGdmbjsK
K307Cit0eXBlZGVmIHN0cnVjdCB4ZW5faHZtX2FsdHAybV9zZXRfbWVtX2FjY2VzcyB4ZW5faHZt
X2FsdHAybV9zZXRfbWVtX2FjY2Vzc190OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2
bV9hbHRwMm1fc2V0X21lbV9hY2Nlc3NfdCk7CisKK3N0cnVjdCB4ZW5faHZtX2FsdHAybV9jaGFu
Z2VfZ2ZuIHsKKyAgICAvKiB2aWV3ICovCisgICAgdWludDE2X3QgdmlldzsKKyAgICB1aW50MTZf
dCBwYWQxOworICAgIHVpbnQzMl90IHBhZDI7CisgICAgLyogb2xkIGdmbiAqLworICAgIHVpbnQ2
NF90IG9sZF9nZm47CisgICAgLyogbmV3IGdmbiwgSU5WQUxJRF9HRk4gKH4wVUwpIG1lYW5zIHJl
dmVydCAqLworICAgIHVpbnQ2NF90IG5ld19nZm47Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2h2
bV9hbHRwMm1fY2hhbmdlX2dmbiB4ZW5faHZtX2FsdHAybV9jaGFuZ2VfZ2ZuX3Q7CitERUZJTkVf
WEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX2FsdHAybV9jaGFuZ2VfZ2ZuX3QpOworCitzdHJ1Y3Qg
eGVuX2h2bV9hbHRwMm1fb3AgeworICAgIHVpbnQzMl90IHZlcnNpb247ICAgLyogSFZNT1BfQUxU
UDJNX0lOVEVSRkFDRV9WRVJTSU9OICovCisgICAgdWludDMyX3QgY21kOworLyogR2V0L3NldCB0
aGUgYWx0cDJtIHN0YXRlIGZvciBhIGRvbWFpbiAqLworI2RlZmluZSBIVk1PUF9hbHRwMm1fZ2V0
X2RvbWFpbl9zdGF0ZSAgICAgMQorI2RlZmluZSBIVk1PUF9hbHRwMm1fc2V0X2RvbWFpbl9zdGF0
ZSAgICAgMgorLyogU2V0IHRoZSBjdXJyZW50IFZDUFUgdG8gcmVjZWl2ZSBhbHRwMm0gZXZlbnQg
bm90aWZpY2F0aW9ucyAqLworI2RlZmluZSBIVk1PUF9hbHRwMm1fdmNwdV9lbmFibGVfbm90aWZ5
ICAgMworLyogQ3JlYXRlIGEgbmV3IHZpZXcgKi8KKyNkZWZpbmUgSFZNT1BfYWx0cDJtX2NyZWF0
ZV9wMm0gICAgICAgICAgIDQKKy8qIERlc3Ryb3kgYSB2aWV3ICovCisjZGVmaW5lIEhWTU9QX2Fs
dHAybV9kZXN0cm95X3AybSAgICAgICAgICA1CisvKiBTd2l0Y2ggdmlldyBmb3IgYW4gZW50aXJl
IGRvbWFpbiAqLworI2RlZmluZSBIVk1PUF9hbHRwMm1fc3dpdGNoX3AybSAgICAgICAgICAgNgor
LyogTm90aWZ5IHRoYXQgYSBwYWdlIG9mIG1lbW9yeSBpcyB0byBoYXZlIHNwZWNpZmljIGFjY2Vz
cyB0eXBlcyAqLworI2RlZmluZSBIVk1PUF9hbHRwMm1fc2V0X21lbV9hY2Nlc3MgICAgICAgNwor
LyogQ2hhbmdlIGEgcDJtIGVudHJ5IHRvIGhhdmUgYSBkaWZmZXJlbnQgZ2ZuLT5tZm4gbWFwcGlu
ZyAqLworI2RlZmluZSBIVk1PUF9hbHRwMm1fY2hhbmdlX2dmbiAgICAgICAgICAgOAorICAgIGRv
bWlkX3QgZG9tYWluOworICAgIHVpbnQxNl90IHBhZDE7CisgICAgdWludDMyX3QgcGFkMjsKKyAg
ICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCB4ZW5faHZtX2FsdHAybV9kb21haW5fc3RhdGUgICAg
ICAgZG9tYWluX3N0YXRlOworICAgICAgICBzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fdmNwdV9lbmFi
bGVfbm90aWZ5IGVuYWJsZV9ub3RpZnk7CisgICAgICAgIHN0cnVjdCB4ZW5faHZtX2FsdHAybV92
aWV3ICAgICAgICAgICAgICAgdmlldzsKKyAgICAgICAgc3RydWN0IHhlbl9odm1fYWx0cDJtX3Nl
dF9tZW1fYWNjZXNzICAgICBzZXRfbWVtX2FjY2VzczsKKyAgICAgICAgc3RydWN0IHhlbl9odm1f
YWx0cDJtX2NoYW5nZV9nZm4gICAgICAgICBjaGFuZ2VfZ2ZuOworICAgICAgICB1aW50OF90IHBh
ZFs2NF07CisgICAgfSB1OworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9odm1fYWx0cDJtX29wIHhl
bl9odm1fYWx0cDJtX29wX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX2FsdHAy
bV9vcF90KTsKKwogI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19IVk1fSFZNX09QX0hfXyAqLwogCiAv
KgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vaHZtL2h2bV92Y3B1LmggYi9pbmNsdWRlL3hlbi9o
dm0vaHZtX3ZjcHUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjFhYmYx
Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94ZW4vaHZtL2h2bV92Y3B1LmgKQEAgLTAsMCAr
MSwxNDQgQEAKKy8qCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNo
YXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJl
IGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8K
KyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3
aXRob3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1l
cmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29w
aWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNv
ZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz
IHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9y
IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdB
UkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQ
UkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFV
VEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFH
RVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJB
Q1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09O
TkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5H
UyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDE1LCBSb2dlciBQYXUg
TW9ubmUgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElD
X0hWTV9IVk1fVkNQVV9IX18KKyNkZWZpbmUgX19YRU5fUFVCTElDX0hWTV9IVk1fVkNQVV9IX18K
KworI2luY2x1ZGUgIi4uL3hlbi5oIgorCitzdHJ1Y3QgdmNwdV9odm1feDg2XzMyIHsKKyAgICB1
aW50MzJfdCBlYXg7CisgICAgdWludDMyX3QgZWN4OworICAgIHVpbnQzMl90IGVkeDsKKyAgICB1
aW50MzJfdCBlYng7CisgICAgdWludDMyX3QgZXNwOworICAgIHVpbnQzMl90IGVicDsKKyAgICB1
aW50MzJfdCBlc2k7CisgICAgdWludDMyX3QgZWRpOworICAgIHVpbnQzMl90IGVpcDsKKyAgICB1
aW50MzJfdCBlZmxhZ3M7CisKKyAgICB1aW50MzJfdCBjcjA7CisgICAgdWludDMyX3QgY3IzOwor
ICAgIHVpbnQzMl90IGNyNDsKKworICAgIHVpbnQzMl90IHBhZDE7CisKKyAgICAvKgorICAgICAq
IEVGRVIgc2hvdWxkIG9ubHkgYmUgdXNlZCB0byBzZXQgdGhlIE5YRSBiaXQgKGlmIHJlcXVpcmVk
KQorICAgICAqIHdoZW4gc3RhcnRpbmcgYSB2Q1BVIGluIDMyYml0IG1vZGUgd2l0aCBwYWdpbmcg
ZW5hYmxlZCBvcgorICAgICAqIHRvIHNldCB0aGUgTE1FL0xNQSBiaXRzIGluIG9yZGVyIHRvIHN0
YXJ0IHRoZSB2Q1BVIGluCisgICAgICogY29tcGF0aWJpbGl0eSBtb2RlLgorICAgICAqLworICAg
IHVpbnQ2NF90IGVmZXI7CisKKyAgICB1aW50MzJfdCBjc19iYXNlOworICAgIHVpbnQzMl90IGRz
X2Jhc2U7CisgICAgdWludDMyX3Qgc3NfYmFzZTsKKyAgICB1aW50MzJfdCBlc19iYXNlOworICAg
IHVpbnQzMl90IHRyX2Jhc2U7CisgICAgdWludDMyX3QgY3NfbGltaXQ7CisgICAgdWludDMyX3Qg
ZHNfbGltaXQ7CisgICAgdWludDMyX3Qgc3NfbGltaXQ7CisgICAgdWludDMyX3QgZXNfbGltaXQ7
CisgICAgdWludDMyX3QgdHJfbGltaXQ7CisgICAgdWludDE2X3QgY3NfYXI7CisgICAgdWludDE2
X3QgZHNfYXI7CisgICAgdWludDE2X3Qgc3NfYXI7CisgICAgdWludDE2X3QgZXNfYXI7CisgICAg
dWludDE2X3QgdHJfYXI7CisKKyAgICB1aW50MTZfdCBwYWQyWzNdOworfTsKKworLyoKKyAqIFRo
ZSBsYXlvdXQgb2YgdGhlIF9hciBmaWVsZHMgb2YgdGhlIHNlZ21lbnQgcmVnaXN0ZXJzIGlzIHRo
ZQorICogZm9sbG93aW5nOgorICoKKyAqIEJpdHMgICBbMCwzXTogdHlwZSAoYml0cyA0MC00Myku
CisgKiBCaXQgICAgICAgIDQ6IHMgICAgKGRlc2NyaXB0b3IgdHlwZSwgYml0IDQ0KS4KKyAqIEJp
dCAgICBbNSw2XTogZHBsICAoZGVzY3JpcHRvciBwcml2aWxlZ2UgbGV2ZWwsIGJpdHMgNDUtNDYp
LgorICogQml0ICAgICAgICA3OiBwICAgIChzZWdtZW50LXByZXNlbnQsIGJpdCA0NykuCisgKiBC
aXQgICAgICAgIDg6IGF2bCAgKGF2YWlsYWJsZSBmb3Igc3lzdGVtIHNvZnR3YXJlLCBiaXQgNTIp
LgorICogQml0ICAgICAgICA5OiBsICAgICg2NC1iaXQgY29kZSBzZWdtZW50LCBiaXQgNTMpLgor
ICogQml0ICAgICAgIDEwOiBkYiAgIChtZWFuaW5nIGRlcGVuZHMgb24gdGhlIHNlZ21lbnQsIGJp
dCA1NCkuCisgKiBCaXQgICAgICAgMTE6IGcgICAgKGdyYW51bGFyaXR5LCBiaXQgNTUpCisgKiBC
aXRzIFsxMiwxNV06IHVudXNlZCwgbXVzdCBiZSBibGFuay4KKyAqCisgKiBBIG1vcmUgY29tcGxl
dGUgZGVzY3JpcHRpb24gb2YgdGhlIG1lYW5pbmcgb2YgdGhpcyBmaWVsZHMgY2FuIGJlCisgKiBv
YnRhaW5lZCBmcm9tIHRoZSBJbnRlbCBTRE0sIFZvbHVtZSAzLCBzZWN0aW9uIDMuNC41LgorICov
CisKK3N0cnVjdCB2Y3B1X2h2bV94ODZfNjQgeworICAgIHVpbnQ2NF90IHJheDsKKyAgICB1aW50
NjRfdCByY3g7CisgICAgdWludDY0X3QgcmR4OworICAgIHVpbnQ2NF90IHJieDsKKyAgICB1aW50
NjRfdCByc3A7CisgICAgdWludDY0X3QgcmJwOworICAgIHVpbnQ2NF90IHJzaTsKKyAgICB1aW50
NjRfdCByZGk7CisgICAgdWludDY0X3QgcmlwOworICAgIHVpbnQ2NF90IHJmbGFnczsKKworICAg
IHVpbnQ2NF90IGNyMDsKKyAgICB1aW50NjRfdCBjcjM7CisgICAgdWludDY0X3QgY3I0OworICAg
IHVpbnQ2NF90IGVmZXI7CisKKyAgICAvKgorICAgICAqIFVzaW5nIFZDUFVfSFZNX01PREVfNjRC
IGltcGxpZXMgdGhhdCB0aGUgdkNQVSBpcyBsYXVuY2hlZAorICAgICAqIGRpcmVjdGx5IGluIGxv
bmcgbW9kZSwgc28gdGhlIGNhY2hlZCBwYXJ0cyBvZiB0aGUgc2VnbWVudAorICAgICAqIHJlZ2lz
dGVycyBnZXQgc2V0IHRvIG1hdGNoIHRoYXQgZW52aXJvbm1lbnQuCisgICAgICoKKyAgICAgKiBJ
ZiB0aGUgdXNlciB3YW50cyB0byBsYXVuY2ggdGhlIHZDUFUgaW4gY29tcGF0aWJpbGl0eSBtb2Rl
CisgICAgICogdGhlIDMyLWJpdCBzdHJ1Y3R1cmUgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZC4KKyAg
ICAgKi8KK307CisKK3N0cnVjdCB2Y3B1X2h2bV9jb250ZXh0IHsKKyNkZWZpbmUgVkNQVV9IVk1f
TU9ERV8zMkIgMCAgLyogMzJiaXQgZmllbGRzIG9mIHRoZSBzdHJ1Y3R1cmUgd2lsbCBiZSB1c2Vk
LiAqLworI2RlZmluZSBWQ1BVX0hWTV9NT0RFXzY0QiAxICAvKiA2NGJpdCBmaWVsZHMgb2YgdGhl
IHN0cnVjdHVyZSB3aWxsIGJlIHVzZWQuICovCisgICAgdWludDMyX3QgbW9kZTsKKworICAgIHVp
bnQzMl90IHBhZDsKKworICAgIC8qIENQVSByZWdpc3RlcnMuICovCisgICAgdW5pb24geworICAg
ICAgICBzdHJ1Y3QgdmNwdV9odm1feDg2XzMyIHg4Nl8zMjsKKyAgICAgICAgc3RydWN0IHZjcHVf
aHZtX3g4Nl82NCB4ODZfNjQ7CisgICAgfSBjcHVfcmVnczsKK307Cit0eXBlZGVmIHN0cnVjdCB2
Y3B1X2h2bV9jb250ZXh0IHZjcHVfaHZtX2NvbnRleHRfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFO
RExFKHZjcHVfaHZtX2NvbnRleHRfdCk7CisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfSFZNX0hW
TV9WQ1BVX0hfXyAqLworCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICog
Yy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDog
NAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2lu
Y2x1ZGUveGVuL2h2bS9odm1feHNfc3RyaW5ncy5oIGIvaW5jbHVkZS94ZW4vaHZtL2h2bV94c19z
dHJpbmdzLmgKaW5kZXggOGFlYzkzNS4uZmVhMWRkNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4v
aHZtL2h2bV94c19zdHJpbmdzLmgKKysrIGIvaW5jbHVkZS94ZW4vaHZtL2h2bV94c19zdHJpbmdz
LmgKQEAgLTIwLDYgKzIwLDggQEAKICAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04g
T0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCiAgKiBGUk9NLCBPVVQgT0Yg
T1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCiAg
KiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDEzLCBD
aXRyaXggU3lzdGVtcwogICovCiAKICNpZm5kZWYgX19YRU5fUFVCTElDX0hWTV9IVk1fWFNfU1RS
SU5HU19IX18KQEAgLTY5LDYgKzcxLDcgQEAKICNkZWZpbmUgSFZNX1hTX1NZU1RFTV9TRVJJQUxf
TlVNQkVSICAgICJiaW9zLXN0cmluZ3Mvc3lzdGVtLXNlcmlhbC1udW1iZXIiCiAjZGVmaW5lIEhW
TV9YU19FTkNMT1NVUkVfTUFOVUZBQ1RVUkVSICAiYmlvcy1zdHJpbmdzL2VuY2xvc3VyZS1tYW51
ZmFjdHVyZXIiCiAjZGVmaW5lIEhWTV9YU19FTkNMT1NVUkVfU0VSSUFMX05VTUJFUiAiYmlvcy1z
dHJpbmdzL2VuY2xvc3VyZS1zZXJpYWwtbnVtYmVyIgorI2RlZmluZSBIVk1fWFNfRU5DTE9TVVJF
X0FTU0VUX1RBRyAgICAgImJpb3Mtc3RyaW5ncy9lbmNsb3N1cmUtYXNzZXQtdGFnIgogI2RlZmlu
ZSBIVk1fWFNfQkFUVEVSWV9NQU5VRkFDVFVSRVIgICAgImJpb3Mtc3RyaW5ncy9iYXR0ZXJ5LW1h
bnVmYWN0dXJlciIKICNkZWZpbmUgSFZNX1hTX0JBVFRFUllfREVWSUNFX05BTUUgICAgICJiaW9z
LXN0cmluZ3MvYmF0dGVyeS1kZXZpY2UtbmFtZSIKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4v
aHZtL2lvcmVxLmggYi9pbmNsdWRlL3hlbi9odm0vaW9yZXEuaAppbmRleCA1YjVmZWRmLi5kMzA5
ZDEyIDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi9odm0vaW9yZXEuaAorKysgYi9pbmNsdWRlL3hl
bi9odm0vaW9yZXEuaApAQCAtODMsOCArODMsMTcgQEAgdHlwZWRlZiBzdHJ1Y3QgYnVmX2lvcmVx
IGJ1Zl9pb3JlcV90OwogCiAjZGVmaW5lIElPUkVRX0JVRkZFUl9TTE9UX05VTSAgICAgNTExIC8q
IDggYnl0ZXMgZWFjaCwgcGx1cyAyIDQtYnl0ZSBpbmRleGVzICovCiBzdHJ1Y3QgYnVmZmVyZWRf
aW9wYWdlIHsKLSAgICB1bnNpZ25lZCBpbnQgcmVhZF9wb2ludGVyOwotICAgIHVuc2lnbmVkIGlu
dCB3cml0ZV9wb2ludGVyOworI2lmZGVmIF9fWEVOX18KKyAgICB1bmlvbiBidWZpb3JlcV9wb2lu
dGVycyB7CisgICAgICAgIHN0cnVjdCB7CisjZW5kaWYKKyAgICAgICAgICAgIHVpbnQzMl90IHJl
YWRfcG9pbnRlcjsKKyAgICAgICAgICAgIHVpbnQzMl90IHdyaXRlX3BvaW50ZXI7CisjaWZkZWYg
X19YRU5fXworICAgICAgICB9OworICAgICAgICB1aW50NjRfdCBmdWxsOworICAgIH0gcHRyczsK
KyNlbmRpZgogICAgIGJ1Zl9pb3JlcV90IGJ1Zl9pb3JlcVtJT1JFUV9CVUZGRVJfU0xPVF9OVU1d
OwogfTsgLyogTkIuIFNpemUgb2YgdGhpcyBzdHJ1Y3R1cmUgbXVzdCBiZSBubyBncmVhdGVyIHRo
YW4gb25lIHBhZ2UuICovCiB0eXBlZGVmIHN0cnVjdCBidWZmZXJlZF9pb3BhZ2UgYnVmZmVyZWRf
aW9wYWdlX3Q7CkBAIC05NCwxNCArMTAzLDE5IEBAIHR5cGVkZWYgc3RydWN0IGJ1ZmZlcmVkX2lv
cGFnZSBidWZmZXJlZF9pb3BhZ2VfdDsKICAqIHZlcnNpb24gbnVtYmVyIGluIEhWTV9QQVJBTV9B
Q1BJX0lPUE9SVFNfTE9DQVRJT04uCiAgKi8KIAotLyogVmVyc2lvbiAwIChkZWZhdWx0KTogVHJh
ZGl0aW9uYWwgWGVuIGxvY2F0aW9ucy4gKi8KKy8qCisgKiBWZXJzaW9uIDAgKGRlZmF1bHQpOiBU
cmFkaXRpb25hbCAob2Jzb2xldGUpIFhlbiBsb2NhdGlvbnMuCisgKgorICogVGhlc2UgYXJlIG5v
dyBvbmx5IHVzZWQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBWTXMgbWlncmF0ZWQKKyAqIGZyb20g
b2xkZXIgWGVuIHZlcnNpb25zLgorICovCiAjZGVmaW5lIEFDUElfUE0xQV9FVlRfQkxLX0FERFJF
U1NfVjAgMHgxZjQwCiAjZGVmaW5lIEFDUElfUE0xQV9DTlRfQkxLX0FERFJFU1NfVjAgKEFDUElf
UE0xQV9FVlRfQkxLX0FERFJFU1NfVjAgKyAweDA0KQogI2RlZmluZSBBQ1BJX1BNX1RNUl9CTEtf
QUREUkVTU19WMCAgIChBQ1BJX1BNMUFfRVZUX0JMS19BRERSRVNTX1YwICsgMHgwOCkKICNkZWZp
bmUgQUNQSV9HUEUwX0JMS19BRERSRVNTX1YwICAgICAoQUNQSV9QTV9UTVJfQkxLX0FERFJFU1Nf
VjAgKyAweDIwKQogI2RlZmluZSBBQ1BJX0dQRTBfQkxLX0xFTl9WMCAgICAgICAgIDB4MDgKIAot
LyogVmVyc2lvbiAxOiBMb2NhdGlvbnMgcHJlZmVycmVkIGJ5IG1vZGVybiBRZW11LiAqLworLyog
VmVyc2lvbiAxOiBMb2NhdGlvbnMgcHJlZmVycmVkIGJ5IG1vZGVybiBRZW11IChpbmNsdWRpbmcg
UWVtdS10cmFkKS4gKi8KICNkZWZpbmUgQUNQSV9QTTFBX0VWVF9CTEtfQUREUkVTU19WMSAweGIw
MDAKICNkZWZpbmUgQUNQSV9QTTFBX0NOVF9CTEtfQUREUkVTU19WMSAoQUNQSV9QTTFBX0VWVF9C
TEtfQUREUkVTU19WMSArIDB4MDQpCiAjZGVmaW5lIEFDUElfUE1fVE1SX0JMS19BRERSRVNTX1Yx
ICAgKEFDUElfUE0xQV9FVlRfQkxLX0FERFJFU1NfVjEgKyAweDA4KQpkaWZmIC0tZ2l0IGEvaW5j
bHVkZS94ZW4vaHZtL3BhcmFtcy5oIGIvaW5jbHVkZS94ZW4vaHZtL3BhcmFtcy5oCmluZGV4IGEy
ZDQzYmMuLjJlYzJlN2MgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL2h2bS9wYXJhbXMuaAorKysg
Yi9pbmNsdWRlL3hlbi9odm0vcGFyYW1zLmgKQEAgLTE2LDYgKzE2LDggQEAKICAqIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBB
UklTSU5HCiAgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FS
RSBPUiBUSEUgVVNFIE9SIE9USEVSCiAgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgor
ICogQ29weXJpZ2h0IChjKSAyMDA3LCBLZWlyIEZyYXNlcgogICovCiAKICNpZm5kZWYgX19YRU5f
UFVCTElDX0hWTV9QQVJBTVNfSF9fCkBAIC0yNywxOCArMjksNDcgQEAKICAqIFBhcmFtZXRlciBz
cGFjZSBmb3IgSFZNT1Bfe3NldCxnZXR9X3BhcmFtLgogICovCiAKKyNkZWZpbmUgSFZNX1BBUkFN
X0NBTExCQUNLX0lSUSAwCisjZGVmaW5lIEhWTV9QQVJBTV9DQUxMQkFDS19JUlFfVFlQRV9NQVNL
IHhlbl9ta191bGxvbmcoMHhGRjAwMDAwMDAwMDAwMDAwKQogLyoKICAqIEhvdyBzaG91bGQgQ1BV
MCBldmVudC1jaGFubmVsIG5vdGlmaWNhdGlvbnMgYmUgZGVsaXZlcmVkPwotICogdmFsWzYzOjU2
XSA9PSAwOiB2YWxbNTU6MF0gaXMgYSBkZWxpdmVyeSBHU0kgKEdsb2JhbCBTeXN0ZW0gSW50ZXJy
dXB0KS4KLSAqIHZhbFs2Mzo1Nl0gPT0gMTogdmFsWzU1OjBdIGlzIGEgZGVsaXZlcnkgUENJIElO
VHggbGluZSwgYXMgZm9sbG93czoKLSAqICAgICAgICAgICAgICAgICAgRG9tYWluID0gdmFsWzQ3
OjMyXSwgQnVzICA9IHZhbFszMToxNl0sCi0gKiAgICAgICAgICAgICAgICAgIERldkZuICA9IHZh
bFsxNTogOF0sIEludFggPSB2YWxbIDE6IDBdCi0gKiB2YWxbNjM6NTZdID09IDI6IHZhbFs3OjBd
IGlzIGEgdmVjdG9yIG51bWJlciwgY2hlY2sgZm9yCi0gKiAgICAgICAgICAgICAgICAgIFhFTkZF
QVRfaHZtX2NhbGxiYWNrX3ZlY3RvciB0byBrbm93IGlmIHRoaXMgZGVsaXZlcnkKLSAqICAgICAg
ICAgICAgICAgICAgbWV0aG9kIGlzIGF2YWlsYWJsZS4KKyAqCiAgKiBJZiB2YWwgPT0gMCB0aGVu
IENQVTAgZXZlbnQtY2hhbm5lbCBub3RpZmljYXRpb25zIGFyZSBub3QgZGVsaXZlcmVkLgorICog
SWYgdmFsICE9IDAsIHZhbFs2Mzo1Nl0gZW5jb2RlcyB0aGUgdHlwZSwgYXMgZm9sbG93czoKKyAq
LworCisjZGVmaW5lIEhWTV9QQVJBTV9DQUxMQkFDS19UWVBFX0dTSSAgICAgIDAKKy8qCisgKiB2
YWxbNTU6MF0gaXMgYSBkZWxpdmVyeSBHU0kuICBHU0kgMCBjYW5ub3QgYmUgdXNlZCwgYXMgaXQg
YWxpYXNlcyB2YWwgPT0gMCwKKyAqIGFuZCBkaXNhYmxlcyBhbGwgbm90aWZpY2F0aW9ucy4KKyAq
LworCisjZGVmaW5lIEhWTV9QQVJBTV9DQUxMQkFDS19UWVBFX1BDSV9JTlRYIDEKKy8qCisgKiB2
YWxbNTU6MF0gaXMgYSBkZWxpdmVyeSBQQ0kgSU5UeCBsaW5lOgorICogRG9tYWluID0gdmFsWzQ3
OjMyXSwgQnVzID0gdmFsWzMxOjE2XSBEZXZGbiA9IHZhbFsxNTo4XSwgSW50WCA9IHZhbFsxOjBd
CiAgKi8KLSNkZWZpbmUgSFZNX1BBUkFNX0NBTExCQUNLX0lSUSAwCisKKyNpZiBkZWZpbmVkKF9f
aTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCisjZGVmaW5lIEhWTV9QQVJBTV9DQUxMQkFD
S19UWVBFX1ZFQ1RPUiAgIDIKKy8qCisgKiB2YWxbNzowXSBpcyBhIHZlY3RvciBudW1iZXIuICBD
aGVjayBmb3IgWEVORkVBVF9odm1fY2FsbGJhY2tfdmVjdG9yIHRvIGtub3cKKyAqIGlmIHRoaXMg
ZGVsaXZlcnkgbWV0aG9kIGlzIGF2YWlsYWJsZS4KKyAqLworI2VsaWYgZGVmaW5lZChfX2FybV9f
KSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQorI2RlZmluZSBIVk1fUEFSQU1fQ0FMTEJBQ0tfVFlQ
RV9QUEkgICAgICAyCisvKgorICogdmFsWzU1OjE2XSBuZWVkcyB0byBiZSB6ZXJvLgorICogdmFs
WzE1OjhdIGlzIGludGVycnVwdCBmbGFnIG9mIHRoZSBQUEkgdXNlZCBieSBldmVudC1jaGFubmVs
OgorICogIGJpdCA4OiB0aGUgUFBJIGlzIGVkZ2UoMSkgb3IgbGV2ZWwoMCkgdHJpZ2dlcmVkCisg
KiAgYml0IDk6IHRoZSBQUEkgaXMgYWN0aXZlIGxvdygxKSBvciBoaWdoKDApCisgKiB2YWxbNzow
XSBpcyBhIFBQSSBudW1iZXIgdXNlZCBieSBldmVudC1jaGFubmVsLgorICogVGhpcyBpcyBvbmx5
IHVzZWQgYnkgQVJNL0FSTTY0IGFuZCBtYXNraW5nL2VvaSB0aGUgaW50ZXJydXB0IGFzc29jaWF0
ZWQgdG8KKyAqIHRoZSBub3RpZmljYXRpb24gaXMgaGFuZGxlZCBieSB0aGUgaW50ZXJydXB0IGNv
bnRyb2xsZXIuCisgKi8KKyNkZWZpbmUgSFZNX1BBUkFNX0NBTExCQUNLX1RZUEVfUFBJX0ZMQUdf
TUFTSyAgICAgIDB4RkYwMAorI2RlZmluZSBIVk1fUEFSQU1fQ0FMTEJBQ0tfVFlQRV9QUElfRkxB
R19MT1dfTEVWRUwgMgorI2VuZGlmCiAKIC8qCiAgKiBUaGVzZSBhcmUgbm90IHVzZWQgYnkgWGVu
LiBUaGV5IGFyZSBoZXJlIGZvciBjb252ZW5pZW5jZSBvZiBIVk0tZ3Vlc3QKQEAgLTk2LDExICsx
MjcsMjYgQEAKICNkZWZpbmUgX0hWTVBWX3JlZmVyZW5jZV90c2MgMwogI2RlZmluZSBIVk1QVl9y
ZWZlcmVuY2VfdHNjICAoMSA8PCBfSFZNUFZfcmVmZXJlbmNlX3RzYykKIAorLyogVXNlIEh5cGVy
Y2FsbCBmb3IgcmVtb3RlIFRMQiBmbHVzaCAqLworI2RlZmluZSBfSFZNUFZfaGNhbGxfcmVtb3Rl
X3RsYl9mbHVzaCA0CisjZGVmaW5lIEhWTVBWX2hjYWxsX3JlbW90ZV90bGJfZmx1c2ggKDEgPDwg
X0hWTVBWX2hjYWxsX3JlbW90ZV90bGJfZmx1c2gpCisKKy8qIFVzZSBBUElDIGFzc2lzdCAqLwor
I2RlZmluZSBfSFZNUFZfYXBpY19hc3Npc3QgNQorI2RlZmluZSBIVk1QVl9hcGljX2Fzc2lzdCAo
MSA8PCBfSFZNUFZfYXBpY19hc3Npc3QpCisKKy8qIEVuYWJsZSBjcmFzaCBNU1JzICovCisjZGVm
aW5lIF9IVk1QVl9jcmFzaF9jdGwgNgorI2RlZmluZSBIVk1QVl9jcmFzaF9jdGwgKDEgPDwgX0hW
TVBWX2NyYXNoX2N0bCkKKwogI2RlZmluZSBIVk1QVl9mZWF0dXJlX21hc2sgXAotCShIVk1QVl9i
YXNlX2ZyZXEgfCBcCi0JIEhWTVBWX25vX2ZyZXEgfCBcCi0JIEhWTVBWX3RpbWVfcmVmX2NvdW50
IHwgXAotCSBIVk1QVl9yZWZlcmVuY2VfdHNjKQorICAgICAgICAoSFZNUFZfYmFzZV9mcmVxIHwg
XAorICAgICAgICAgSFZNUFZfbm9fZnJlcSB8IFwKKyAgICAgICAgIEhWTVBWX3RpbWVfcmVmX2Nv
dW50IHwgXAorICAgICAgICAgSFZNUFZfcmVmZXJlbmNlX3RzYyB8IFwKKyAgICAgICAgIEhWTVBW
X2hjYWxsX3JlbW90ZV90bGJfZmx1c2ggfCBcCisgICAgICAgICBIVk1QVl9hcGljX2Fzc2lzdCB8
IFwKKyAgICAgICAgIEhWTVBWX2NyYXNoX2N0bCkKIAogI2VuZGlmCiAKQEAgLTE2Miw4ICsyMDgs
NyBAQAogICovCiAjZGVmaW5lIEhWTV9QQVJBTV9BQ1BJX0lPUE9SVFNfTE9DQVRJT04gMTkKIAot
LyogRW5hYmxlIGJsb2NraW5nIG1lbW9yeSBldmVudHMsIGFzeW5jIG9yIHN5bmMgKHBhdXNlIHZj
cHUgdW50aWwgcmVzcG9uc2UpIAotICogb25jaGFuZ2Vvbmx5IGluZGljYXRlcyBtZXNzYWdlcyBv
bmx5IG9uIGEgY2hhbmdlIG9mIHZhbHVlICovCisvKiBEZXByZWNhdGVkICovCiAjZGVmaW5lIEhW
TV9QQVJBTV9NRU1PUllfRVZFTlRfQ1IwICAgICAgICAgIDIwCiAjZGVmaW5lIEhWTV9QQVJBTV9N
RU1PUllfRVZFTlRfQ1IzICAgICAgICAgIDIxCiAjZGVmaW5lIEhWTV9QQVJBTV9NRU1PUllfRVZF
TlRfQ1I0ICAgICAgICAgIDIyCkBAIC0xNzEsMTggKzIxNiwxMiBAQAogI2RlZmluZSBIVk1fUEFS
QU1fTUVNT1JZX0VWRU5UX1NJTkdMRV9TVEVQICAyNQogI2RlZmluZSBIVk1fUEFSQU1fTUVNT1JZ
X0VWRU5UX01TUiAgICAgICAgICAzMAogCi0jZGVmaW5lIEhWTVBNRV9NT0RFX01BU0sgICAgICAg
KDMgPDwgMCkKLSNkZWZpbmUgSFZNUE1FX21vZGVfZGlzYWJsZWQgICAwCi0jZGVmaW5lIEhWTVBN
RV9tb2RlX2FzeW5jICAgICAgMQotI2RlZmluZSBIVk1QTUVfbW9kZV9zeW5jICAgICAgIDIKLSNk
ZWZpbmUgSFZNUE1FX29uY2hhbmdlb25seSAgICAoMSA8PCAyKQotCiAvKiBCb29sZWFuOiBFbmFi
bGUgbmVzdGVkaHZtIChodm0gb25seSkgKi8KICNkZWZpbmUgSFZNX1BBUkFNX05FU1RFREhWTSAg
ICAyNAogCiAvKiBQYXJhbXMgZm9yIHRoZSBtZW0gZXZlbnQgcmluZ3MgKi8KICNkZWZpbmUgSFZN
X1BBUkFNX1BBR0lOR19SSU5HX1BGTiAgIDI3Ci0jZGVmaW5lIEhWTV9QQVJBTV9BQ0NFU1NfUklO
R19QRk4gICAyOAorI2RlZmluZSBIVk1fUEFSQU1fTU9OSVRPUl9SSU5HX1BGTiAgMjgKICNkZWZp
bmUgSFZNX1BBUkFNX1NIQVJJTkdfUklOR19QRk4gIDI5CiAKIC8qIFNIVVRET1dOXyogYWN0aW9u
IGluIGNhc2Ugb2YgYSB0cmlwbGUgZmF1bHQgKi8KQEAgLTE5NCw2ICsyMzMsNTIgQEAKIC8qIExv
Y2F0aW9uIG9mIHRoZSBWTSBHZW5lcmF0aW9uIElEIGluIGd1ZXN0IHBoeXNpY2FsIGFkZHJlc3Mg
c3BhY2UuICovCiAjZGVmaW5lIEhWTV9QQVJBTV9WTV9HRU5FUkFUSU9OX0lEX0FERFIgMzQKIAot
I2RlZmluZSBIVk1fTlJfUEFSQU1TICAgICAgICAgIDM1CisvKgorICogU2V0IG1vZGUgZm9yIGFs
dHAybToKKyAqICBkaXNhYmxlZDogZG9uJ3QgYWN0aXZhdGUgYWx0cDJtIChkZWZhdWx0KQorICog
IG1peGVkOiBhbGxvdyBhY2Nlc3MgdG8gYWxsIGFsdHAybSBvcHMgZm9yIGJvdGggaW4tZ3Vlc3Qg
YW5kIGV4dGVybmFsIHRvb2xzCisgKiAgZXh0ZXJuYWw6IGFsbG93IGFjY2VzcyB0byBleHRlcm5h
bCBwcml2aWxlZ2VkIHRvb2xzIG9ubHkKKyAqICBsaW1pdGVkOiBndWVzdCBvbmx5IGhhcyBsaW1p
dGVkIGFjY2VzcyAoaWUuIGNvbnRyb2wgVk1GVU5DIGFuZCAjVkUpCisgKi8KKyNkZWZpbmUgSFZN
X1BBUkFNX0FMVFAyTSAgICAgICAzNQorI2RlZmluZSBYRU5fQUxUUDJNX2Rpc2FibGVkICAgICAg
MAorI2RlZmluZSBYRU5fQUxUUDJNX21peGVkICAgICAgICAgMQorI2RlZmluZSBYRU5fQUxUUDJN
X2V4dGVybmFsICAgICAgMgorI2RlZmluZSBYRU5fQUxUUDJNX2xpbWl0ZWQgICAgICAgMworCisv
KgorICogU2l6ZSBvZiB0aGUgeDg3IEZQVSBGSVAvRkRQIHJlZ2lzdGVycyB0aGF0IHRoZSBoeXBl
cnZpc29yIG5lZWRzIHRvCisgKiBzYXZlL3Jlc3RvcmUuICBUaGlzIGlzIGEgd29ya2Fyb3VuZCBm
b3IgYSBoYXJkd2FyZSBsaW1pdGF0aW9uIHRoYXQKKyAqIGRvZXMgbm90IGFsbG93IHRoZSBmdWxs
IEZJUC9GRFAgYW5kIEZDUy9GRFMgdG8gYmUgcmVzdG9yZWQuCisgKgorICogVmFsaWQgdmFsdWVz
IGFyZToKKyAqCisgKiA4OiBzYXZlL3Jlc3RvcmUgNjQtYml0IEZJUC9GRFAgYW5kIGNsZWFyIEZD
Uy9GRFMgKGRlZmF1bHQgaWYgQ1BVCisgKiAgICBoYXMgRlBDU0RTIGZlYXR1cmUpLgorICoKKyAq
IDQ6IHNhdmUvcmVzdG9yZSAzMi1iaXQgRklQL0ZEUCwgRkNTL0ZEUywgYW5kIGNsZWFyIHVwcGVy
IDMyLWJpdHMgb2YKKyAqICAgIEZJUC9GRFAuCisgKgorICogMDogYWxsb3cgaHlwZXJ2aXNvciB0
byBjaG9vc2UgYmFzZWQgb24gdGhlIHZhbHVlIG9mIEZJUC9GRFAKKyAqICAgIChkZWZhdWx0IGlm
IENQVSBkb2VzIG5vdCBoYXZlIEZQQ1NEUykuCisgKgorICogSWYgRlBDU0RTIChiaXQgMTMgaW4g
Q1BVSUQgbGVhZiAweDcsIHN1YmxlYWYgMHgwKSBpcyBzZXQsIHRoZSBDUFUKKyAqIG5ldmVyIHNh
dmVzIEZDUy9GRFMgYW5kIHRoaXMgcGFyYW1ldGVyIHNob3VsZCBiZSBsZWZ0IGF0IHRoZQorICog
ZGVmYXVsdCBvZiA4LgorICovCisjZGVmaW5lIEhWTV9QQVJBTV9YODdfRklQX1dJRFRIIDM2CisK
Ky8qCisgKiBUU1MgKGFuZCBpdHMgc2l6ZSkgdXNlZCBvbiBJbnRlbCB3aGVuIENSMC5QRT0wLiBU
aGUgYWRkcmVzcyBvY2N1cGllcworICogdGhlIGxvdyAzMiBiaXRzLCB3aGlsZSB0aGUgc2l6ZSBp
cyBpbiB0aGUgaGlnaCAzMiBvbmVzLgorICovCisjZGVmaW5lIEhWTV9QQVJBTV9WTTg2X1RTU19T
SVpFRCAzNworCisvKiBFbmFibGUgTUNBIGNhcGFiaWxpdGllcy4gKi8KKyNkZWZpbmUgSFZNX1BB
UkFNX01DQV9DQVAgMzgKKyNkZWZpbmUgWEVOX0hWTV9NQ0FfQ0FQX0xNQ0UgICAoeGVuX21rX3Vs
bG9uZygxKSA8PCAwKQorI2RlZmluZSBYRU5fSFZNX01DQV9DQVBfTUFTSyAgIFhFTl9IVk1fTUNB
X0NBUF9MTUNFCisKKyNkZWZpbmUgSFZNX05SX1BBUkFNUyAzOQogCiAjZW5kaWYgLyogX19YRU5f
UFVCTElDX0hWTV9QQVJBTVNfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9odm0vc2F2
ZS5oIGIvaW5jbHVkZS94ZW4vaHZtL3NhdmUuaAppbmRleCBjYzhiNWZkLi4wYmQyNDBkIDEwMDY0
NAotLS0gYS9pbmNsdWRlL3hlbi9odm0vc2F2ZS5oCisrKyBiL2luY2x1ZGUveGVuL2h2bS9zYXZl
LmgKQEAgLTYzLDEzICs2MywxNSBAQCBzdHJ1Y3QgaHZtX3NhdmVfZGVzY3JpcHRvciB7CiAKICNp
ZmRlZiBfX1hFTl9fCiAjIGRlZmluZSBERUNMQVJFX0hWTV9TQVZFX1RZUEVfQ09NUEFUKF94LCBf
Y29kZSwgX3R5cGUsIF9jdHlwZSwgX2ZpeCkgICAgIFwKLSAgICBzdGF0aWMgaW5saW5lIGludCBf
X0hWTV9TQVZFX0ZJWF9DT01QQVRfIyNfeCh2b2lkICpoKSB7IHJldHVybiBfZml4KGgpOyB9IFwK
LSAgICBzdHJ1Y3QgX19IVk1fU0FWRV9UWVBFXyMjX3ggeyBfdHlwZSB0OyBjaGFyIGNbX2NvZGVd
OyBjaGFyIGNwdFsyXTt9OyBcCisgICAgc3RhdGljIGlubGluZSBpbnQgX19IVk1fU0FWRV9GSVhf
Q09NUEFUXyMjX3godm9pZCAqaCwgdWludDMyX3Qgc2l6ZSkgIFwKKyAgICAgICAgeyByZXR1cm4g
X2ZpeChoLCBzaXplKTsgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorICAgIHN0cnVjdCBfX0hWTV9TQVZFX1RZUEVfIyNfeCB7IF90eXBlIHQ7IGNoYXIgY1tfY29k
ZV07IGNoYXIgY3B0WzJdO307ICBcCiAgICAgc3RydWN0IF9fSFZNX1NBVkVfVFlQRV9DT01QQVRf
IyNfeCB7IF9jdHlwZSB0OyB9ICAgICAgICAgICAgICAgICAgIAogCiAjIGluY2x1ZGUgPHhlbi9s
aWIuaD4gLyogQlVHKCkgKi8KICMgZGVmaW5lIERFQ0xBUkVfSFZNX1NBVkVfVFlQRShfeCwgX2Nv
ZGUsIF90eXBlKSAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgc3RhdGljIGlubGluZSBp
bnQgX19IVk1fU0FWRV9GSVhfQ09NUEFUXyMjX3godm9pZCAqaCkgeyBCVUcoKTsgcmV0dXJuIC0x
OyB9IFwKKyAgICBzdGF0aWMgaW5saW5lIGludCBfX0hWTV9TQVZFX0ZJWF9DT01QQVRfIyNfeCh2
b2lkICpoLCB1aW50MzJfdCBzaXplKSBcCisgICAgICAgIHsgQlVHKCk7IHJldHVybiAtMTsgfSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHN0cnVjdCBf
X0hWTV9TQVZFX1RZUEVfIyNfeCB7IF90eXBlIHQ7IGNoYXIgY1tfY29kZV07IGNoYXIgY3B0WzFd
O307IFwKICAgICBzdHJ1Y3QgX19IVk1fU0FWRV9UWVBFX0NPTVBBVF8jI194IHsgX3R5cGUgdDsg
fSAgICAgICAgICAgICAgICAgICAKICNlbHNlCkBAIC04OSw3ICs5MSw3IEBAIHN0cnVjdCBodm1f
c2F2ZV9kZXNjcmlwdG9yIHsKICMgZGVmaW5lIEhWTV9TQVZFX0xFTkdUSF9DT01QQVQoX3gpIChz
aXplb2YgKEhWTV9TQVZFX1RZUEVfQ09NUEFUKF94KSkpCiAKICMgZGVmaW5lIEhWTV9TQVZFX0hB
U19DT01QQVQoX3gpIChzaXplb2YgKCgoc3RydWN0IF9fSFZNX1NBVkVfVFlQRV8jI194ICopKDAp
KS0+Y3B0KS0xKQotIyBkZWZpbmUgSFZNX1NBVkVfRklYX0NPTVBBVChfeCwgX2RzdCkgX19IVk1f
U0FWRV9GSVhfQ09NUEFUXyMjX3goX2RzdCkKKyMgZGVmaW5lIEhWTV9TQVZFX0ZJWF9DT01QQVQo
X3gsIF9kc3QsIF9zaXplKSBfX0hWTV9TQVZFX0ZJWF9DT01QQVRfIyNfeChfZHN0LCBfc2l6ZSkK
ICNlbmRpZgogCiAvKiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2lvLzlwZnMuaCBiL2luY2x1
ZGUveGVuL2lvLzlwZnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YmZk
NWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94ZW4vaW8vOXBmcy5oCkBAIC0wLDAgKzEs
NDkgQEAKKy8qCisgKiA5cGZzLmggLS0gWGVuIDlQRlMgdHJhbnNwb3J0CisgKgorICogUmVmZXIg
dG8gZG9jcy9taXNjLzlwZnMubWFya2Rvd24gZm9yIHRoZSBzcGVjaWZpY2F0aW9uCisgKgorICog
UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJz
b24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBk
b2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBT
b2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9u
IHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlz
dHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdh
cmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVy
bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAq
CisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGlj
ZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0
aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJB
UyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJ
RUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklO
RlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdI
VCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVS
V0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUg
U09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJF
LgorICoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBTdGVmYW5vIFN0YWJlbGxpbmkgPHN0ZWZhbm9A
YXBvcmV0by5jb20+CisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfSU9fOVBGU19IX18KKyNk
ZWZpbmUgX19YRU5fUFVCTElDX0lPXzlQRlNfSF9fCisKKyNpbmNsdWRlICIuLi9ncmFudF90YWJs
ZS5oIgorI2luY2x1ZGUgInJpbmcuaCIKKworLyoKKyAqIFNlZSBkb2NzL21pc2MvOXBmcy5tYXJr
ZG93biBpbiB4ZW4uZ2l0IGZvciB0aGUgZnVsbCBzcGVjaWZpY2F0aW9uOgorICogaHR0cHM6Ly94
ZW5iaXRzLnhlbi5vcmcvZG9jcy91bnN0YWJsZS9taXNjLzlwZnMuaHRtbAorICovCitERUZJTkVf
WEVOX0ZMRVhfUklOR19BTkRfSU5URih4ZW5fOXBmcyk7CisKKyNlbmRpZgorCisvKgorICogTG9j
YWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1i
YXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmls
CisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2lvL2Jsa2lmLmggYi9pbmNs
dWRlL3hlbi9pby9ibGtpZi5oCmluZGV4IDZiYWY3ZmIuLjE1YTcxZTMgMTAwNjQ0Ci0tLSBhL2lu
Y2x1ZGUveGVuL2lvL2Jsa2lmLmgKKysrIGIvaW5jbHVkZS94ZW4vaW8vYmxraWYuaApAQCAtODks
OCArODksMjIgQEAKICAqICAgICAgVmFsdWVzOiAgICAgICAgIHN0cmluZwogICoKICAqICAgICAg
QSBmcmVlIGZvcm1hdHRlZCBzdHJpbmcgcHJvdmlkaW5nIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24g
Zm9yIHRoZQotICogICAgICBiYWNrZW5kIGRyaXZlciB0byBvcGVuIHRoZSBiYWNraW5nIGRldmlj
ZS4gIChlLmcuIHRoZSBwYXRoIHRvIHRoZQotICogICAgICBmaWxlIG9yIGJsb2NrIGRldmljZSBy
ZXByZXNlbnRpbmcgdGhlIGJhY2tpbmcgc3RvcmUuKQorICogICAgICBob3RwbHVnIHNjcmlwdCB0
byBhdHRhY2ggdGhlIGRldmljZSBhbmQgcHJvdmlkZSBhIHN1aXRhYmxlCisgKiAgICAgIGhhbmRs
ZXIgKGllOiBhIGJsb2NrIGRldmljZSkgZm9yIGJsa2JhY2sgdG8gdXNlLgorICoKKyAqIHBoeXNp
Y2FsLWRldmljZQorICogICAgICBWYWx1ZXM6ICAgICAgICAgIk1BSk9SOk1JTk9SIgorICogICAg
ICBOb3RlczogMTEKKyAqCisgKiAgICAgIE1BSk9SIGFuZCBNSU5PUiBhcmUgdGhlIG1ham9yIG51
bWJlciBhbmQgbWlub3IgbnVtYmVyIG9mIHRoZQorICogICAgICBiYWNraW5nIGRldmljZSByZXNw
ZWN0aXZlbHkuCisgKgorICogcGh5c2ljYWwtZGV2aWNlLXBhdGgKKyAqICAgICAgVmFsdWVzOiAg
ICAgICAgIHBhdGggc3RyaW5nCisgKgorICogICAgICBBIHN0cmluZyB0aGF0IGNvbnRhaW5zIHRo
ZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBkaXNrIGltYWdlLiBPbgorICogICAgICBOZXRCU0QgYW5k
IExpbnV4IHRoaXMgaXMgYWx3YXlzIGEgYmxvY2sgZGV2aWNlLCB3aGlsZSBvbiBGcmVlQlNECisg
KiAgICAgIGl0IGNhbiBiZSBlaXRoZXIgYSBibG9jayBkZXZpY2Ugb3IgYSByZWd1bGFyIGZpbGUu
CiAgKgogICogdHlwZQogICogICAgICBWYWx1ZXM6ICAgICAgICAgImZpbGUiLCAicGh5IiwgInRh
cCIKQEAgLTIwMiwxMCArMjE2LDkgQEAKICAqICAgICAgRGVmYXVsdCBWYWx1ZTogIDEKICAqCiAg
KiAgICAgIFRoaXMgb3B0aW9uYWwgcHJvcGVydHksIHNldCBieSB0aGUgdG9vbHN0YWNrLCBpbnN0
cnVjdHMgdGhlIGJhY2tlbmQKLSAqICAgICAgdG8gb2ZmZXIgZGlzY2FyZCB0byB0aGUgZnJvbnRl
bmQuIElmIHRoZSBwcm9wZXJ0eSBpcyBtaXNzaW5nIHRoZQotICogICAgICBiYWNrZW5kIHNob3Vs
ZCBvZmZlciBkaXNjYXJkIGlmIHRoZSBiYWNraW5nIHN0b3JhZ2UgYWN0dWFsbHkgc3VwcG9ydHMK
LSAqICAgICAgaXQuIFRoaXMgb3B0aW9uYWwgcHJvcGVydHksIHNldCBieSB0aGUgdG9vbHN0YWNr
LCByZXF1ZXN0cyB0aGF0IHRoZQotICogICAgICBiYWNrZW5kIG9mZmVyLCBvciBub3Qgb2ZmZXIs
IGRpc2NhcmQgdG8gdGhlIGZyb250ZW5kLgorICogICAgICB0byBvZmZlciAob3Igbm90IHRvIG9m
ZmVyKSBkaXNjYXJkIHRvIHRoZSBmcm9udGVuZC4gSWYgdGhlIHByb3BlcnR5CisgKiAgICAgIGlz
IG1pc3NpbmcgdGhlIGJhY2tlbmQgc2hvdWxkIG9mZmVyIGRpc2NhcmQgaWYgdGhlIGJhY2tpbmcg
c3RvcmFnZQorICogICAgICBhY3R1YWxseSBzdXBwb3J0cyBpdC4KICAqCiAgKiBkaXNjYXJkLWFs
aWdubWVudAogICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQzMl90PgpAQCAtMzg1LDYgKzM5
OCw1NSBAQAogICogICAgIHRoYW4gUklOR19TSVpFICogQkxLSUZfTUFYX1NFR01FTlRTX1BFUl9S
RVFVRVNULgogICooMTApIFRoZSBkaXNjYXJkLXNlY3VyZSBwcm9wZXJ0eSBtYXkgYmUgcHJlc2Vu
dCBhbmQgd2lsbCBiZSBzZXQgdG8gMSBpZiB0aGUKICAqICAgICBiYWNraW5nIGRldmljZSBzdXBw
b3J0cyBzZWN1cmUgZGlzY2FyZC4KKyAqKDExKSBPbmx5IHVzZWQgYnkgTGludXggYW5kIE5ldEJT
RC4KKyAqLworCisvKgorICogTXVsdGlwbGUgaGFyZHdhcmUgcXVldWVzL3JpbmdzOgorICogSWYg
c3VwcG9ydGVkLCB0aGUgYmFja2VuZCB3aWxsIHdyaXRlIHRoZSBrZXkgIm11bHRpLXF1ZXVlLW1h
eC1xdWV1ZXMiIHRvCisgKiB0aGUgZGlyZWN0b3J5IGZvciB0aGF0IHZiZCwgYW5kIHNldCBpdHMg
dmFsdWUgdG8gdGhlIG1heGltdW0gc3VwcG9ydGVkCisgKiBudW1iZXIgb2YgcXVldWVzLgorICog
RnJvbnRlbmRzIHRoYXQgYXJlIGF3YXJlIG9mIHRoaXMgZmVhdHVyZSBhbmQgd2lzaCB0byB1c2Ug
aXQgY2FuIHdyaXRlIHRoZQorICoga2V5ICJtdWx0aS1xdWV1ZS1udW0tcXVldWVzIiB3aXRoIHRo
ZSBudW1iZXIgdGhleSB3aXNoIHRvIHVzZSwgd2hpY2ggbXVzdCBiZQorICogZ3JlYXRlciB0aGFu
IHplcm8sIGFuZCBubyBtb3JlIHRoYW4gdGhlIHZhbHVlIHJlcG9ydGVkIGJ5IHRoZSBiYWNrZW5k
IGluCisgKiAibXVsdGktcXVldWUtbWF4LXF1ZXVlcyIuCisgKgorICogRm9yIGZyb250ZW5kcyBy
ZXF1ZXN0aW5nIGp1c3Qgb25lIHF1ZXVlLCB0aGUgdXN1YWwgZXZlbnQtY2hhbm5lbCBhbmQKKyAq
IHJpbmctcmVmIGtleXMgYXJlIHdyaXR0ZW4gYXMgYmVmb3JlLCBzaW1wbGlmeWluZyB0aGUgYmFj
a2VuZCBwcm9jZXNzaW5nCisgKiB0byBhdm9pZCBkaXN0aW5ndWlzaGluZyBiZXR3ZWVuIGEgZnJv
bnRlbmQgdGhhdCBkb2Vzbid0IHVuZGVyc3RhbmQgdGhlCisgKiBtdWx0aS1xdWV1ZSBmZWF0dXJl
LCBhbmQgb25lIHRoYXQgZG9lcywgYnV0IHJlcXVlc3RlZCBvbmx5IG9uZSBxdWV1ZS4KKyAqCisg
KiBGcm9udGVuZHMgcmVxdWVzdGluZyB0d28gb3IgbW9yZSBxdWV1ZXMgbXVzdCBub3Qgd3JpdGUg
dGhlIHRvcGxldmVsCisgKiBldmVudC1jaGFubmVsIGFuZCByaW5nLXJlZiBrZXlzLCBpbnN0ZWFk
IHdyaXRpbmcgdGhvc2Uga2V5cyB1bmRlciBzdWIta2V5cworICogaGF2aW5nIHRoZSBuYW1lICJx
dWV1ZS1OIiB3aGVyZSBOIGlzIHRoZSBpbnRlZ2VyIElEIG9mIHRoZSBxdWV1ZS9yaW5nIGZvcgor
ICogd2hpY2ggdGhvc2Uga2V5cyBiZWxvbmcuIFF1ZXVlcyBhcmUgaW5kZXhlZCBmcm9tIHplcm8u
CisgKiBGb3IgZXhhbXBsZSwgYSBmcm9udGVuZCB3aXRoIHR3byBxdWV1ZXMgbXVzdCB3cml0ZSB0
aGUgZm9sbG93aW5nIHNldCBvZgorICogcXVldWUtcmVsYXRlZCBrZXlzOgorICoKKyAqIC9sb2Nh
bC9kb21haW4vMS9kZXZpY2UvdmJkLzAvbXVsdGktcXVldWUtbnVtLXF1ZXVlcyA9ICIyIgorICog
L2xvY2FsL2RvbWFpbi8xL2RldmljZS92YmQvMC9xdWV1ZS0wID0gIiIKKyAqIC9sb2NhbC9kb21h
aW4vMS9kZXZpY2UvdmJkLzAvcXVldWUtMC9yaW5nLXJlZiA9ICI8cmluZy1yZWYjMD4iCisgKiAv
bG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZiZC8wL3F1ZXVlLTAvZXZlbnQtY2hhbm5lbCA9ICI8ZXZ0
Y2huIzA+IgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92YmQvMC9xdWV1ZS0xID0gIiIKKyAq
IC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmJkLzAvcXVldWUtMS9yaW5nLXJlZiA9ICI8cmluZy1y
ZWYjMT4iCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZiZC8wL3F1ZXVlLTEvZXZlbnQtY2hh
bm5lbCA9ICI8ZXZ0Y2huIzE+IgorICoKKyAqIEl0IGlzIGFsc28gcG9zc2libGUgdG8gdXNlIG11
bHRpcGxlIHF1ZXVlcy9yaW5ncyB0b2dldGhlciB3aXRoCisgKiBmZWF0dXJlIG11bHRpLXBhZ2Ug
cmluZyBidWZmZXIuCisgKiBGb3IgZXhhbXBsZSwgYSBmcm9udGVuZCByZXF1ZXN0cyB0d28gcXVl
dWVzL3JpbmdzIGFuZCB0aGUgc2l6ZSBvZiBlYWNoIHJpbmcKKyAqIGJ1ZmZlciBpcyB0d28gcGFn
ZXMgbXVzdCB3cml0ZSB0aGUgZm9sbG93aW5nIHNldCBvZiByZWxhdGVkIGtleXM6CisgKgorICog
L2xvY2FsL2RvbWFpbi8xL2RldmljZS92YmQvMC9tdWx0aS1xdWV1ZS1udW0tcXVldWVzID0gIjIi
CisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZiZC8wL3JpbmctcGFnZS1vcmRlciA9ICIxIgor
ICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92YmQvMC9xdWV1ZS0wID0gIiIKKyAqIC9sb2NhbC9k
b21haW4vMS9kZXZpY2UvdmJkLzAvcXVldWUtMC9yaW5nLXJlZjAgPSAiPHJpbmctcmVmIzA+Igor
ICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92YmQvMC9xdWV1ZS0wL3JpbmctcmVmMSA9ICI8cmlu
Zy1yZWYjMT4iCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZiZC8wL3F1ZXVlLTAvZXZlbnQt
Y2hhbm5lbCA9ICI8ZXZ0Y2huIzA+IgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92YmQvMC9x
dWV1ZS0xID0gIiIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmJkLzAvcXVldWUtMS9yaW5n
LXJlZjAgPSAiPHJpbmctcmVmIzI+IgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92YmQvMC9x
dWV1ZS0xL3JpbmctcmVmMSA9ICI8cmluZy1yZWYjMz4iCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2
aWNlL3ZiZC8wL3F1ZXVlLTEvZXZlbnQtY2hhbm5lbCA9ICI8ZXZ0Y2huIzE+IgorICoKICAqLwog
CiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vaW8vY29uc29sZS5oIGIvaW5jbHVkZS94ZW4v
aW8vY29uc29sZS5oCmluZGV4IGUyY2Q5N2YuLjBmMDcxMWYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv
eGVuL2lvL2NvbnNvbGUuaAorKysgYi9pbmNsdWRlL3hlbi9pby9jb25zb2xlLmgKQEAgLTI3LDYg
KzI3LDggQEAKICNpZm5kZWYgX19YRU5fUFVCTElDX0lPX0NPTlNPTEVfSF9fCiAjZGVmaW5lIF9f
WEVOX1BVQkxJQ19JT19DT05TT0xFX0hfXwogCisjaW5jbHVkZSAicmluZy5oIgorCiB0eXBlZGVm
IHVpbnQzMl90IFhFTkNPTlNfUklOR19JRFg7CiAKICNkZWZpbmUgTUFTS19YRU5DT05TX0lEWChp
ZHgsIHJpbmcpICgoaWR4KSAmIChzaXplb2YocmluZyktMSkpCkBAIC0zOCw2ICs0MCwxMCBAQCBz
dHJ1Y3QgeGVuY29uc19pbnRlcmZhY2UgewogICAgIFhFTkNPTlNfUklOR19JRFggb3V0X2NvbnMs
IG91dF9wcm9kOwogfTsKIAorI2lmIGRlZmluZWQoX19HTlVDX18pICYmICFkZWZpbmVkKF9fU1RS
SUNUX0FOU0lfXykKK0RFRklORV9YRU5fRkxFWF9SSU5HKHhlbmNvbnMpOworI2VuZGlmCisKICNl
bmRpZiAvKiBfX1hFTl9QVUJMSUNfSU9fQ09OU09MRV9IX18gKi8KIAogLyoKZGlmZiAtLWdpdCBh
L2luY2x1ZGUveGVuL2lvL2Rpc3BsaWYuaCBiL2luY2x1ZGUveGVuL2lvL2Rpc3BsaWYuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YTk0ZjFmCi0tLSAvZGV2L251bGwKKysr
IGIvaW5jbHVkZS94ZW4vaW8vZGlzcGxpZi5oCkBAIC0wLDAgKzEsODY0IEBACisvKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqCisgKiBkaXNwbGlmLmgKKyAqCisgKiBVbmlmaWVkIGRpc3BsYXkgZGV2aWNl
IEkvTyBpbnRlcmZhY2UgZm9yIFhlbiBndWVzdCBPU2VzLgorICoKKyAqIFBlcm1pc3Npb24gaXMg
aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBh
IGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm
aWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91
dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0
cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1Ymxp
Y2Vuc2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVy
bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBz
bywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3Zl
IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5j
bHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNv
ZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VU
IFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcg
QlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAq
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBM
SUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVU
SEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcK
KyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRI
RSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTYtMjAxNyBFUEFNIFN5c3RlbXMgSW5jLgorICoKKyAqIEF1dGhvcnM6IE9s
ZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4K
KyAqICAgICAgICAgIE9sZWtzYW5kciBHcnl0c292IDxvbGVrc2FuZHJfZ3J5dHNvdkBlcGFtLmNv
bT4KKyAqLworCisjaWZuZGVmIF9fWEVOX1BVQkxJQ19JT19ESVNQTElGX0hfXworI2RlZmluZSBf
X1hFTl9QVUJMSUNfSU9fRElTUExJRl9IX18KKworI2luY2x1ZGUgInJpbmcuaCIKKyNpbmNsdWRl
ICIuLi9ncmFudF90YWJsZS5oIgorCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAg
ICAgICAgICAgICAgICAgICAgICAgICBQcm90b2NvbCB2ZXJzaW9uCisgKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCisgKi8KKyNkZWZpbmUgWEVORElTUExfUFJPVE9DT0xfVkVSU0lPTiAgICAgIjEiCisK
Ky8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgIE1haW4gZmVh
dHVyZXMgcHJvdmlkZWQgYnkgdGhlIHByb3RvY29sCisgKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisg
KiBUaGlzIHByb3RvY29sIGFpbXMgdG8gcHJvdmlkZSBhIHVuaWZpZWQgcHJvdG9jb2wgd2hpY2gg
Zml0cyBtb3JlCisgKiBzb3BoaXN0aWNhdGVkIHVzZS1jYXNlcyB0aGFuIGEgZnJhbWVidWZmZXIg
ZGV2aWNlIGNhbiBoYW5kbGUuIEF0IHRoZQorICogbW9tZW50IGJhc2ljIGZ1bmN0aW9uYWxpdHkg
aXMgc3VwcG9ydGVkIHdpdGggdGhlIGludGVudGlvbiB0byBiZSBleHRlbmRlZDoKKyAqICBvIG11
bHRpcGxlIGR5bmFtaWNhbGx5IGFsbG9jYXRlZC9kZXN0cm95ZWQgZnJhbWVidWZmZXJzCisgKiAg
byBidWZmZXJzIG9mIGFyYml0cmFyeSBzaXplcworICogIG8gYnVmZmVyIGFsbG9jYXRpb24gYXQg
ZWl0aGVyIGJhY2sgb3IgZnJvbnQgZW5kCisgKiAgbyBiZXR0ZXIgY29uZmlndXJhdGlvbiBvcHRp
b25zIGluY2x1ZGluZyBtdWx0aXBsZSBkaXNwbGF5IHN1cHBvcnQKKyAqCisgKiBOb3RlOiBleGlz
dGluZyBmYmlmIGNhbiBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggZGlzcGxpZiBydW5uaW5nIGF0IHRo
ZQorICogc2FtZSB0aW1lLCBlLmcuIG9uIExpbnV4IG9uZSBwcm92aWRlcyBmcmFtZWJ1ZmZlciBh
bmQgYW5vdGhlciBEUk0vS01TCisgKgorICogTm90ZTogZGlzcGxheSByZXNvbHV0aW9uIChYZW5T
dG9yZSdzICJyZXNvbHV0aW9uIiBwcm9wZXJ0eSkgZGVmaW5lcworICogdmlzaWJsZSBhcmVhIG9m
IHRoZSB2aXJ0dWFsIGRpc3BsYXkuIEF0IHRoZSBzYW1lIHRpbWUgcmVzb2x1dGlvbiBvZgorICog
dGhlIGRpc3BsYXkgYW5kIGZyYW1lIGJ1ZmZlcnMgbWF5IGRpZmZlcjogYnVmZmVycyBjYW4gYmUg
c21hbGxlciwgZXF1YWwKKyAqIG9yIGJpZ2dlciB0aGFuIHRoZSB2aXNpYmxlIGFyZWEuIFRoaXMg
aXMgdG8gZW5hYmxlIHVzZS1jYXNlcywgd2hlcmUgYmFja2VuZAorICogbWF5IGRvIHNvbWUgcG9z
dC1wcm9jZXNzaW5nIG9mIHRoZSBkaXNwbGF5IGFuZCBmcmFtZSBidWZmZXJzIHN1cHBsaWVkLAor
ICogZS5nLiB0aG9zZSBidWZmZXJzIGNhbiBiZSBqdXN0IGEgcGFydCBvZiB0aGUgZmluYWwgY29t
cG9zaXRpb24uCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAg
ICAgICAgICBEaXJlY3Rpb24gb2YgaW1wcm92ZW1lbnRzCisgKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CisgKiBGdXR1cmUgZXh0ZW5zaW9ucyB0byB0aGUgZXhpc3RpbmcgcHJvdG9jb2wgbWF5IGluY2x1
ZGU6CisgKiAgbyBkaXNwbGF5L2Nvbm5lY3RvciBjbG9uaW5nCisgKiAgbyBhbGxvY2F0aW9uIG9m
IG9iamVjdHMgb3RoZXIgdGhhbiBkaXNwbGF5IGJ1ZmZlcnMKKyAqICBvIHBsYW5lL292ZXJsYXkg
c3VwcG9ydAorICogIG8gc2NhbGluZyBzdXBwb3J0CisgKiAgbyByb3RhdGlvbiBzdXBwb3J0Cisg
KgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICBGZWF0dXJlIGFu
ZCBQYXJhbWV0ZXIgTmVnb3RpYXRpb24KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBG
cm9udC0+YmFjayBub3RpZmljYXRpb25zOiB3aGVuIGVucXVldWluZyBhIG5ldyByZXF1ZXN0LCBz
ZW5kaW5nIGEKKyAqIG5vdGlmaWNhdGlvbiBjYW4gYmUgbWFkZSBjb25kaXRpb25hbCBvbiB4ZW5k
aXNwbF9yZXEgKGkuZS4sIHRoZSBnZW5lcmljCisgKiBob2xkLW9mZiBtZWNoYW5pc20gcHJvdmlk
ZWQgYnkgdGhlIHJpbmcgbWFjcm9zKS4gQmFja2VuZHMgbXVzdCBzZXQKKyAqIHhlbmRpc3BsX3Jl
cSBhcHByb3ByaWF0ZWx5IChlLmcuLCB1c2luZyBSSU5HX0ZJTkFMX0NIRUNLX0ZPUl9SRVFVRVNU
UygpKS4KKyAqCisgKiBCYWNrLT5mcm9udCBub3RpZmljYXRpb25zOiB3aGVuIGVucXVldWluZyBh
IG5ldyByZXNwb25zZSwgc2VuZGluZyBhCisgKiBub3RpZmljYXRpb24gY2FuIGJlIG1hZGUgY29u
ZGl0aW9uYWwgb24geGVuZGlzcGxfcmVzcCAoaS5lLiwgdGhlIGdlbmVyaWMKKyAqIGhvbGQtb2Zm
IG1lY2hhbmlzbSBwcm92aWRlZCBieSB0aGUgcmluZyBtYWNyb3MpLiBGcm9udGVuZHMgbXVzdCBz
ZXQKKyAqIHhlbmRpc3BsX3Jlc3AgYXBwcm9wcmlhdGVseSAoZS5nLiwgdXNpbmcgUklOR19GSU5B
TF9DSEVDS19GT1JfUkVTUE9OU0VTKCkpLgorICoKKyAqIFRoZSB0d28gaGFsdmVzIG9mIGEgcGFy
YS12aXJ0dWFsIGRpc3BsYXkgZHJpdmVyIHV0aWxpemUgbm9kZXMgd2l0aGluCisgKiBYZW5TdG9y
ZSB0byBjb21tdW5pY2F0ZSBjYXBhYmlsaXRpZXMgYW5kIHRvIG5lZ290aWF0ZSBvcGVyYXRpbmcg
cGFyYW1ldGVycy4KKyAqIFRoaXMgc2VjdGlvbiBlbnVtZXJhdGVzIHRoZXNlIG5vZGVzIHdoaWNo
IHJlc2lkZSBpbiB0aGUgcmVzcGVjdGl2ZSBmcm9udCBhbmQKKyAqIGJhY2tlbmQgcG9ydGlvbnMg
b2YgWGVuU3RvcmUsIGZvbGxvd2luZyB0aGUgWGVuQnVzIGNvbnZlbnRpb24uCisgKgorICogQWxs
IGRhdGEgaW4gWGVuU3RvcmUgaXMgc3RvcmVkIGFzIHN0cmluZ3MuIE5vZGVzIHNwZWNpZnlpbmcg
bnVtZXJpYworICogdmFsdWVzIGFyZSBlbmNvZGVkIGluIGRlY2ltYWwuIEludGVnZXIgdmFsdWUg
cmFuZ2VzIGxpc3RlZCBiZWxvdyBhcmUKKyAqIGV4cHJlc3NlZCBhcyBmaXhlZCBzaXplZCBpbnRl
Z2VyIHR5cGVzIGNhcGFibGUgb2Ygc3RvcmluZyB0aGUgY29udmVyc2lvbgorICogb2YgYSBwcm9w
ZXJseSBmb3JtYXRlZCBub2RlIHN0cmluZywgd2l0aG91dCBsb3NzIG9mIGluZm9ybWF0aW9uLgor
ICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgRXhh
bXBsZSBjb25maWd1cmF0aW9uCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogTm90ZTog
ZGVwZW5kaW5nIG9uIHRoZSB1c2UtY2FzZSBiYWNrZW5kIGNhbiBleHBvc2UgbW9yZSBkaXNwbGF5
IGNvbm5lY3RvcnMKKyAqIHRoYW4gdGhlIHVuZGVybHlpbmcgSFcgcGh5c2ljYWxseSBoYXMgYnkg
ZW1wbG95aW5nIFNXIGdyYXBoaWNzIGNvbXBvc2l0b3JzCisgKgorICogVGhpcyBpcyBhbiBleGFt
cGxlIG9mIGJhY2tlbmQgYW5kIGZyb250ZW5kIGNvbmZpZ3VyYXRpb246CisgKgorICotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQmFja2VuZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorICoKKyAqIC9sb2NhbC9kb21haW4vMC9iYWNrZW5kL3ZkaXNwbC8xLzAv
ZnJvbnRlbmQtaWQgPSAiMSIKKyAqIC9sb2NhbC9kb21haW4vMC9iYWNrZW5kL3ZkaXNwbC8xLzAv
ZnJvbnRlbmQgPSAiL2xvY2FsL2RvbWFpbi8xL2RldmljZS92ZGlzcGwvMCIKKyAqIC9sb2NhbC9k
b21haW4vMC9iYWNrZW5kL3ZkaXNwbC8xLzAvc3RhdGUgPSAiNCIKKyAqIC9sb2NhbC9kb21haW4v
MC9iYWNrZW5kL3ZkaXNwbC8xLzAvdmVyc2lvbnMgPSAiMSwyIgorICoKKyAqLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZyb250ZW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKyAqCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZkaXNwbC8wL2JhY2tlbmQt
aWQgPSAiMCIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmRpc3BsLzAvYmFja2VuZCA9ICIv
bG9jYWwvZG9tYWluLzAvYmFja2VuZC92ZGlzcGwvMS8wIgorICogL2xvY2FsL2RvbWFpbi8xL2Rl
dmljZS92ZGlzcGwvMC9zdGF0ZSA9ICI0IgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92ZGlz
cGwvMC92ZXJzaW9uID0gIjEiCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZkaXNwbC8wL2Jl
LWFsbG9jID0gIjEiCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDb25uZWN0b3Ig
MCBjb25maWd1cmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIC9sb2NhbC9k
b21haW4vMS9kZXZpY2UvdmRpc3BsLzAvMC9yZXNvbHV0aW9uID0gIjE5MjB4MTA4MCIKKyAqIC9s
b2NhbC9kb21haW4vMS9kZXZpY2UvdmRpc3BsLzAvMC9yZXEtcmluZy1yZWYgPSAiMjgzMiIKKyAq
IC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmRpc3BsLzAvMC9yZXEtZXZlbnQtY2hhbm5lbCA9ICIx
NSIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmRpc3BsLzAvMC9ldnQtcmluZy1yZWYgPSAi
Mzg3IgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92ZGlzcGwvMC8wL2V2dC1ldmVudC1jaGFu
bmVsID0gIjE2IgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ29ubmVjdG9yIDEg
Y29uZmlndXJhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAvbG9jYWwvZG9t
YWluLzEvZGV2aWNlL3ZkaXNwbC8wLzEvcmVzb2x1dGlvbiA9ICI4MDB4NjAwIgorICogL2xvY2Fs
L2RvbWFpbi8xL2RldmljZS92ZGlzcGwvMC8xL3JlcS1yaW5nLXJlZiA9ICIyODMzIgorICogL2xv
Y2FsL2RvbWFpbi8xL2RldmljZS92ZGlzcGwvMC8xL3JlcS1ldmVudC1jaGFubmVsID0gIjE3Igor
ICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92ZGlzcGwvMC8xL2V2dC1yaW5nLXJlZiA9ICIzODgi
CisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZkaXNwbC8wLzEvZXZ0LWV2ZW50LWNoYW5uZWwg
PSAiMTgiCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQmFja2VuZCBYZW5CdXMgTm9kZXMKKyAqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAq
CisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFByb3RvY29sIHZlcnNpb24gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogdmVyc2lvbnMKKyAqICAgICAgVmFsdWVz
OiAgICAgICAgIDxzdHJpbmc+CisgKgorICogICAgICBMaXN0IG9mIFhFTkRJU1BMX0xJU1RfU0VQ
QVJBVE9SIHNlcGFyYXRlZCBwcm90b2NvbCB2ZXJzaW9ucyBzdXBwb3J0ZWQKKyAqICAgICAgYnkg
dGhlIGJhY2tlbmQuIEZvciBleGFtcGxlICIxLDIsMyIuCisgKgorICoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmQgWGVuQnVzIE5vZGVz
CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSBBZGRyZXNzaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoK
KyAqIGRvbS1pZAorICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQxNl90PgorICoKKyAqICAg
ICAgRG9tYWluIGlkZW50aWZpZXIuCisgKgorICogZGV2LWlkCisgKiAgICAgIFZhbHVlczogICAg
ICAgICA8dWludDE2X3Q+CisgKgorICogICAgICBEZXZpY2UgaWRlbnRpZmllci4KKyAqCisgKiBj
b25uLWlkeAorICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ4X3Q+CisgKgorICogICAgICBa
ZXJvIGJhc2VkIGNvbnRpZ291cyBpbmRleCBvZiB0aGUgY29ubmVjdG9yLgorICogICAgICAvbG9j
YWwvZG9tYWluLzxkb20taWQ+L2RldmljZS92ZGlzcGwvPGRldi1pZD4vPGNvbm4taWR4Pi8uLi4K
KyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFByb3RvY29sIHZlcnNpb24gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogdmVyc2lvbgorICogICAgICBWYWx1
ZXM6ICAgICAgICAgPHN0cmluZz4KKyAqCisgKiAgICAgIFByb3RvY29sIHZlcnNpb24sIGNob3Nl
biBhbW9uZyB0aGUgb25lcyBzdXBwb3J0ZWQgYnkgdGhlIGJhY2tlbmQuCisgKgorICotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIEJhY2tlbmQgYnVmZmVyIGFsbG9jYXRpb24gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorICoKKyAqIGJlLWFsbG9jCisgKiAgICAgIFZhbHVlczogICAgICAgICAi
MCIsICIxIgorICoKKyAqICAgICAgSWYgdmFsdWUgaXMgc2V0IHRvICIxIiwgdGhlbiBiYWNrZW5k
IGNhbiBiZSBhIGJ1ZmZlciBwcm92aWRlci9hbGxvY2F0b3IKKyAqICAgICAgZm9yIHRoaXMgZG9t
YWluIGR1cmluZyBYRU5ESVNQTF9PUF9EQlVGX0NSRUFURSBvcGVyYXRpb24gKHNlZSBiZWxvdwor
ICogICAgICBmb3IgbmVnb3RpYXRpb24pLgorICogICAgICBJZiB2YWx1ZSBpcyBub3QgIjEiIG9y
IG9taXR0ZWQgZnJvbnRlbmQgbXVzdCBhbGxvY2F0ZSBidWZmZXJzIGl0c2VsZi4KKyAqCisgKi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENvbm5lY3RvciBzZXR0aW5ncyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcmVzb2x1dGlvbgorICogICAgICBWYWx1ZXM6ICAg
ICAgICAgPHdpZHRoLCB1aW50MzJfdD54PGhlaWdodCwgdWludDMyX3Q+CisgKgorICogICAgICBX
aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBjb25uZWN0b3IgaW4gcGl4ZWxzIHNlcGFyYXRlZCBieQor
ICogICAgICBYRU5ESVNQTF9SRVNPTFVUSU9OX1NFUEFSQVRPUi4gVGhpcyBkZWZpbmVzIHZpc2li
bGUgYXJlYSBvZiB0aGUKKyAqICAgICAgZGlzcGxheS4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0t
LSBDb25uZWN0b3IgUmVxdWVzdCBUcmFuc3BvcnQgUGFyYW1ldGVycyAtLS0tLS0tLS0tLS0tLS0t
LS0tCisgKgorICogVGhpcyBjb21tdW5pY2F0aW9uIHBhdGggaXMgdXNlZCB0byBkZWxpdmVyIHJl
cXVlc3RzIGZyb20gZnJvbnRlbmQgdG8gYmFja2VuZAorICogYW5kIGdldCB0aGUgY29ycmVzcG9u
ZGluZyByZXNwb25zZXMgZnJvbSBiYWNrZW5kIHRvIGZyb250ZW5kLAorICogc2V0IHVwIHBlciBj
b25uZWN0b3IuCisgKgorICogcmVxLWV2ZW50LWNoYW5uZWwKKyAqICAgICAgVmFsdWVzOiAgICAg
ICAgIDx1aW50MzJfdD4KKyAqCisgKiAgICAgIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBYZW4gY29u
bmVjdG9yJ3MgY29udHJvbCBldmVudCBjaGFubmVsCisgKiAgICAgIHVzZWQgdG8gc2lnbmFsIGFj
dGl2aXR5IGluIHRoZSByaW5nIGJ1ZmZlci4KKyAqCisgKiByZXEtcmluZy1yZWYKKyAqICAgICAg
VmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4KKyAqCisgKiAgICAgIFRoZSBYZW4gZ3JhbnQgcmVm
ZXJlbmNlIGdyYW50aW5nIHBlcm1pc3Npb24gZm9yIHRoZSBiYWNrZW5kIHRvIG1hcAorICogICAg
ICBhIHNvbGUgcGFnZSBvZiBjb25uZWN0b3IncyBjb250cm9sIHJpbmcgYnVmZmVyLgorICoKKyAq
LS0tLS0tLS0tLS0tLS0tLS0tLSBDb25uZWN0b3IgRXZlbnQgVHJhbnNwb3J0IFBhcmFtZXRlcnMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBUaGlzIGNvbW11bmljYXRpb24gcGF0aCBpcyB1
c2VkIHRvIGRlbGl2ZXIgYXN5bmNocm9ub3VzIGV2ZW50cyBmcm9tIGJhY2tlbmQKKyAqIHRvIGZy
b250ZW5kLCBzZXQgdXAgcGVyIGNvbm5lY3Rvci4KKyAqCisgKiBldnQtZXZlbnQtY2hhbm5lbAor
ICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQzMl90PgorICoKKyAqICAgICAgVGhlIGlkZW50
aWZpZXIgb2YgdGhlIFhlbiBjb25uZWN0b3IncyBldmVudCBjaGFubmVsCisgKiAgICAgIHVzZWQg
dG8gc2lnbmFsIGFjdGl2aXR5IGluIHRoZSByaW5nIGJ1ZmZlci4KKyAqCisgKiBldnQtcmluZy1y
ZWYKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4KKyAqCisgKiAgICAgIFRoZSBY
ZW4gZ3JhbnQgcmVmZXJlbmNlIGdyYW50aW5nIHBlcm1pc3Npb24gZm9yIHRoZSBiYWNrZW5kIHRv
IG1hcAorICogICAgICBhIHNvbGUgcGFnZSBvZiBjb25uZWN0b3IncyBldmVudCByaW5nIGJ1ZmZl
ci4KKyAqLworCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgU1RBVEUgRElBR1JBTVMKKyAqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAq
CisgKiBUb29sIHN0YWNrIGNyZWF0ZXMgZnJvbnQgYW5kIGJhY2sgc3RhdGUgbm9kZXMgd2l0aCBp
bml0aWFsIHN0YXRlCisgKiBYZW5idXNTdGF0ZUluaXRpYWxpc2luZy4KKyAqIFRvb2wgc3RhY2sg
Y3JlYXRlcyBhbmQgc2V0cyB1cCBmcm9udGVuZCBkaXNwbGF5IGNvbmZpZ3VyYXRpb24KKyAqIG5v
ZGVzIHBlciBkb21haW4uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBO
b3JtYWwgZmxvdyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIEZyb250
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYWNrCisgKiA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0gICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorICogWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlSW5p
dGlhbGlzaW5nCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gUXVl
cnkgYmFja2VuZCBkZXZpY2UgaWRlbnRpZmljYXRpb24KKyAqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkYXRhLgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvIE9wZW4gYW5kIHZhbGlkYXRlIGJhY2tlbmQgZGV2aWNlLgorICogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVgorICogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlSW5pdFdhaXQKKyAqCisgKiBvIFF1ZXJ5IGZy
b250ZW5kIGNvbmZpZ3VyYXRpb24KKyAqIG8gQWxsb2NhdGUgYW5kIGluaXRpYWxpemUKKyAqICAg
ZXZlbnQgY2hhbm5lbHMgcGVyIGNvbmZpZ3VyZWQKKyAqICAgY29ubmVjdG9yLgorICogbyBQdWJs
aXNoIHRyYW5zcG9ydCBwYXJhbWV0ZXJzCisgKiAgIHRoYXQgd2lsbCBiZSBpbiBlZmZlY3QgZHVy
aW5nCisgKiAgIHRoaXMgY29ubmVjdGlvbi4KKyAqICAgICAgICAgICAgICB8CisgKiAgICAgICAg
ICAgICAgfAorICogICAgICAgICAgICAgIFYKKyAqIFhlbmJ1c1N0YXRlSW5pdGlhbGlzZWQKKyAq
CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gUXVlcnkgZnJvbnRl
bmQgdHJhbnNwb3J0IHBhcmFtZXRlcnMuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG8gQ29ubmVjdCB0byB0aGUgZXZlbnQgY2hhbm5lbHMuCisgKiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWCisgKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVDb25uZWN0ZWQKKyAqCisgKiAgbyBDcmVhdGUgYW5k
IGluaXRpYWxpemUgT1MKKyAqICAgIHZpcnR1YWwgZGlzcGxheSBjb25uZWN0b3JzCisgKiAgICBh
cyBwZXIgY29uZmlndXJhdGlvbi4KKyAqICAgICAgICAgICAgICB8CisgKiAgICAgICAgICAgICAg
fAorICogICAgICAgICAgICAgIFYKKyAqIFhlbmJ1c1N0YXRlQ29ubmVjdGVkCisgKgorICogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlVW5rbm93bgorICog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlQ2xvc2VkCisg
KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVDbG9zaW5n
CisgKiBvIFJlbW92ZSB2aXJ0dWFsIGRpc3BsYXkgZGV2aWNlCisgKiBvIFJlbW92ZSBldmVudCBj
aGFubmVscworICogICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICB8CisgKiAgICAgICAg
ICAgICAgVgorICogWGVuYnVzU3RhdGVDbG9zZWQKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gUmVjb3ZlcnkgZmxvdyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisgKgorICogSW4gY2FzZSBvZiBmcm9udGVuZCB1bnJlY292ZXJhYmxlIGVycm9ycyBiYWNrZW5k
IGhhbmRsZXMgdGhhdCBhcworICogaWYgZnJvbnRlbmQgZ29lcyBpbnRvIHRoZSBYZW5idXNTdGF0
ZUNsb3NlZCBzdGF0ZS4KKyAqCisgKiBJbiBjYXNlIG9mIGJhY2tlbmQgdW5yZWNvdmVyYWJsZSBl
cnJvcnMgZnJvbnRlbmQgdHJpZXMgcmVtb3ZpbmcKKyAqIHRoZSB2aXJ0dWFsaXplZCBkZXZpY2Uu
IElmIHRoaXMgaXMgcG9zc2libGUgYXQgdGhlIG1vbWVudCBvZiBlcnJvciwKKyAqIHRoZW4gZnJv
bnRlbmQgZ29lcyBpbnRvIHRoZSBYZW5idXNTdGF0ZUluaXRpYWxpc2luZyBzdGF0ZSBhbmQgaXMg
cmVhZHkgZm9yCisgKiBuZXcgY29ubmVjdGlvbiB3aXRoIGJhY2tlbmQuIElmIHRoZSB2aXJ0dWFs
aXplZCBkZXZpY2UgaXMgc3RpbGwgaW4gdXNlIGFuZAorICogY2Fubm90IGJlIHJlbW92ZWQsIHRo
ZW4gZnJvbnRlbmQgZ29lcyBpbnRvIHRoZSBYZW5idXNTdGF0ZVJlY29uZmlndXJpbmcgc3RhdGUK
KyAqIHVudGlsIGVpdGhlciB0aGUgdmlydHVhbGl6ZWQgZGV2aWNlIGlzIHJlbW92ZWQgb3IgYmFj
a2VuZCBpbml0aWF0ZXMgYSBuZXcKKyAqIGNvbm5lY3Rpb24uIE9uIHRoZSB2aXJ0dWFsaXplZCBk
ZXZpY2UgcmVtb3ZhbCBmcm9udGVuZCBnb2VzIGludG8gdGhlCisgKiBYZW5idXNTdGF0ZUluaXRp
YWxpc2luZyBzdGF0ZS4KKyAqCisgKiBOb3RlIG9uIFhlbmJ1c1N0YXRlUmVjb25maWd1cmluZyBz
dGF0ZSBvZiB0aGUgZnJvbnRlbmQ6IGlmIGJhY2tlbmQgaGFzCisgKiB1bnJlY292ZXJhYmxlIGVy
cm9ycyB0aGVuIGZyb250ZW5kIGNhbm5vdCBzZW5kIHJlcXVlc3RzIHRvIHRoZSBiYWNrZW5kCisg
KiBhbmQgdGh1cyBjYW5ub3QgcHJvdmlkZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSB2aXJ0dWFsaXpl
ZCBkZXZpY2UgYW55bW9yZS4KKyAqIEFmdGVyIGJhY2tlbmQgaXMgYmFjayB0byBub3JtYWwgdGhl
IHZpcnR1YWxpemVkIGRldmljZSBtYXkgc3RpbGwgaG9sZCBzb21lCisgKiBzdGF0ZTogY29uZmln
dXJhdGlvbiBpbiB1c2UsIGFsbG9jYXRlZCBidWZmZXJzLCBjbGllbnQgYXBwbGljYXRpb24gc3Rh
dGUgZXRjLgorICogSW4gbW9zdCBjYXNlcywgdGhpcyB3aWxsIHJlcXVpcmUgZnJvbnRlbmQgdG8g
aW1wbGVtZW50IGNvbXBsZXggcmVjb3ZlcnkKKyAqIHJlY29ubmVjdCBsb2dpYy4gSW5zdGVhZCwg
YnkgZ29pbmcgaW50byBYZW5idXNTdGF0ZVJlY29uZmlndXJpbmcgc3RhdGUsCisgKiBmcm9udGVu
ZCB3aWxsIG1ha2Ugc3VyZSBubyBuZXcgY2xpZW50cyBvZiB0aGUgdmlydHVhbGl6ZWQgZGV2aWNl
IGFyZQorICogYWNjZXB0ZWQsIGFsbG93IGV4aXN0aW5nIGNsaWVudChzKSB0byBleGl0IGdyYWNl
ZnVsbHkgYnkgc2lnbmFsaW5nIGVycm9yCisgKiBzdGF0ZSBldGMuCisgKiBPbmNlIGFsbCB0aGUg
Y2xpZW50cyBhcmUgZ29uZSBmcm9udGVuZCBjYW4gcmVpbml0aWFsaXplIHRoZSB2aXJ0dWFsaXpl
ZAorICogZGV2aWNlIGFuZCBnZXQgaW50byBYZW5idXNTdGF0ZUluaXRpYWxpc2luZyBzdGF0ZSBh
Z2FpbiBzaWduYWxpbmcgdGhlCisgKiBiYWNrZW5kIHRoYXQgYSBuZXcgY29ubmVjdGlvbiBjYW4g
YmUgbWFkZS4KKyAqCisgKiBUaGVyZSBhcmUgbXVsdGlwbGUgY29uZGl0aW9ucyBwb3NzaWJsZSB1
bmRlciB3aGljaCBmcm9udGVuZCB3aWxsIGdvIGZyb20KKyAqIFhlbmJ1c1N0YXRlUmVjb25maWd1
cmluZyBpbnRvIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nLCBzb21lIG9mIHRoZW0gYXJlIE9TCisg
KiBzcGVjaWZpYy4gRm9yIGV4YW1wbGU6CisgKiAxLiBUaGUgdW5kZXJseWluZyBPUyBmcmFtZXdv
cmsgbWF5IHByb3ZpZGUgY2FsbGJhY2tzIHRvIHNpZ25hbCB0aGF0IHRoZSBsYXN0CisgKiAgICBj
bGllbnQgb2YgdGhlIHZpcnR1YWxpemVkIGRldmljZSBoYXMgZ29uZSBhbmQgdGhlIGRldmljZSBj
YW4gYmUgcmVtb3ZlZAorICogMi4gRnJvbnRlbmQgY2FuIHNjaGVkdWxlIGEgZGVmZXJyZWQgd29y
ayAodGltZXIvdGFza2xldC93b3JrcXVldWUpCisgKiAgICB0byBwZXJpb2RpY2FsbHkgY2hlY2sg
aWYgdGhpcyBpcyB0aGUgcmlnaHQgdGltZSB0byByZS10cnkgcmVtb3ZhbCBvZgorICogICAgdGhl
IHZpcnR1YWxpemVkIGRldmljZS4KKyAqIDMuIEJ5IGFueSBvdGhlciBtZWFucy4KKyAqCisgKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVRVUVT
VCBDT0RFUworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogUmVxdWVzdCBjb2RlcyBbMDsgMTVd
IGFyZSByZXNlcnZlZCBhbmQgbXVzdCBub3QgYmUgdXNlZAorICovCisKKyNkZWZpbmUgWEVORElT
UExfT1BfREJVRl9DUkVBVEUgICAgICAgMHgxMAorI2RlZmluZSBYRU5ESVNQTF9PUF9EQlVGX0RF
U1RST1kgICAgICAweDExCisjZGVmaW5lIFhFTkRJU1BMX09QX0ZCX0FUVEFDSCAgICAgICAgIDB4
MTIKKyNkZWZpbmUgWEVORElTUExfT1BfRkJfREVUQUNIICAgICAgICAgMHgxMworI2RlZmluZSBY
RU5ESVNQTF9PUF9TRVRfQ09ORklHICAgICAgICAweDE0CisjZGVmaW5lIFhFTkRJU1BMX09QX1BH
X0ZMSVAgICAgICAgICAgIDB4MTUKKworLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZFTlQgQ09ERVMKKyAqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKKyAqLworI2RlZmluZSBYRU5ESVNQTF9FVlRfUEdfRkxJUCAgICAgICAgICAweDAw
CisKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgIFhFTlNUT1JF
IEZJRUxEIEFORCBQQVRIIE5BTUUgU1RSSU5HUywgSEVMUEVSUworICoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgorICovCisjZGVmaW5lIFhFTkRJU1BMX0RSSVZFUl9OQU1FICAgICAgICAgICJ2ZGlzcGwi
CisKKyNkZWZpbmUgWEVORElTUExfTElTVF9TRVBBUkFUT1IgICAgICAgIiwiCisjZGVmaW5lIFhF
TkRJU1BMX1JFU09MVVRJT05fU0VQQVJBVE9SICJ4IgorCisjZGVmaW5lIFhFTkRJU1BMX0ZJRUxE
X0JFX1ZFUlNJT05TICAgICJ2ZXJzaW9ucyIKKyNkZWZpbmUgWEVORElTUExfRklFTERfRkVfVkVS
U0lPTiAgICAgInZlcnNpb24iCisjZGVmaW5lIFhFTkRJU1BMX0ZJRUxEX1JFUV9SSU5HX1JFRiAg
ICJyZXEtcmluZy1yZWYiCisjZGVmaW5lIFhFTkRJU1BMX0ZJRUxEX1JFUV9DSEFOTkVMICAgICJy
ZXEtZXZlbnQtY2hhbm5lbCIKKyNkZWZpbmUgWEVORElTUExfRklFTERfRVZUX1JJTkdfUkVGICAg
ImV2dC1yaW5nLXJlZiIKKyNkZWZpbmUgWEVORElTUExfRklFTERfRVZUX0NIQU5ORUwgICAgImV2
dC1ldmVudC1jaGFubmVsIgorI2RlZmluZSBYRU5ESVNQTF9GSUVMRF9SRVNPTFVUSU9OICAgICAi
cmVzb2x1dGlvbiIKKyNkZWZpbmUgWEVORElTUExfRklFTERfQkVfQUxMT0MgICAgICAgImJlLWFs
bG9jIgorCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAg
ICAgICAgIFNUQVRVUyBSRVRVUk4gQ09ERVMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisg
KiBTdGF0dXMgcmV0dXJuIGNvZGUgaXMgemVybyBvbiBzdWNjZXNzIGFuZCAtWEVOX0VYWCBvbiBm
YWlsdXJlLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQXNzdW1wdGlvbnMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIG8gdXNh
Z2Ugb2YgZ3JhbnQgcmVmZXJlbmNlIDAgYXMgaW52YWxpZCBncmFudCByZWZlcmVuY2U6CisgKiAg
IGdyYW50IHJlZmVyZW5jZSAwIGlzIHZhbGlkLCBidXQgbmV2ZXIgZXhwb3NlZCB0byBhIFBWIGRy
aXZlciwKKyAqICAgYmVjYXVzZSBvZiB0aGUgZmFjdCBpdCBpcyBhbHJlYWR5IGluIHVzZS9yZXNl
cnZlZCBieSB0aGUgUFYgY29uc29sZS4KKyAqIG8gYWxsIHJlZmVyZW5jZXMgaW4gdGhpcyBkb2N1
bWVudCB0byBwYWdlIHNpemVzIG11c3QgYmUgdHJlYXRlZAorICogICBhcyBwYWdlcyBvZiBzaXpl
IFhFTl9QQUdFX1NJWkUgdW5sZXNzIG90aGVyd2lzZSBub3RlZC4KKyAqCisgKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCisgKiAgICAgICBEZXNjcmlwdGlvbiBvZiB0aGUgcHJvdG9jb2wgYmV0d2VlbiBm
cm9udGVuZCBhbmQgYmFja2VuZCBkcml2ZXIKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisg
KiBUaGUgdHdvIGhhbHZlcyBvZiBhIFBhcmEtdmlydHVhbCBkaXNwbGF5IGRyaXZlciBjb21tdW5p
Y2F0ZSB3aXRoCisgKiBlYWNoIG90aGVyIHVzaW5nIHNoYXJlZCBwYWdlcyBhbmQgZXZlbnQgY2hh
bm5lbHMuCisgKiBTaGFyZWQgcGFnZSBjb250YWlucyBhIHJpbmcgd2l0aCByZXF1ZXN0L3Jlc3Bv
bnNlIHBhY2tldHMuCisgKgorICogQWxsIHJlc2VydmVkIGZpZWxkcyBpbiB0aGUgc3RydWN0dXJl
cyBiZWxvdyBtdXN0IGJlIDAuCisgKiBEaXNwbGF5IGJ1ZmZlcnMncyBjb29raWUgb2YgdmFsdWUg
MCBpcyB0cmVhdGVkIGFzIGludmFsaWQuCisgKiBGcmFtZWJ1ZmZlcidzIGNvb2tpZSBvZiB2YWx1
ZSAwIGlzIHRyZWF0ZWQgYXMgaW52YWxpZC4KKyAqCisgKiBGb3IgYWxsIHJlcXVlc3QvcmVzcG9u
c2UvZXZlbnQgcGFja2V0cyB0aGF0IHVzZSBjb29raWVzOgorICogICBkYnVmX2Nvb2tpZSAtIHVp
bnQ2NF90LCB1bmlxdWUgdG8gZ3Vlc3QgZG9tYWluIHZhbHVlIHVzZWQgYnkgdGhlIGJhY2tlbmQK
KyAqICAgICB0byBtYXAgcmVtb3RlIGRpc3BsYXkgYnVmZmVyIHRvIGl0cyBsb2NhbCBvbmUKKyAq
ICAgZmJfY29va2llIC0gdWludDY0X3QsIHVuaXF1ZSB0byBndWVzdCBkb21haW4gdmFsdWUgdXNl
ZCBieSB0aGUgYmFja2VuZAorICogICAgIHRvIG1hcCByZW1vdGUgZnJhbWVidWZmZXIgdG8gaXRz
IGxvY2FsIG9uZQorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSZXF1
ZXN0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBBbGwgcmVxdWVz
dHMvcmVzcG9uc2VzLCB3aGljaCBhcmUgbm90IGNvbm5lY3RvciBzcGVjaWZpYywgbXVzdCBiZSBz
ZW50IG92ZXIKKyAqIGNvbnRyb2wgcmluZyBvZiB0aGUgY29ubmVjdG9yIHdoaWNoIGhhcyB0aGUg
aW5kZXggdmFsdWUgb2YgMDoKKyAqICAgL2xvY2FsL2RvbWFpbi88ZG9tLWlkPi9kZXZpY2UvdmRp
c3BsLzxkZXYtaWQ+LzAvcmVxLXJpbmctcmVmCisgKgorICogQWxsIHJlcXVlc3QgcGFja2V0cyBo
YXZlIHRoZSBzYW1lIGxlbmd0aCAoNjQgb2N0ZXRzKQorICogQWxsIHJlcXVlc3QgcGFja2V0cyBo
YXZlIGNvbW1vbiBoZWFkZXI6CisgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAg
ICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsK
KyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8ICAgIG9wZXJhdGlvbiAgIHwg
ICByZXNlcnZlZCAgICAgfCA0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cisg
KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSsKKyAqICAgaWQgLSB1aW50MTZfdCwgcHJpdmF0ZSBndWVzdCB2YWx1ZSwg
ZWNob2VkIGluIHJlc3BvbnNlCisgKiAgIG9wZXJhdGlvbiAtIHVpbnQ4X3QsIG9wZXJhdGlvbiBj
b2RlLCBYRU5ESVNQTF9PUF8/Pz8KKyAqCisgKiBSZXF1ZXN0IGRidWYgY3JlYXRpb24gLSByZXF1
ZXN0IGNyZWF0aW9uIG9mIGEgZGlzcGxheSBidWZmZXIuCisgKiAgICAgICAgIDAgICAgICAgICAg
ICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cisg
KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8X09Q
X0RCVUZfQ1JFQVRFIHwgICByZXNlcnZlZCAgICAgfCA0CisgKiArLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCA4CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAg
IGRidWZfY29va2llIGxvdyAzMi1iaXQgICAgICAgICAgICAgICAgICAgICAgfCAxMgorICogKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICBkYnVmX2Nvb2tpZSBoaWdoIDMy
LWJpdCAgICAgICAgICAgICAgICAgICAgIHwgMTYKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IDIwCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaGVpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyNAorICogKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicHAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgMjgKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3N6ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8IDMyCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZmxhZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzNgorICogKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZl9kaXJlY3RvcnkgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgNDAKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
IDQ0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisg
KiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgNjQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIE11c3QgYmUgc2VudCBv
dmVyIGNvbnRyb2wgcmluZyBvZiB0aGUgY29ubmVjdG9yIHdoaWNoIGhhcyB0aGUgaW5kZXgKKyAq
IHZhbHVlIG9mIDA6CisgKiAgIC9sb2NhbC9kb21haW4vPGRvbS1pZD4vZGV2aWNlL3ZkaXNwbC88
ZGV2LWlkPi8wL3JlcS1yaW5nLXJlZgorICogQWxsIHVudXNlZCBiaXRzIGluIGZsYWdzIGZpZWxk
IG11c3QgYmUgc2V0IHRvIDAuCisgKgorICogQW4gYXR0ZW1wdCB0byBjcmVhdGUgbXVsdGlwbGUg
ZGlzcGxheSBidWZmZXJzIHdpdGggdGhlIHNhbWUgZGJ1Zl9jb29raWUgaXMKKyAqIGFuIGVycm9y
LiBkYnVmX2Nvb2tpZSBjYW4gYmUgcmUtdXNlZCBhZnRlciBkZXN0cm95aW5nIHRoZSBjb3JyZXNw
b25kaW5nCisgKiBkaXNwbGF5IGJ1ZmZlci4KKyAqCisgKiBXaWR0aCBhbmQgaGVpZ2h0IG9mIHRo
ZSBkaXNwbGF5IGJ1ZmZlcnMgY2FuIGJlIHNtYWxsZXIsIGVxdWFsIG9yIGJpZ2dlcgorICogdGhh
biB0aGUgY29ubmVjdG9yJ3MgcmVzb2x1dGlvbi4gRGVwdGgvcGl4ZWwgZm9ybWF0IG9mIHRoZSBp
bmRpdmlkdWFsCisgKiBidWZmZXJzIGNhbiBkaWZmZXIgYXMgd2VsbC4KKyAqCisgKiB3aWR0aCAt
IHVpbnQzMl90LCB3aWR0aCBpbiBwaXhlbHMKKyAqIGhlaWdodCAtIHVpbnQzMl90LCBoZWlnaHQg
aW4gcGl4ZWxzCisgKiBicHAgLSB1aW50MzJfdCwgYml0cyBwZXIgcGl4ZWwKKyAqIGJ1ZmZlcl9z
eiAtIHVpbnQzMl90LCBidWZmZXIgc2l6ZSB0byBiZSBhbGxvY2F0ZWQsIG9jdGV0cworICogZmxh
Z3MgLSB1aW50MzJfdCwgZmxhZ3Mgb2YgdGhlIG9wZXJhdGlvbgorICogICBvIFhFTkRJU1BMX0RC
VUZfRkxHX1JFUV9BTExPQyAtIGlmIHNldCwgdGhlbiBiYWNrZW5kIGlzIHJlcXVlc3RlZAorICog
ICAgIHRvIGFsbG9jYXRlIHRoZSBidWZmZXIgd2l0aCB0aGUgcGFyYW1ldGVycyBwcm92aWRlZCBp
biB0aGlzIHJlcXVlc3QuCisgKiAgICAgUGFnZSBkaXJlY3RvcnkgaXMgaGFuZGxlZCBhcyBmb2xs
b3dzOgorICogICAgICAgRnJvbnRlbmQgb24gcmVxdWVzdDoKKyAqICAgICAgICAgbyBhbGxvY2F0
ZXMgcGFnZXMgZm9yIHRoZSBkaXJlY3RvcnkgKGdyZWZfZGlyZWN0b3J5LAorICogICAgICAgICAg
IGdyZWZfZGlyX25leHRfcGFnZShzKQorICogICAgICAgICBvIGdyYW50cyBwZXJtaXNzaW9ucyBm
b3IgdGhlIHBhZ2VzIG9mIHRoZSBkaXJlY3RvcnkgdG8gdGhlIGJhY2tlbmQKKyAqICAgICAgICAg
byBzZXRzIGdyZWZfZGlyX25leHRfcGFnZSBmaWVsZHMKKyAqICAgICAgIEJhY2tlbmQgb24gcmVz
cG9uc2U6CisgKiAgICAgICAgIG8gZ3JhbnRzIHBlcm1pc3Npb25zIGZvciB0aGUgcGFnZXMgb2Yg
dGhlIGJ1ZmZlciBhbGxvY2F0ZWQgdG8KKyAqICAgICAgICAgICB0aGUgZnJvbnRlbmQKKyAqICAg
ICAgICAgbyBmaWxscyBpbiBwYWdlIGRpcmVjdG9yeSB3aXRoIGdyYW50IHJlZmVyZW5jZXMKKyAq
ICAgICAgICAgICAoZ3JlZltdIGluIHN0cnVjdCB4ZW5kaXNwbF9wYWdlX2RpcmVjdG9yeSkKKyAq
IGdyZWZfZGlyZWN0b3J5IC0gZ3JhbnRfcmVmX3QsIGEgcmVmZXJlbmNlIHRvIHRoZSBmaXJzdCBz
aGFyZWQgcGFnZQorICogICBkZXNjcmliaW5nIHNoYXJlZCBidWZmZXIgcmVmZXJlbmNlcy4gQXQg
bGVhc3Qgb25lIHBhZ2UgZXhpc3RzLiBJZiBzaGFyZWQKKyAqICAgYnVmZmVyIHNpemUgKGJ1ZmZl
cl9zeikgZXhjZWVkcyB3aGF0IGNhbiBiZSBhZGRyZXNzZWQgYnkgdGhpcyBzaW5nbGUgcGFnZSwK
KyAqICAgdGhlbiByZWZlcmVuY2UgdG8gdGhlIG5leHQgcGFnZSBtdXN0IGJlIHN1cHBsaWVkIChz
ZWUgZ3JlZl9kaXJfbmV4dF9wYWdlCisgKiAgIGJlbG93KQorICovCisKKyNkZWZpbmUgWEVORElT
UExfREJVRl9GTEdfUkVRX0FMTE9DICAgICAgICgxIDw8IDApCisKK3N0cnVjdCB4ZW5kaXNwbF9k
YnVmX2NyZWF0ZV9yZXEgeworICAgIHVpbnQ2NF90IGRidWZfY29va2llOworICAgIHVpbnQzMl90
IHdpZHRoOworICAgIHVpbnQzMl90IGhlaWdodDsKKyAgICB1aW50MzJfdCBicHA7CisgICAgdWlu
dDMyX3QgYnVmZmVyX3N6OworICAgIHVpbnQzMl90IGZsYWdzOworICAgIGdyYW50X3JlZl90IGdy
ZWZfZGlyZWN0b3J5OworfTsKKworLyoKKyAqIFNoYXJlZCBwYWdlIGZvciBYRU5ESVNQTF9PUF9E
QlVGX0NSRUFURSBidWZmZXIgZGVzY3JpcHRvciAoZ3JlZl9kaXJlY3RvcnkgaW4KKyAqIHRoZSBy
ZXF1ZXN0KSBlbXBsb3lzIGEgbGlzdCBvZiBwYWdlcywgZGVzY3JpYmluZyBhbGwgcGFnZXMgb2Yg
dGhlIHNoYXJlZAorICogZGF0YSBidWZmZXI6CisgKiAgICAgICAgIDAgICAgICAgICAgICAgICAg
MSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICBncmVmX2Rpcl9uZXh0X3BhZ2Ug
ICAgICAgICAgICAgICAgICAgICAgICAgfCA0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBncmVmWzBdICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCA4CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
CisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZltpXSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgaSo0KzgKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98
CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZWZb
TiAtIDFdICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOKjQrOAorICogKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
CisgKgorICogZ3JlZl9kaXJfbmV4dF9wYWdlIC0gZ3JhbnRfcmVmX3QsIHJlZmVyZW5jZSB0byB0
aGUgbmV4dCBwYWdlIGRlc2NyaWJpbmcKKyAqICAgcGFnZSBkaXJlY3RvcnkuIE11c3QgYmUgMCBp
ZiB0aGVyZSBhcmUgbm8gbW9yZSBwYWdlcyBpbiB0aGUgbGlzdC4KKyAqIGdyZWZbaV0gLSBncmFu
dF9yZWZfdCwgcmVmZXJlbmNlIHRvIGEgc2hhcmVkIHBhZ2Ugb2YgdGhlIGJ1ZmZlcgorICogICBh
bGxvY2F0ZWQgYXQgWEVORElTUExfT1BfREJVRl9DUkVBVEUKKyAqCisgKiBOdW1iZXIgb2YgZ3Jh
bnRfcmVmX3QgZW50cmllcyBpbiB0aGUgd2hvbGUgcGFnZSBkaXJlY3RvcnkgaXMgbm90CisgKiBw
YXNzZWQsIGJ1dCBpbnN0ZWFkIGNhbiBiZSBjYWxjdWxhdGVkIGFzOgorICogICBudW1fZ3JlZnNf
dG90YWwgPSAoWEVORElTUExfT1BfREJVRl9DUkVBVEUuYnVmZmVyX3N6ICsgWEVOX1BBR0VfU0la
RSAtIDEpIC8KKyAqICAgICAgIFhFTl9QQUdFX1NJWkUKKyAqLworCitzdHJ1Y3QgeGVuZGlzcGxf
cGFnZV9kaXJlY3RvcnkgeworICAgIGdyYW50X3JlZl90IGdyZWZfZGlyX25leHRfcGFnZTsKKyAg
ICBncmFudF9yZWZfdCBncmVmWzFdOyAvKiBWYXJpYWJsZSBsZW5ndGggKi8KK307CisKKy8qCisg
KiBSZXF1ZXN0IGRidWYgZGVzdHJ1Y3Rpb24gLSBkZXN0cm95IGEgcHJldmlvdXNseSBhbGxvY2F0
ZWQgZGlzcGxheSBidWZmZXI6CisgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAg
ICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsK
KyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8X09QX0RCVUZfREVTVFJPWXwg
ICByZXNlcnZlZCAgICAgfCA0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cisg
KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgIGRidWZfY29va2llIGxv
dyAzMi1iaXQgICAgICAgICAgICAgICAgICAgICAgfCAxMgorICogKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8
ICAgICAgICAgICAgICAgICAgICAgICBkYnVmX2Nvb2tpZSBoaWdoIDMyLWJpdCAgICAgICAgICAg
ICAgICAgICAgIHwgMTYKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIwCisgKiAr
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgNjQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIE11c3QgYmUgc2VudCBvdmVyIGNvbnRy
b2wgcmluZyBvZiB0aGUgY29ubmVjdG9yIHdoaWNoIGhhcyB0aGUgaW5kZXgKKyAqIHZhbHVlIG9m
IDA6CisgKiAgIC9sb2NhbC9kb21haW4vPGRvbS1pZD4vZGV2aWNlL3ZkaXNwbC88ZGV2LWlkPi8w
L3JlcS1yaW5nLXJlZgorICovCisKK3N0cnVjdCB4ZW5kaXNwbF9kYnVmX2Rlc3Ryb3lfcmVxIHsK
KyAgICB1aW50NjRfdCBkYnVmX2Nvb2tpZTsKK307CisKKy8qCisgKiBSZXF1ZXN0IGZyYW1lYnVm
ZmVyIGF0dGFjaG1lbnQgLSByZXF1ZXN0IGF0dGFjaG1lbnQgb2YgYSBmcmFtZWJ1ZmZlciB0bwor
ICogcHJldmlvdXNseSBjcmVhdGVkIGRpc3BsYXkgYnVmZmVyLgorICogICAgICAgICAwICAgICAg
ICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3Rl
dAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAg
fCBfT1BfRkJfQVRUQUNIICB8ICAgcmVzZXJ2ZWQgICAgIHwgNAorICogKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisg
KiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgOAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAg
ICAgICBkYnVmX2Nvb2tpZSBsb3cgMzItYml0ICAgICAgICAgICAgICAgICAgICAgIHwgMTIKKyAq
ICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgZGJ1Zl9jb29raWUgaGln
aCAzMi1iaXQgICAgICAgICAgICAgICAgICAgICB8IDE2CisgKiArLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwg
ICAgICAgICAgICAgICAgICAgICAgICBmYl9jb29raWUgbG93IDMyLWJpdCAgICAgICAgICAgICAg
ICAgICAgICAgfCAyMAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAg
ICAgZmJfY29va2llIGhpZ2ggMzItYml0ICAgICAgICAgICAgICAgICAgICAgIHwgMjQKKyAqICst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI4CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAzMgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBpeGVsX2Zvcm1hdCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzYKKyAqICstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8IDQwCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQKKyAqICstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
KworICoKKyAqIE11c3QgYmUgc2VudCBvdmVyIGNvbnRyb2wgcmluZyBvZiB0aGUgY29ubmVjdG9y
IHdoaWNoIGhhcyB0aGUgaW5kZXgKKyAqIHZhbHVlIG9mIDA6CisgKiAgIC9sb2NhbC9kb21haW4v
PGRvbS1pZD4vZGV2aWNlL3ZkaXNwbC88ZGV2LWlkPi8wL3JlcS1yaW5nLXJlZgorICogV2lkdGgg
YW5kIGhlaWdodCBjYW4gYmUgc21hbGxlciwgZXF1YWwgb3IgYmlnZ2VyIHRoYW4gdGhlIGNvbm5l
Y3RvcidzCisgKiByZXNvbHV0aW9uLgorICoKKyAqIEFuIGF0dGVtcHQgdG8gY3JlYXRlIG11bHRp
cGxlIGZyYW1lIGJ1ZmZlcnMgd2l0aCB0aGUgc2FtZSBmYl9jb29raWUgaXMKKyAqIGFuIGVycm9y
LiBmYl9jb29raWUgY2FuIGJlIHJlLXVzZWQgYWZ0ZXIgZGVzdHJveWluZyB0aGUgY29ycmVzcG9u
ZGluZworICogZnJhbWUgYnVmZmVyLgorICoKKyAqIHdpZHRoIC0gdWludDMyX3QsIHdpZHRoIGlu
IHBpeGVscworICogaGVpZ2h0IC0gdWludDMyX3QsIGhlaWdodCBpbiBwaXhlbHMKKyAqIHBpeGVs
X2Zvcm1hdCAtIHVpbnQzMl90LCBwaXhlbCBmb3JtYXQgb2YgdGhlIGZyYW1lYnVmZmVyLCBGT1VS
Q0MgY29kZQorICovCisKK3N0cnVjdCB4ZW5kaXNwbF9mYl9hdHRhY2hfcmVxIHsKKyAgICB1aW50
NjRfdCBkYnVmX2Nvb2tpZTsKKyAgICB1aW50NjRfdCBmYl9jb29raWU7CisgICAgdWludDMyX3Qg
d2lkdGg7CisgICAgdWludDMyX3QgaGVpZ2h0OworICAgIHVpbnQzMl90IHBpeGVsX2Zvcm1hdDsK
K307CisKKy8qCisgKiBSZXF1ZXN0IGZyYW1lYnVmZmVyIGRldGFjaCAtIGRldGFjaCBhIHByZXZp
b3VzbHkKKyAqIGF0dGFjaGVkIGZyYW1lYnVmZmVyIGZyb20gdGhlIGRpc3BsYXkgYnVmZmVyIGlu
IHJlcXVlc3Q6CisgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAg
MiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAg
ICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8ICBfT1BfRkJfREVUQUNIIHwgICByZXNlcnZl
ZCAgICAgfCA0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4CisgKiArLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICBmYl9jb29raWUgbG93IDMyLWJpdCAg
ICAgICAgICAgICAgICAgICAgICAgfCAxMgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAg
ICAgICAgICAgICAgICAgZmJfY29va2llIGhpZ2ggMzItYml0ICAgICAgICAgICAgICAgICAgICAg
IHwgMTYKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIwCisgKiArLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQK
KyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKworICoKKyAqIE11c3QgYmUgc2VudCBvdmVyIGNvbnRyb2wgcmluZyBv
ZiB0aGUgY29ubmVjdG9yIHdoaWNoIGhhcyB0aGUgaW5kZXgKKyAqIHZhbHVlIG9mIDA6CisgKiAg
IC9sb2NhbC9kb21haW4vPGRvbS1pZD4vZGV2aWNlL3ZkaXNwbC88ZGV2LWlkPi8wL3JlcS1yaW5n
LXJlZgorICovCisKK3N0cnVjdCB4ZW5kaXNwbF9mYl9kZXRhY2hfcmVxIHsKKyAgICB1aW50NjRf
dCBmYl9jb29raWU7Cit9OworCisvKgorICogUmVxdWVzdCBjb25maWd1cmF0aW9uIHNldC9yZXNl
dCAtIHJlcXVlc3QgdG8gc2V0IG9yIHJlc2V0CisgKiB0aGUgY29uZmlndXJhdGlvbi9tb2RlIG9m
IHRoZSBkaXNwbGF5OgorICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAg
ICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8
ICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAgfCBfT1BfU0VUX0NPTkZJRyB8ICAgcmVz
ZXJ2ZWQgICAgIHwgNAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAorICogKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgZmJfY29va2llIGxvdyAzMi1i
aXQgICAgICAgICAgICAgICAgICAgICAgIHwgMTIKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAg
ICAgICAgICAgICAgICAgICAgIGZiX2Nvb2tpZSBoaWdoIDMyLWJpdCAgICAgICAgICAgICAgICAg
ICAgICB8IDE2CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMAorICogKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgMjQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8IDI4CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaGVpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzMgorICogKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicHAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgNDAKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
IDQ0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisg
KiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgNjQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIFBhc3MgYWxsIHplcm9z
IHRvIHJlc2V0LCBvdGhlcndpc2UgY29tbWFuZCBpcyB0cmVhdGVkIGFzCisgKiBjb25maWd1cmF0
aW9uIHNldC4KKyAqIEZyYW1lYnVmZmVyJ3MgY29va2llIGRlZmluZXMgd2hpY2ggZnJhbWVidWZm
ZXIvZGJ1ZiBtdXN0IGJlCisgKiBkaXNwbGF5ZWQgd2hpbGUgZW5hYmxpbmcgZGlzcGxheSAoYXBw
bHlpbmcgY29uZmlndXJhdGlvbikuCisgKiB4LCB5LCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBib3Vu
ZCBieSB0aGUgY29ubmVjdG9yJ3MgcmVzb2x1dGlvbiBhbmQgbXVzdCBub3QKKyAqIGV4Y2VlZCBp
dC4KKyAqCisgKiB4IC0gdWludDMyX3QsIHN0YXJ0aW5nIHBvc2l0aW9uIGluIHBpeGVscyBieSBY
IGF4aXMKKyAqIHkgLSB1aW50MzJfdCwgc3RhcnRpbmcgcG9zaXRpb24gaW4gcGl4ZWxzIGJ5IFkg
YXhpcworICogd2lkdGggLSB1aW50MzJfdCwgd2lkdGggaW4gcGl4ZWxzCisgKiBoZWlnaHQgLSB1
aW50MzJfdCwgaGVpZ2h0IGluIHBpeGVscworICogYnBwIC0gdWludDMyX3QsIGJpdHMgcGVyIHBp
eGVsCisgKi8KKworc3RydWN0IHhlbmRpc3BsX3NldF9jb25maWdfcmVxIHsKKyAgICB1aW50NjRf
dCBmYl9jb29raWU7CisgICAgdWludDMyX3QgeDsKKyAgICB1aW50MzJfdCB5OworICAgIHVpbnQz
Ml90IHdpZHRoOworICAgIHVpbnQzMl90IGhlaWdodDsKKyAgICB1aW50MzJfdCBicHA7Cit9Owor
CisvKgorICogUmVxdWVzdCBwYWdlIGZsaXAgLSByZXF1ZXN0IHRvIGZsaXAgYSBwYWdlIGlkZW50
aWZpZWQgYnkgdGhlIGZyYW1lYnVmZmVyCisgKiBjb29raWU6CisgKiAgICAgICAgIDAgICAgICAg
ICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0
CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8
IF9PUF9QR19GTElQICAgIHwgICByZXNlcnZlZCAgICAgfCA0CisgKiArLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAq
IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCA4CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAg
ICAgICBmYl9jb29raWUgbG93IDMyLWJpdCAgICAgICAgICAgICAgICAgICAgICAgfCAxMgorICog
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgZmJfY29va2llIGhpZ2gg
MzItYml0ICAgICAgICAgICAgICAgICAgICAgIHwgMTYKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8IDIwCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgNjQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICovCisKK3N0cnVj
dCB4ZW5kaXNwbF9wYWdlX2ZsaXBfcmVxIHsKKyAgICB1aW50NjRfdCBmYl9jb29raWU7Cit9Owor
CisvKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFJlc3BvbnNlcyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIEFsbCByZXNwb25zZSBwYWNrZXRz
IGhhdmUgdGhlIHNhbWUgbGVuZ3RoICg2NCBvY3RldHMpCisgKgorICogQWxsIHJlc3BvbnNlIHBh
Y2tldHMgaGF2ZSBjb21tb24gaGVhZGVyOgorICogICAgICAgICAwICAgICAgICAgICAgICAgIDEg
ICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAgfCAgICAgICAgICAg
IHJlc2VydmVkICAgICAgICAgICAgIHwgNAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RhdHVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgOAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIKKyAqICstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
KworICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA2NAor
ICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rCisgKgorICogaWQgLSB1aW50MTZfdCwgcHJpdmF0ZSBndWVzdCB2YWx1
ZSwgZWNob2VkIGZyb20gcmVxdWVzdAorICogc3RhdHVzIC0gaW50MzJfdCwgcmVzcG9uc2Ugc3Rh
dHVzLCB6ZXJvIG9uIHN1Y2Nlc3MgYW5kIC1YRU5fRVhYIG9uIGZhaWx1cmUKKyAqCisgKi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEV2ZW50cyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisgKgorICogRXZlbnRzIGFyZSBzZW50IHZpYSBhIHNoYXJlZCBwYWdl
IGFsbG9jYXRlZCBieSB0aGUgZnJvbnQgYW5kIHByb3BhZ2F0ZWQgYnkKKyAqICAgZXZ0LWV2ZW50
LWNoYW5uZWwvZXZ0LXJpbmctcmVmIFhlblN0b3JlIGVudHJpZXMKKyAqIEFsbCBldmVudCBwYWNr
ZXRzIGhhdmUgdGhlIHNhbWUgbGVuZ3RoICg2NCBvY3RldHMpCisgKiBBbGwgZXZlbnQgcGFja2V0
cyBoYXZlIGNvbW1vbiBoZWFkZXI6CisgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAg
ICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSsKKyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8ICAgICAgdHlwZSAgICAg
IHwgICByZXNlcnZlZCAgICAgfCA0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4
CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBpZCAtIHVpbnQxNl90LCBldmVudCBpZCwgbWF5IGJl
IHVzZWQgYnkgZnJvbnQKKyAqIHR5cGUgLSB1aW50OF90LCB0eXBlIG9mIHRoZSBldmVudAorICoK
KyAqCisgKiBQYWdlIGZsaXAgY29tcGxldGUgZXZlbnQgLSBldmVudCBmcm9tIGJhY2sgdG8gZnJv
bnQgb24gcGFnZSBmbGlwIGNvbXBsZXRlZDoKKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAx
ICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAqICstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKworICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwgICBfRVZUX1BH
X0ZMSVAgfCAgIHJlc2VydmVkICAgICB8IDQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8IDgKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgIGZiX2Nv
b2tpZSBsb3cgMzItYml0ICAgICAgICAgICAgICAgICAgICAgICB8IDEyCisgKiArLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICBmYl9jb29raWUgaGlnaCAzMi1iaXQgICAg
ICAgICAgICAgICAgICAgICAgfCAxNgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
MjAKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKworICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAq
IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCA2NAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKi8KKworc3RydWN0IHhlbmRpc3Bs
X3BnX2ZsaXBfZXZ0IHsKKyAgICB1aW50NjRfdCBmYl9jb29raWU7Cit9OworCitzdHJ1Y3QgeGVu
ZGlzcGxfcmVxIHsKKyAgICB1aW50MTZfdCBpZDsKKyAgICB1aW50OF90IG9wZXJhdGlvbjsKKyAg
ICB1aW50OF90IHJlc2VydmVkWzVdOworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHhlbmRp
c3BsX2RidWZfY3JlYXRlX3JlcSBkYnVmX2NyZWF0ZTsKKyAgICAgICAgc3RydWN0IHhlbmRpc3Bs
X2RidWZfZGVzdHJveV9yZXEgZGJ1Zl9kZXN0cm95OworICAgICAgICBzdHJ1Y3QgeGVuZGlzcGxf
ZmJfYXR0YWNoX3JlcSBmYl9hdHRhY2g7CisgICAgICAgIHN0cnVjdCB4ZW5kaXNwbF9mYl9kZXRh
Y2hfcmVxIGZiX2RldGFjaDsKKyAgICAgICAgc3RydWN0IHhlbmRpc3BsX3NldF9jb25maWdfcmVx
IHNldF9jb25maWc7CisgICAgICAgIHN0cnVjdCB4ZW5kaXNwbF9wYWdlX2ZsaXBfcmVxIHBnX2Zs
aXA7CisgICAgICAgIHVpbnQ4X3QgcmVzZXJ2ZWRbNTZdOworICAgIH0gb3A7Cit9OworCitzdHJ1
Y3QgeGVuZGlzcGxfcmVzcCB7CisgICAgdWludDE2X3QgaWQ7CisgICAgdWludDhfdCBvcGVyYXRp
b247CisgICAgdWludDhfdCByZXNlcnZlZDsKKyAgICBpbnQzMl90IHN0YXR1czsKKyAgICB1aW50
OF90IHJlc2VydmVkMVs1Nl07Cit9OworCitzdHJ1Y3QgeGVuZGlzcGxfZXZ0IHsKKyAgICB1aW50
MTZfdCBpZDsKKyAgICB1aW50OF90IHR5cGU7CisgICAgdWludDhfdCByZXNlcnZlZFs1XTsKKyAg
ICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCB4ZW5kaXNwbF9wZ19mbGlwX2V2dCBwZ19mbGlwOwor
ICAgICAgICB1aW50OF90IHJlc2VydmVkWzU2XTsKKyAgICB9IG9wOworfTsKKworREVGSU5FX1JJ
TkdfVFlQRVMoeGVuX2Rpc3BsaWYsIHN0cnVjdCB4ZW5kaXNwbF9yZXEsIHN0cnVjdCB4ZW5kaXNw
bF9yZXNwKTsKKworLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAg
ICAgICAgICAgQmFjayB0byBmcm9udCBldmVudHMgZGVsaXZlcnkKKyAqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioKKyAqIEluIG9yZGVyIHRvIGRlbGl2ZXIgYXN5bmNocm9ub3VzIGV2ZW50cyBmcm9tIGJh
Y2sgdG8gZnJvbnQgYSBzaGFyZWQgcGFnZSBpcworICogYWxsb2NhdGVkIGJ5IGZyb250IGFuZCBp
dHMgZ3JhbnRlZCByZWZlcmVuY2UgcHJvcGFnYXRlZCB0byBiYWNrIHZpYQorICogWGVuU3RvcmUg
ZW50cmllcyAoZXZ0LXJpbmctcmVmL2V2dC1ldmVudC1jaGFubmVsKS4KKyAqIFRoaXMgcGFnZSBo
YXMgYSBjb21tb24gaGVhZGVyIHVzZWQgYnkgYm90aCBmcm9udCBhbmQgYmFjayB0byBzeW5jaHJv
bml6ZQorICogYWNjZXNzIGFuZCBjb250cm9sIGV2ZW50J3MgcmluZyBidWZmZXIsIHdoaWxlIGJh
Y2sgYmVpbmcgYSBwcm9kdWNlciBvZiB0aGUKKyAqIGV2ZW50cyBhbmQgZnJvbnQgYmVpbmcgYSBj
b25zdW1lci4gVGhlIHJlc3Qgb2YgdGhlIHBhZ2UgYWZ0ZXIgdGhlIGhlYWRlcgorICogaXMgdXNl
ZCBmb3IgZXZlbnQgcGFja2V0cy4KKyAqCisgKiBVcG9uIHJlY2VwdGlvbiBvZiBhbiBldmVudChz
KSBmcm9udCBtYXkgY29uZmlybSBpdHMgcmVjZXB0aW9uCisgKiBmb3IgZWl0aGVyIGVhY2ggZXZl
bnQsIGdyb3VwIG9mIGV2ZW50cyBvciBub25lLgorICovCisKK3N0cnVjdCB4ZW5kaXNwbF9ldmVu
dF9wYWdlIHsKKyAgICB1aW50MzJfdCBpbl9jb25zOworICAgIHVpbnQzMl90IGluX3Byb2Q7Cisg
ICAgdWludDhfdCByZXNlcnZlZFs1Nl07Cit9OworCisjZGVmaW5lIFhFTkRJU1BMX0VWRU5UX1BB
R0VfU0laRSA0MDk2CisjZGVmaW5lIFhFTkRJU1BMX0lOX1JJTkdfT0ZGUyAoc2l6ZW9mKHN0cnVj
dCB4ZW5kaXNwbF9ldmVudF9wYWdlKSkKKyNkZWZpbmUgWEVORElTUExfSU5fUklOR19TSVpFIChY
RU5ESVNQTF9FVkVOVF9QQUdFX1NJWkUgLSBYRU5ESVNQTF9JTl9SSU5HX09GRlMpCisjZGVmaW5l
IFhFTkRJU1BMX0lOX1JJTkdfTEVOIChYRU5ESVNQTF9JTl9SSU5HX1NJWkUgLyBzaXplb2Yoc3Ry
dWN0IHhlbmRpc3BsX2V2dCkpCisjZGVmaW5lIFhFTkRJU1BMX0lOX1JJTkcocGFnZSkgXAorCSgo
c3RydWN0IHhlbmRpc3BsX2V2dCAqKSgoY2hhciAqKShwYWdlKSArIFhFTkRJU1BMX0lOX1JJTkdf
T0ZGUykpCisjZGVmaW5lIFhFTkRJU1BMX0lOX1JJTkdfUkVGKHBhZ2UsIGlkeCkgXAorCShYRU5E
SVNQTF9JTl9SSU5HKChwYWdlKSlbKGlkeCkgJSBYRU5ESVNQTF9JTl9SSU5HX0xFTl0pCisKKyNl
bmRpZiAvKiBfX1hFTl9QVUJMSUNfSU9fRElTUExJRl9IX18gKi8KKworLyoKKyAqIExvY2FsIHZh
cmlhYmxlczoKKyAqIG1vZGU6IEMKKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKKyAqIGMtYmFzaWMt
b2Zmc2V0OiA0CisgKiB0YWItd2lkdGg6IDQKKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorICog
RW5kOgorICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9pby9rYmRpZi5oIGIvaW5jbHVkZS94
ZW4vaW8va2JkaWYuaAppbmRleCAyZDJhZWJkLi4zY2U1NGU5IDEwMDY0NAotLS0gYS9pbmNsdWRl
L3hlbi9pby9rYmRpZi5oCisrKyBiL2luY2x1ZGUveGVuL2lvL2tiZGlmLmgKQEAgLTI2LDQ2ICsy
Niw0NDkgQEAKICNpZm5kZWYgX19YRU5fUFVCTElDX0lPX0tCRElGX0hfXwogI2RlZmluZSBfX1hF
Tl9QVUJMSUNfSU9fS0JESUZfSF9fCiAKLS8qIEluIGV2ZW50cyAoYmFja2VuZCAtPiBmcm9udGVu
ZCkgKi8KKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAg
RmVhdHVyZSBhbmQgUGFyYW1ldGVyIE5lZ290aWF0aW9uCisgKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyAqCisgKiBUaGUgdHdvIGhhbHZlcyBvZiBhIHBhcmEtdmlydHVhbCBkcml2ZXIgdXRpbGl6ZSBu
b2RlcyB3aXRoaW4KKyAqIFhlblN0b3JlIHRvIGNvbW11bmljYXRlIGNhcGFiaWxpdGllcyBhbmQg
dG8gbmVnb3RpYXRlIG9wZXJhdGluZyBwYXJhbWV0ZXJzLgorICogVGhpcyBzZWN0aW9uIGVudW1l
cmF0ZXMgdGhlc2Ugbm9kZXMgd2hpY2ggcmVzaWRlIGluIHRoZSByZXNwZWN0aXZlIGZyb250IGFu
ZAorICogYmFja2VuZCBwb3J0aW9ucyBvZiBYZW5TdG9yZSwgZm9sbG93aW5nIFhlbkJ1cyBjb252
ZW50aW9uLgorICoKKyAqIEFsbCBkYXRhIGluIFhlblN0b3JlIGlzIHN0b3JlZCBhcyBzdHJpbmdz
LiAgTm9kZXMgc3BlY2lmeWluZyBudW1lcmljCisgKiB2YWx1ZXMgYXJlIGVuY29kZWQgaW4gZGVj
aW1hbC4gSW50ZWdlciB2YWx1ZSByYW5nZXMgbGlzdGVkIGJlbG93IGFyZQorICogZXhwcmVzc2Vk
IGFzIGZpeGVkIHNpemVkIGludGVnZXIgdHlwZXMgY2FwYWJsZSBvZiBzdG9yaW5nIHRoZSBjb252
ZXJzaW9uCisgKiBvZiBhIHByb3Blcmx5IGZvcm1hdGVkIG5vZGUgc3RyaW5nLCB3aXRob3V0IGxv
c3Mgb2YgaW5mb3JtYXRpb24uCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBCYWNrZW5kIFhlbkJ1cyBOb2RlcworICoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZlYXR1cmVzIHN1cHBv
cnRlZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogQ2FwYWJsZSBiYWNrZW5k
IGFkdmVydGlzZXMgc3VwcG9ydGVkIGZlYXR1cmVzIGJ5IHB1Ymxpc2hpbmcKKyAqIGNvcnJlc3Bv
bmRpbmcgZW50cmllcyBpbiBYZW5TdG9yZSBhbmQgcHV0cyAxIGFzIHRoZSB2YWx1ZSBvZiB0aGUg
ZW50cnkuCisgKiBJZiBhIGZlYXR1cmUgaXMgbm90IHN1cHBvcnRlZCB0aGVuIDAgbXVzdCBiZSBz
ZXQgb3IgZmVhdHVyZSBlbnRyeSBvbWl0dGVkLgorICoKKyAqIGZlYXR1cmUtYWJzLXBvaW50ZXIK
KyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50PgorICoKKyAqICAgICAgQmFja2VuZHMsIHdo
aWNoIHN1cHBvcnQgcmVwb3J0aW5nIG9mIGFic29sdXRlIGNvb3JkaW5hdGVzIGZvciBwb2ludGVy
CisgKiAgICAgIGRldmljZSBzaG91bGQgc2V0IHRoaXMgdG8gMS4KKyAqCisgKiBmZWF0dXJlLW11
bHRpLXRvdWNoCisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludD4KKyAqCisgKiAgICAgIEJh
Y2tlbmRzLCB3aGljaCBzdXBwb3J0IHJlcG9ydGluZyBvZiBtdWx0aS10b3VjaCBldmVudHMKKyAq
ICAgICAgc2hvdWxkIHNldCB0aGlzIHRvIDEuCisgKgorICogZmVhdHVyZS1yYXctcG9pbnRlcgor
ICogICAgICBWYWx1ZXM6ICAgICAgICA8dWludD4KKyAqCisgKiAgICAgIEJhY2tlbmRzLCB3aGlj
aCBzdXBwb3J0IHJlcG9ydGluZyByYXcgKHVuc2NhbGVkKSBhYnNvbHV0ZSBjb29yZGluYXRlcwor
ICogICAgICBmb3IgcG9pbnRlciBkZXZpY2VzIHNob3VsZCBzZXQgdGhpcyB0byAxLiBSYXcgKHVu
c2NhbGVkKSB2YWx1ZXMgaGF2ZQorICogICAgICBhIHJhbmdlIG9mIFswLCAweDdmZmZdLgorICoK
KyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQb2ludGVyIERldmljZSBQYXJhbWV0ZXJzIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHdpZHRoCisgKiAgICAgIFZhbHVlczogICAg
ICAgICA8dWludD4KKyAqCisgKiAgICAgIE1heGltdW0gWCBjb29yZGluYXRlICh3aWR0aCkgdG8g
YmUgdXNlZCBieSB0aGUgZnJvbnRlbmQKKyAqICAgICAgd2hpbGUgcmVwb3J0aW5nIGlucHV0IGV2
ZW50cywgcGl4ZWxzLCBbMDsgVUlOVDMyX01BWF0uCisgKgorICogaGVpZ2h0CisgKiAgICAgIFZh
bHVlczogICAgICAgICA8dWludD4KKyAqCisgKiAgICAgIE1heGltdW0gWSBjb29yZGluYXRlICho
ZWlnaHQpIHRvIGJlIHVzZWQgYnkgdGhlIGZyb250ZW5kCisgKiAgICAgIHdoaWxlIHJlcG9ydGlu
ZyBpbnB1dCBldmVudHMsIHBpeGVscywgWzA7IFVJTlQzMl9NQVhdLgorICoKKyAqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmQgWGVuQnVz
IE5vZGVzCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSBGZWF0dXJlIHJlcXVlc3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KyAqCisgKiBDYXBhYmxlIGZyb250ZW5kIHJlcXVlc3RzIGZlYXR1cmVzIGZyb20gYmFja2VuZCB2
aWEgc2V0dGluZyBjb3JyZXNwb25kaW5nCisgKiBlbnRyaWVzIHRvIDEgaW4gWGVuU3RvcmUuIFJl
cXVlc3RzIGZvciBmZWF0dXJlcyBub3QgYWR2ZXJ0aXNlZCBhcyBzdXBwb3J0ZWQKKyAqIGJ5IHRo
ZSBiYWNrZW5kIGhhdmUgbm8gZWZmZWN0LgorICoKKyAqIHJlcXVlc3QtYWJzLXBvaW50ZXIKKyAq
ICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50PgorICoKKyAqICAgICAgUmVxdWVzdCBiYWNrZW5k
IHRvIHJlcG9ydCBhYnNvbHV0ZSBwb2ludGVyIGNvb3JkaW5hdGVzCisgKiAgICAgIChYRU5LQkRf
VFlQRV9QT1MpIGluc3RlYWQgb2YgcmVsYXRpdmUgb25lcyAoWEVOS0JEX1RZUEVfTU9USU9OKS4K
KyAqCisgKiByZXF1ZXN0LW11bHRpLXRvdWNoCisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWlu
dD4KKyAqCisgKiAgICAgIFJlcXVlc3QgYmFja2VuZCB0byByZXBvcnQgbXVsdGktdG91Y2ggZXZl
bnRzLgorICoKKyAqIHJlcXVlc3QtcmF3LXBvaW50ZXIKKyAqICAgICAgVmFsdWVzOiAgICAgICAg
IDx1aW50PgorICoKKyAqICAgICAgUmVxdWVzdCBiYWNrZW5kIHRvIHJlcG9ydCByYXcgdW5zY2Fs
ZWQgYWJzb2x1dGUgcG9pbnRlciBjb29yZGluYXRlcy4KKyAqICAgICAgVGhpcyBvcHRpb24gaXMg
b25seSB2YWxpZCBpZiByZXF1ZXN0LWFicy1wb2ludGVyIGlzIGFsc28gc2V0LgorICogICAgICBS
YXcgdW5zY2FsZWQgY29vcmRpbmF0ZXMgaGF2ZSB0aGUgcmFuZ2UgWzAsIDB4N2ZmZl0KKyAqCisg
Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFJlcXVlc3QgVHJhbnNwb3J0IFBhcmFtZXRlcnMgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBldmVudC1jaGFubmVsCisgKiAgICAgIFZhbHVl
czogICAgICAgICA8dWludD4KKyAqCisgKiAgICAgIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBYZW4g
ZXZlbnQgY2hhbm5lbCB1c2VkIHRvIHNpZ25hbCBhY3Rpdml0eQorICogICAgICBpbiB0aGUgcmlu
ZyBidWZmZXIuCisgKgorICogcGFnZS1ncmVmCisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWlu
dD4KKyAqCisgKiAgICAgIFRoZSBYZW4gZ3JhbnQgcmVmZXJlbmNlIGdyYW50aW5nIHBlcm1pc3Np
b24gZm9yIHRoZSBiYWNrZW5kIHRvIG1hcAorICogICAgICBhIHNvbGUgcGFnZSBpbiBhIHNpbmds
ZSBwYWdlIHNpemVkIGV2ZW50IHJpbmcgYnVmZmVyLgorICoKKyAqIHBhZ2UtcmVmCisgKiAgICAg
IFZhbHVlczogICAgICAgICA8dWludD4KKyAqCisgKiAgICAgIE9CU09MRVRFLCBub3QgcmVjb21t
ZW5kZWQgZm9yIHVzZS4KKyAqICAgICAgUEZOIG9mIHRoZSBzaGFyZWQgcGFnZS4KKyAqCisgKi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIE11bHRpLXRvdWNoIERldmljZSBQYXJhbWV0ZXJzIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogbXVsdGktdG91Y2gtbnVtLWNvbnRhY3RzCisgKiAg
ICAgIFZhbHVlczogICAgICAgICA8dWludD4KKyAqCisgKiAgICAgIE51bWJlciBvZiBzaW11bHRh
bmVvdXMgdG91Y2hlcyByZXBvcnRlZC4KKyAqCisgKiBtdWx0aS10b3VjaC13aWR0aAorICogICAg
ICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ+CisgKgorICogICAgICBXaWR0aCBvZiB0aGUgdG91Y2gg
YXJlYSB0byBiZSB1c2VkIGJ5IHRoZSBmcm9udGVuZAorICogICAgICB3aGlsZSByZXBvcnRpbmcg
aW5wdXQgZXZlbnRzLCBwaXhlbHMsIFswOyBVSU5UMzJfTUFYXS4KKyAqCisgKiBtdWx0aS10b3Vj
aC1oZWlnaHQKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50PgorICoKKyAqICAgICAgSGVp
Z2h0IG9mIHRoZSB0b3VjaCBhcmVhIHRvIGJlIHVzZWQgYnkgdGhlIGZyb250ZW5kCisgKiAgICAg
IHdoaWxlIHJlcG9ydGluZyBpbnB1dCBldmVudHMsIHBpeGVscywgWzA7IFVJTlQzMl9NQVhdLgor
ICovCiAKIC8qCi0gKiBGcm9udGVuZHMgc2hvdWxkIGlnbm9yZSB1bmtub3duIGluIGV2ZW50cy4K
KyAqIEVWRU5UIENPREVTLgorICovCisKKyNkZWZpbmUgWEVOS0JEX1RZUEVfTU9USU9OICAgICAg
ICAgICAgIDEKKyNkZWZpbmUgWEVOS0JEX1RZUEVfUkVTRVJWRUQgICAgICAgICAgIDIKKyNkZWZp
bmUgWEVOS0JEX1RZUEVfS0VZICAgICAgICAgICAgICAgIDMKKyNkZWZpbmUgWEVOS0JEX1RZUEVf
UE9TICAgICAgICAgICAgICAgIDQKKyNkZWZpbmUgWEVOS0JEX1RZUEVfTVRPVUNIICAgICAgICAg
ICAgIDUKKworLyogTXVsdGktdG91Y2ggZXZlbnQgc3ViLWNvZGVzICovCisKKyNkZWZpbmUgWEVO
S0JEX01UX0VWX0RPV04gICAgICAgICAgICAgIDAKKyNkZWZpbmUgWEVOS0JEX01UX0VWX1VQICAg
ICAgICAgICAgICAgIDEKKyNkZWZpbmUgWEVOS0JEX01UX0VWX01PVElPTiAgICAgICAgICAgIDIK
KyNkZWZpbmUgWEVOS0JEX01UX0VWX1NZTiAgICAgICAgICAgICAgIDMKKyNkZWZpbmUgWEVOS0JE
X01UX0VWX1NIQVBFICAgICAgICAgICAgIDQKKyNkZWZpbmUgWEVOS0JEX01UX0VWX09SSUVOVCAg
ICAgICAgICAgIDUKKworLyoKKyAqIENPTlNUQU5UUywgWEVOU1RPUkUgRklFTEQgQU5EIFBBVEgg
TkFNRSBTVFJJTkdTLCBIRUxQRVJTLgogICovCiAKLS8qIFBvaW50ZXIgbW92ZW1lbnQgZXZlbnQg
Ki8KLSNkZWZpbmUgWEVOS0JEX1RZUEVfTU9USU9OICAxCi0vKiBFdmVudCB0eXBlIDIgY3VycmVu
dGx5IG5vdCB1c2VkICovCi0vKiBLZXkgZXZlbnQgKGluY2x1ZGVzIHBvaW50ZXIgYnV0dG9ucykg
Ki8KLSNkZWZpbmUgWEVOS0JEX1RZUEVfS0VZICAgICAzCisjZGVmaW5lIFhFTktCRF9EUklWRVJf
TkFNRSAgICAgICAgICAgICAidmtiZCIKKworI2RlZmluZSBYRU5LQkRfRklFTERfRkVBVF9BQlNf
UE9JTlRFUiAgImZlYXR1cmUtYWJzLXBvaW50ZXIiCisjZGVmaW5lIFhFTktCRF9GSUVMRF9GRUFU
X01UT1VDSCAgICAgICAiZmVhdHVyZS1tdWx0aS10b3VjaCIKKyNkZWZpbmUgWEVOS0JEX0ZJRUxE
X1JFUV9BQlNfUE9JTlRFUiAgICJyZXF1ZXN0LWFicy1wb2ludGVyIgorI2RlZmluZSBYRU5LQkRf
RklFTERfUkVRX01UT1VDSCAgICAgICAgInJlcXVlc3QtbXVsdGktdG91Y2giCisjZGVmaW5lIFhF
TktCRF9GSUVMRF9SSU5HX0dSRUYgICAgICAgICAicGFnZS1ncmVmIgorI2RlZmluZSBYRU5LQkRf
RklFTERfRVZUX0NIQU5ORUwgICAgICAgImV2ZW50LWNoYW5uZWwiCisjZGVmaW5lIFhFTktCRF9G
SUVMRF9XSURUSCAgICAgICAgICAgICAid2lkdGgiCisjZGVmaW5lIFhFTktCRF9GSUVMRF9IRUlH
SFQgICAgICAgICAgICAiaGVpZ2h0IgorI2RlZmluZSBYRU5LQkRfRklFTERfTVRfV0lEVEggICAg
ICAgICAgIm11bHRpLXRvdWNoLXdpZHRoIgorI2RlZmluZSBYRU5LQkRfRklFTERfTVRfSEVJR0hU
ICAgICAgICAgIm11bHRpLXRvdWNoLWhlaWdodCIKKyNkZWZpbmUgWEVOS0JEX0ZJRUxEX01UX05V
TV9DT05UQUNUUyAgICJtdWx0aS10b3VjaC1udW0tY29udGFjdHMiCisKKy8qIE9CU09MRVRFLCBu
b3QgcmVjb21tZW5kZWQgZm9yIHVzZSAqLworI2RlZmluZSBYRU5LQkRfRklFTERfUklOR19SRUYg
ICAgICAgICAgInBhZ2UtcmVmIgorCiAvKgotICogUG9pbnRlciBwb3NpdGlvbiBldmVudAotICog
Q2FwYWJsZSBiYWNrZW5kIHNldHMgZmVhdHVyZS1hYnMtcG9pbnRlciBpbiB4ZW5zdG9yZS4KLSAq
IEZyb250ZW5kIHJlcXVlc3RzIG90IGluc3RlYWQgb2YgWEVOS0JEX1RZUEVfTU9USU9OIGJ5IHNl
dHRpbmcKLSAqIHJlcXVlc3QtYWJzLXVwZGF0ZSBpbiB4ZW5zdG9yZS4KKyAqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgorICogRGVzY3JpcHRpb24gb2YgdGhlIHByb3RvY29sIGJldHdlZW4gZnJvbnRlbmQg
YW5kIGJhY2tlbmQgZHJpdmVyLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogVGhlIHR3
byBoYWx2ZXMgb2YgYSBQYXJhLXZpcnR1YWwgZHJpdmVyIGNvbW11bmljYXRlIHdpdGgKKyAqIGVh
Y2ggb3RoZXIgdXNpbmcgYSBzaGFyZWQgcGFnZSBhbmQgYW4gZXZlbnQgY2hhbm5lbC4KKyAqIFNo
YXJlZCBwYWdlIGNvbnRhaW5zIGEgcmluZyB3aXRoIGV2ZW50IHN0cnVjdHVyZXMuCisgKgorICog
QWxsIHJlc2VydmVkIGZpZWxkcyBpbiB0aGUgc3RydWN0dXJlcyBiZWxvdyBtdXN0IGJlIDAuCisg
KgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIEJh
Y2tlbmQgdG8gZnJvbnRlbmQgZXZlbnRzCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBG
cm9udGVuZHMgc2hvdWxkIGlnbm9yZSB1bmtub3duIGluIGV2ZW50cy4KKyAqIEFsbCBldmVudCBw
YWNrZXRzIGhhdmUgdGhlIHNhbWUgbGVuZ3RoICg0MCBvY3RldHMpCisgKiBBbGwgZXZlbnQgcGFj
a2V0cyBoYXZlIGNvbW1vbiBoZWFkZXI6CisgKgorICogICAgICAgICAgMCAgICAgICAgIG9jdGV0
CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgIHR5cGUgICAgICB8CisgKiArLS0t
LS0tLS0tLS0tLS0tLS0rCisgKiB0eXBlIC0gdWludDhfdCwgZXZlbnQgY29kZSwgWEVOS0JEX1RZ
UEVfPz8/CisgKgorICoKKyAqIFBvaW50ZXIgcmVsYXRpdmUgbW92ZW1lbnQgZXZlbnQKKyAqICAg
ICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAg
MyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgX1RZUEVfTU9USU9OICB8ICAg
ICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICB8IDQKKyAqICst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxfeCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZWxfeSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IDEyCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVsX3ogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNgorICogKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgMjAKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC98CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
c2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0MAorICogKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
CisgKgorICogcmVsX3ggLSBpbnQzMl90LCByZWxhdGl2ZSBYIG1vdGlvbgorICogcmVsX3kgLSBp
bnQzMl90LCByZWxhdGl2ZSBZIG1vdGlvbgorICogcmVsX3ogLSBpbnQzMl90LCByZWxhdGl2ZSBa
IG1vdGlvbiAod2hlZWwpCiAgKi8KLSNkZWZpbmUgWEVOS0JEX1RZUEVfUE9TICAgICA0CiAKIHN0
cnVjdCB4ZW5rYmRfbW90aW9uCiB7Ci0gICAgdWludDhfdCB0eXBlOyAgICAgICAgLyogWEVOS0JE
X1RZUEVfTU9USU9OICovCi0gICAgaW50MzJfdCByZWxfeDsgICAgICAgLyogcmVsYXRpdmUgWCBt
b3Rpb24gKi8KLSAgICBpbnQzMl90IHJlbF95OyAgICAgICAvKiByZWxhdGl2ZSBZIG1vdGlvbiAq
LwotICAgIGludDMyX3QgcmVsX3o7ICAgICAgIC8qIHJlbGF0aXZlIFogbW90aW9uICh3aGVlbCkg
Ki8KKyAgICB1aW50OF90IHR5cGU7CisgICAgaW50MzJfdCByZWxfeDsKKyAgICBpbnQzMl90IHJl
bF95OworICAgIGludDMyX3QgcmVsX3o7CiB9OwogCisvKgorICogS2V5IGV2ZW50IChpbmNsdWRl
cyBwb2ludGVyIGJ1dHRvbnMpCisgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAg
ICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsK
KyAqIHwgIF9UWVBFX0tFWSAgICAgfCAgICAgcHJlc3NlZCAgICB8ICAgICAgICAgICAgcmVzZXJ2
ZWQgICAgICAgICAgICAgfCA0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBrZXljb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cisg
KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMgorICogKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQwCisgKiArLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSsKKyAqCisgKiBwcmVzc2VkIC0gdWludDhfdCwgMSBpZiBwcmVzc2VkOyAwIG90aGVy
d2lzZQorICoga2V5Y29kZSAtIHVpbnQzMl90LCBLRVlfKiBmcm9tIGxpbnV4L2lucHV0LmgKKyAq
LworCiBzdHJ1Y3QgeGVua2JkX2tleQogewotICAgIHVpbnQ4X3QgdHlwZTsgICAgICAgICAvKiBY
RU5LQkRfVFlQRV9LRVkgKi8KLSAgICB1aW50OF90IHByZXNzZWQ7ICAgICAgLyogMSBpZiBwcmVz
c2VkOyAwIG90aGVyd2lzZSAqLwotICAgIHVpbnQzMl90IGtleWNvZGU7ICAgICAvKiBLRVlfKiBm
cm9tIGxpbnV4L2lucHV0LmggKi8KKyAgICB1aW50OF90IHR5cGU7CisgICAgdWludDhfdCBwcmVz
c2VkOworICAgIHVpbnQzMl90IGtleWNvZGU7CiB9OwogCisvKgorICogUG9pbnRlciBhYnNvbHV0
ZSBwb3NpdGlvbiBldmVudAorICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAg
ICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisg
KiB8ICBfVFlQRV9QT1MgICAgIHwgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAg
ICAgICAgICAgICAgIHwgNAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFic194ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAorICog
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFic195ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxfeiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8IDE2CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMAorICogKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8IDQwCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBhYnNfeCAtIGludDMyX3QsIGFic29sdXRl
IFggcG9zaXRpb24gKGluIEZCIHBpeGVscykKKyAqIGFic195IC0gaW50MzJfdCwgYWJzb2x1dGUg
WSBwb3NpdGlvbiAoaW4gRkIgcGl4ZWxzKQorICogcmVsX3ogLSBpbnQzMl90LCByZWxhdGl2ZSBa
IG1vdGlvbiAod2hlZWwpCisgKi8KKwogc3RydWN0IHhlbmtiZF9wb3NpdGlvbgogewotICAgIHVp
bnQ4X3QgdHlwZTsgICAgICAgIC8qIFhFTktCRF9UWVBFX1BPUyAqLwotICAgIGludDMyX3QgYWJz
X3g7ICAgICAgIC8qIGFic29sdXRlIFggcG9zaXRpb24gKGluIEZCIHBpeGVscykgKi8KLSAgICBp
bnQzMl90IGFic195OyAgICAgICAvKiBhYnNvbHV0ZSBZIHBvc2l0aW9uIChpbiBGQiBwaXhlbHMp
ICovCi0gICAgaW50MzJfdCByZWxfejsgICAgICAgLyogcmVsYXRpdmUgWiBtb3Rpb24gKHdoZWVs
KSAqLworICAgIHVpbnQ4X3QgdHlwZTsKKyAgICBpbnQzMl90IGFic194OworICAgIGludDMyX3Qg
YWJzX3k7CisgICAgaW50MzJfdCByZWxfejsKK307CisKKy8qCisgKiBNdWx0aS10b3VjaCBldmVu
dCBhbmQgaXRzIHN1Yi10eXBlcworICoKKyAqIEFsbCBtdWx0aS10b3VjaCBldmVudCBwYWNrZXRz
IGhhdmUgY29tbW9uIGhlYWRlcjoKKyAqCisgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAg
ICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSsKKyAqIHwgIF9UWVBFX01UT1VDSCAgfCAgIGV2ZW50X3R5cGUgICB8ICAgY29udGFjdF9p
ZCAgIHwgICAgcmVzZXJ2ZWQgICAgfCA0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCA4CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBldmVudF90eXBlIC0gdW50OF90LCBtdWx0aS10
b3VjaCBldmVudCBzdWItdHlwZSwgWEVOS0JEX01UX0VWXz8/PworICogY29udGFjdF9pZCAtIHVu
dDhfdCwgSUQgb2YgdGhlIGNvbnRhY3QKKyAqCisgKiBUb3VjaCBpbnRlcmFjdGlvbnMgY2FuIGNv
bnNpc3Qgb2Ygb25lIG9yIG1vcmUgY29udGFjdHMuCisgKiBGb3IgZWFjaCBjb250YWN0LCBhIHNl
cmllcyBvZiBldmVudHMgaXMgZ2VuZXJhdGVkLCBzdGFydGluZworICogd2l0aCBhIGRvd24gZXZl
bnQsIGZvbGxvd2VkIGJ5IHplcm8gb3IgbW9yZSBtb3Rpb24gZXZlbnRzLAorICogYW5kIGVuZGlu
ZyB3aXRoIGFuIHVwIGV2ZW50LiBFdmVudHMgcmVsYXRpbmcgdG8gdGhlIHNhbWUKKyAqIGNvbnRh
Y3QgcG9pbnQgY2FuIGJlIGlkZW50aWZpZWQgYnkgdGhlIElEIG9mIHRoZSBzZXF1ZW5jZTogY29u
dGFjdCBJRC4KKyAqIENvbnRhY3QgSUQgbWF5IGJlIHJldXNlZCBhZnRlciBYRU5LQkRfTVRfRVZf
VVAgZXZlbnQgYW5kCisgKiBpcyBpbiB0aGUgWzA7IFhFTktCRF9GSUVMRF9OVU1fQ09OVEFDVFMg
LSAxXSByYW5nZS4KKyAqCisgKiBGb3IgZnVydGhlciBpbmZvcm1hdGlvbiBwbGVhc2UgcmVmZXIg
dG8gZG9jdW1lbnRhdGlvbiBvbiBXYXlsYW5kIFsxXSwKKyAqIExpbnV4IFsyXSBhbmQgV2luZG93
cyBbM10gbXVsdGktdG91Y2ggc3VwcG9ydC4KKyAqCisgKiBbMV0gaHR0cHM6Ly9jZ2l0LmZyZWVk
ZXNrdG9wLm9yZy93YXlsYW5kL3dheWxhbmQvdHJlZS9wcm90b2NvbC93YXlsYW5kLnhtbAorICog
WzJdIGh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL0RvY3VtZW50YXRpb24vaW5wdXQvbXVsdGkt
dG91Y2gtcHJvdG9jb2wudHh0CisgKiBbM10gaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4t
dXMvbGlicmFyeS9qajE1MTU2NCh2PXZzLjg1KS5hc3B4CisgKgorICoKKyAqIE11bHRpLXRvdWNo
IGRvd24gZXZlbnQgLSBzZW50IHdoZW4gYSBuZXcgdG91Y2ggaXMgbWFkZTogdG91Y2ggaXMgYXNz
aWduZWQKKyAqIGEgdW5pcXVlIGNvbnRhY3QgSUQsIHNlbnQgd2l0aCB0aGlzIGFuZCBjb25zZXF1
ZW50IGV2ZW50cyByZWxhdGVkCisgKiB0byB0aGlzIHRvdWNoLgorICogICAgICAgICAwICAgICAg
ICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3Rl
dAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICBfVFlQRV9NVE9VQ0ggIHwgICBfTVRfRVZfRE9XTiAg
fCAgIGNvbnRhY3RfaWQgICB8ICAgIHJlc2VydmVkICAgIHwgNAorICogKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisg
KiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgOAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFic194ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIKKyAq
ICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnNfeSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE2CisgKiArLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAyMAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8IDQwCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBhYnNf
eCAtIGludDMyX3QsIGFic29sdXRlIFggcG9zaXRpb24sIGluIHBpeGVscworICogYWJzX3kgLSBp
bnQzMl90LCBhYnNvbHV0ZSBZIHBvc2l0aW9uLCBpbiBwaXhlbHMKKyAqCisgKiBNdWx0aS10b3Vj
aCBjb250YWN0IHJlbGVhc2UgZXZlbnQKKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAg
ICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKworICogfCAgX1RZUEVfTVRPVUNIICB8ICBfTVRfRVZfVVAgICAgIHwgICBjb250YWN0X2lk
ICAgfCAgICByZXNlcnZlZCAgICB8IDQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
IDgKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKworICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAq
IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCA0MAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogTXVsdGktdG91Y2ggbW90
aW9uIGV2ZW50CisgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAg
MiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgIF9U
WVBFX01UT1VDSCAgfCAgX01UX0VWX01PVElPTiB8ICAgY29udGFjdF9pZCAgIHwgICAgcmVzZXJ2
ZWQgICAgfCA0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4CisgKiArLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJzX3ggICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAxMgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFic195ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgMTYKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIwCisgKiArLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNDAK
KyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKworICoKKyAqIGFic194IC0gaW50MzJfdCwgYWJzb2x1dGUgWCBwb3Np
dGlvbiwgaW4gcGl4ZWxzLAorICogYWJzX3kgLSBpbnQzMl90LCBhYnNvbHV0ZSBZIHBvc2l0aW9u
LCBpbiBwaXhlbHMsCisgKgorICogTXVsdGktdG91Y2ggaW5wdXQgc3luY2hyb25pemF0aW9uIGV2
ZW50IC0gc2hvd3MgZW5kIG9mIGEgc2V0IG9mIGV2ZW50cworICogd2hpY2ggbG9naWNhbGx5IGJl
bG9uZyB0b2dldGhlci4KKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAg
ICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICog
fCAgX1RZUEVfTVRPVUNIICB8ICBfTVRfRVZfU1lOICAgIHwgICBjb250YWN0X2lkICAgfCAgICBy
ZXNlcnZlZCAgICB8IDQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKKyAqICst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKworICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCA0MAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogTXVsdGktdG91Y2ggc2hhcGUgZXZlbnQg
LSB0b3VjaCBwb2ludCdzIHNoYXBlIGhhcyBjaGFuZ2VkIGl0cyBzaGFwZS4KKyAqIFNoYXBlIGlz
IGFwcHJveGltYXRlZCBieSBhbiBlbGxpcHNlIHRocm91Z2ggdGhlIG1ham9yIGFuZCBtaW5vciBh
eGlzCisgKiBsZW5ndGhzOiBtYWpvciBpcyB0aGUgbG9uZ2VyIGRpYW1ldGVyIG9mIHRoZSBlbGxp
cHNlIGFuZCBtaW5vciBpcyB0aGUKKyAqIHNob3J0ZXIgb25lLiBDZW50ZXIgb2YgdGhlIGVsbGlw
c2UgaXMgcmVwb3J0ZWQgdmlhCisgKiBYRU5LQkRfTVRfRVZfRE9XTi9YRU5LQkRfTVRfRVZfTU9U
SU9OIGV2ZW50cy4KKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAg
ICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAg
X1RZUEVfTVRPVUNIICB8ICBfTVRfRVZfU0hBUEUgIHwgICBjb250YWN0X2lkICAgfCAgICByZXNl
cnZlZCAgICB8IDQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKKyAqICstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWpvciAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8IDEyCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbWlub3IgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAxNgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAKKyAqICstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKworICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0
MAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogbWFqb3IgLSB1bnQzMl90LCBsZW5ndGggb2YgdGhl
IG1ham9yIGF4aXMsIHBpeGVscworICogbWlub3IgLSB1bnQzMl90LCBsZW5ndGggb2YgdGhlIG1p
bm9yIGF4aXMsIHBpeGVscworICoKKyAqIE11bHRpLXRvdWNoIG9yaWVudGF0aW9uIGV2ZW50IC0g
dG91Y2ggcG9pbnQncyBzaGFwZSBoYXMgY2hhbmdlZAorICogaXRzIG9yaWVudGF0aW9uOiBjYWxj
dWxhdGVkIGFzIGEgY2xvY2t3aXNlIGFuZ2xlIGJldHdlZW4gdGhlIG1ham9yIGF4aXMKKyAqIG9m
IHRoZSBlbGxpcHNlIGFuZCBwb3NpdGl2ZSBZIGF4aXMgaW4gZGVncmVlcywgWy0xODA7ICsxODBd
LgorICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAg
ICAgICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICBfVFlQRV9NVE9V
Q0ggIHwgIF9NVF9FVl9PUklFTlQgfCAgIGNvbnRhY3RfaWQgICB8ICAgIHJlc2VydmVkICAgIHwg
NAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNl
cnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAorICogKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisg
KiB8ICAgICAgICAgICBvcmllbnRhdGlvbiAgICAgICAgICAgfCAgICAgICAgICAgIHJlc2VydmVk
ICAgICAgICAgICAgIHwgMTIKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE2Cisg
KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgNDAKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIG9yaWVudGF0aW9uIC0gaW50MTZf
dCwgY2xvY2t3aXNlIGFuZ2xlIG9mIHRoZSBtYWpvciBheGlzCisgKi8KKworc3RydWN0IHhlbmti
ZF9tdG91Y2ggeworICAgIHVpbnQ4X3QgdHlwZTsgICAgICAgICAgICAvKiBYRU5LQkRfVFlQRV9N
VE9VQ0ggKi8KKyAgICB1aW50OF90IGV2ZW50X3R5cGU7ICAgICAgLyogWEVOS0JEX01UX0VWXz8/
PyAqLworICAgIHVpbnQ4X3QgY29udGFjdF9pZDsKKyAgICB1aW50OF90IHJlc2VydmVkWzVdOyAg
ICAgLyogcmVzZXJ2ZWQgZm9yIHRoZSBmdXR1cmUgdXNlICovCisgICAgdW5pb24geworICAgICAg
ICBzdHJ1Y3QgeworICAgICAgICAgICAgaW50MzJfdCBhYnNfeDsgICAvKiBhYnNvbHV0ZSBYIHBv
c2l0aW9uLCBwaXhlbHMgKi8KKyAgICAgICAgICAgIGludDMyX3QgYWJzX3k7ICAgLyogYWJzb2x1
dGUgWSBwb3NpdGlvbiwgcGl4ZWxzICovCisgICAgICAgIH0gcG9zOworICAgICAgICBzdHJ1Y3Qg
eworICAgICAgICAgICAgdWludDMyX3QgbWFqb3I7ICAvKiBsZW5ndGggb2YgdGhlIG1ham9yIGF4
aXMsIHBpeGVscyAqLworICAgICAgICAgICAgdWludDMyX3QgbWlub3I7ICAvKiBsZW5ndGggb2Yg
dGhlIG1pbm9yIGF4aXMsIHBpeGVscyAqLworICAgICAgICB9IHNoYXBlOworICAgICAgICBpbnQx
Nl90IG9yaWVudGF0aW9uOyAvKiBjbG9ja3dpc2UgYW5nbGUgb2YgdGhlIG1ham9yIGF4aXMgKi8K
KyAgICB9IHU7CiB9OwogCiAjZGVmaW5lIFhFTktCRF9JTl9FVkVOVF9TSVpFIDQwCkBAIC03Niwx
NSArNDc5LDI2IEBAIHVuaW9uIHhlbmtiZF9pbl9ldmVudAogICAgIHN0cnVjdCB4ZW5rYmRfbW90
aW9uIG1vdGlvbjsKICAgICBzdHJ1Y3QgeGVua2JkX2tleSBrZXk7CiAgICAgc3RydWN0IHhlbmti
ZF9wb3NpdGlvbiBwb3M7CisgICAgc3RydWN0IHhlbmtiZF9tdG91Y2ggbXRvdWNoOwogICAgIGNo
YXIgcGFkW1hFTktCRF9JTl9FVkVOVF9TSVpFXTsKIH07CiAKLS8qIE91dCBldmVudHMgKGZyb250
ZW5kIC0+IGJhY2tlbmQpICovCi0KIC8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEZyb250ZW5kIHRvIGJhY2tlbmQgZXZlbnRzCisgKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKKyAqCiAgKiBPdXQgZXZlbnRzIG1heSBiZSBzZW50IG9ubHkgd2hlbiBy
ZXF1ZXN0ZWQgYnkgYmFja2VuZCwgYW5kIHJlY2VpcHQKICAqIG9mIGFuIHVua25vd24gb3V0IGV2
ZW50IGlzIGFuIGVycm9yLgogICogTm8gb3V0IGV2ZW50cyBjdXJyZW50bHkgZGVmaW5lZC4KKwor
ICogQWxsIGV2ZW50IHBhY2tldHMgaGF2ZSB0aGUgc2FtZSBsZW5ndGggKDQwIG9jdGV0cykKKyAq
IEFsbCBldmVudCBwYWNrZXRzIGhhdmUgY29tbW9uIGhlYWRlcjoKKyAqICAgICAgICAgIDAgICAg
ICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICB0eXBlICAgICAg
fAorICogKy0tLS0tLS0tLS0tLS0tLS0tKworICogdHlwZSAtIHVpbnQ4X3QsIGV2ZW50IGNvZGUK
ICAqLwogCiAjZGVmaW5lIFhFTktCRF9PVVRfRVZFTlRfU0laRSA0MApAQCAtOTUsNyArNTA5LDEx
IEBAIHVuaW9uIHhlbmtiZF9vdXRfZXZlbnQKICAgICBjaGFyIHBhZFtYRU5LQkRfT1VUX0VWRU5U
X1NJWkVdOwogfTsKIAotLyogc2hhcmVkIHBhZ2UgKi8KKy8qCisgKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNoYXJlZCBwYWdlCisgKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKKyAqLwogCiAjZGVmaW5lIFhFTktCRF9JTl9SSU5HX1NJWkUgMjA0OAogI2Rl
ZmluZSBYRU5LQkRfSU5fUklOR19MRU4gKFhFTktCRF9JTl9SSU5HX1NJWkUgLyBYRU5LQkRfSU5f
RVZFTlRfU0laRSkKQEAgLTExOSw3ICs1MzcsNyBAQCBzdHJ1Y3QgeGVua2JkX3BhZ2UKICAgICB1
aW50MzJfdCBvdXRfY29ucywgb3V0X3Byb2Q7CiB9OwogCi0jZW5kaWYKKyNlbmRpZiAvKiBfX1hF
Tl9QVUJMSUNfSU9fS0JESUZfSF9fICovCiAKIC8qCiAgKiBMb2NhbCB2YXJpYWJsZXM6CmRpZmYg
LS1naXQgYS9pbmNsdWRlL3hlbi9pby9saWJ4ZW52Y2hhbi5oIGIvaW5jbHVkZS94ZW4vaW8vbGli
eGVudmNoYW4uaAppbmRleCA1YzNkM2Q0Li40NDI4NGY0IDEwMDY0NAotLS0gYS9pbmNsdWRlL3hl
bi9pby9saWJ4ZW52Y2hhbi5oCisrKyBiL2luY2x1ZGUveGVuL2lvL2xpYnhlbnZjaGFuLmgKQEAg
LTEwLDE5ICsxMCwyMyBAQAogICoKICAqIEBzZWN0aW9uIExJQ0VOU0UKICAqCi0gKiAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgot
ICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdy
YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAq
IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhl
ICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmlj
dGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2Us
IGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFu
ZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNv
bnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj
dCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CiAgKgotICogIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
Ci0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz
c2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3Rh
bnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgogICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT
b2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgVVNBCisgKiBUSEUgU09GVFdBUkUgSVMgUFJP
VklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgor
ICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
TkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1Ig
Q09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RI
RVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQg
T1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBX
SVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUg
U09GVFdBUkUuCiAgKgogICogQHNlY3Rpb24gREVTQ1JJUFRJT04KICAqCmRpZmYgLS1naXQgYS9p
bmNsdWRlL3hlbi9pby9uZXRpZi5oIGIvaW5jbHVkZS94ZW4vaW8vbmV0aWYuaAppbmRleCA2MWU5
YWVhLi5jYTAwNjE0IDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi9pby9uZXRpZi5oCisrKyBiL2lu
Y2x1ZGUveGVuL2lvL25ldGlmLmgKQEAgLTEsOCArMSw4IEBACiAvKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCiAgKiBuZXRpZi5oCi0gKiAKKyAqCiAgKiBVbmlmaWVkIG5ldHdvcmstZGV2aWNlIEkvTyBp
bnRlcmZhY2UgZm9yIFhlbiBndWVzdCBPU2VzLgotICogCisgKgogICogUGVybWlzc2lvbiBpcyBo
ZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEg
Y29weQogICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZp
bGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCiAgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0
IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQpAQCAtMTM2LDE0
ICsxMzYsNjg0IEBACiAgKi8KIAogLyoKLSAqIFRoaXMgaXMgdGhlICd3aXJlJyBmb3JtYXQgZm9y
IHBhY2tldHM6Ci0gKiAgUmVxdWVzdCAxOiBuZXRpZl90eF9yZXF1ZXN0IC0tIE5FVFRYRl8qIChh
bnkgZmxhZ3MpCi0gKiBbUmVxdWVzdCAyOiBuZXRpZl90eF9leHRyYV0gIChvbmx5IGlmIHJlcXVl
c3QgMSBoYXMgTkVUVFhGX2V4dHJhX2luZm8pCi0gKiBbUmVxdWVzdCAzOiBuZXRpZl90eF9leHRy
YV0gIChvbmx5IGlmIHJlcXVlc3QgMiBoYXMgWEVOX05FVElGX0VYVFJBX01PUkUpCi0gKiAgUmVx
dWVzdCA0OiBuZXRpZl90eF9yZXF1ZXN0IC0tIE5FVFRYRl9tb3JlX2RhdGEKLSAqICBSZXF1ZXN0
IDU6IG5ldGlmX3R4X3JlcXVlc3QgLS0gTkVUVFhGX21vcmVfZGF0YQorICogImZlYXR1cmUtbXVs
dGljYXN0LWNvbnRyb2wiIGFuZCAiZmVhdHVyZS1keW5hbWljLW11bHRpY2FzdC1jb250cm9sIgor
ICogYWR2ZXJ0aXNlIHRoZSBjYXBhYmlsaXR5IHRvIGZpbHRlciBldGhlcm5ldCBtdWx0aWNhc3Qg
cGFja2V0cyBpbiB0aGUKKyAqIGJhY2tlbmQuIElmIHRoZSBmcm9udGVuZCB3aXNoZXMgdG8gdGFr
ZSBhZHZhbnRhZ2Ugb2YgdGhpcyBmZWF0dXJlIHRoZW4KKyAqIGl0IG1heSBzZXQgInJlcXVlc3Qt
bXVsdGljYXN0LWNvbnRyb2wiLiBJZiB0aGUgYmFja2VuZCBvbmx5IGFkdmVydGlzZXMKKyAqICJm
ZWF0dXJlLW11bHRpY2FzdC1jb250cm9sIiB0aGVuICJyZXF1ZXN0LW11bHRpY2FzdC1jb250cm9s
IiBtdXN0IGJlIHNldAorICogYmVmb3JlIHRoZSBmcm9udGVuZCBtb3ZlcyBpbnRvIHRoZSBjb25u
ZWN0ZWQgc3RhdGUuIFRoZSBiYWNrZW5kIHdpbGwKKyAqIHNhbXBsZSB0aGUgdmFsdWUgb24gdGhp
cyBzdGF0ZSB0cmFuc2l0aW9uIGFuZCBhbnkgc3Vic2VxdWVudCBjaGFuZ2UgaW4KKyAqIHZhbHVl
IHdpbGwgaGF2ZSBubyBlZmZlY3QuIEhvd2V2ZXIsIGlmIHRoZSBiYWNrZW5kIGFsc28gYWR2ZXJ0
aXNlcworICogImZlYXR1cmUtZHluYW1pYy1tdWx0aWNhc3QtY29udHJvbCIgdGhlbiAicmVxdWVz
dC1tdWx0aWNhc3QtY29udHJvbCIKKyAqIG1heSBiZSBzZXQgYnkgdGhlIGZyb250ZW5kIGF0IGFu
eSB0aW1lLiBJbiB0aGlzIGNhc2UsIHRoZSBiYWNrZW5kIHdpbGwKKyAqIHdhdGNoIHRoZSB2YWx1
ZSBhbmQgcmUtc2FtcGxlIG9uIHdhdGNoIGV2ZW50cy4KKyAqCisgKiBJZiB0aGUgc2FtcGxlZCB2
YWx1ZSBvZiAicmVxdWVzdC1tdWx0aWNhc3QtY29udHJvbCIgaXMgc2V0IHRoZW4gdGhlCisgKiBi
YWNrZW5kIHRyYW5zbWl0IHNpZGUgc2hvdWxkIG5vIGxvbmdlciBmbG9vZCBtdWx0aWNhc3QgcGFj
a2V0cyB0byB0aGUKKyAqIGZyb250ZW5kLCBpdCBzaG91bGQgaW5zdGVhZCBkcm9wIGFueSBtdWx0
aWNhc3QgcGFja2V0IHRoYXQgZG9lcyBub3QKKyAqIG1hdGNoIGluIGEgZmlsdGVyIGxpc3QuCisg
KiBUaGUgbGlzdCBpcyBhbWVuZGVkIGJ5IHRoZSBmcm9udGVuZCBieSBzZW5kaW5nIGR1bW15IHRy
YW5zbWl0IHJlcXVlc3RzCisgKiBjb250YWluaW5nIFhFTl9ORVRJRl9FWFRSQV9UWVBFX01DQVNU
X3tBREQsREVMfSBleHRyYS1pbmZvIGZyYWdtZW50cyBhcworICogc3BlY2lmaWVkIGJlbG93Lgor
ICogTm90ZSB0aGF0IHRoZSBmaWx0ZXIgbGlzdCBtYXkgYmUgYW1lbmRlZCBldmVuIGlmIHRoZSBz
YW1wbGVkIHZhbHVlIG9mCisgKiAicmVxdWVzdC1tdWx0aWNhc3QtY29udHJvbCIgaXMgbm90IHNl
dCwgaG93ZXZlciB0aGUgZmlsdGVyIHNob3VsZCBvbmx5CisgKiBiZSBhcHBsaWVkIGlmIGl0IGlz
IHNldC4KKyAqLworCisvKgorICogQ29udHJvbCByaW5nCisgKiA9PT09PT09PT09PT0KKyAqCisg
KiBTb21lIGZlYXR1cmVzLCBzdWNoIGFzIGhhc2hpbmcgKGRldGFpbGVkIGJlbG93KSwgcmVxdWly
ZSBhCisgKiBzaWduaWZpY2FudCBhbW91bnQgb2Ygb3V0LW9mLWJhbmQgZGF0YSB0byBiZSBwYXNz
ZWQgZnJvbSBmcm9udGVuZCB0bworICogYmFja2VuZC4gVXNlIG9mIHhlbnN0b3JlIGlzIG5vdCBz
dWl0YWJsZSBmb3IgbGFyZ2UgcXVhbnRpdGllcyBvZiBkYXRhCisgKiBiZWNhdXNlIG9mIHF1b3Rh
IGxpbWl0YXRpb25zIGFuZCBzbyBhIGRlZGljYXRlZCAnY29udHJvbCByaW5nJyBpcyB1c2VkLgor
ICogVGhlIGFiaWxpdHkgb2YgdGhlIGJhY2tlbmQgdG8gdXNlIGEgY29udHJvbCByaW5nIGlzIGFk
dmVydGlzZWQgYnkKKyAqIHNldHRpbmc6CisgKgorICogL2xvY2FsL2RvbWFpbi9YL2JhY2tlbmQv
PGRvbWlkPi88dmlmPi9mZWF0dXJlLWN0cmwtcmluZyA9ICIxIgorICoKKyAqIFRoZSBmcm9udGVu
ZCBwcm92aWRlcyBhIGNvbnRyb2wgcmluZyB0byB0aGUgYmFja2VuZCBieSBzZXR0aW5nOgorICoK
KyAqIC9sb2NhbC9kb21haW4vPGRvbWlkPi9kZXZpY2UvdmlmLzx2aWY+L2N0cmwtcmluZy1yZWYg
PSA8Z3JlZj4KKyAqIC9sb2NhbC9kb21haW4vPGRvbWlkPi9kZXZpY2UvdmlmLzx2aWY+L2V2ZW50
LWNoYW5uZWwtY3RybCA9IDxwb3J0PgorICoKKyAqIHdoZXJlIDxncmVmPiBpcyB0aGUgZ3JhbnQg
cmVmZXJlbmNlIG9mIHRoZSBzaGFyZWQgcGFnZSB1c2VkIHRvCisgKiBpbXBsZW1lbnQgdGhlIGNv
bnRyb2wgcmluZyBhbmQgPHBvcnQ+IGlzIGFuIGV2ZW50IGNoYW5uZWwgdG8gYmUgdXNlZAorICog
YXMgYSBtYWlsYm94IGludGVycnVwdC4gVGhlc2Uga2V5cyBtdXN0IGJlIHNldCBiZWZvcmUgdGhl
IGZyb250ZW5kCisgKiBtb3ZlcyBpbnRvIHRoZSBjb25uZWN0ZWQgc3RhdGUuCisgKgorICogVGhl
IGNvbnRyb2wgcmluZyB1c2VzIGEgZml4ZWQgcmVxdWVzdC9yZXNwb25zZSBtZXNzYWdlIHNpemUg
YW5kIGlzCisgKiBiYWxhbmNlZCAoaS5lLiBvbmUgcmVxdWVzdCB0byBvbmUgcmVzcG9uc2UpLCBz
byBvcGVyYXRpb25hbGx5IGl0IGlzIG11Y2gKKyAqIHRoZSBzYW1lIGFzIGEgdHJhbnNtaXQgb3Ig
cmVjZWl2ZSByaW5nLgorICogTm90ZSB0aGF0IHRoZXJlIGlzIG5vIHJlcXVpcmVtZW50IHRoYXQg
cmVzcG9uc2VzIGFyZSBpc3N1ZWQgaW4gdGhlIHNhbWUKKyAqIG9yZGVyIGFzIHJlcXVlc3RzLgor
ICovCisKKy8qCisgKiBIYXNoIHR5cGVzCisgKiA9PT09PT09PT09CisgKgorICogRm9yIHRoZSBw
dXJwb3NlcyBvZiB0aGUgZGVmaW5pdGlvbnMgYmVsb3csICdQYWNrZXRbXScgaXMgYW4gYXJyYXkg
b2YKKyAqIG9jdGV0cyBjb250YWluaW5nIGFuIElQIHBhY2tldCB3aXRob3V0IG9wdGlvbnMsICdB
cnJheVtYLi5ZXScgbWVhbnMgYQorICogc3ViLWFycmF5IG9mICdBcnJheScgY29udGFpbmluZyBi
eXRlcyBYIHRocnUgWSBpbmNsdXNpdmUsIGFuZCAnKycgaXMKKyAqIHVzZWQgdG8gaW5kaWNhdGUg
Y29uY2F0ZW5hdGlvbiBvZiBhcnJheXMuCisgKi8KKworLyoKKyAqIEEgaGFzaCBjYWxjdWxhdGVk
IG92ZXIgYW4gSVAgdmVyc2lvbiA0IGhlYWRlciBhcyBmb2xsb3dzOgorICoKKyAqIEJ1ZmZlclsw
Li44XSA9IFBhY2tldFsxMi4uMTVdIChzb3VyY2UgYWRkcmVzcykgKworICogICAgICAgICAgICAg
ICAgUGFja2V0WzE2Li4xOV0gKGRlc3RpbmF0aW9uIGFkZHJlc3MpCisgKgorICogUmVzdWx0ID0g
SGFzaChCdWZmZXIsIDgpCisgKi8KKyNkZWZpbmUgX1hFTl9ORVRJRl9DVFJMX0hBU0hfVFlQRV9J
UFY0IDAKKyNkZWZpbmUgWEVOX05FVElGX0NUUkxfSEFTSF9UWVBFX0lQVjQgXAorICAgICgxIDw8
IF9YRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfSVBWNCkKKworLyoKKyAqIEEgaGFzaCBjYWxjdWxh
dGVkIG92ZXIgYW4gSVAgdmVyc2lvbiA0IGhlYWRlciBhbmQgVENQIGhlYWRlciBhcworICogZm9s
bG93czoKKyAqCisgKiBCdWZmZXJbMC4uMTJdID0gUGFja2V0WzEyLi4xNV0gKHNvdXJjZSBhZGRy
ZXNzKSArCisgKiAgICAgICAgICAgICAgICAgUGFja2V0WzE2Li4xOV0gKGRlc3RpbmF0aW9uIGFk
ZHJlc3MpICsKKyAqICAgICAgICAgICAgICAgICBQYWNrZXRbMjAuLjIxXSAoc291cmNlIHBvcnQp
ICsKKyAqICAgICAgICAgICAgICAgICBQYWNrZXRbMjIuLjIzXSAoZGVzdGluYXRpb24gcG9ydCkK
KyAqCisgKiBSZXN1bHQgPSBIYXNoKEJ1ZmZlciwgMTIpCisgKi8KKyNkZWZpbmUgX1hFTl9ORVRJ
Rl9DVFJMX0hBU0hfVFlQRV9JUFY0X1RDUCAxCisjZGVmaW5lIFhFTl9ORVRJRl9DVFJMX0hBU0hf
VFlQRV9JUFY0X1RDUCBcCisgICAgKDEgPDwgX1hFTl9ORVRJRl9DVFJMX0hBU0hfVFlQRV9JUFY0
X1RDUCkKKworLyoKKyAqIEEgaGFzaCBjYWxjdWxhdGVkIG92ZXIgYW4gSVAgdmVyc2lvbiA2IGhl
YWRlciBhcyBmb2xsb3dzOgorICoKKyAqIEJ1ZmZlclswLi4zMl0gPSBQYWNrZXRbOC4uMjNdICAo
c291cmNlIGFkZHJlc3MgKSArCisgKiAgICAgICAgICAgICAgICAgUGFja2V0WzI0Li4zOV0gKGRl
c3RpbmF0aW9uIGFkZHJlc3MpCisgKgorICogUmVzdWx0ID0gSGFzaChCdWZmZXIsIDMyKQorICov
CisjZGVmaW5lIF9YRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfSVBWNiAyCisjZGVmaW5lIFhFTl9O
RVRJRl9DVFJMX0hBU0hfVFlQRV9JUFY2IFwKKyAgICAoMSA8PCBfWEVOX05FVElGX0NUUkxfSEFT
SF9UWVBFX0lQVjYpCisKKy8qCisgKiBBIGhhc2ggY2FsY3VsYXRlZCBvdmVyIGFuIElQIHZlcnNp
b24gNiBoZWFkZXIgYW5kIFRDUCBoZWFkZXIgYXMKKyAqIGZvbGxvd3M6CisgKgorICogQnVmZmVy
WzAuLjM2XSA9IFBhY2tldFs4Li4yM10gIChzb3VyY2UgYWRkcmVzcykgKworICogICAgICAgICAg
ICAgICAgIFBhY2tldFsyNC4uMzldIChkZXN0aW5hdGlvbiBhZGRyZXNzKSArCisgKiAgICAgICAg
ICAgICAgICAgUGFja2V0WzQwLi40MV0gKHNvdXJjZSBwb3J0KSArCisgKiAgICAgICAgICAgICAg
ICAgUGFja2V0WzQyLi40M10gKGRlc3RpbmF0aW9uIHBvcnQpCisgKgorICogUmVzdWx0ID0gSGFz
aChCdWZmZXIsIDM2KQorICovCisjZGVmaW5lIF9YRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfSVBW
Nl9UQ1AgMworI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfSVBWNl9UQ1AgXAorICAg
ICgxIDw8IF9YRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfSVBWNl9UQ1ApCisKKy8qCisgKiBIYXNo
IGFsZ29yaXRobXMKKyAqID09PT09PT09PT09PT09PQorICovCisKKyNkZWZpbmUgWEVOX05FVElG
X0NUUkxfSEFTSF9BTEdPUklUSE1fTk9ORSAwCisKKy8qCisgKiBUb2VwbGl0eiBoYXNoOgorICov
CisKKyNkZWZpbmUgWEVOX05FVElGX0NUUkxfSEFTSF9BTEdPUklUSE1fVE9FUExJVFogMQorCisv
KgorICogVGhpcyBhbGdvcml0aG0gdXNlcyBhICdrZXknIGFzIHdlbGwgYXMgdGhlIGRhdGEgYnVm
ZmVyIGl0c2VsZi4KKyAqIChCdWZmZXJbXSBhbmQgS2V5W10gYXJlIHRyZWF0ZWQgYXMgc2hpZnQt
cmVnaXN0ZXJzIHdoZXJlIHRoZSBNU0Igb2YKKyAqIEJ1ZmZlci9LZXlbMF0gaXMgY29uc2lkZXJl
ZCAnbGVmdC1tb3N0JyBhbmQgdGhlIExTQiBvZiBCdWZmZXIvS2V5W04tMV0KKyAqIGlzIHRoZSAn
cmlnaHQtbW9zdCcpLgorICoKKyAqIFZhbHVlID0gMAorICogRm9yIG51bWJlciBvZiBiaXRzIGlu
IEJ1ZmZlcltdCisgKiAgICBJZiAobGVmdC1tb3N0IGJpdCBvZiBCdWZmZXJbXSBpcyAxKQorICog
ICAgICAgIFZhbHVlIF49IGxlZnQtbW9zdCAzMiBiaXRzIG9mIEtleVtdCisgKiAgICBLZXlbXSA8
PCAxCisgKiAgICBCdWZmZXJbXSA8PCAxCisgKgorICogVGhlIGNvZGUgYmVsb3cgaXMgcHJvdmlk
ZWQgZm9yIGNvbnZlbmllbmNlIHdoZXJlIGFuIG9wZXJhdGluZyBzeXN0ZW0KKyAqIGRvZXMgbm90
IGFscmVhZHkgcHJvdmlkZSBhbiBpbXBsZW1lbnRhdGlvbi4KKyAqLworI2lmZGVmIFhFTl9ORVRJ
Rl9ERUZJTkVfVE9FUExJVFoKK3N0YXRpYyB1aW50MzJfdCB4ZW5fbmV0aWZfdG9lcGxpdHpfaGFz
aChjb25zdCB1aW50OF90ICprZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW5zaWduZWQgaW50IGtleWxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCB1aW50OF90ICpidWYsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGJ1ZmxlbikKK3sKKyAgICB1bnNpZ25lZCBpbnQg
a2V5aSwgYnVmaTsKKyAgICB1aW50NjRfdCBwcmVmaXggPSAwOworICAgIHVpbnQ2NF90IGhhc2gg
PSAwOworCisgICAgLyogUHJlLWxvYWQgcHJlZml4IHdpdGggdGhlIGZpcnN0IDggYnl0ZXMgb2Yg
dGhlIGtleSAqLworICAgIGZvciAoa2V5aSA9IDA7IGtleWkgPCA4OyBrZXlpKyspIHsKKyAgICAg
ICAgcHJlZml4IDw8PSA4OworICAgICAgICBwcmVmaXggfD0gKGtleWkgPCBrZXlsZW4pID8ga2V5
W2tleWldIDogMDsKKyAgICB9CisKKyAgICBmb3IgKGJ1ZmkgPSAwOyBidWZpIDwgYnVmbGVuOyBi
dWZpKyspIHsKKyAgICAgICAgdWludDhfdCBieXRlID0gYnVmW2J1ZmldOworICAgICAgICB1bnNp
Z25lZCBpbnQgYml0OworCisgICAgICAgIGZvciAoYml0ID0gMDsgYml0IDwgODsgYml0KyspIHsK
KyAgICAgICAgICAgIGlmIChieXRlICYgMHg4MCkKKyAgICAgICAgICAgICAgICBoYXNoIF49IHBy
ZWZpeDsKKyAgICAgICAgICAgIHByZWZpeCA8PD0gMTsKKyAgICAgICAgICAgIGJ5dGUgPDw9MTsK
KyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAqICdwcmVmaXgnIGhhcyBub3cgYmVl
biBsZWZ0LXNoaWZ0ZWQgYnkgOCwgc28KKyAgICAgICAgICogT1IgaW4gdGhlIG5leHQgYnl0ZS4K
KyAgICAgICAgICovCisgICAgICAgIHByZWZpeCB8PSAoa2V5aSA8IGtleWxlbikgPyBrZXlba2V5
aV0gOiAwOworICAgICAgICBrZXlpKys7CisgICAgfQorCisgICAgLyogVGhlIHZhbGlkIHBhcnQg
b2YgdGhlIGhhc2ggaXMgaW4gdGhlIHVwcGVyIDMyIGJpdHMuICovCisgICAgcmV0dXJuIGhhc2gg
Pj4gMzI7Cit9CisjZW5kaWYgLyogWEVOX05FVElGX0RFRklORV9UT0VQTElUWiAqLworCisvKgor
ICogQ29udHJvbCByZXF1ZXN0cyAoc3RydWN0IHhlbl9uZXRpZl9jdHJsX3JlcXVlc3QpCisgKiA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqCisgKiBB
bGwgcmVxdWVzdHMgaGF2ZSB0aGUgZm9sbG93aW5nIGZvcm1hdDoKKyAqCisgKiAgICAwICAgICAx
ICAgICAyICAgICAzICAgICA0ICAgICA1ICAgICA2ICAgICA3ICBvY3RldAorICogKy0tLS0tKy0t
LS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKworICogfCAgICBpZCAgICAg
fCAgIHR5cGUgICAgfCAgICAgICAgIGRhdGFbMF0gICAgICAgfAorICogKy0tLS0tKy0tLS0tKy0t
LS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKworICogfCAgICAgICAgIGRhdGFbMV0g
ICAgICAgfCAgICAgICAgIGRhdGFbMl0gICAgICAgfAorICogKy0tLS0tKy0tLS0tKy0tLS0tKy0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIGlkOiB0aGUgcmVxdWVzdCBpZGVu
dGlmaWVyLCBlY2hvZWQgaW4gcmVzcG9uc2UuCisgKiB0eXBlOiB0aGUgdHlwZSBvZiByZXF1ZXN0
IChzZWUgYmVsb3cpCisgKiBkYXRhW106IGFueSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVx
dWVzdCAoZGV0ZXJtaW5lZCBieSB0eXBlKQorICovCisKK3N0cnVjdCB4ZW5fbmV0aWZfY3RybF9y
ZXF1ZXN0IHsKKyAgICB1aW50MTZfdCBpZDsKKyAgICB1aW50MTZfdCB0eXBlOworCisjZGVmaW5l
IFhFTl9ORVRJRl9DVFJMX1RZUEVfSU5WQUxJRCAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgWEVO
X05FVElGX0NUUkxfVFlQRV9HRVRfSEFTSF9GTEFHUyAgICAgICAgMQorI2RlZmluZSBYRU5fTkVU
SUZfQ1RSTF9UWVBFX1NFVF9IQVNIX0ZMQUdTICAgICAgICAyCisjZGVmaW5lIFhFTl9ORVRJRl9D
VFJMX1RZUEVfU0VUX0hBU0hfS0VZICAgICAgICAgIDMKKyNkZWZpbmUgWEVOX05FVElGX0NUUkxf
VFlQRV9HRVRfSEFTSF9NQVBQSU5HX1NJWkUgNAorI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9UWVBF
X1NFVF9IQVNIX01BUFBJTkdfU0laRSA1CisjZGVmaW5lIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VU
X0hBU0hfTUFQUElORyAgICAgIDYKKyNkZWZpbmUgWEVOX05FVElGX0NUUkxfVFlQRV9TRVRfSEFT
SF9BTEdPUklUSE0gICAgNworCisgICAgdWludDMyX3QgZGF0YVszXTsKK307CisKKy8qCisgKiBD
b250cm9sIHJlc3BvbnNlcyAoc3RydWN0IHhlbl9uZXRpZl9jdHJsX3Jlc3BvbnNlKQorICogPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqCisgKiBB
bGwgcmVzcG9uc2VzIGhhdmUgdGhlIGZvbGxvd2luZyBmb3JtYXQ6CisgKgorICogICAgMCAgICAg
MSAgICAgMiAgICAgMyAgICAgNCAgICAgNSAgICAgNiAgICAgNyAgb2N0ZXQKKyAqICstLS0tLSst
LS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKKyAqIHwgICAgaWQgICAg
IHwgICB0eXBlICAgIHwgICAgICAgICBzdGF0dXMgICAgICAgIHwKKyAqICstLS0tLSstLS0tLSst
LS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKKyAqIHwgICAgICAgICBkYXRhICAg
ICAgICAgIHwKKyAqICstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKKyAqCisgKiBpZDogdGhlIGNv
cnJlc3BvbmRpbmcgcmVxdWVzdCBpZGVudGlmaWVyCisgKiB0eXBlOiB0aGUgdHlwZSBvZiB0aGUg
Y29ycmVzcG9uZGluZyByZXF1ZXN0CisgKiBzdGF0dXM6IHRoZSBzdGF0dXMgb2YgcmVxdWVzdCBw
cm9jZXNzaW5nCisgKiBkYXRhOiBhbnkgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIHJlc3BvbnNl
IChkZXRlcm1pbmVkIGJ5IHR5cGUgYW5kCisgKiAgICAgICBzdGF0dXMpCisgKi8KKworc3RydWN0
IHhlbl9uZXRpZl9jdHJsX3Jlc3BvbnNlIHsKKyAgICB1aW50MTZfdCBpZDsKKyAgICB1aW50MTZf
dCB0eXBlOworICAgIHVpbnQzMl90IHN0YXR1czsKKworI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9T
VEFUVVNfU1VDQ0VTUyAgICAgICAgICAgMAorI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNf
Tk9UX1NVUFBPUlRFRCAgICAgMQorI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfSU5WQUxJ
RF9QQVJBTUVURVIgMgorI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfQlVGRkVSX09WRVJG
TE9XICAgMworCisgICAgdWludDMyX3QgZGF0YTsKK307CisKKy8qCisgKiBDb250cm9sIG1lc3Nh
Z2VzCisgKiA9PT09PT09PT09PT09PT09CisgKgorICogWEVOX05FVElGX0NUUkxfVFlQRV9TRVRf
SEFTSF9BTEdPUklUSE0KKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisgKgorICogVGhpcyBpcyBzZW50IGJ5IHRoZSBmcm9udGVuZCB0byBzZXQgdGhlIGRlc2lyZWQg
aGFzaCBhbGdvcml0aG0uCisgKgorICogUmVxdWVzdDoKKyAqCisgKiAgdHlwZSAgICA9IFhFTl9O
RVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfQUxHT1JJVEhNCisgKiAgZGF0YVswXSA9IGEgWEVOX05F
VElGX0NUUkxfSEFTSF9BTEdPUklUSE1fKiB2YWx1ZQorICogIGRhdGFbMV0gPSAwCisgKiAgZGF0
YVsyXSA9IDAKKyAqCisgKiBSZXNwb25zZToKKyAqCisgKiAgc3RhdHVzID0gWEVOX05FVElGX0NU
UkxfU1RBVFVTX05PVF9TVVBQT1JURUQgICAgIC0gT3BlcmF0aW9uIG5vdAorICogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZAorICog
ICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19JTlZBTElEX1BBUkFNRVRFUiAtIFRoZSBh
bGdvcml0aG0gaXMgbm90CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3VwcG9ydGVkCisgKiAgICAgICAgICAgWEVOX05FVElGX0NUUkxfU1RB
VFVTX1NVQ0NFU1MgICAgICAgICAgIC0gT3BlcmF0aW9uIHN1Y2Nlc3NmdWwKKyAqCisgKiBOT1RF
OiBTZXR0aW5nIGRhdGFbMF0gdG8gWEVOX05FVElGX0NUUkxfSEFTSF9BTEdPUklUSE1fTk9ORSBk
aXNhYmxlcworICogICAgICAgaGFzaGluZyBhbmQgdGhlIGJhY2tlbmQgaXMgZnJlZSB0byBjaG9v
c2UgaG93IGl0IHN0ZWVycyBwYWNrZXRzCisgKiAgICAgICB0byBxdWV1ZXMgKHdoaWNoIGlzIHRo
ZSBkZWZhdWx0IGJlaGF2aW91cikuCisgKgorICogWEVOX05FVElGX0NUUkxfVFlQRV9HRVRfSEFT
SF9GTEFHUworICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIFRo
aXMgaXMgc2VudCBieSB0aGUgZnJvbnRlbmQgdG8gcXVlcnkgdGhlIHR5cGVzIG9mIGhhc2ggc3Vw
cG9ydGVkIGJ5CisgKiB0aGUgYmFja2VuZC4KKyAqCisgKiBSZXF1ZXN0OgorICoKKyAqICB0eXBl
ICAgID0gWEVOX05FVElGX0NUUkxfVFlQRV9HRVRfSEFTSF9GTEFHUworICogIGRhdGFbMF0gPSAw
CisgKiAgZGF0YVsxXSA9IDAKKyAqICBkYXRhWzJdID0gMAorICoKKyAqIFJlc3BvbnNlOgorICoK
KyAqICBzdGF0dXMgPSBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfTk9UX1NVUFBPUlRFRCAtIE9wZXJh
dGlvbiBub3Qgc3VwcG9ydGVkCisgKiAgICAgICAgICAgWEVOX05FVElGX0NUUkxfU1RBVFVTX1NV
Q0NFU1MgICAgICAgLSBPcGVyYXRpb24gc3VjY2Vzc2Z1bAorICogIGRhdGEgICA9IHN1cHBvcnRl
ZCBoYXNoIHR5cGVzIChpZiBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwpCisgKgorICogTk9URTog
QSB2YWxpZCBoYXNoIGFsZ29yaXRobSBtdXN0IGJlIHNlbGVjdGVkIGJlZm9yZSB0aGlzIG9wZXJh
dGlvbiBjYW4KKyAqICAgICAgIHN1Y2NlZWQuCisgKgorICogWEVOX05FVElGX0NUUkxfVFlQRV9T
RVRfSEFTSF9GTEFHUworICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoK
KyAqIFRoaXMgaXMgc2VudCBieSB0aGUgZnJvbnRlbmQgdG8gc2V0IHRoZSB0eXBlcyBvZiBoYXNo
IHRoYXQgdGhlIGJhY2tlbmQKKyAqIHNob3VsZCBjYWxjdWxhdGUuIChTZWUgYWJvdmUgZm9yIGhh
c2ggdHlwZSBkZWZpbml0aW9ucykuCisgKiBOb3RlIHRoYXQgdGhlICdtYXhpbWFsJyB0eXBlIG9m
IGhhc2ggc2hvdWxkIGFsd2F5cyBiZSBjaG9zZW4uIEZvcgorICogZXhhbXBsZSwgaWYgdGhlIGZy
b250ZW5kIHNldHMgYm90aCBJUFY0IGFuZCBJUFY0X1RDUCBoYXNoIHR5cGVzIHRoZW4KKyAqIHRo
ZSBsYXR0ZXIgaGFzaCB0eXBlIHNob3VsZCBiZSBjYWxjdWxhdGVkIGZvciBhbnkgVENQIHBhY2tl
dCBhbmQgdGhlCisgKiBmb3JtZXIgb25seSBjYWxjdWxhdGVkIGZvciBub24tVENQIHBhY2tldHMu
CisgKgorICogUmVxdWVzdDoKKyAqCisgKiAgdHlwZSAgICA9IFhFTl9ORVRJRl9DVFJMX1RZUEVf
U0VUX0hBU0hfRkxBR1MKKyAqICBkYXRhWzBdID0gYml0d2lzZSBPUiBvZiBYRU5fTkVUSUZfQ1RS
TF9IQVNIX1RZUEVfKiB2YWx1ZXMKKyAqICBkYXRhWzFdID0gMAorICogIGRhdGFbMl0gPSAwCisg
KgorICogUmVzcG9uc2U6CisgKgorICogIHN0YXR1cyA9IFhFTl9ORVRJRl9DVFJMX1NUQVRVU19O
T1RfU1VQUE9SVEVEICAgICAtIE9wZXJhdGlvbiBub3QKKyAqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWQKKyAqICAgICAgICAgICBY
RU5fTkVUSUZfQ1RSTF9TVEFUVVNfSU5WQUxJRF9QQVJBTUVURVIgLSBPbmUgb3IgbW9yZSBmbGFn
CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dmFsdWUgaXMgaW52YWxpZCBvcgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc3VwcG9ydGVkCisgKiAgICAgICAgICAgWEVOX05FVElGX0NU
UkxfU1RBVFVTX1NVQ0NFU1MgICAgICAgICAgIC0gT3BlcmF0aW9uIHN1Y2Nlc3NmdWwKKyAqICBk
YXRhICAgPSAwCisgKgorICogTk9URTogQSB2YWxpZCBoYXNoIGFsZ29yaXRobSBtdXN0IGJlIHNl
bGVjdGVkIGJlZm9yZSB0aGlzIG9wZXJhdGlvbiBjYW4KKyAqICAgICAgIHN1Y2NlZWQuCisgKiAg
ICAgICBBbHNvLCBzZXR0aW5nIGRhdGFbMF0gdG8gemVybyBkaXNhYmxlcyBoYXNoaW5nIGFuZCB0
aGUgYmFja2VuZAorICogICAgICAgaXMgZnJlZSB0byBjaG9vc2UgaG93IGl0IHN0ZWVycyBwYWNr
ZXRzIHRvIHF1ZXVlcy4KKyAqCisgKiBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9IQVNIX0tFWQor
ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBUaGlzIGlzIHNlbnQg
YnkgdGhlIGZyb250ZW5kIHRvIHNldCB0aGUga2V5IG9mIHRoZSBoYXNoIGlmIHRoZSBhbGdvcml0
aG0KKyAqIHJlcXVpcmVzIGl0LiAoU2VlIGhhc2ggYWxnb3JpdGhtcyBhYm92ZSkuCisgKgorICog
UmVxdWVzdDoKKyAqCisgKiAgdHlwZSAgICA9IFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hf
S0VZCisgKiAgZGF0YVswXSA9IGdyYW50IHJlZmVyZW5jZSBvZiBwYWdlIGNvbnRhaW5pbmcgdGhl
IGtleSAoYXNzdW1lZCB0bworICogICAgICAgICAgICBzdGFydCBhdCBiZWdpbm5pbmcgb2YgZ3Jh
bnQpCisgKiAgZGF0YVsxXSA9IHNpemUgb2Yga2V5IGluIG9jdGV0cworICogIGRhdGFbMl0gPSAw
CisgKgorICogUmVzcG9uc2U6CisgKgorICogIHN0YXR1cyA9IFhFTl9ORVRJRl9DVFJMX1NUQVRV
U19OT1RfU1VQUE9SVEVEICAgICAtIE9wZXJhdGlvbiBub3QKKyAqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWQKKyAqICAgICAgICAg
ICBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfSU5WQUxJRF9QQVJBTUVURVIgLSBLZXkgc2l6ZSBpcyBp
bnZhbGlkCisgKiAgICAgICAgICAgWEVOX05FVElGX0NUUkxfU1RBVFVTX0JVRkZFUl9PVkVSRkxP
VyAgIC0gS2V5IHNpemUgaXMgbGFyZ2VyCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhhbiB0aGUgYmFja2VuZAorICogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRzCisgKiAgICAg
ICAgICAgWEVOX05FVElGX0NUUkxfU1RBVFVTX1NVQ0NFU1MgICAgICAgICAgIC0gT3BlcmF0aW9u
IHN1Y2Nlc3NmdWwKKyAqICBkYXRhICAgPSAwCisgKgorICogTk9URTogQW55IGtleSBvY3RldHMg
bm90IHNwZWNpZmllZCBhcmUgYXNzdW1lZCB0byBiZSB6ZXJvICh0aGUga2V5CisgKiAgICAgICBp
cyBhc3N1bWVkIHRvIGJlIGVtcHR5IGJ5IGRlZmF1bHQpIGFuZCBzcGVjaWZ5aW5nIGEgbmV3IGtl
eQorICogICAgICAgaW52YWxpZGF0ZXMgYW55IHByZXZpb3VzIGtleSwgaGVuY2Ugc3BlY2lmeWlu
ZyBhIGtleSBzaXplIG9mCisgKiAgICAgICB6ZXJvIHdpbGwgY2xlYXIgdGhlIGtleSAod2hpY2gg
ZW5zdXJlcyB0aGF0IHRoZSBjYWxjdWxhdGVkIGhhc2gKKyAqICAgICAgIHdpbGwgYWx3YXlzIGJl
IHplcm8pLgorICogICAgICAgVGhlIG1heGltdW0gc2l6ZSBvZiBrZXkgaXMgYWxnb3JpdGhtIGFu
ZCBiYWNrZW5kIHNwZWNpZmljLCBidXQKKyAqICAgICAgIGlzIGFsc28gbGltaXRlZCBieSB0aGUg
c2luZ2xlIGdyYW50IHJlZmVyZW5jZS4KKyAqICAgICAgIFRoZSBncmFudCByZWZlcmVuY2UgbWF5
IGJlIHJlYWQtb25seSBhbmQgbXVzdCByZW1haW4gdmFsaWQgdW50aWwKKyAqICAgICAgIHRoZSBy
ZXNwb25zZSBoYXMgYmVlbiBwcm9jZXNzZWQuCisgKgorICogWEVOX05FVElGX0NUUkxfVFlQRV9H
RVRfSEFTSF9NQVBQSU5HX1NJWkUKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisgKgorICogVGhpcyBpcyBzZW50IGJ5IHRoZSBmcm9udGVuZCB0byBxdWVyeSB0
aGUgbWF4aW11bSBzaXplIG9mIG1hcHBpbmcKKyAqIHRhYmxlIHN1cHBvcnRlZCBieSB0aGUgYmFj
a2VuZC4gVGhlIHNpemUgaXMgc3BlY2lmaWVkIGluIHRlcm1zIG9mCisgKiB0YWJsZSBlbnRyaWVz
LgorICoKKyAqIFJlcXVlc3Q6CisgKgorICogIHR5cGUgICAgPSBYRU5fTkVUSUZfQ1RSTF9UWVBF
X0dFVF9IQVNIX01BUFBJTkdfU0laRQorICogIGRhdGFbMF0gPSAwCisgKiAgZGF0YVsxXSA9IDAK
KyAqICBkYXRhWzJdID0gMAorICoKKyAqIFJlc3BvbnNlOgorICoKKyAqICBzdGF0dXMgPSBYRU5f
TkVUSUZfQ1RSTF9TVEFUVVNfTk9UX1NVUFBPUlRFRCAtIE9wZXJhdGlvbiBub3Qgc3VwcG9ydGVk
CisgKiAgICAgICAgICAgWEVOX05FVElGX0NUUkxfU1RBVFVTX1NVQ0NFU1MgICAgICAgLSBPcGVy
YXRpb24gc3VjY2Vzc2Z1bAorICogIGRhdGEgICA9IG1heGltdW0gbnVtYmVyIG9mIGVudHJpZXMg
YWxsb3dlZCBpbiB0aGUgbWFwcGluZyB0YWJsZQorICogICAgICAgICAgIChpZiBvcGVyYXRpb24g
d2FzIHN1Y2Nlc3NmdWwpIG9yIHplcm8gaWYgYSBtYXBwaW5nIHRhYmxlIGlzCisgKiAgICAgICAg
ICAgbm90IHN1cHBvcnRlZCAoaS5lLiBoYXNoIG1hcHBpbmcgaXMgZG9uZSBvbmx5IGJ5IG1vZHVs
YXIKKyAqICAgICAgICAgICBhcml0aG1ldGljKS4KKyAqCisgKiBYRU5fTkVUSUZfQ1RSTF9UWVBF
X1NFVF9IQVNIX01BUFBJTkdfU0laRQorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorICoKKyAqIFRoaXMgaXMgc2VudCBieSB0aGUgZnJvbnRlbmQgdG8gc2V0IHRoZSBh
Y3R1YWwgc2l6ZSBvZiB0aGUgbWFwcGluZworICogdGFibGUgdG8gYmUgdXNlZCBieSB0aGUgYmFj
a2VuZC4gVGhlIHNpemUgaXMgc3BlY2lmaWVkIGluIHRlcm1zIG9mCisgKiB0YWJsZSBlbnRyaWVz
LgorICogQW55IHByZXZpb3VzIHRhYmxlIGlzIGludmFsaWRhdGVkIGJ5IHRoaXMgbWVzc2FnZSBh
bmQgYW55IG5ldyB0YWJsZQorICogaXMgYXNzdW1lZCB0byBiZSB6ZXJvIGZpbGxlZC4KKyAqCisg
KiBSZXF1ZXN0OgorICoKKyAqICB0eXBlICAgID0gWEVOX05FVElGX0NUUkxfVFlQRV9TRVRfSEFT
SF9NQVBQSU5HX1NJWkUKKyAqICBkYXRhWzBdID0gbnVtYmVyIG9mIGVudHJpZXMgaW4gbWFwcGlu
ZyB0YWJsZQorICogIGRhdGFbMV0gPSAwCisgKiAgZGF0YVsyXSA9IDAKKyAqCisgKiBSZXNwb25z
ZToKKyAqCisgKiAgc3RhdHVzID0gWEVOX05FVElGX0NUUkxfU1RBVFVTX05PVF9TVVBQT1JURUQg
ICAgIC0gT3BlcmF0aW9uIG5vdAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZAorICogICAgICAgICAgIFhFTl9ORVRJRl9DVFJM
X1NUQVRVU19JTlZBTElEX1BBUkFNRVRFUiAtIFRhYmxlIHNpemUgaXMgaW52YWxpZAorICogICAg
ICAgICAgIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19TVUNDRVNTICAgICAgICAgICAtIE9wZXJhdGlv
biBzdWNjZXNzZnVsCisgKiAgZGF0YSAgID0gMAorICoKKyAqIE5PVEU6IFNldHRpbmcgZGF0YVsw
XSB0byAwIG1lYW5zIHRoYXQgaGFzaCBtYXBwaW5nIHNob3VsZCBiZSBkb25lCisgKiAgICAgICB1
c2luZyBtb2R1bGFyIGFyaXRobWV0aWMuCisgKgorICogWEVOX05FVElGX0NUUkxfVFlQRV9TRVRf
SEFTSF9NQVBQSU5HCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq
CisgKiBUaGlzIGlzIHNlbnQgYnkgdGhlIGZyb250ZW5kIHRvIHNldCB0aGUgY29udGVudCBvZiB0
aGUgdGFibGUgbWFwcGluZworICogaGFzaCB2YWx1ZSB0byBxdWV1ZSBudW1iZXIuIFRoZSBiYWNr
ZW5kIHNob3VsZCBjYWxjdWxhdGUgdGhlIGhhc2ggZnJvbQorICogdGhlIHBhY2tldCBoZWFkZXIs
IHVzZSBpdCBhcyBhbiBpbmRleCBpbnRvIHRoZSB0YWJsZSAobW9kdWxvIHRoZSBzaXplCisgKiBv
ZiB0aGUgdGFibGUpIGFuZCB0aGVuIHN0ZWVyIHRoZSBwYWNrZXQgdG8gdGhlIHF1ZXVlIG51bWJl
ciBmb3VuZCBhdAorICogdGhhdCBpbmRleC4KKyAqCisgKiBSZXF1ZXN0OgorICoKKyAqICB0eXBl
ICAgID0gWEVOX05FVElGX0NUUkxfVFlQRV9TRVRfSEFTSF9NQVBQSU5HCisgKiAgZGF0YVswXSA9
IGdyYW50IHJlZmVyZW5jZSBvZiBwYWdlIGNvbnRhaW5pbmcgdGhlIG1hcHBpbmcgKHN1Yi0pdGFi
bGUKKyAqICAgICAgICAgICAgKGFzc3VtZWQgdG8gc3RhcnQgYXQgYmVnaW5uaW5nIG9mIGdyYW50
KQorICogIGRhdGFbMV0gPSBzaXplIG9mIChzdWItKXRhYmxlIGluIGVudHJpZXMKKyAqICBkYXRh
WzJdID0gb2Zmc2V0LCBpbiBlbnRyaWVzLCBvZiBzdWItdGFibGUgd2l0aGluIG92ZXJhbGwgdGFi
bGUKKyAqCisgKiBSZXNwb25zZToKKyAqCisgKiAgc3RhdHVzID0gWEVOX05FVElGX0NUUkxfU1RB
VFVTX05PVF9TVVBQT1JURUQgICAgIC0gT3BlcmF0aW9uIG5vdAorICogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZAorICogICAgICAg
ICAgIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19JTlZBTElEX1BBUkFNRVRFUiAtIFRhYmxlIHNpemUg
b3IgY29udGVudAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlzIGludmFsaWQKKyAqICAgICAgICAgICBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNf
QlVGRkVSX09WRVJGTE9XICAgLSBUYWJsZSBzaXplIGlzIGxhcmdlcgorICogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYW4gdGhlIGJhY2tlbmQK
KyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dXBwb3J0cworICogICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19TVUNDRVNTICAgICAg
ICAgICAtIE9wZXJhdGlvbiBzdWNjZXNzZnVsCisgKiAgZGF0YSAgID0gMAorICoKKyAqIE5PVEU6
IFRoZSBvdmVyYWxsIHRhYmxlIGhhcyB0aGUgZm9sbG93aW5nIGZvcm1hdDoKKyAqCisgKiAgICAg
ICAgICAwICAgICAxICAgICAyICAgICAzICAgICA0ICAgICA1ICAgICA2ICAgICA3ICBvY3RldAor
ICogICAgICAgKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0t
KworICogICAgICAgfCAgICAgICBtYXBwaW5nWzBdICAgICAgfCAgICAgICBtYXBwaW5nWzFdICAg
ICAgfAorICogICAgICAgKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0t
Ky0tLS0tKworICogICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgLiAgICAgICAgICAgICAg
ICAgICAgICAgfAorICogICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgLiAgICAgICAgICAg
ICAgICAgICAgICAgfAorICogICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgLiAgICAgICAg
ICAgICAgICAgICAgICAgfAorICogICAgICAgKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0t
Ky0tLS0tKy0tLS0tKy0tLS0tKworICogICAgICAgfCAgICAgIG1hcHBpbmdbTi0yXSAgICAgfCAg
ICAgIG1hcHBpbmdbTi0xXSAgICAgfAorICogICAgICAgKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0t
Ky0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKworICoKKyAqICAgICAgIHdoZXJlIE4gaXMgc3BlY2lm
aWVkIGJ5IGEgWEVOX05FVElGX0NUUkxfVFlQRV9TRVRfSEFTSF9NQVBQSU5HX1NJWkUKKyAqICAg
ICAgIG1lc3NhZ2UgYW5kIGVhY2ggIG1hcHBpbmcgbXVzdCBzcGVjaWZpZXMgYSBxdWV1ZSBiZXR3
ZWVuIDAgYW5kCisgKiAgICAgICAibXVsdGktcXVldWUtbnVtLXF1ZXVlcyIgKHNlZSBhYm92ZSku
CisgKiAgICAgICBUaGUgYmFja2VuZCBtYXkgc3VwcG9ydCBhIG1hcHBpbmcgdGFibGUgbGFyZ2Vy
IHRoYW4gY2FuIGJlCisgKiAgICAgICBtYXBwZWQgYnkgYSBzaW5nbGUgZ3JhbnQgcmVmZXJlbmNl
LiBUaHVzIHN1Yi10YWJsZXMgd2l0aGluIGEKKyAqICAgICAgIGxhcmdlciB0YWJsZSBjYW4gYmUg
aW5kaXZpZHVhbGx5IHNldCBieSBzZW5kaW5nIG11bHRpcGxlIG1lc3NhZ2VzCisgKiAgICAgICB3
aXRoIGRpZmZlcmluZyBvZmZzZXQgdmFsdWVzLiBTcGVjaWZ5aW5nIGEgbmV3IHN1Yi10YWJsZSBk
b2VzIG5vdAorICogICAgICAgaW52YWxpZGF0ZSBhbnkgdGFibGUgZGF0YSBvdXRzaWRlIHRoYXQg
cmFuZ2UuCisgKiAgICAgICBUaGUgZ3JhbnQgcmVmZXJlbmNlIG1heSBiZSByZWFkLW9ubHkgYW5k
IG11c3QgcmVtYWluIHZhbGlkIHVudGlsCisgKiAgICAgICB0aGUgcmVzcG9uc2UgaGFzIGJlZW4g
cHJvY2Vzc2VkLgorICovCisKK0RFRklORV9SSU5HX1RZUEVTKHhlbl9uZXRpZl9jdHJsLAorICAg
ICAgICAgICAgICAgICAgc3RydWN0IHhlbl9uZXRpZl9jdHJsX3JlcXVlc3QsCisgICAgICAgICAg
ICAgICAgICBzdHJ1Y3QgeGVuX25ldGlmX2N0cmxfcmVzcG9uc2UpOworCisvKgorICogR3Vlc3Qg
dHJhbnNtaXQKKyAqID09PT09PT09PT09PT09CisgKgorICogVGhpcyBpcyB0aGUgJ3dpcmUnIGZv
cm1hdCBmb3IgdHJhbnNtaXQgKGZyb250ZW5kIC0+IGJhY2tlbmQpIHBhY2tldHM6CisgKgorICog
IEZyYWdtZW50IDE6IG5ldGlmX3R4X3JlcXVlc3RfdCAgLSBmbGFncyA9IE5FVFRYRl8qCisgKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUgPSB0b3RhbCBwYWNrZXQgc2l6
ZQorICogW0V4dHJhIDE6IG5ldGlmX2V4dHJhX2luZm9fdF0gICAgLSAob25seSBpZiBmcmFnbWVu
dCAxIGZsYWdzIGluY2x1ZGUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE5FVFRYRl9leHRyYV9pbmZvKQorICogIC4uLgorICogW0V4dHJhIE46IG5ldGlmX2V4dHJhX2lu
Zm9fdF0gICAgLSAob25seSBpZiBleHRyYSBOLTEgZmxhZ3MgaW5jbHVkZQorICogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX05FVElGX0VYVFJBX01PUkUpCisgKiAgLi4u
CisgKiAgRnJhZ21lbnQgTjogbmV0aWZfdHhfcmVxdWVzdF90ICAtIChvbmx5IGlmIGZyYWdtZW50
IE4tMSBmbGFncyBpbmNsdWRlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBORVRUWEZfbW9yZV9kYXRhIC0gZmxhZ3Mgb24gcHJlY2VkaW5nCisgKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBleHRyYXMgYXJlIG5vdCByZWxldmFudCBoZXJlKQorICog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncyA9IDAKKyAqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IGZyYWdtZW50IHNpemUKKyAqCisgKiBO
T1RFOgorICoKKyAqIFRoaXMgZm9ybWF0IHNsaWdodGx5IGlzIGRpZmZlcmVudCBmcm9tIHRoYXQg
dXNlZCBmb3IgcmVjZWl2ZQorICogKGJhY2tlbmQgLT4gZnJvbnRlbmQpIHBhY2tldHMuIFNwZWNp
ZmljYWxseSwgaW4gYSBtdWx0aS1mcmFnbWVudAorICogcGFja2V0IHRoZSBhY3R1YWwgc2l6ZSBv
ZiBmcmFnbWVudCAxIGNhbiBvbmx5IGJlIGRldGVybWluZWQgYnkKKyAqIHN1YnRyYWN0aW5nIHRo
ZSBzaXplcyBvZiBmcmFnbWVudHMgMi4uTiBmcm9tIHRoZSB0b3RhbCBwYWNrZXQgc2l6ZS4KKyAq
CisgKiBSaW5nIHNsb3Qgc2l6ZSBpcyAxMiBvY3RldHMsIGhvd2V2ZXIgbm90IGFsbCByZXF1ZXN0
L3Jlc3BvbnNlCisgKiBzdHJ1Y3RzIHVzZSB0aGUgZnVsbCBzaXplLgorICoKKyAqIHR4IHJlcXVl
c3QgZGF0YSAobmV0aWZfdHhfcmVxdWVzdF90KQorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisgKgorICogICAgMCAgICAgMSAgICAgMiAgICAgMyAgICAgNCAgICAgNSAg
ICAgNiAgICAgNyAgb2N0ZXQKKyAqICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0t
LSstLS0tLSstLS0tLSsKKyAqIHwgZ3JhbnQgcmVmICAgICAgICAgICAgIHwgb2Zmc2V0ICAgIHwg
ZmxhZ3MgICAgIHwKKyAqICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0t
LSstLS0tLSsKKyAqIHwgaWQgICAgICAgIHwgc2l6ZSAgICAgIHwKKyAqICstLS0tLSstLS0tLSst
LS0tLSstLS0tLSsKKyAqCisgKiBncmFudCByZWY6IFJlZmVyZW5jZSB0byBidWZmZXIgcGFnZS4K
KyAqIG9mZnNldDogT2Zmc2V0IHdpdGhpbiBidWZmZXIgcGFnZS4KKyAqIGZsYWdzOiBORVRUWEZf
Ki4KKyAqIGlkOiByZXF1ZXN0IGlkZW50aWZpZXIsIGVjaG9lZCBpbiByZXNwb25zZS4KKyAqIHNp
emU6IHBhY2tldCBzaXplIGluIGJ5dGVzLgorICoKKyAqIHR4IHJlc3BvbnNlIChuZXRpZl90eF9y
ZXNwb25zZV90KQorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICog
ICAgMCAgICAgMSAgICAgMiAgICAgMyAgICAgNCAgICAgNSAgICAgNiAgICAgNyAgb2N0ZXQKKyAq
ICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKKyAqIHwg
aWQgICAgICAgIHwgc3RhdHVzICAgIHwgdW51c2VkICAgICAgICAgICAgICAgIHwKKyAqICstLS0t
LSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKKyAqIHwgdW51c2Vk
ICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKKyAqCisgKiBp
ZDogcmVmbGVjdHMgaWQgaW4gdHJhbnNtaXQgcmVxdWVzdAorICogc3RhdHVzOiBORVRJRl9SU1Bf
KgorICoKKyAqIEd1ZXN0IHJlY2VpdmUKKyAqID09PT09PT09PT09PT0KKyAqCisgKiBUaGlzIGlz
IHRoZSAnd2lyZScgZm9ybWF0IGZvciByZWNlaXZlIChiYWNrZW5kIC0+IGZyb250ZW5kKSBwYWNr
ZXRzOgorICoKKyAqICBGcmFnbWVudCAxOiBuZXRpZl9yeF9yZXF1ZXN0X3QgIC0gZmxhZ3MgPSBO
RVRSWEZfKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplID0gZnJh
Z21lbnQgc2l6ZQorICogW0V4dHJhIDE6IG5ldGlmX2V4dHJhX2luZm9fdF0gICAgLSAob25seSBp
ZiBmcmFnbWVudCAxIGZsYWdzIGluY2x1ZGUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE5FVFJYRl9leHRyYV9pbmZvKQorICogIC4uLgorICogW0V4dHJhIE46IG5ldGlm
X2V4dHJhX2luZm9fdF0gICAgLSAob25seSBpZiBleHRyYSBOLTEgZmxhZ3MgaW5jbHVkZQorICog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX05FVElGX0VYVFJBX01PUkUp
CiAgKiAgLi4uCi0gKiAgUmVxdWVzdCBOOiBuZXRpZl90eF9yZXF1ZXN0IC0tIDAKKyAqICBGcmFn
bWVudCBOOiBuZXRpZl9yeF9yZXF1ZXN0X3QgIC0gKG9ubHkgaWYgZnJhZ21lbnQgTi0xIGZsYWdz
IGluY2x1ZGUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFJYRl9t
b3JlX2RhdGEgLSBmbGFncyBvbiBwcmVjZWRpbmcKKyAqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGV4dHJhcyBhcmUgbm90IHJlbGV2YW50IGhlcmUpCisgKiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzID0gMAorICogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplID0gZnJhZ21lbnQgc2l6ZQorICoKKyAqIE5PVEU6CisgKgor
ICogVGhpcyBmb3JtYXQgc2xpZ2h0bHkgaXMgZGlmZmVyZW50IGZyb20gdGhhdCB1c2VkIGZvciB0
cmFuc21pdAorICogKGZyb250ZW5kIC0+IGJhY2tlbmQpIHBhY2tldHMuIFNwZWNpZmljYWxseSwg
aW4gYSBtdWx0aS1mcmFnbWVudAorICogcGFja2V0IHRoZSBzaXplIG9mIHRoZSBwYWNrZXQgY2Fu
IG9ubHkgYmUgZGV0ZXJtaW5lZCBieSBzdW1taW5nIHRoZQorICogc2l6ZXMgb2YgZnJhZ21lbnRz
IDEuLk4uCisgKgorICogUmluZyBzbG90IHNpemUgaXMgOCBvY3RldHMuCisgKgorICogcnggcmVx
dWVzdCAobmV0aWZfcnhfcmVxdWVzdF90KQorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorICoKKyAqICAgIDAgICAgIDEgICAgIDIgICAgIDMgICAgIDQgICAgIDUgICAgIDYgICAg
IDcgIG9jdGV0CisgKiArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0r
LS0tLS0rCisgKiB8IGlkICAgICAgICB8IHBhZCAgICAgICB8IGdyZWYgICAgICAgICAgICAgICAg
ICB8CisgKiArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0r
CisgKgorICogaWQ6IHJlcXVlc3QgaWRlbnRpZmllciwgZWNob2VkIGluIHJlc3BvbnNlLgorICog
Z3JlZjogcmVmZXJlbmNlIHRvIGluY29taW5nIGdyYW50ZWQgZnJhbWUuCisgKgorICogcnggcmVz
cG9uc2UgKG5ldGlmX3J4X3Jlc3BvbnNlX3QpCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKyAqCisgKiAgICAwICAgICAxICAgICAyICAgICAzICAgICA0ICAgICA1ICAgICA2
ICAgICA3ICBvY3RldAorICogKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0t
LS0tKy0tLS0tKworICogfCBpZCAgICAgICAgfCBvZmZzZXQgICAgfCBmbGFncyAgICAgfCBzdGF0
dXMgICAgfAorICogKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0t
LS0tKworICoKKyAqIGlkOiByZWZsZWN0cyBpZCBpbiByZWNlaXZlIHJlcXVlc3QKKyAqIG9mZnNl
dDogb2Zmc2V0IGluIHBhZ2Ugb2Ygc3RhcnQgb2YgcmVjZWl2ZWQgcGFja2V0CisgKiBmbGFnczog
TkVUUlhGXyoKKyAqIHN0YXR1czogLXZlOiBORVRJRl9SU1BfKjsgK3ZlOiBSeCdlZCBwa3Qgc2l6
ZS4KKyAqCisgKiBOT1RFOiBIaXN0b3JpY2FsbHksIHRvIHN1cHBvcnQgR1NPIG9uIHRoZSBmcm9u
dGVuZCByZWNlaXZlIHNpZGUsIExpbnV4CisgKiAgICAgICBuZXRmcm9udCBkb2VzIG5vdCBtYWtl
IHVzZSBvZiB0aGUgcnggcmVzcG9uc2UgaWQgKGJlY2F1c2UsIGFzCisgKiAgICAgICBkZXNjcmli
ZWQgYmVsb3csIGV4dHJhIGluZm8gc3RydWN0dXJlcyBvdmVybGF5IHRoZSBpZCBmaWVsZCkuCisg
KiAgICAgICBJbnN0ZWFkIGl0IGFzc3VtZXMgdGhhdCByZXNwb25zZXMgYWx3YXlzIGFwcGVhciBp
biB0aGUgc2FtZSByaW5nCisgKiAgICAgICBzbG90IGFzIHRoZWlyIGNvcnJlc3BvbmRpbmcgcmVx
dWVzdC4gVGh1cywgdG8gbWFpbnRhaW4KKyAqICAgICAgIGNvbXBhdGliaWxpdHksIGJhY2tlbmRz
IG11c3QgbWFrZSBzdXJlIHRoaXMgaXMgdGhlIGNhc2UuCisgKgorICogRXh0cmEgSW5mbworICog
PT09PT09PT09PQorICoKKyAqIENhbiBiZSBwcmVzZW50IGlmIGluaXRpYWwgcmVxdWVzdCBvciBy
ZXNwb25zZSBoYXMgTkVUe1QsUn1YRl9leHRyYV9pbmZvLAorICogb3IgcHJldmlvdXMgZXh0cmEg
cmVxdWVzdCBoYXMgWEVOX05FVElGX0VYVFJBX01PUkUuCisgKgorICogVGhlIHN0cnVjdCB0aGVy
ZWZvcmUgbmVlZHMgdG8gZml0IGludG8gZWl0aGVyIGEgdHggb3Igcnggc2xvdCBhbmQKKyAqIGlz
IHRoZXJlZm9yZSBsaW1pdGVkIHRvIDggb2N0ZXRzLgorICoKKyAqIE5PVEU6IEJlY2F1c2UgZXh0
cmEgaW5mbyBkYXRhIG92ZXJsYXlzIHRoZSB1c3VhbCByZXF1ZXN0L3Jlc3BvbnNlCisgKiAgICAg
ICBzdHJ1Y3R1cmVzLCB0aGVyZSBpcyBubyBpZCBpbmZvcm1hdGlvbiBpbiB0aGUgb3Bwb3NpdGUg
ZGlyZWN0aW9uLgorICogICAgICAgU28sIGlmIGFuIGV4dHJhIGluZm8gb3ZlcmxheXMgYW4gcngg
cmVzcG9uc2UgdGhlIGZyb250ZW5kIGNhbgorICogICAgICAgYXNzdW1lIHRoYXQgaXQgaXMgaW4g
dGhlIHNhbWUgcmluZyBzbG90IGFzIHRoZSByZXF1ZXN0IHRoYXQgd2FzCisgKiAgICAgICBjb25z
dW1lZCB0byBtYWtlIHRoZSBzbG90IGF2YWlsYWJsZSwgYW5kIHRoZSBiYWNrZW5kIG11c3QgZW5z
dXJlCisgKiAgICAgICB0aGlzIGFzc3VtcHRpb24gaXMgdHJ1ZS4KKyAqCisgKiBleHRyYSBpbmZv
IChuZXRpZl9leHRyYV9pbmZvX3QpCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisgKgorICogR2VuZXJhbCBmb3JtYXQ6CisgKgorICogICAgMCAgICAgMSAgICAgMiAgICAgMyAg
ICAgNCAgICAgNSAgICAgNiAgICAgNyAgb2N0ZXQKKyAqICstLS0tLSstLS0tLSstLS0tLSstLS0t
LSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKKyAqIHx0eXBlIHxmbGFnc3wgdHlwZSBzcGVjaWZp
YyBkYXRhICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0t
LSstLS0tLSstLS0tLSstLS0tLSsKKyAqIHwgcGFkZGluZyBmb3IgdHggICAgICAgIHwKKyAqICst
LS0tLSstLS0tLSstLS0tLSstLS0tLSsKKyAqCisgKiB0eXBlOiBYRU5fTkVUSUZfRVhUUkFfVFlQ
RV8qCisgKiBmbGFnczogWEVOX05FVElGX0VYVFJBX0ZMQUdfKgorICogcGFkZGluZyBmb3IgdHg6
IHByZXNlbnQgb25seSBpbiB0aGUgdHggY2FzZSBkdWUgdG8gOCBvY3RldCBsaW1pdAorICogICAg
ICAgICAgICAgICAgIGZyb20gcnggY2FzZS4gTm90IHNob3duIGluIHR5cGUgc3BlY2lmaWMgZW50
cmllcworICogICAgICAgICAgICAgICAgIGJlbG93LgorICoKKyAqIFhFTl9ORVRJRl9FWFRSQV9U
WVBFX0dTTzoKKyAqCisgKiAgICAwICAgICAxICAgICAyICAgICAzICAgICA0ICAgICA1ICAgICA2
ICAgICA3ICBvY3RldAorICogKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0t
LS0tKy0tLS0tKworICogfHR5cGUgfGZsYWdzfCBzaXplICAgICAgfHR5cGUgfCBwYWQgfCBmZWF0
dXJlcyAgfAorICogKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0t
LS0tKworICoKKyAqIHR5cGU6IE11c3QgYmUgWEVOX05FVElGX0VYVFJBX1RZUEVfR1NPCisgKiBm
bGFnczogWEVOX05FVElGX0VYVFJBX0ZMQUdfKgorICogc2l6ZTogTWF4aW11bSBwYXlsb2FkIHNp
emUgb2YgZWFjaCBzZWdtZW50LiBGb3IgZXhhbXBsZSwKKyAqICAgICAgIGZvciBUQ1AgdGhpcyBp
cyBqdXN0IHRoZSBwYXRoIE1TUy4KKyAqIHR5cGU6IFhFTl9ORVRJRl9HU09fVFlQRV8qOiBUaGlz
IGRldGVybWluZXMgdGhlIHByb3RvY29sIG9mCisgKiAgICAgICB0aGUgcGFja2V0IGFuZCBhbnkg
ZXh0cmEgZmVhdHVyZXMgcmVxdWlyZWQgdG8gc2VnbWVudCB0aGUKKyAqICAgICAgIHBhY2tldCBw
cm9wZXJseS4KKyAqIGZlYXR1cmVzOiBFTl9ORVRJRl9HU09fRkVBVF8qOiBUaGlzIHNwZWNpZmll
cyBhbnkgZXh0cmEgR1NPCisgKiAgICAgICAgICAgZmVhdHVyZXMgcmVxdWlyZWQgdG8gcHJvY2Vz
cyB0aGlzIHBhY2tldCwgc3VjaCBhcyBFQ04KKyAqICAgICAgICAgICBzdXBwb3J0IGZvciBUQ1B2
NC4KKyAqCisgKiBYRU5fTkVUSUZfRVhUUkFfVFlQRV9NQ0FTVF97QURELERFTH06CisgKgorICog
ICAgMCAgICAgMSAgICAgMiAgICAgMyAgICAgNCAgICAgNSAgICAgNiAgICAgNyAgb2N0ZXQKKyAq
ICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKKyAqIHx0
eXBlIHxmbGFnc3wgYWRkciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0t
LSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKKyAqCisgKiB0eXBl
OiBNdXN0IGJlIFhFTl9ORVRJRl9FWFRSQV9UWVBFX01DQVNUX3tBREQsREVMfQorICogZmxhZ3M6
IFhFTl9ORVRJRl9FWFRSQV9GTEFHXyoKKyAqIGFkZHI6IGFkZHJlc3MgdG8gYWRkL3JlbW92ZQor
ICoKKyAqIFhFTl9ORVRJRl9FWFRSQV9UWVBFX0hBU0g6CisgKgorICogQSBiYWNrZW5kIHRoYXQg
c3VwcG9ydHMgdGVvcGxpdHogaGFzaGluZyBpcyBhc3N1bWVkIHRvIGFjY2VwdAorICogdGhpcyB0
eXBlIG9mIGV4dHJhIGluZm8gaW4gdHJhbnNtaXQgcGFja2V0cy4KKyAqIEEgZnJvbnRlbmQgdGhh
dCBlbmFibGVzIGhhc2hpbmcgaXMgYXNzdW1lZCB0byBhY2NlcHQKKyAqIHRoaXMgdHlwZSBvZiBl
eHRyYSBpbmZvIGluIHJlY2VpdmUgcGFja2V0cy4KKyAqCisgKiAgICAwICAgICAxICAgICAyICAg
ICAzICAgICA0ICAgICA1ICAgICA2ICAgICA3ICBvY3RldAorICogKy0tLS0tKy0tLS0tKy0tLS0t
Ky0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKworICogfHR5cGUgfGZsYWdzfGh0eXBlfCBh
bGcgfExTQiAtLS0tIHZhbHVlIC0tLS0gTVNCfAorICogKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0t
Ky0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKworICoKKyAqIHR5cGU6IE11c3QgYmUgWEVOX05FVElG
X0VYVFJBX1RZUEVfSEFTSAorICogZmxhZ3M6IFhFTl9ORVRJRl9FWFRSQV9GTEFHXyoKKyAqIGh0
eXBlOiBIYXNoIHR5cGUgKG9uZSBvZiBfWEVOX05FVElGX0NUUkxfSEFTSF9UWVBFXyogLSBzZWUg
YWJvdmUpCisgKiBhbGc6IFRoZSBhbGdvcml0aG0gdXNlZCB0byBjYWxjdWxhdGUgdGhlIGhhc2gg
KG9uZSBvZgorICogICAgICBYRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfQUxHT1JJVEhNXyogLSBz
ZWUgYWJvdmUpCisgKiB2YWx1ZTogSGFzaCB2YWx1ZQogICovCiAKIC8qIFByb3RvY29sIGNoZWNr
c3VtIGZpZWxkIGlzIGJsYW5rIGluIHRoZSBwYWNrZXQgKGhhcmR3YXJlIG9mZmxvYWQpPyAqLwpA
QCAtMTY0LDExICs4MzQsMTEgQEAKIAogI2RlZmluZSBYRU5fTkVUSUZfTUFYX1RYX1NJWkUgMHhG
RkZGCiBzdHJ1Y3QgbmV0aWZfdHhfcmVxdWVzdCB7Ci0gICAgZ3JhbnRfcmVmX3QgZ3JlZjsgICAg
ICAvKiBSZWZlcmVuY2UgdG8gYnVmZmVyIHBhZ2UgKi8KLSAgICB1aW50MTZfdCBvZmZzZXQ7ICAg
ICAgIC8qIE9mZnNldCB3aXRoaW4gYnVmZmVyIHBhZ2UgKi8KLSAgICB1aW50MTZfdCBmbGFnczsg
ICAgICAgIC8qIE5FVFRYRl8qICovCi0gICAgdWludDE2X3QgaWQ7ICAgICAgICAgICAvKiBFY2hv
ZWQgaW4gcmVzcG9uc2UgbWVzc2FnZS4gKi8KLSAgICB1aW50MTZfdCBzaXplOyAgICAgICAgIC8q
IFBhY2tldCBzaXplIGluIGJ5dGVzLiAgICAgICAqLworICAgIGdyYW50X3JlZl90IGdyZWY7Cisg
ICAgdWludDE2X3Qgb2Zmc2V0OworICAgIHVpbnQxNl90IGZsYWdzOworICAgIHVpbnQxNl90IGlk
OworICAgIHVpbnQxNl90IHNpemU7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgbmV0aWZfdHhfcmVxdWVz
dCBuZXRpZl90eF9yZXF1ZXN0X3Q7CiAKQEAgLTE3Nyw5ICs4NDcsMTAgQEAgdHlwZWRlZiBzdHJ1
Y3QgbmV0aWZfdHhfcmVxdWVzdCBuZXRpZl90eF9yZXF1ZXN0X3Q7CiAjZGVmaW5lIFhFTl9ORVRJ
Rl9FWFRSQV9UWVBFX0dTTyAgICAgICAoMSkgIC8qIHUuZ3NvICovCiAjZGVmaW5lIFhFTl9ORVRJ
Rl9FWFRSQV9UWVBFX01DQVNUX0FERCAoMikgIC8qIHUubWNhc3QgKi8KICNkZWZpbmUgWEVOX05F
VElGX0VYVFJBX1RZUEVfTUNBU1RfREVMICgzKSAgLyogdS5tY2FzdCAqLwotI2RlZmluZSBYRU5f
TkVUSUZfRVhUUkFfVFlQRV9NQVggICAgICAgKDQpCisjZGVmaW5lIFhFTl9ORVRJRl9FWFRSQV9U
WVBFX0hBU0ggICAgICAoNCkgIC8qIHUuaGFzaCAqLworI2RlZmluZSBYRU5fTkVUSUZfRVhUUkFf
VFlQRV9NQVggICAgICAgKDUpCiAKLS8qIG5ldGlmX2V4dHJhX2luZm8gZmxhZ3MuICovCisvKiBu
ZXRpZl9leHRyYV9pbmZvX3QgZmxhZ3MuICovCiAjZGVmaW5lIF9YRU5fTkVUSUZfRVhUUkFfRkxB
R19NT1JFICgwKQogI2RlZmluZSBYRU5fTkVUSUZfRVhUUkFfRkxBR19NT1JFICAoMVU8PF9YRU5f
TkVUSUZfRVhUUkFfRkxBR19NT1JFKQogCkBAIC0xODksNTUgKzg2MCwyNyBAQCB0eXBlZGVmIHN0
cnVjdCBuZXRpZl90eF9yZXF1ZXN0IG5ldGlmX3R4X3JlcXVlc3RfdDsKICNkZWZpbmUgWEVOX05F
VElGX0dTT19UWVBFX1RDUFY2ICAgICAgICAoMikKIAogLyoKLSAqIFRoaXMgc3RydWN0dXJlIG5l
ZWRzIHRvIGZpdCB3aXRoaW4gYm90aCBuZXRpZl90eF9yZXF1ZXN0IGFuZAotICogbmV0aWZfcnhf
cmVzcG9uc2UgZm9yIGNvbXBhdGliaWxpdHkuCisgKiBUaGlzIHN0cnVjdHVyZSBuZWVkcyB0byBm
aXQgd2l0aGluIGJvdGggbmV0aWZfdHhfcmVxdWVzdF90IGFuZAorICogbmV0aWZfcnhfcmVzcG9u
c2VfdCBmb3IgY29tcGF0aWJpbGl0eS4KICAqLwogc3RydWN0IG5ldGlmX2V4dHJhX2luZm8gewot
ICAgIHVpbnQ4X3QgdHlwZTsgIC8qIFhFTl9ORVRJRl9FWFRSQV9UWVBFXyogKi8KLSAgICB1aW50
OF90IGZsYWdzOyAvKiBYRU5fTkVUSUZfRVhUUkFfRkxBR18qICovCi0KKyAgICB1aW50OF90IHR5
cGU7CisgICAgdWludDhfdCBmbGFnczsKICAgICB1bmlvbiB7Ci0gICAgICAgIC8qCi0gICAgICAg
ICAqIFhFTl9ORVRJRl9FWFRSQV9UWVBFX0dTTzoKLSAgICAgICAgICovCiAgICAgICAgIHN0cnVj
dCB7Ci0gICAgICAgICAgICAvKgotICAgICAgICAgICAgICogTWF4aW11bSBwYXlsb2FkIHNpemUg
b2YgZWFjaCBzZWdtZW50LiBGb3IgZXhhbXBsZSwgZm9yIFRDUCB0aGlzCi0gICAgICAgICAgICAg
KiBpcyBqdXN0IHRoZSBwYXRoIE1TUy4KLSAgICAgICAgICAgICAqLwogICAgICAgICAgICAgdWlu
dDE2X3Qgc2l6ZTsKLQotICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIEdTTyB0eXBlLiBU
aGlzIGRldGVybWluZXMgdGhlIHByb3RvY29sIG9mIHRoZSBwYWNrZXQgYW5kIGFueQotICAgICAg
ICAgICAgICogZXh0cmEgZmVhdHVyZXMgcmVxdWlyZWQgdG8gc2VnbWVudCB0aGUgcGFja2V0IHBy
b3Blcmx5LgotICAgICAgICAgICAgICovCi0gICAgICAgICAgICB1aW50OF90IHR5cGU7IC8qIFhF
Tl9ORVRJRl9HU09fVFlQRV8qICovCi0KLSAgICAgICAgICAgIC8qIEZ1dHVyZSBleHBhbnNpb24u
ICovCisgICAgICAgICAgICB1aW50OF90IHR5cGU7CiAgICAgICAgICAgICB1aW50OF90IHBhZDsK
LQotICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIEdTTyBmZWF0dXJlcy4gVGhpcyBzcGVj
aWZpZXMgYW55IGV4dHJhIEdTTyBmZWF0dXJlcyByZXF1aXJlZAotICAgICAgICAgICAgICogdG8g
cHJvY2VzcyB0aGlzIHBhY2tldCwgc3VjaCBhcyBFQ04gc3VwcG9ydCBmb3IgVENQdjQuCi0gICAg
ICAgICAgICAgKi8KLSAgICAgICAgICAgIHVpbnQxNl90IGZlYXR1cmVzOyAvKiBYRU5fTkVUSUZf
R1NPX0ZFQVRfKiAqLworICAgICAgICAgICAgdWludDE2X3QgZmVhdHVyZXM7CiAgICAgICAgIH0g
Z3NvOwotCi0gICAgICAgIC8qCi0gICAgICAgICAqIFhFTl9ORVRJRl9FWFRSQV9UWVBFX01DQVNU
X3tBREQsREVMfToKLSAgICAgICAgICogQmFja2VuZCBhZHZlcnRpc2VzIGF2YWlsYWJpbGl0eSB2
aWEgJ2ZlYXR1cmUtbXVsdGljYXN0LWNvbnRyb2wnCi0gICAgICAgICAqIHhlbmJ1cyBub2RlIGNv
bnRhaW5pbmcgdmFsdWUgJzEnLgotICAgICAgICAgKiBGcm9udGVuZCByZXF1ZXN0cyB0aGlzIGZl
YXR1cmUgYnkgYWR2ZXJ0aXNpbmcKLSAgICAgICAgICogJ3JlcXVlc3QtbXVsdGljYXN0LWNvbnRy
b2wnIHhlbmJ1cyBub2RlIGNvbnRhaW5pbmcgdmFsdWUgJzEnLgotICAgICAgICAgKiBJZiBtdWx0
aWNhc3QgY29udHJvbCBpcyByZXF1ZXN0ZWQgdGhlbiBtdWx0aWNhc3QgZmxvb2RpbmcgaXMKLSAg
ICAgICAgICogZGlzYWJsZWQgYW5kIHRoZSBmcm9udGVuZCBtdXN0IGV4cGxpY2l0bHkgcmVnaXN0
ZXIgaXRzIGludGVyZXN0Ci0gICAgICAgICAqIGluIG11bHRpY2FzdCBncm91cHMgdXNpbmcgZHVt
bXkgdHJhbnNtaXQgcmVxdWVzdHMgY29udGFpbmluZwotICAgICAgICAgKiBNQ0FTVF97QURELERF
TH0gZXh0cmEtaW5mbyBmcmFnbWVudHMuCi0gICAgICAgICAqLwogICAgICAgICBzdHJ1Y3Qgewot
ICAgICAgICAgICAgdWludDhfdCBhZGRyWzZdOyAvKiBBZGRyZXNzIHRvIGFkZC9yZW1vdmUuICov
CisgICAgICAgICAgICB1aW50OF90IGFkZHJbNl07CiAgICAgICAgIH0gbWNhc3Q7Ci0KKyAgICAg
ICAgc3RydWN0IHsKKyAgICAgICAgICAgIHVpbnQ4X3QgdHlwZTsKKyAgICAgICAgICAgIHVpbnQ4
X3QgYWxnb3JpdGhtOworICAgICAgICAgICAgdWludDhfdCB2YWx1ZVs0XTsKKyAgICAgICAgfSBo
YXNoOwogICAgICAgICB1aW50MTZfdCBwYWRbM107CiAgICAgfSB1OwogfTsKQEAgLTI0NSwxMyAr
ODg4LDE0IEBAIHR5cGVkZWYgc3RydWN0IG5ldGlmX2V4dHJhX2luZm8gbmV0aWZfZXh0cmFfaW5m
b190OwogCiBzdHJ1Y3QgbmV0aWZfdHhfcmVzcG9uc2UgewogICAgIHVpbnQxNl90IGlkOwotICAg
IGludDE2X3QgIHN0YXR1czsgICAgICAgLyogTkVUSUZfUlNQXyogKi8KKyAgICBpbnQxNl90ICBz
dGF0dXM7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgbmV0aWZfdHhfcmVzcG9uc2UgbmV0aWZfdHhfcmVz
cG9uc2VfdDsKIAogc3RydWN0IG5ldGlmX3J4X3JlcXVlc3QgewogICAgIHVpbnQxNl90ICAgIGlk
OyAgICAgICAgLyogRWNob2VkIGluIHJlc3BvbnNlIG1lc3NhZ2UuICAgICAgICAqLwotICAgIGdy
YW50X3JlZl90IGdyZWY7ICAgICAgLyogUmVmZXJlbmNlIHRvIGluY29taW5nIGdyYW50ZWQgZnJh
bWUgKi8KKyAgICB1aW50MTZfdCAgICBwYWQ7CisgICAgZ3JhbnRfcmVmX3QgZ3JlZjsKIH07CiB0
eXBlZGVmIHN0cnVjdCBuZXRpZl9yeF9yZXF1ZXN0IG5ldGlmX3J4X3JlcXVlc3RfdDsKIApAQCAt
MjcxLDExICs5MTUsMTUgQEAgdHlwZWRlZiBzdHJ1Y3QgbmV0aWZfcnhfcmVxdWVzdCBuZXRpZl9y
eF9yZXF1ZXN0X3Q7CiAjZGVmaW5lIF9ORVRSWEZfZXh0cmFfaW5mbyAgICAgKDMpCiAjZGVmaW5l
ICBORVRSWEZfZXh0cmFfaW5mbyAgICAgKDFVPDxfTkVUUlhGX2V4dHJhX2luZm8pCiAKKy8qIFBh
Y2tldCBoYXMgR1NPIHByZWZpeC4gRGVwcmVjYXRlZCBidXQgaW5jbHVkZWQgZm9yIGNvbXBhdGli
aWxpdHkgKi8KKyNkZWZpbmUgX05FVFJYRl9nc29fcHJlZml4ICAgICAoNCkKKyNkZWZpbmUgIE5F
VFJYRl9nc29fcHJlZml4ICAgICAoMVU8PF9ORVRSWEZfZ3NvX3ByZWZpeCkKKwogc3RydWN0IG5l
dGlmX3J4X3Jlc3BvbnNlIHsKICAgICB1aW50MTZfdCBpZDsKLSAgICB1aW50MTZfdCBvZmZzZXQ7
ICAgICAgIC8qIE9mZnNldCBpbiBwYWdlIG9mIHN0YXJ0IG9mIHJlY2VpdmVkIHBhY2tldCAgKi8K
LSAgICB1aW50MTZfdCBmbGFnczsgICAgICAgIC8qIE5FVFJYRl8qICovCi0gICAgaW50MTZfdCAg
c3RhdHVzOyAgICAgICAvKiAtdmU6IE5FVElGX1JTUF8qIDsgK3ZlOiBSeCdlZCBwa3Qgc2l6ZS4g
Ki8KKyAgICB1aW50MTZfdCBvZmZzZXQ7CisgICAgdWludDE2X3QgZmxhZ3M7CisgICAgaW50MTZf
dCAgc3RhdHVzOwogfTsKIHR5cGVkZWYgc3RydWN0IG5ldGlmX3J4X3Jlc3BvbnNlIG5ldGlmX3J4
X3Jlc3BvbnNlX3Q7CiAKQEAgLTI4OSw3ICs5MzcsNyBAQCBERUZJTkVfUklOR19UWVBFUyhuZXRp
Zl9yeCwgc3RydWN0IG5ldGlmX3J4X3JlcXVlc3QsIHN0cnVjdCBuZXRpZl9yeF9yZXNwb25zZSk7
CiAjZGVmaW5lIE5FVElGX1JTUF9EUk9QUEVEICAgICAgICAgLTIKICNkZWZpbmUgTkVUSUZfUlNQ
X0VSUk9SICAgICAgICAgICAtMQogI2RlZmluZSBORVRJRl9SU1BfT0tBWSAgICAgICAgICAgICAw
Ci0vKiBObyByZXNwb25zZTogdXNlZCBmb3IgYXV4aWxpYXJ5IHJlcXVlc3RzIChlLmcuLCBuZXRp
Zl90eF9leHRyYSkuICovCisvKiBObyByZXNwb25zZTogdXNlZCBmb3IgYXV4aWxpYXJ5IHJlcXVl
c3RzIChlLmcuLCBuZXRpZl9leHRyYV9pbmZvX3QpLiAqLwogI2RlZmluZSBORVRJRl9SU1BfTlVM
TCAgICAgICAgICAgICAxCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vaW8vcHJv
dG9jb2xzLmggYi9pbmNsdWRlL3hlbi9pby9wcm90b2NvbHMuaAppbmRleCA4MGIxOTZiLi40MGE5
YjMwIDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi9pby9wcm90b2NvbHMuaAorKysgYi9pbmNsdWRl
L3hlbi9pby9wcm90b2NvbHMuaApAQCAtMTgsNiArMTgsOCBAQAogICogTElBQklMSVRZLCBXSEVU
SEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcK
ICAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRI
RSBVU0UgT1IgT1RIRVIKICAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5
cmlnaHQgKGMpIDIwMDgsIEtlaXIgRnJhc2VyCiAgKi8KIAogI2lmbmRlZiBfX1hFTl9QUk9UT0NP
TFNfSF9fCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9pby9wdmNhbGxzLmggYi9pbmNsdWRlL3hl
bi9pby9wdmNhbGxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2I4MTcx
MgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL2lvL3B2Y2FsbHMuaApAQCAtMCwwICsx
LDE1MyBAQAorLyoKKyAqIHB2Y2FsbHMuaCAtLSBYZW4gUFYgQ2FsbHMgUHJvdG9jb2wKKyAqCisg
KiBSZWZlciB0byBkb2NzL21pc2MvcHZjYWxscy5tYXJrZG93biBmb3IgdGhlIHNwZWNpZmljYXRp
b24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwg
dG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBh
c3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRl
YWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0
IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw
dWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9m
IHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJl
IGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p
c3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0
YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMg
UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP
UgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMg
T1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1Ig
T1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRP
UlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElP
TiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBU
SEUgU09GVFdBUkUuCisgKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFN0ZWZhbm8gU3RhYmVsbGlu
aSA8c3RlZmFub0BhcG9yZXRvLmNvbT4KKyAqLworCisjaWZuZGVmIF9fWEVOX1BVQkxJQ19JT19Q
VkNBTExTX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfSU9fUFZDQUxMU19IX18KKworI2luY2x1
ZGUgIi4uL2dyYW50X3RhYmxlLmgiCisjaW5jbHVkZSAicmluZy5oIgorCisvKgorICogU2VlIGRv
Y3MvbWlzYy9wdmNhbGxzLm1hcmtkb3duIGluIHhlbi5naXQgZm9yIHRoZSBmdWxsIHNwZWNpZmlj
YXRpb246CisgKiBodHRwczovL3hlbmJpdHMueGVuLm9yZy9kb2NzL3Vuc3RhYmxlL21pc2MvcHZj
YWxscy5odG1sCisgKi8KK3N0cnVjdCBwdmNhbGxzX2RhdGFfaW50ZiB7CisgICAgUklOR19JRFgg
aW5fY29ucywgaW5fcHJvZCwgaW5fZXJyb3I7CisKKyAgICB1aW50OF90IHBhZDFbNTJdOworCisg
ICAgUklOR19JRFggb3V0X2NvbnMsIG91dF9wcm9kLCBvdXRfZXJyb3I7CisKKyAgICB1aW50OF90
IHBhZDJbNTJdOworCisgICAgUklOR19JRFggcmluZ19vcmRlcjsKKyAgICBncmFudF9yZWZfdCBy
ZWZbXTsKK307CitERUZJTkVfWEVOX0ZMRVhfUklORyhwdmNhbGxzKTsKKworI2RlZmluZSBQVkNB
TExTX1NPQ0tFVCAgICAgICAgIDAKKyNkZWZpbmUgUFZDQUxMU19DT05ORUNUICAgICAgICAxCisj
ZGVmaW5lIFBWQ0FMTFNfUkVMRUFTRSAgICAgICAgMgorI2RlZmluZSBQVkNBTExTX0JJTkQgICAg
ICAgICAgIDMKKyNkZWZpbmUgUFZDQUxMU19MSVNURU4gICAgICAgICA0CisjZGVmaW5lIFBWQ0FM
TFNfQUNDRVBUICAgICAgICAgNQorI2RlZmluZSBQVkNBTExTX1BPTEwgICAgICAgICAgIDYKKwor
c3RydWN0IHhlbl9wdmNhbGxzX3JlcXVlc3QgeworICAgIHVpbnQzMl90IHJlcV9pZDsgLyogcHJp
dmF0ZSB0byBndWVzdCwgZWNob2VkIGluIHJlc3BvbnNlICovCisgICAgdWludDMyX3QgY21kOyAg
ICAvKiBjb21tYW5kIHRvIGV4ZWN1dGUgKi8KKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCB4
ZW5fcHZjYWxsc19zb2NrZXQgeworICAgICAgICAgICAgdWludDY0X3QgaWQ7CisgICAgICAgICAg
ICB1aW50MzJfdCBkb21haW47CisgICAgICAgICAgICB1aW50MzJfdCB0eXBlOworICAgICAgICAg
ICAgdWludDMyX3QgcHJvdG9jb2w7CisgICAgICAgIH0gc29ja2V0OworICAgICAgICBzdHJ1Y3Qg
eGVuX3B2Y2FsbHNfY29ubmVjdCB7CisgICAgICAgICAgICB1aW50NjRfdCBpZDsKKyAgICAgICAg
ICAgIHVpbnQ4X3QgYWRkclsyOF07CisgICAgICAgICAgICB1aW50MzJfdCBsZW47CisgICAgICAg
ICAgICB1aW50MzJfdCBmbGFnczsKKyAgICAgICAgICAgIGdyYW50X3JlZl90IHJlZjsKKyAgICAg
ICAgICAgIHVpbnQzMl90IGV2dGNobjsKKyAgICAgICAgfSBjb25uZWN0OworICAgICAgICBzdHJ1
Y3QgeGVuX3B2Y2FsbHNfcmVsZWFzZSB7CisgICAgICAgICAgICB1aW50NjRfdCBpZDsKKyAgICAg
ICAgICAgIHVpbnQ4X3QgcmV1c2U7CisgICAgICAgIH0gcmVsZWFzZTsKKyAgICAgICAgc3RydWN0
IHhlbl9wdmNhbGxzX2JpbmQgeworICAgICAgICAgICAgdWludDY0X3QgaWQ7CisgICAgICAgICAg
ICB1aW50OF90IGFkZHJbMjhdOworICAgICAgICAgICAgdWludDMyX3QgbGVuOworICAgICAgICB9
IGJpbmQ7CisgICAgICAgIHN0cnVjdCB4ZW5fcHZjYWxsc19saXN0ZW4geworICAgICAgICAgICAg
dWludDY0X3QgaWQ7CisgICAgICAgICAgICB1aW50MzJfdCBiYWNrbG9nOworICAgICAgICB9IGxp
c3RlbjsKKyAgICAgICAgc3RydWN0IHhlbl9wdmNhbGxzX2FjY2VwdCB7CisgICAgICAgICAgICB1
aW50NjRfdCBpZDsKKyAgICAgICAgICAgIHVpbnQ2NF90IGlkX25ldzsKKyAgICAgICAgICAgIGdy
YW50X3JlZl90IHJlZjsKKyAgICAgICAgICAgIHVpbnQzMl90IGV2dGNobjsKKyAgICAgICAgfSBh
Y2NlcHQ7CisgICAgICAgIHN0cnVjdCB4ZW5fcHZjYWxsc19wb2xsIHsKKyAgICAgICAgICAgIHVp
bnQ2NF90IGlkOworICAgICAgICB9IHBvbGw7CisgICAgICAgIC8qIGR1bW15IG1lbWJlciB0byBm
b3JjZSBzaXplb2Yoc3RydWN0IHhlbl9wdmNhbGxzX3JlcXVlc3QpCisgICAgICAgICAqIHRvIG1h
dGNoIGFjcm9zcyBhcmNocyAqLworICAgICAgICBzdHJ1Y3QgeGVuX3B2Y2FsbHNfZHVtbXkgewor
ICAgICAgICAgICAgdWludDhfdCBkdW1teVs1Nl07CisgICAgICAgIH0gZHVtbXk7CisgICAgfSB1
OworfTsKKworc3RydWN0IHhlbl9wdmNhbGxzX3Jlc3BvbnNlIHsKKyAgICB1aW50MzJfdCByZXFf
aWQ7CisgICAgdWludDMyX3QgY21kOworICAgIGludDMyX3QgcmV0OworICAgIHVpbnQzMl90IHBh
ZDsKKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCBfeGVuX3B2Y2FsbHNfc29ja2V0IHsKKyAg
ICAgICAgICAgIHVpbnQ2NF90IGlkOworICAgICAgICB9IHNvY2tldDsKKyAgICAgICAgc3RydWN0
IF94ZW5fcHZjYWxsc19jb25uZWN0IHsKKyAgICAgICAgICAgIHVpbnQ2NF90IGlkOworICAgICAg
ICB9IGNvbm5lY3Q7CisgICAgICAgIHN0cnVjdCBfeGVuX3B2Y2FsbHNfcmVsZWFzZSB7CisgICAg
ICAgICAgICB1aW50NjRfdCBpZDsKKyAgICAgICAgfSByZWxlYXNlOworICAgICAgICBzdHJ1Y3Qg
X3hlbl9wdmNhbGxzX2JpbmQgeworICAgICAgICAgICAgdWludDY0X3QgaWQ7CisgICAgICAgIH0g
YmluZDsKKyAgICAgICAgc3RydWN0IF94ZW5fcHZjYWxsc19saXN0ZW4geworICAgICAgICAgICAg
dWludDY0X3QgaWQ7CisgICAgICAgIH0gbGlzdGVuOworICAgICAgICBzdHJ1Y3QgX3hlbl9wdmNh
bGxzX2FjY2VwdCB7CisgICAgICAgICAgICB1aW50NjRfdCBpZDsKKyAgICAgICAgfSBhY2NlcHQ7
CisgICAgICAgIHN0cnVjdCBfeGVuX3B2Y2FsbHNfcG9sbCB7CisgICAgICAgICAgICB1aW50NjRf
dCBpZDsKKyAgICAgICAgfSBwb2xsOworICAgICAgICBzdHJ1Y3QgX3hlbl9wdmNhbGxzX2R1bW15
IHsKKyAgICAgICAgICAgIHVpbnQ4X3QgZHVtbXlbOF07CisgICAgICAgIH0gZHVtbXk7CisgICAg
fSB1OworfTsKKworREVGSU5FX1JJTkdfVFlQRVMoeGVuX3B2Y2FsbHMsIHN0cnVjdCB4ZW5fcHZj
YWxsc19yZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgc3RydWN0IHhlbl9wdmNhbGxzX3Jlc3Bv
bnNlKTsKKworI2VuZGlmCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisg
KiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRo
OiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEv
aW5jbHVkZS94ZW4vaW8vcmluZy5oIGIvaW5jbHVkZS94ZW4vaW8vcmluZy5oCmluZGV4IDczZTEz
ZDcuLjMwMzQyZmMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL2lvL3JpbmcuaAorKysgYi9pbmNs
dWRlL3hlbi9pby9yaW5nLmgKQEAgLTI3LDYgKzI3LDIxIEBACiAjaWZuZGVmIF9fWEVOX1BVQkxJ
Q19JT19SSU5HX0hfXwogI2RlZmluZSBfX1hFTl9QVUJMSUNfSU9fUklOR19IX18KIAorLyoKKyAq
IFdoZW4gI2luY2x1ZGUnaW5nIHRoaXMgaGVhZGVyLCB5b3UgbmVlZCB0byBwcm92aWRlIHRoZSBm
b2xsb3dpbmcKKyAqIGRlY2xhcmF0aW9uIHVwZnJvbnQ6CisgKiAtIHN0YW5kYXJkIGludGVnZXJz
IHR5cGVzICh1aW50OF90LCB1aW50MTZfdCwgZXRjKQorICogVGhleSBhcmUgcHJvdmlkZWQgYnkg
c3RkaW50Lmggb2YgdGhlIHN0YW5kYXJkIGhlYWRlcnMuCisgKgorICogSW4gYWRkaXRpb24sIGlm
IHlvdSBpbnRlbmQgdG8gdXNlIHRoZSBGTEVYIG1hY3JvcywgeW91IGFsc28gbmVlZCB0bworICog
cHJvdmlkZSB0aGUgZm9sbG93aW5nLCBiZWZvcmUgaW52b2tpbmcgdGhlIEZMRVggbWFjcm9zOgor
ICogLSBzaXplX3QKKyAqIC0gbWVtY3B5CisgKiAtIGdyYW50X3JlZl90CisgKiBUaGVzZSBkZWNs
YXJhdGlvbnMgYXJlIHByb3ZpZGVkIGJ5IHN0cmluZy5oIG9mIHRoZSBzdGFuZGFyZCBoZWFkZXJz
LAorICogYW5kIGdyYW50X3RhYmxlLmggZnJvbSB0aGUgWGVuIHB1YmxpYyBoZWFkZXJzLgorICov
CisKICNpbmNsdWRlICIuLi94ZW4tY29tcGF0LmgiCiAKICNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVS
U0lPTl9fIDwgMHgwMDAzMDIwOApAQCAtMTExLDcgKzEyNiw3IEBAIHN0cnVjdCBfX25hbWUjI19z
cmluZyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
ICAgICAgICAgICAgIHVpbnQ4X3QgbXNnOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKICAgICAgICAgfSB0YXBpZl91c2VyOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgdWludDhfdCBwdnRf
cGFkWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICB9IHByaXZhdGU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICB9IHB2dDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB1aW50OF90IF9fcGFkWzQ0XTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB1
bmlvbiBfX25hbWUjI19zcmluZ19lbnRyeSByaW5nWzFdOyAvKiB2YXJpYWJsZS1sZW5ndGggKi8g
ICAgICAgICAgIFwKIH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTE1Niw3ICsxNzEsNyBAQCB0eXBlZGVm
IHN0cnVjdCBfX25hbWUjI19iYWNrX3JpbmcgX19uYW1lIyNfYmFja19yaW5nX3QKICNkZWZpbmUg
U0hBUkVEX1JJTkdfSU5JVChfcykgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKICAgICAoX3MpLT5yZXFfcHJvZCAgPSAoX3MpLT5yc3BfcHJvZCAgPSAwOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAoX3MpLT5yZXFfZXZlbnQgPSAoX3MpLT5y
c3BfZXZlbnQgPSAxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAodm9pZClt
ZW1zZXQoKF9zKS0+cHJpdmF0ZS5wdnRfcGFkLCAwLCBzaXplb2YoKF9zKS0+cHJpdmF0ZS5wdnRf
cGFkKSk7IFwKKyAgICAodm9pZCltZW1zZXQoKF9zKS0+cHZ0LnB2dF9wYWQsIDAsIHNpemVvZigo
X3MpLT5wdnQucHZ0X3BhZCkpOyAgICAgIFwKICAgICAodm9pZCltZW1zZXQoKF9zKS0+X19wYWQs
IDAsIHNpemVvZigoX3MpLT5fX3BhZCkpOyAgICAgICAgICAgICAgICAgIFwKIH0gd2hpbGUoMCkK
IApAQCAtMjEyLDYgKzIyNywyMCBAQCB0eXBlZGVmIHN0cnVjdCBfX25hbWUjI19iYWNrX3Jpbmcg
X19uYW1lIyNfYmFja19yaW5nX3QKICNkZWZpbmUgUklOR19HRVRfUkVRVUVTVChfciwgX2lkeCkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAoJigoX3IpLT5zcmlu
Zy0+cmluZ1soKF9pZHgpICYgKFJJTkdfU0laRShfcikgLSAxKSldLnJlcSkpCiAKKy8qCisgKiBH
ZXQgYSBsb2NhbCBjb3B5IG9mIGEgcmVxdWVzdC4KKyAqCisgKiBVc2UgdGhpcyBpbiBwcmVmZXJl
bmNlIHRvIFJJTkdfR0VUX1JFUVVFU1QoKSBzbyBhbGwgcHJvY2Vzc2luZyBpcworICogZG9uZSBv
biBhIGxvY2FsIGNvcHkgdGhhdCBjYW5ub3QgYmUgbW9kaWZpZWQgYnkgdGhlIG90aGVyIGVuZC4K
KyAqCisgKiBOb3RlIHRoYXQgaHR0cHM6Ly9nY2MuZ251Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5j
Z2k/aWQ9NTgxNDUgbWF5IGNhdXNlIHRoaXMKKyAqIHRvIGJlIGluZWZmZWN0aXZlIHdoZXJlIF9y
ZXEgaXMgYSBzdHJ1Y3Qgd2hpY2ggY29uc2lzdHMgb2Ygb25seSBiaXRmaWVsZHMuCisgKi8KKyNk
ZWZpbmUgUklOR19DT1BZX1JFUVVFU1QoX3IsIF9pZHgsIF9yZXEpIGRvIHsJCQkJXAorCS8qIFVz
ZSB2b2xhdGlsZSB0byBmb3JjZSB0aGUgY29weSBpbnRvIF9yZXEuICovCQkJXAorCSooX3JlcSkg
PSAqKHZvbGF0aWxlIHR5cGVvZihfcmVxKSlSSU5HX0dFVF9SRVFVRVNUKF9yLCBfaWR4KTsJXAor
fSB3aGlsZSAoMCkKKwogI2RlZmluZSBSSU5HX0dFVF9SRVNQT05TRShfciwgX2lkeCkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICgmKChfciktPnNyaW5nLT5yaW5n
WygoX2lkeCkgJiAoUklOR19TSVpFKF9yKSAtIDEpKV0ucnNwKSkKIApAQCAtMjk5LDYgKzMyOCwx
NDkgQEAgdHlwZWRlZiBzdHJ1Y3QgX19uYW1lIyNfYmFja19yaW5nIF9fbmFtZSMjX2JhY2tfcmlu
Z190CiAgICAgKF93b3JrX3RvX2RvKSA9IFJJTkdfSEFTX1VOQ09OU1VNRURfUkVTUE9OU0VTKF9y
KTsgICAgICAgICAgICAgICAgICBcCiB9IHdoaWxlICgwKQogCisKKy8qCisgKiBERUZJTkVfWEVO
X0ZMRVhfUklOR19BTkRfSU5URiBkZWZpbmVzIHR3byBtb25vZGlyZWN0aW9uYWwgcmluZ3MgYW5k
CisgKiBmdW5jdGlvbnMgdG8gY2hlY2sgaWYgdGhlcmUgaXMgZGF0YSBvbiB0aGUgcmluZywgYW5k
IHRvIHJlYWQgYW5kCisgKiB3cml0ZSB0byB0aGVtLgorICoKKyAqIERFRklORV9YRU5fRkxFWF9S
SU5HIGlzIHNpbWlsYXIgdG8gREVGSU5FX1hFTl9GTEVYX1JJTkdfQU5EX0lOVEYsIGJ1dAorICog
ZG9lcyBub3QgZGVmaW5lIHRoZSBpbmRleGVzIHBhZ2UuIEFzIGRpZmZlcmVudCBwcm90b2NvbHMg
Y2FuIGhhdmUKKyAqIGV4dGVuc2lvbnMgdG8gdGhlIGJhc2ljIGZvcm1hdCwgdGhpcyBtYWNybyBh
bGxvdyB0aGVtIHRvIGRlZmluZSB0aGVpcgorICogb3duIHN0cnVjdC4KKyAqCisgKiBYRU5fRkxF
WF9SSU5HX1NJWkUKKyAqICAgQ29udmVuaWVuY2UgbWFjcm8gdG8gY2FsY3VsYXRlIHRoZSBzaXpl
IG9mIG9uZSBvZiB0aGUgdHdvIHJpbmdzCisgKiAgIGZyb20gdGhlIG92ZXJhbGwgb3JkZXIuCisg
KgorICogJE5BTUVfbWFzaworICogICBGdW5jdGlvbiB0byBhcHBseSB0aGUgc2l6ZSBtYXNrIHRv
IGFuIGluZGV4LCB0byByZWR1Y2UgdGhlIGluZGV4CisgKiAgIHdpdGhpbiB0aGUgcmFuZ2UgWzAt
c2l6ZV0uCisgKgorICogJE5BTUVfcmVhZF9wYWNrZXQKKyAqICAgRnVuY3Rpb24gdG8gcmVhZCBk
YXRhIGZyb20gdGhlIHJpbmcuIFRoZSBhbW91bnQgb2YgZGF0YSB0byByZWFkIGlzCisgKiAgIHNw
ZWNpZmllZCBieSB0aGUgInNpemUiIGFyZ3VtZW50LgorICoKKyAqICROQU1FX3dyaXRlX3BhY2tl
dAorICogICBGdW5jdGlvbiB0byB3cml0ZSBkYXRhIHRvIHRoZSByaW5nLiBUaGUgYW1vdW50IG9m
IGRhdGEgdG8gd3JpdGUgaXMKKyAqICAgc3BlY2lmaWVkIGJ5IHRoZSAic2l6ZSIgYXJndW1lbnQu
CisgKgorICogJE5BTUVfZ2V0X3JpbmdfcHRyCisgKiAgIENvbnZlbmllbmNlIGZ1bmN0aW9uIHRo
YXQgcmV0dXJucyBhIHBvaW50ZXIgdG8gcmVhZC93cml0ZSB0byB0aGUKKyAqICAgcmluZyBhdCB0
aGUgcmlnaHQgbG9jYXRpb24uCisgKgorICogJE5BTUVfZGF0YV9pbnRmCisgKiAgIEluZGV4ZXMg
cGFnZSwgc2hhcmVkIGJldHdlZW4gZnJvbnRlbmQgYW5kIGJhY2tlbmQuIEl0IGFsc28KKyAqICAg
Y29udGFpbnMgdGhlIGFycmF5IG9mIGdyYW50IHJlZnMuCisgKgorICogJE5BTUVfcXVldWVkCisg
KiAgIEZ1bmN0aW9uIHRvIGNhbGN1bGF0ZSBob3cgbWFueSBieXRlcyBhcmUgY3VycmVudGx5IG9u
IHRoZSByaW5nLAorICogICByZWFkeSB0byBiZSByZWFkLiBJdCBjYW4gYWxzbyBiZSB1c2VkIHRv
IGNhbGN1bGF0ZSBob3cgbXVjaCBmcmVlCisgKiAgIHNwYWNlIGlzIGN1cnJlbnRseSBvbiB0aGUg
cmluZyAoWEVOX0ZMRVhfUklOR19TSVpFKCkgLQorICogICAkTkFNRV9xdWV1ZWQoKSkuCisgKi8K
KworI2lmbmRlZiBYRU5fUEFHRV9TSElGVAorLyogVGhlIFBBR0VfU0laRSBmb3IgcmluZyBwcm90
b2NvbHMgYW5kIGh5cGVyY2FsbCBpbnRlcmZhY2VzIGlzIGFsd2F5cworICogNEssIHJlZ2FyZGxl
c3Mgb2YgdGhlIGFyY2hpdGVjdHVyZSwgYW5kIHBhZ2UgZ3JhbnVsYXJpdHkgY2hvc2VuIGJ5Cisg
KiBvcGVyYXRpbmcgc3lzdGVtcy4KKyAqLworI2RlZmluZSBYRU5fUEFHRV9TSElGVCAxMgorI2Vu
ZGlmCisjZGVmaW5lIFhFTl9GTEVYX1JJTkdfU0laRShvcmRlcikgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKDFVTCA8PCAoKG9yZGVyKSArIFhFTl9Q
QUdFX1NISUZUIC0gMSkpCisKKyNkZWZpbmUgREVGSU5FX1hFTl9GTEVYX1JJTkcobmFtZSkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3N0YXRpYyBpbmxpbmUg
UklOR19JRFggbmFtZSMjX21hc2soUklOR19JRFggaWR4LCBSSU5HX0lEWCByaW5nX3NpemUpICAg
ICAgICAgIFwKK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICByZXR1cm4gaWR4ICYgKHJpbmdf
c2l6ZSAtIDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
K30gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3N0YXRpYyBp
bmxpbmUgdW5zaWduZWQgY2hhciAqbmFtZSMjX2dldF9yaW5nX3B0cih1bnNpZ25lZCBjaGFyICpi
dWYsICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBSSU5HX0lEWCBpZHgsICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSSU5HX0lEWCByaW5nX3NpemUpICAgICAg
ICAgIFwKK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICByZXR1cm4gYnVmICsgbmFtZSMjX21h
c2soaWR4LCByaW5nX3NpemUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK30g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3N0YXRpYyBpbmxp
bmUgdm9pZCBuYW1lIyNfcmVhZF9wYWNrZXQodm9pZCAqb3BhcXVlLCAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
dW5zaWduZWQgY2hhciAqYnVmLCAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUsICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUklOR19JRFggbWFza2Vk
X3Byb2QsICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUklOR19JRFggKm1hc2tlZF9jb25zLCAgICAgICAgICAgICAgICAgIFwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUklOR19JRFggcmluZ19zaXplKSAgICAg
ICAgICAgICAgICAgICAgIFwKK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoKm1hc2tl
ZF9jb25zIDwgbWFza2VkX3Byb2QgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICAgICAgc2l6ZSA8PSByaW5nX3NpemUgLSAqbWFza2VkX2NvbnMpIHsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgbWVtY3B5KG9wYXF1ZSwg
YnVmICsgKm1hc2tlZF9jb25zLCBzaXplKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICB9IGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgbWVtY3B5KG9wYXF1ZSwgYnVmICsgKm1h
c2tlZF9jb25zLCByaW5nX3NpemUgLSAqbWFza2VkX2NvbnMpOyAgICAgICAgIFwKKyAgICAgICAg
bWVtY3B5KCh1bnNpZ25lZCBjaGFyICopb3BhcXVlICsgcmluZ19zaXplIC0gKm1hc2tlZF9jb25z
LCBidWYsICAgICAgIFwKKyAgICAgICAgICAgICAgIHNpemUgLSAocmluZ19zaXplIC0gKm1hc2tl
ZF9jb25zKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICAqbWFza2VkX2NvbnMgPSBuYW1lIyNfbWFzaygqbWFza2VkX2NvbnMgKyBzaXpl
LCByaW5nX3NpemUpOyAgICAgICAgICAgICAgIFwKK30gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKK3N0YXRpYyBpbmxpbmUgdm9pZCBuYW1lIyNfd3JpdGVfcGFj
a2V0KHVuc2lnbmVkIGNoYXIgKmJ1ZiwgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKm9wYXF1ZSwgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVf
dCBzaXplLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFJJTkdfSURYICptYXNrZWRfcHJvZCwgICAgICAgICAgICAgICAg
IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJJTkdfSURYIG1hc2tl
ZF9jb25zLCAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFJJTkdfSURYIHJpbmdfc2l6ZSkgICAgICAgICAgICAgICAgICAgIFwKK3sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoKm1hc2tlZF9wcm9kIDwgbWFza2VkX2NvbnMgfHwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgc2l6ZSA8
PSByaW5nX3NpemUgLSAqbWFza2VkX3Byb2QpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICAgICAgbWVtY3B5KGJ1ZiArICptYXNrZWRfcHJvZCwgb3BhcXVlLCBzaXpl
KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9IGVsc2UgeyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgbWVtY3B5KGJ1ZiArICptYXNrZWRfcHJvZCwgb3BhcXVlLCByaW5nX3NpemUgLSAq
bWFza2VkX3Byb2QpOyAgICAgICAgIFwKKyAgICAgICAgbWVtY3B5KGJ1ZiwgKHVuc2lnbmVkIGNo
YXIgKilvcGFxdWUgKyAocmluZ19zaXplIC0gKm1hc2tlZF9wcm9kKSwgICAgIFwKKyAgICAgICAg
ICAgICAgIHNpemUgLSAocmluZ19zaXplIC0gKm1hc2tlZF9wcm9kKSk7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAqbWFza2VkX3Byb2Qg
PSBuYW1lIyNfbWFzaygqbWFza2VkX3Byb2QgKyBzaXplLCByaW5nX3NpemUpOyAgICAgICAgICAg
ICAgIFwKK30gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3N0
YXRpYyBpbmxpbmUgUklOR19JRFggbmFtZSMjX3F1ZXVlZChSSU5HX0lEWCBwcm9kLCAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSSU5HX0lEWCBjb25zLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBSSU5HX0lEWCByaW5nX3NpemUpICAgICAgICAgICAg
ICAgICAgICAgIFwKK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBSSU5HX0lEWCBzaXplOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAocHJvZCA9PSBjb25zKSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg
ICAgcmV0dXJuIDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBwcm9kID0gbmFt
ZSMjX21hc2socHJvZCwgcmluZ19zaXplKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICBjb25zID0gbmFtZSMjX21hc2soY29ucywgcmluZ19zaXplKTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICBpZiAocHJvZCA9PSBjb25zKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIHJpbmdfc2l6ZTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICBpZiAocHJvZCA+IGNvbnMpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgc2l6ZSA9IHBy
b2QgLSBjb25zOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgc2l6ZSA9IHJpbmdfc2l6ZSAt
IChjb25zIC0gcHJvZCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICByZXR1cm4gc2l6ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKK30gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKK3N0cnVjdCBuYW1lIyNfZGF0YSB7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB1bnNpZ25lZCBjaGFyICpp
bjsgLyogaGFsZiBvZiB0aGUgYWxsb2NhdGlvbiAqLyAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgICB1bnNpZ25lZCBjaGFyICpvdXQ7IC8qIGhhbGYgb2YgdGhlIGFsbG9jYXRpb24gKi8g
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKK30KKworI2RlZmluZSBERUZJTkVfWEVOX0ZMRVhf
UklOR19BTkRfSU5URihuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
c3RydWN0IG5hbWUjI19kYXRhX2ludGYgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgIFJJTkdfSURYIGluX2NvbnMsIGluX3Byb2Q7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorICAgIHVpbnQ4X3QgcGFkMVs1Nl07ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgIFJJTkdfSURYIG91dF9jb25zLCBvdXRfcHJvZDsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
IHVpbnQ4X3QgcGFkMls1Nl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFJJTkdfSURY
IHJpbmdfb3JkZXI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAorICAgIGdyYW50X3JlZl90IHJlZltdOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorREVGSU5FX1hFTl9GTEVYX1JJTkcobmFtZSkKKwogI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19J
T19SSU5HX0hfXyAqLwogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vaW8vc25kaWYuaCBi
L2luY2x1ZGUveGVuL2lvL3NuZGlmLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYzVjMTk3OAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL2lvL3NuZGlmLmgKQEAg
LTAsMCArMSw4MDMgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIHNuZGlmLmgKKyAqCisg
KiBVbmlmaWVkIHNvdW5kLWRldmljZSBJL08gaW50ZXJmYWNlIGZvciBYZW4gZ3Vlc3QgT1Nlcy4K
KyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g
YW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3Nv
Y2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRlYWwg
aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxp
bWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJs
aXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9mIHRo
ZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlz
CisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np
b24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50
aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJP
VklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgor
ICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
TkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1Ig
Q09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RI
RVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQg
T1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBX
SVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUg
U09GVFdBUkUuCisgKgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTUgR2xvYmFsTG9naWMgSW5j
LgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgRVBBTSBTeXN0ZW1zIEluYy4KKyAqCisgKiBB
dXRob3JzOiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29A
ZXBhbS5jb20+CisgKiAgICAgICAgICBPbGVrc2FuZHIgR3J5dHNvdiA8b2xla3NhbmRyX2dyeXRz
b3ZAZXBhbS5jb20+CisgKiAgICAgICAgICBPbGVrc2FuZHIgRG15dHJ5c2h5biA8b2xla3NhbmRy
LmRteXRyeXNoeW5AZ2xvYmFsbG9naWMuY29tPgorICogICAgICAgICAgSXVyaWkgS29ub3ZhbGVu
a28gPGl1cmlpLmtvbm92YWxlbmtvQGdsb2JhbGxvZ2ljLmNvbT4KKyAqLworCisjaWZuZGVmIF9f
WEVOX1BVQkxJQ19JT19TTkRJRl9IX18KKyNkZWZpbmUgX19YRU5fUFVCTElDX0lPX1NORElGX0hf
XworCisjaW5jbHVkZSAicmluZy5oIgorI2luY2x1ZGUgIi4uL2dyYW50X3RhYmxlLmgiCisKKy8q
CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgIEZlYXR1cmUgYW5k
IFBhcmFtZXRlciBOZWdvdGlhdGlvbgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZy
b250LT5iYWNrIG5vdGlmaWNhdGlvbnM6IHdoZW4gZW5xdWV1aW5nIGEgbmV3IHJlcXVlc3QsIHNl
bmRpbmcgYQorICogbm90aWZpY2F0aW9uIGNhbiBiZSBtYWRlIGNvbmRpdGlvbmFsIG9uIHhlbnNu
ZF9yZXEgKGkuZS4sIHRoZSBnZW5lcmljCisgKiBob2xkLW9mZiBtZWNoYW5pc20gcHJvdmlkZWQg
YnkgdGhlIHJpbmcgbWFjcm9zKS4gQmFja2VuZHMgbXVzdCBzZXQKKyAqIHhlbnNuZF9yZXEgYXBw
cm9wcmlhdGVseSAoZS5nLiwgdXNpbmcgUklOR19GSU5BTF9DSEVDS19GT1JfUkVRVUVTVFMoKSku
CisgKgorICogQmFjay0+ZnJvbnQgbm90aWZpY2F0aW9uczogd2hlbiBlbnF1ZXVpbmcgYSBuZXcg
cmVzcG9uc2UsIHNlbmRpbmcgYQorICogbm90aWZpY2F0aW9uIGNhbiBiZSBtYWRlIGNvbmRpdGlv
bmFsIG9uIHhlbnNuZF9yZXNwIChpLmUuLCB0aGUgZ2VuZXJpYworICogaG9sZC1vZmYgbWVjaGFu
aXNtIHByb3ZpZGVkIGJ5IHRoZSByaW5nIG1hY3JvcykuIEZyb250ZW5kcyBtdXN0IHNldAorICog
eGVuc25kX3Jlc3AgYXBwcm9wcmlhdGVseSAoZS5nLiwgdXNpbmcgUklOR19GSU5BTF9DSEVDS19G
T1JfUkVTUE9OU0VTKCkpLgorICoKKyAqIFRoZSB0d28gaGFsdmVzIG9mIGEgcGFyYS12aXJ0dWFs
IHNvdW5kIGNhcmQgZHJpdmVyIHV0aWxpemUgbm9kZXMgd2l0aGluCisgKiBYZW5TdG9yZSB0byBj
b21tdW5pY2F0ZSBjYXBhYmlsaXRpZXMgYW5kIHRvIG5lZ290aWF0ZSBvcGVyYXRpbmcgcGFyYW1l
dGVycy4KKyAqIFRoaXMgc2VjdGlvbiBlbnVtZXJhdGVzIHRoZXNlIG5vZGVzIHdoaWNoIHJlc2lk
ZSBpbiB0aGUgcmVzcGVjdGl2ZSBmcm9udCBhbmQKKyAqIGJhY2tlbmQgcG9ydGlvbnMgb2YgWGVu
U3RvcmUsIGZvbGxvd2luZyB0aGUgWGVuQnVzIGNvbnZlbnRpb24uCisgKgorICogQWxsIGRhdGEg
aW4gWGVuU3RvcmUgaXMgc3RvcmVkIGFzIHN0cmluZ3MuIE5vZGVzIHNwZWNpZnlpbmcgbnVtZXJp
YworICogdmFsdWVzIGFyZSBlbmNvZGVkIGluIGRlY2ltYWwuIEludGVnZXIgdmFsdWUgcmFuZ2Vz
IGxpc3RlZCBiZWxvdyBhcmUKKyAqIGV4cHJlc3NlZCBhcyBmaXhlZCBzaXplZCBpbnRlZ2VyIHR5
cGVzIGNhcGFibGUgb2Ygc3RvcmluZyB0aGUgY29udmVyc2lvbgorICogb2YgYSBwcm9wZXJseSBm
b3JtYXRlZCBub2RlIHN0cmluZywgd2l0aG91dCBsb3NzIG9mIGluZm9ybWF0aW9uLgorICoKKyAq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgRXhhbXBsZSBj
b25maWd1cmF0aW9uCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogTm90ZTogZGVwZW5k
aW5nIG9uIHRoZSB1c2UtY2FzZSBiYWNrZW5kIGNhbiBleHBvc2UgbW9yZSBzb3VuZCBjYXJkcyBh
bmQKKyAqIFBDTSBkZXZpY2VzL3N0cmVhbXMgdGhhbiB0aGUgdW5kZXJseWluZyBIVyBwaHlzaWNh
bGx5IGhhcyBieSBlbXBsb3lpbmcKKyAqIFNXIG1peGVycywgY29uZmlndXJpbmcgdmlydHVhbCBz
b3VuZCBzdHJlYW1zLCBjaGFubmVscyBldGMuCisgKgorICogVGhpcyBpcyBhbiBleGFtcGxlIG9m
IGJhY2tlbmQgYW5kIGZyb250ZW5kIGNvbmZpZ3VyYXRpb246CisgKgorICotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gQmFja2VuZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorICoKKyAqIC9sb2NhbC9kb21haW4vMC9iYWNrZW5kL3ZzbmQvMS8wL2Zyb250ZW5k
LWlkID0gIjEiCisgKiAvbG9jYWwvZG9tYWluLzAvYmFja2VuZC92c25kLzEvMC9mcm9udGVuZCA9
ICIvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMCIKKyAqIC9sb2NhbC9kb21haW4vMC9iYWNr
ZW5kL3ZzbmQvMS8wL3N0YXRlID0gIjQiCisgKiAvbG9jYWwvZG9tYWluLzAvYmFja2VuZC92c25k
LzEvMC92ZXJzaW9ucyA9ICIxLDIiCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gRnJvbnRlbmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAq
IC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wL2JhY2tlbmQtaWQgPSAiMCIKKyAqIC9sb2Nh
bC9kb21haW4vMS9kZXZpY2UvdnNuZC8wL2JhY2tlbmQgPSAiL2xvY2FsL2RvbWFpbi8wL2JhY2tl
bmQvdnNuZC8xLzAiCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC9zdGF0ZSA9ICI0
IgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvdmVyc2lvbiA9ICIxIgorICoKKyAq
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ2FyZCBjb25maWd1cmF0aW9uIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQv
MC9zaG9ydC1uYW1lID0gIkNhcmQgc2hvcnQgbmFtZSIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZp
Y2UvdnNuZC8wL2xvbmctbmFtZSA9ICJDYXJkIGxvbmcgbmFtZSIKKyAqIC9sb2NhbC9kb21haW4v
MS9kZXZpY2UvdnNuZC8wL3NhbXBsZS1yYXRlcyA9ICI4MDAwLDMyMDAwLDQ0MTAwLDQ4MDAwLDk2
MDAwIgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvc2FtcGxlLWZvcm1hdHMgPSAi
czgsdTgsczE2X2xlLHMxNl9iZSIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wL2J1
ZmZlci1zaXplID0gIjI2MjE0NCIKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gUENNIGRldmljZSAwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICog
L2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMC9uYW1lID0gIkdlbmVyYWwgYW5hbG9nIgor
ICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMC9jaGFubmVscy1tYXggPSAiNSIKKyAq
CisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFN0cmVhbSAwLCBwbGF5YmFjayAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92
c25kLzAvMC8wL3R5cGUgPSAicCIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzAv
MC9zYW1wbGUtZm9ybWF0cyA9ICJzOCx1OCIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNu
ZC8wLzAvMC91bmlxdWUtaWQgPSAiMCIKKyAqCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3Zz
bmQvMC8wLzAvcmluZy1yZWYgPSAiMzg2IgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25k
LzAvMC8wL2V2ZW50LWNoYW5uZWwgPSAiMTUiCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gU3RyZWFtIDEsIGNhcHR1cmUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
ICoKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzAvMS90eXBlID0gImMiCisgKiAv
bG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC8wLzEvY2hhbm5lbHMtbWF4ID0gIjIiCisgKiAv
bG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC8wLzEvdW5pcXVlLWlkID0gIjEiCisgKgorICog
L2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMC8xL3JpbmctcmVmID0gIjM4NCIKKyAqIC9s
b2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzAvMS9ldmVudC1jaGFubmVsID0gIjEzIgorICoK
KyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQQ00gZGV2aWNlIDEgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3Zz
bmQvMC8xL25hbWUgPSAiSERNSS0wIgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAv
MS9zYW1wbGUtcmF0ZXMgPSAiODAwMCwzMjAwMCw0NDEwMCIKKyAqCisgKi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSBTdHJlYW0gMCwgY2FwdHVyZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisgKgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMS8wL3R5cGUgPSAi
YyIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzEvMC91bmlxdWUtaWQgPSAiMiIK
KyAqCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC8xLzAvcmluZy1yZWYgPSAiMzg3
IgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMS8wL2V2ZW50LWNoYW5uZWwgPSAi
MTUxIgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQQ00gZGV2aWNlIDIg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAvbG9jYWwvZG9tYWluLzEv
ZGV2aWNlL3ZzbmQvMC8yL25hbWUgPSAiU1BESUYiCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSBTdHJlYW0gMCwgcGxheWJhY2sgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorICoKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzIvMC90eXBlID0gInAiCisg
KiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC8yLzAvdW5pcXVlLWlkID0gIjMiCisgKgor
ICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMi8wL3JpbmctcmVmID0gIjM4OSIKKyAq
IC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzIvMC9ldmVudC1jaGFubmVsID0gIjE1MiIK
KyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBCYWNrZW5kIFhlbkJ1cyBOb2RlcworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUHJvdG9jb2wgdmVyc2lvbiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiB2ZXJzaW9ucworICogICAgICBWYWx1ZXM6ICAgICAg
ICAgPHN0cmluZz4KKyAqCisgKiAgICAgIExpc3Qgb2YgWEVOU05EX0xJU1RfU0VQQVJBVE9SIHNl
cGFyYXRlZCBwcm90b2NvbCB2ZXJzaW9ucyBzdXBwb3J0ZWQKKyAqICAgICAgYnkgdGhlIGJhY2tl
bmQuIEZvciBleGFtcGxlICIxLDIsMyIuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmQgWGVuQnVzIE5vZGVzCisgKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBB
ZGRyZXNzaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIGRvbS1p
ZAorICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQxNl90PgorICoKKyAqICAgICAgRG9tYWlu
IGlkZW50aWZpZXIuCisgKgorICogZGV2LWlkCisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWlu
dDE2X3Q+CisgKgorICogICAgICBEZXZpY2UgaWRlbnRpZmllci4KKyAqCisgKiBwY20tZGV2LWlk
eAorICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ4X3Q+CisgKgorICogICAgICBaZXJvIGJh
c2VkIGNvbnRpZ291cyBpbmRleCBvZiB0aGUgUENNIGRldmljZS4KKyAqCisgKiBzdHJlYW0taWR4
CisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludDhfdD4KKyAqCisgKiAgICAgIFplcm8gYmFz
ZWQgY29udGlnb3VzIGluZGV4IG9mIHRoZSBzdHJlYW0gb2YgdGhlIFBDTSBkZXZpY2UuCisgKgor
ICogVGhlIGZvbGxvd2luZyBwYXR0ZXJuIGlzIHVzZWQgZm9yIGFkZHJlc3Npbmc6CisgKiAgIC9s
b2NhbC9kb21haW4vPGRvbS1pZD4vZGV2aWNlL3ZzbmQvPGRldi1pZD4vPHBjbS1kZXYtaWR4Pi88
c3RyZWFtLWlkeD4vLi4uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcm90
b2NvbCB2ZXJzaW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHZlcnNp
b24KKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDxzdHJpbmc+CisgKgorICogICAgICBQcm90b2Nv
bCB2ZXJzaW9uLCBjaG9zZW4gYW1vbmcgdGhlIG9uZXMgc3VwcG9ydGVkIGJ5IHRoZSBiYWNrZW5k
LgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQQ00gc2V0dGluZ3MgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBFdmVyeSB2aXJ0dWFsaXplZCBz
b3VuZCBmcm9udGVuZCBoYXMgYSBzZXQgb2YgUENNIGRldmljZXMgYW5kIHN0cmVhbXMsIGVhY2gK
KyAqIGNvdWxkIGJlIGluZGl2aWR1YWxseSBjb25maWd1cmVkLiBQYXJ0IG9mIHRoZSBQQ00gY29u
ZmlndXJhdGlvbiBjYW4gYmUKKyAqIGRlZmluZWQgYXQgaGlnaGVyIGxldmVsIG9mIHRoZSBoaWVy
YXJjaHkgYW5kIGJlIGZ1bGx5IG9yIHBhcnRpYWxseSByZS11c2VkCisgKiBieSB0aGUgdW5kZXJs
eWluZyBsYXllcnMuIFRoZXNlIGNvbmZpZ3VyYXRpb24gdmFsdWVzIGFyZToKKyAqICBvIG51bWJl
ciBvZiBjaGFubmVscyAobWluL21heCkKKyAqICBvIHN1cHBvcnRlZCBzYW1wbGUgcmF0ZXMKKyAq
ICBvIHN1cHBvcnRlZCBzYW1wbGUgZm9ybWF0cy4KKyAqIEUuZy4gb25lIGNhbiBkZWZpbmUgdGhl
c2UgdmFsdWVzIGZvciB0aGUgd2hvbGUgY2FyZCwgZGV2aWNlIG9yIHN0cmVhbS4KKyAqIEV2ZXJ5
IHVuZGVybHlpbmcgbGF5ZXIgaW4gdHVybiBjYW4gcmUtZGVmaW5lIHNvbWUgb3IgYWxsIG9mIHRo
ZW0gdG8gYmV0dGVyCisgKiBmaXQgaXRzIG5lZWRzLiBGb3IgZXhhbXBsZSwgY2FyZCBtYXkgZGVm
aW5lIG51bWJlciBvZiBjaGFubmVscyB0byBiZQorICogaW4gWzE7IDhdIHJhbmdlLCBhbmQgc29t
ZSBwYXJ0aWN1bGFyIHN0cmVhbSBtYXkgYmUgbGltaXRlZCB0byBbMTsgMl0gb25seS4KKyAqIFRo
ZSBydWxlIGlzIHRoYXQgdGhlIHVuZGVybHlpbmcgbGF5ZXIgbXVzdCBiZSBhIHN1YnNldCBvZiB0
aGUgdXBwZXIgbGF5ZXIKKyAqIHJhbmdlLgorICoKKyAqIGNoYW5uZWxzLW1pbgorICogICAgICBW
YWx1ZXM6ICAgICAgICAgPHVpbnQ4X3Q+CisgKgorICogICAgICBUaGUgbWluaW11bSBhbW91bnQg
b2YgY2hhbm5lbHMgdGhhdCBpcyBzdXBwb3J0ZWQsIFsxOyBjaGFubmVscy1tYXhdLgorICogICAg
ICBPcHRpb25hbCwgaWYgbm90IHNldCBvciBvbWl0dGVkIGEgdmFsdWUgb2YgMSBpcyB1c2VkLgor
ICoKKyAqIGNoYW5uZWxzLW1heAorICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ4X3Q+Cisg
KgorICogICAgICBUaGUgbWF4aW11bSBhbW91bnQgb2YgY2hhbm5lbHMgdGhhdCBpcyBzdXBwb3J0
ZWQuCisgKiAgICAgIE11c3QgYmUgYXQgbGVhc3QgPGNoYW5uZWxzLW1pbj4uCisgKgorICogc2Ft
cGxlLXJhdGVzCisgKiAgICAgIFZhbHVlczogICAgICAgICA8bGlzdCBvZiB1aW50MzJfdD4KKyAq
CisgKiAgICAgIExpc3Qgb2Ygc3VwcG9ydGVkIHNhbXBsZSByYXRlcyBzZXBhcmF0ZWQgYnkgWEVO
U05EX0xJU1RfU0VQQVJBVE9SLgorICogICAgICBTYW1wbGUgcmF0ZXMgYXJlIGV4cHJlc3NlZCBh
cyBhIGxpc3Qgb2YgZGVjaW1hbCB2YWx1ZXMgdy9vIGFueQorICogICAgICBvcmRlcmluZyByZXF1
aXJlbWVudC4KKyAqCisgKiBzYW1wbGUtZm9ybWF0cworICogICAgICBWYWx1ZXM6ICAgICAgICAg
PGxpc3Qgb2YgWEVOU05EX1BDTV9GT1JNQVRfWFhYX1NUUj4KKyAqCisgKiAgICAgIExpc3Qgb2Yg
c3VwcG9ydGVkIHNhbXBsZSBmb3JtYXRzIHNlcGFyYXRlZCBieSBYRU5TTkRfTElTVF9TRVBBUkFU
T1IuCisgKiAgICAgIEl0ZW1zIG11c3Qgbm90IGV4Y2VlZCBYRU5TTkRfU0FNUExFX0ZPUk1BVF9N
QVhfTEVOIGxlbmd0aC4KKyAqCisgKiBidWZmZXItc2l6ZQorICogICAgICBWYWx1ZXM6ICAgICAg
ICAgPHVpbnQzMl90PgorICoKKyAqICAgICAgVGhlIG1heGltdW0gc2l6ZSBpbiBvY3RldHMgb2Yg
dGhlIGJ1ZmZlciB0byBhbGxvY2F0ZSBwZXIgc3RyZWFtLgorICoKKyAqLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gVmlydHVhbCBzb3VuZCBjYXJkIHNldHRpbmdzIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyAqIHNob3J0LW5hbWUKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDxjaGFyWzMyXT4K
KyAqCisgKiAgICAgIFNob3J0IG5hbWUgb2YgdGhlIHZpcnR1YWwgc291bmQgY2FyZC4gT3B0aW9u
YWwuCisgKgorICogbG9uZy1uYW1lCisgKiAgICAgIFZhbHVlczogICAgICAgICA8Y2hhcls4MF0+
CisgKgorICogICAgICBMb25nIG5hbWUgb2YgdGhlIHZpcnR1YWwgc291bmQgY2FyZC4gT3B0aW9u
YWwuCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBEZXZpY2Ugc2V0dGluZ3Mg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogbmFtZQorICogICAgICBWYWx1ZXM6
ICAgICAgICAgPGNoYXJbODBdPgorICoKKyAqICAgICAgTmFtZSBvZiB0aGUgc291bmQgZGV2aWNl
IHdpdGhpbiB0aGUgdmlydHVhbCBzb3VuZCBjYXJkLiBPcHRpb25hbC4KKyAqCisgKi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIFN0cmVhbSBzZXR0aW5ncyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisgKgorICogdHlwZQorICogICAgICBWYWx1ZXM6ICAgICAgICAgInAiLCAi
YyIKKyAqCisgKiAgICAgIFN0cmVhbSB0eXBlOiAicCIgLSBwbGF5YmFjayBzdHJlYW0sICJjIiAt
IGNhcHR1cmUgc3RyZWFtCisgKgorICogICAgICBJZiBib3RoIGNhcHR1cmUgYW5kIHBsYXliYWNr
IGFyZSBuZWVkZWQgdGhlbiB0d28gc3RyZWFtcyBuZWVkIHRvIGJlCisgKiAgICAgIGRlZmluZWQg
dW5kZXIgdGhlIHNhbWUgZGV2aWNlLgorICoKKyAqIHVuaXF1ZS1pZAorICogICAgICBWYWx1ZXM6
ICAgICAgICAgPHVpbnQzMl90PgorICoKKyAqICAgICAgQWZ0ZXIgc3RyZWFtIGluaXRpYWxpemF0
aW9uIGl0IGlzIGFzc2lnbmVkIGEgdW5pcXVlIElEICh3aXRoaW4gdGhlIGZyb250CisgKiAgICAg
IGRyaXZlciksIHNvIGV2ZXJ5IHN0cmVhbSBvZiB0aGUgZnJvbnRlbmQgY2FuIGJlIGlkZW50aWZp
ZWQgYnkgdGhlCisgKiAgICAgIGJhY2tlbmQgYnkgdGhpcyBJRC4gVGhpcyBpcyBub3QgZXF1YWwg
dG8gc3RyZWFtLWlkeCBhcyB0aGUgbGF0ZXIgaXMKKyAqICAgICAgemVybyBiYXNlZCB3aXRoaW4g
dGhlIGRldmljZSwgYnV0IHRoaXMgaW5kZXggaXMgY29udGlnb3VzIHdpdGhpbiB0aGUKKyAqICAg
ICAgZHJpdmVyLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0gU3RyZWFtIFJlcXVlc3QgVHJh
bnNwb3J0IFBhcmFtZXRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBldmVudC1jaGFu
bmVsCisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludDMyX3Q+CisgKgorICogICAgICBUaGUg
aWRlbnRpZmllciBvZiB0aGUgWGVuIGV2ZW50IGNoYW5uZWwgdXNlZCB0byBzaWduYWwgYWN0aXZp
dHkKKyAqICAgICAgaW4gdGhlIHJpbmcgYnVmZmVyLgorICoKKyAqIHJpbmctcmVmCisgKiAgICAg
IFZhbHVlczogICAgICAgICA8dWludDMyX3Q+CisgKgorICogICAgICBUaGUgWGVuIGdyYW50IHJl
ZmVyZW5jZSBncmFudGluZyBwZXJtaXNzaW9uIGZvciB0aGUgYmFja2VuZCB0byBtYXAKKyAqICAg
ICAgYSBzb2xlIHBhZ2UgaW4gYSBzaW5nbGUgcGFnZSBzaXplZCByaW5nIGJ1ZmZlci4KKyAqCisg
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
VEFURSBESUFHUkFNUworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIFRvb2wgc3RhY2sg
Y3JlYXRlcyBmcm9udCBhbmQgYmFjayBzdGF0ZSBub2RlcyB3aXRoIGluaXRpYWwgc3RhdGUKKyAq
IFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nLgorICogVG9vbCBzdGFjayBjcmVhdGVzIGFuZCBzZXRz
IHVwIGZyb250ZW5kIHNvdW5kIGNvbmZpZ3VyYXRpb24gbm9kZXMgcGVyIGRvbWFpbi4KKyAqCisg
KiBGcm9udCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFjaworICogPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKyAqIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nICAgICAgICAgICAgICBYZW5idXNT
dGF0ZUluaXRpYWxpc2luZworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvIFF1ZXJ5IGJhY2tlbmQgZGV2aWNlIGlkZW50aWZpY2F0aW9uCisgKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS4KKyAqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbyBPcGVuIGFuZCB2YWxpZGF0ZSBiYWNrZW5kIGRldmljZS4KKyAq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAor
ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFYKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYZW5idXNTdGF0ZUlu
aXRXYWl0CisgKgorICogbyBRdWVyeSBmcm9udGVuZCBjb25maWd1cmF0aW9uCisgKiBvIEFsbG9j
YXRlIGFuZCBpbml0aWFsaXplCisgKiAgIGV2ZW50IGNoYW5uZWxzIHBlciBjb25maWd1cmVkCisg
KiAgIHBsYXliYWNrL2NhcHR1cmUgc3RyZWFtLgorICogbyBQdWJsaXNoIHRyYW5zcG9ydCBwYXJh
bWV0ZXJzCisgKiAgIHRoYXQgd2lsbCBiZSBpbiBlZmZlY3QgZHVyaW5nCisgKiAgIHRoaXMgY29u
bmVjdGlvbi4KKyAqICAgICAgICAgICAgICB8CisgKiAgICAgICAgICAgICAgfAorICogICAgICAg
ICAgICAgIFYKKyAqIFhlbmJ1c1N0YXRlSW5pdGlhbGlzZWQKKyAqCisgKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG8gUXVlcnkgZnJvbnRlbmQgdHJhbnNwb3J0IHBhcmFt
ZXRlcnMuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gQ29ubmVj
dCB0byB0aGUgZXZlbnQgY2hhbm5lbHMuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWCisgKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVDb25uZWN0ZWQKKyAqCisgKiAgbyBDcmVhdGUgYW5k
IGluaXRpYWxpemUgT1MKKyAqICAgIHZpcnR1YWwgc291bmQgZGV2aWNlIGluc3RhbmNlcworICog
ICAgYXMgcGVyIGNvbmZpZ3VyYXRpb24uCisgKiAgICAgICAgICAgICAgfAorICogICAgICAgICAg
ICAgIHwKKyAqICAgICAgICAgICAgICBWCisgKiBYZW5idXNTdGF0ZUNvbm5lY3RlZAorICoKKyAq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYZW5idXNTdGF0ZVVua25vd24K
KyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYZW5idXNTdGF0ZUNsb3Nl
ZAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlQ2xv
c2luZworICogbyBSZW1vdmUgdmlydHVhbCBzb3VuZCBkZXZpY2UKKyAqIG8gUmVtb3ZlIGV2ZW50
IGNoYW5uZWxzCisgKiAgICAgICAgICAgICAgfAorICogICAgICAgICAgICAgIHwKKyAqICAgICAg
ICAgICAgICBWCisgKiBYZW5idXNTdGF0ZUNsb3NlZAorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSBSZWNvdmVyeSBmbG93IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKyAqCisgKiBJbiBjYXNlIG9mIGZyb250ZW5kIHVucmVjb3ZlcmFibGUgZXJyb3JzIGJhY2tl
bmQgaGFuZGxlcyB0aGF0IGFzCisgKiBpZiBmcm9udGVuZCBnb2VzIGludG8gdGhlIFhlbmJ1c1N0
YXRlQ2xvc2VkIHN0YXRlLgorICoKKyAqIEluIGNhc2Ugb2YgYmFja2VuZCB1bnJlY292ZXJhYmxl
IGVycm9ycyBmcm9udGVuZCB0cmllcyByZW1vdmluZworICogdGhlIHZpcnR1YWxpemVkIGRldmlj
ZS4gSWYgdGhpcyBpcyBwb3NzaWJsZSBhdCB0aGUgbW9tZW50IG9mIGVycm9yLAorICogdGhlbiBm
cm9udGVuZCBnb2VzIGludG8gdGhlIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nIHN0YXRlIGFuZCBp
cyByZWFkeSBmb3IKKyAqIG5ldyBjb25uZWN0aW9uIHdpdGggYmFja2VuZC4gSWYgdGhlIHZpcnR1
YWxpemVkIGRldmljZSBpcyBzdGlsbCBpbiB1c2UgYW5kCisgKiBjYW5ub3QgYmUgcmVtb3ZlZCwg
dGhlbiBmcm9udGVuZCBnb2VzIGludG8gdGhlIFhlbmJ1c1N0YXRlUmVjb25maWd1cmluZyBzdGF0
ZQorICogdW50aWwgZWl0aGVyIHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UgcmVtb3ZlZCBvciBiYWNr
ZW5kIGluaXRpYXRlcyBhIG5ldworICogY29ubmVjdGlvbi4gT24gdGhlIHZpcnR1YWxpemVkIGRl
dmljZSByZW1vdmFsIGZyb250ZW5kIGdvZXMgaW50byB0aGUKKyAqIFhlbmJ1c1N0YXRlSW5pdGlh
bGlzaW5nIHN0YXRlLgorICoKKyAqIE5vdGUgb24gWGVuYnVzU3RhdGVSZWNvbmZpZ3VyaW5nIHN0
YXRlIG9mIHRoZSBmcm9udGVuZDogaWYgYmFja2VuZCBoYXMKKyAqIHVucmVjb3ZlcmFibGUgZXJy
b3JzIHRoZW4gZnJvbnRlbmQgY2Fubm90IHNlbmQgcmVxdWVzdHMgdG8gdGhlIGJhY2tlbmQKKyAq
IGFuZCB0aHVzIGNhbm5vdCBwcm92aWRlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHZpcnR1YWxpemVk
IGRldmljZSBhbnltb3JlLgorICogQWZ0ZXIgYmFja2VuZCBpcyBiYWNrIHRvIG5vcm1hbCB0aGUg
dmlydHVhbGl6ZWQgZGV2aWNlIG1heSBzdGlsbCBob2xkIHNvbWUKKyAqIHN0YXRlOiBjb25maWd1
cmF0aW9uIGluIHVzZSwgYWxsb2NhdGVkIGJ1ZmZlcnMsIGNsaWVudCBhcHBsaWNhdGlvbiBzdGF0
ZSBldGMuCisgKiBTbywgaW4gbW9zdCBjYXNlcywgdGhpcyB3aWxsIHJlcXVpcmUgZnJvbnRlbmQg
dG8gaW1wbGVtZW50IGNvbXBsZXggcmVjb3ZlcnkKKyAqIHJlY29ubmVjdCBsb2dpYy4gSW5zdGVh
ZCwgYnkgZ29pbmcgaW50byBYZW5idXNTdGF0ZVJlY29uZmlndXJpbmcgc3RhdGUsCisgKiBmcm9u
dGVuZCB3aWxsIG1ha2Ugc3VyZSBubyBuZXcgY2xpZW50cyBvZiB0aGUgdmlydHVhbGl6ZWQgZGV2
aWNlIGFyZQorICogYWNjZXB0ZWQsIGFsbG93IGV4aXN0aW5nIGNsaWVudChzKSB0byBleGl0IGdy
YWNlZnVsbHkgYnkgc2lnbmFsaW5nIGVycm9yCisgKiBzdGF0ZSBldGMuCisgKiBPbmNlIGFsbCB0
aGUgY2xpZW50cyBhcmUgZ29uZSBmcm9udGVuZCBjYW4gcmVpbml0aWFsaXplIHRoZSB2aXJ0dWFs
aXplZAorICogZGV2aWNlIGFuZCBnZXQgaW50byBYZW5idXNTdGF0ZUluaXRpYWxpc2luZyBzdGF0
ZSBhZ2FpbiBzaWduYWxpbmcgdGhlCisgKiBiYWNrZW5kIHRoYXQgYSBuZXcgY29ubmVjdGlvbiBj
YW4gYmUgbWFkZS4KKyAqCisgKiBUaGVyZSBhcmUgbXVsdGlwbGUgY29uZGl0aW9ucyBwb3NzaWJs
ZSB1bmRlciB3aGljaCBmcm9udGVuZCB3aWxsIGdvIGZyb20KKyAqIFhlbmJ1c1N0YXRlUmVjb25m
aWd1cmluZyBpbnRvIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nLCBzb21lIG9mIHRoZW0gYXJlIE9T
CisgKiBzcGVjaWZpYy4gRm9yIGV4YW1wbGU6CisgKiAxLiBUaGUgdW5kZXJseWluZyBPUyBmcmFt
ZXdvcmsgbWF5IHByb3ZpZGUgY2FsbGJhY2tzIHRvIHNpZ25hbCB0aGF0IHRoZSBsYXN0CisgKiAg
ICBjbGllbnQgb2YgdGhlIHZpcnR1YWxpemVkIGRldmljZSBoYXMgZ29uZSBhbmQgdGhlIGRldmlj
ZSBjYW4gYmUgcmVtb3ZlZAorICogMi4gRnJvbnRlbmQgY2FuIHNjaGVkdWxlIGEgZGVmZXJyZWQg
d29yayAodGltZXIvdGFza2xldC93b3JrcXVldWUpCisgKiAgICB0byBwZXJpb2RpY2FsbHkgY2hl
Y2sgaWYgdGhpcyBpcyB0aGUgcmlnaHQgdGltZSB0byByZS10cnkgcmVtb3ZhbCBvZgorICogICAg
dGhlIHZpcnR1YWxpemVkIGRldmljZS4KKyAqIDMuIEJ5IGFueSBvdGhlciBtZWFucy4KKyAqCisg
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENN
IEZPUk1BVFMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBYRU5TTkRfUENNX0ZPUk1B
VF88Zm9ybWF0PltfPGVuZGlhbj5dCisgKgorICogZm9ybWF0OiA8Uy9VL0Y+PGJpdHM+IG9yIDxu
YW1lPgorICogICAgIFMgLSBzaWduZWQsIFUgLSB1bnNpZ25lZCwgRiAtIGZsb2F0CisgKiAgICAg
Yml0cyAtIDgsIDE2LCAyNCwgMzIKKyAqICAgICBuYW1lIC0gTVVfTEFXLCBHU00sIGV0Yy4KKyAq
CisgKiBlbmRpYW46IDxMRS9CRT4sIG1heSBiZSBhYnNlbnQKKyAqICAgICBMRSAtIExpdHRsZSBl
bmRpYW4sIEJFIC0gQmlnIGVuZGlhbgorICovCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1M4
ICAgICAgICAgICAgMAorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VOCAgICAgICAgICAgIDEK
KyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzE2X0xFICAgICAgICAyCisjZGVmaW5lIFhFTlNO
RF9QQ01fRk9STUFUX1MxNl9CRSAgICAgICAgMworI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9V
MTZfTEUgICAgICAgIDQKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTE2X0JFICAgICAgICA1
CisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MyNF9MRSAgICAgICAgNgorI2RlZmluZSBYRU5T
TkRfUENNX0ZPUk1BVF9TMjRfQkUgICAgICAgIDcKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRf
VTI0X0xFICAgICAgICA4CisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UyNF9CRSAgICAgICAg
OQorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMzJfTEUgICAgICAgIDEwCisjZGVmaW5lIFhF
TlNORF9QQ01fRk9STUFUX1MzMl9CRSAgICAgICAgMTEKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JN
QVRfVTMyX0xFICAgICAgICAxMgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VMzJfQkUgICAg
ICAgIDEzCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0YzMl9MRSAgICAgICAgMTQgLyogNC1i
eXRlIGZsb2F0LCBJRUVFLTc1NCAzMi1iaXQsICovCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFU
X0YzMl9CRSAgICAgICAgMTUgLyogcmFuZ2UgLTEuMCB0byAxLjAgICAgICAgICAgICAgICovCisj
ZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0Y2NF9MRSAgICAgICAgMTYgLyogOC1ieXRlIGZsb2F0
LCBJRUVFLTc1NCA2NC1iaXQsICovCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0Y2NF9CRSAg
ICAgICAgMTcgLyogcmFuZ2UgLTEuMCB0byAxLjAgICAgICAgICAgICAgICovCisjZGVmaW5lIFhF
TlNORF9QQ01fRk9STUFUX0lFQzk1OF9TVUJGUkFNRV9MRSAxOAorI2RlZmluZSBYRU5TTkRfUENN
X0ZPUk1BVF9JRUM5NThfU1VCRlJBTUVfQkUgMTkKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRf
TVVfTEFXICAgICAgICAyMAorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9BX0xBVyAgICAgICAg
IDIxCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0lNQV9BRFBDTSAgICAgMjIKKyNkZWZpbmUg
WEVOU05EX1BDTV9GT1JNQVRfTVBFRyAgICAgICAgICAyMworI2RlZmluZSBYRU5TTkRfUENNX0ZP
Uk1BVF9HU00gICAgICAgICAgIDI0CisKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVRVUVTVCBDT0RFUworICoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgorICovCisjZGVmaW5lIFhFTlNORF9PUF9PUEVOICAgICAgICAgICAgICAgICAgMAor
I2RlZmluZSBYRU5TTkRfT1BfQ0xPU0UgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgWEVOU05E
X09QX1JFQUQgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIFhFTlNORF9PUF9XUklURSAgICAg
ICAgICAgICAgICAgMworI2RlZmluZSBYRU5TTkRfT1BfU0VUX1ZPTFVNRSAgICAgICAgICAgIDQK
KyNkZWZpbmUgWEVOU05EX09QX0dFVF9WT0xVTUUgICAgICAgICAgICA1CisjZGVmaW5lIFhFTlNO
RF9PUF9NVVRFICAgICAgICAgICAgICAgICAgNgorI2RlZmluZSBYRU5TTkRfT1BfVU5NVVRFICAg
ICAgICAgICAgICAgIDcKKworLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAg
ICAgICAgWEVOU1RPUkUgRklFTEQgQU5EIFBBVEggTkFNRSBTVFJJTkdTLCBIRUxQRVJTCisgKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCisgKi8KKyNkZWZpbmUgWEVOU05EX0RSSVZFUl9OQU1FICAgICAg
ICAgICAgICAidnNuZCIKKworI2RlZmluZSBYRU5TTkRfTElTVF9TRVBBUkFUT1IgICAgICAgICAg
ICIsIgorLyogRmllbGQgbmFtZXMgKi8KKyNkZWZpbmUgWEVOU05EX0ZJRUxEX0JFX1ZFUlNJT05T
ICAgICAgICAidmVyc2lvbnMiCisjZGVmaW5lIFhFTlNORF9GSUVMRF9GRV9WRVJTSU9OICAgICAg
ICAgInZlcnNpb24iCisjZGVmaW5lIFhFTlNORF9GSUVMRF9WQ0FSRF9TSE9SVF9OQU1FICAgInNo
b3J0LW5hbWUiCisjZGVmaW5lIFhFTlNORF9GSUVMRF9WQ0FSRF9MT05HX05BTUUgICAgImxvbmct
bmFtZSIKKyNkZWZpbmUgWEVOU05EX0ZJRUxEX1JJTkdfUkVGICAgICAgICAgICAicmluZy1yZWYi
CisjZGVmaW5lIFhFTlNORF9GSUVMRF9FVlRfQ0hOTCAgICAgICAgICAgImV2ZW50LWNoYW5uZWwi
CisjZGVmaW5lIFhFTlNORF9GSUVMRF9ERVZJQ0VfTkFNRSAgICAgICAgIm5hbWUiCisjZGVmaW5l
IFhFTlNORF9GSUVMRF9UWVBFICAgICAgICAgICAgICAgInR5cGUiCisjZGVmaW5lIFhFTlNORF9G
SUVMRF9TVFJFQU1fVU5JUVVFX0lEICAgInVuaXF1ZS1pZCIKKyNkZWZpbmUgWEVOU05EX0ZJRUxE
X0NIQU5ORUxTX01JTiAgICAgICAiY2hhbm5lbHMtbWluIgorI2RlZmluZSBYRU5TTkRfRklFTERf
Q0hBTk5FTFNfTUFYICAgICAgICJjaGFubmVscy1tYXgiCisjZGVmaW5lIFhFTlNORF9GSUVMRF9T
QU1QTEVfUkFURVMgICAgICAgInNhbXBsZS1yYXRlcyIKKyNkZWZpbmUgWEVOU05EX0ZJRUxEX1NB
TVBMRV9GT1JNQVRTICAgICAic2FtcGxlLWZvcm1hdHMiCisjZGVmaW5lIFhFTlNORF9GSUVMRF9C
VUZGRVJfU0laRSAgICAgICAgImJ1ZmZlci1zaXplIgorCisvKiBTdHJlYW0gdHlwZSBmaWVsZCB2
YWx1ZXMuICovCisjZGVmaW5lIFhFTlNORF9TVFJFQU1fVFlQRV9QTEFZQkFDSyAgICAgInAiCisj
ZGVmaW5lIFhFTlNORF9TVFJFQU1fVFlQRV9DQVBUVVJFICAgICAgImMiCisvKiBTYW1wbGUgcmF0
ZSBtYXggc3RyaW5nIGxlbmd0aCAqLworI2RlZmluZSBYRU5TTkRfU0FNUExFX1JBVEVfTUFYX0xF
TiAgICAgIDExCisvKiBTYW1wbGUgZm9ybWF0IGZpZWxkIHZhbHVlcyAqLworI2RlZmluZSBYRU5T
TkRfU0FNUExFX0ZPUk1BVF9NQVhfTEVOICAgIDI0CisKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JN
QVRfUzhfU1RSICAgICAgICAiczgiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1U4X1NUUiAg
ICAgICAgInU4IgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMTZfTEVfU1RSICAgICJzMTZf
bGUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MxNl9CRV9TVFIgICAgInMxNl9iZSIKKyNk
ZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTE2X0xFX1NUUiAgICAidTE2X2xlIgorI2RlZmluZSBY
RU5TTkRfUENNX0ZPUk1BVF9VMTZfQkVfU1RSICAgICJ1MTZfYmUiCisjZGVmaW5lIFhFTlNORF9Q
Q01fRk9STUFUX1MyNF9MRV9TVFIgICAgInMyNF9sZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JN
QVRfUzI0X0JFX1NUUiAgICAiczI0X2JlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VMjRf
TEVfU1RSICAgICJ1MjRfbGUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UyNF9CRV9TVFIg
ICAgInUyNF9iZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzMyX0xFX1NUUiAgICAiczMy
X2xlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMzJfQkVfU1RSICAgICJzMzJfYmUiCisj
ZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UzMl9MRV9TVFIgICAgInUzMl9sZSIKKyNkZWZpbmUg
WEVOU05EX1BDTV9GT1JNQVRfVTMyX0JFX1NUUiAgICAidTMyX2JlIgorI2RlZmluZSBYRU5TTkRf
UENNX0ZPUk1BVF9GMzJfTEVfU1RSICAgICJmbG9hdF9sZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9G
T1JNQVRfRjMyX0JFX1NUUiAgICAiZmxvYXRfYmUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFU
X0Y2NF9MRV9TVFIgICAgImZsb2F0NjRfbGUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0Y2
NF9CRV9TVFIgICAgImZsb2F0NjRfYmUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0lFQzk1
OF9TVUJGUkFNRV9MRV9TVFIgImllYzk1OF9zdWJmcmFtZV9sZSIKKyNkZWZpbmUgWEVOU05EX1BD
TV9GT1JNQVRfSUVDOTU4X1NVQkZSQU1FX0JFX1NUUiAiaWVjOTU4X3N1YmZyYW1lX2JlIgorI2Rl
ZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9NVV9MQVdfU1RSICAgICJtdV9sYXciCisjZGVmaW5lIFhF
TlNORF9QQ01fRk9STUFUX0FfTEFXX1NUUiAgICAgImFfbGF3IgorI2RlZmluZSBYRU5TTkRfUENN
X0ZPUk1BVF9JTUFfQURQQ01fU1RSICJpbWFfYWRwY20iCisjZGVmaW5lIFhFTlNORF9QQ01fRk9S
TUFUX01QRUdfU1RSICAgICAgIm1wZWciCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0dTTV9T
VFIgICAgICAgImdzbSIKKworCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAg
ICAgICAgICAgICAgICAgICAgIFNUQVRVUyBSRVRVUk4gQ09ERVMKKyAqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioKKyAqCisgKiBTdGF0dXMgcmV0dXJuIGNvZGUgaXMgemVybyBvbiBzdWNjZXNzIGFuZCAt
WEVOX0VYWCBvbiBmYWlsdXJlLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQXNzdW1wdGlvbnMKKyAqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKKyAqIG8gdXNhZ2Ugb2YgZ3JhbnQgcmVmZXJlbmNlIDAgYXMgaW52YWxpZCBncmFudCByZWZl
cmVuY2U6CisgKiAgIGdyYW50IHJlZmVyZW5jZSAwIGlzIHZhbGlkLCBidXQgbmV2ZXIgZXhwb3Nl
ZCB0byBhIFBWIGRyaXZlciwKKyAqICAgYmVjYXVzZSBvZiB0aGUgZmFjdCBpdCBpcyBhbHJlYWR5
IGluIHVzZS9yZXNlcnZlZCBieSB0aGUgUFYgY29uc29sZS4KKyAqIG8gYWxsIHJlZmVyZW5jZXMg
aW4gdGhpcyBkb2N1bWVudCB0byBwYWdlIHNpemVzIG11c3QgYmUgdHJlYXRlZAorICogICBhcyBw
YWdlcyBvZiBzaXplIFhFTl9QQUdFX1NJWkUgdW5sZXNzIG90aGVyd2lzZSBub3RlZC4KKyAqCisg
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICBEZXNjcmlwdGlvbiBvZiB0aGUgcHJvdG9j
b2wgYmV0d2VlbiBmcm9udGVuZCBhbmQgYmFja2VuZCBkcml2ZXIKKyAqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioKKyAqCisgKiBUaGUgdHdvIGhhbHZlcyBvZiBhIFBhcmEtdmlydHVhbCBzb3VuZCBkcml2
ZXIgY29tbXVuaWNhdGUgd2l0aAorICogZWFjaCBvdGhlciB1c2luZyBzaGFyZWQgcGFnZXMgYW5k
IGV2ZW50IGNoYW5uZWxzLgorICogU2hhcmVkIHBhZ2UgY29udGFpbnMgYSByaW5nIHdpdGggcmVx
dWVzdC9yZXNwb25zZSBwYWNrZXRzLgorICoKKyAqIFBhY2tldHMsIHVzZWQgZm9yIGlucHV0L291
dHB1dCBvcGVyYXRpb25zLCBlLmcuIHJlYWQvd3JpdGUsIHNldC9nZXQgdm9sdW1lLAorICogZXRj
LiwgcHJvdmlkZSBvZmZzZXQvbGVuZ3RoIGZpZWxkcyBpbiBvcmRlciB0byBhbGxvdyBhc3luY2hy
b25vdXMgcHJvdG9jb2wKKyAqIG9wZXJhdGlvbiB3aXRoIGJ1ZmZlciBzcGFjZSBzaGFyaW5nOiBw
YXJ0IG9mIHRoZSBidWZmZXIgYWxsb2NhdGVkIGF0CisgKiBYRU5TTkRfT1BfT1BFTiBjYW4gYmUg
dXNlZCBmb3IgYXVkaW8gc2FtcGxlcyBhbmQgcGFydCwgZm9yIGV4YW1wbGUsCisgKiBmb3Igdm9s
dW1lIGNvbnRyb2wuCisgKgorICogQWxsIHJlc2VydmVkIGZpZWxkcyBpbiB0aGUgc3RydWN0dXJl
cyBiZWxvdyBtdXN0IGJlIDAuCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tIFJlcXVlc3RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIEFs
bCByZXF1ZXN0IHBhY2tldHMgaGF2ZSB0aGUgc2FtZSBsZW5ndGggKDMyIG9jdGV0cykKKyAqIEFs
bCByZXF1ZXN0IHBhY2tldHMgaGF2ZSBjb21tb24gaGVhZGVyOgorICogICAgICAgICAwICAgICAg
ICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3Rl
dAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAg
fCAgICBvcGVyYXRpb24gICB8ICAgIHJlc2VydmVkICAgIHwgNAorICogKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisg
KiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgOAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiAgIGlkIC0gdWludDE2X3QsIHBy
aXZhdGUgZ3Vlc3QgdmFsdWUsIGVjaG9lZCBpbiByZXNwb25zZQorICogICBvcGVyYXRpb24gLSB1
aW50OF90LCBvcGVyYXRpb24gY29kZSwgWEVOU05EX09QXz8/PworICoKKyAqIEZvciBhbGwgcGFj
a2V0cyB3aGljaCB1c2Ugb2Zmc2V0IGFuZCBsZW5ndGg6CisgKiAgIG9mZnNldCAtIHVpbnQzMl90
LCByZWFkIG9yIHdyaXRlIGRhdGEgb2Zmc2V0IHdpdGhpbiB0aGUgc2hhcmVkIGJ1ZmZlciwKKyAq
ICAgICBwYXNzZWQgd2l0aCBYRU5TTkRfT1BfT1BFTiByZXF1ZXN0LCBvY3RldHMsCisgKiAgICAg
WzA7IFhFTlNORF9PUF9PUEVOLmJ1ZmZlcl9zeiAtIDFdLgorICogICBsZW5ndGggLSB1aW50MzJf
dCwgcmVhZCBvciB3cml0ZSBkYXRhIGxlbmd0aCwgb2N0ZXRzCisgKgorICogUmVxdWVzdCBvcGVu
IC0gb3BlbiBhIFBDTSBzdHJlYW0gZm9yIHBsYXliYWNrIG9yIGNhcHR1cmU6CisgKgorICogICAg
ICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAz
ICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgaWQgICAg
ICAgICAgICAgICAgfCBYRU5TTkRfT1BfT1BFTiB8ICAgIHJlc2VydmVkICAgIHwgNAorICogKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwY21fcmF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgMTIKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgcGNtX2Zvcm1hdCAgICB8ICBwY21fY2hh
bm5lbHMgIHwgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICB8IDE2CisgKiArLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zeiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAyMAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ3JlZl9kaXJlY3RvcnkgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgMjQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI4CisgKiArLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzIK
KyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKworICoKKyAqIHBjbV9yYXRlIC0gdWludDMyX3QsIHN0cmVhbSBkYXRh
IHJhdGUsIEh6CisgKiBwY21fZm9ybWF0IC0gdWludDhfdCwgWEVOU05EX1BDTV9GT1JNQVRfWFhY
IHZhbHVlCisgKiBwY21fY2hhbm5lbHMgLSB1aW50OF90LCBudW1iZXIgb2YgY2hhbm5lbHMgb2Yg
dGhpcyBzdHJlYW0sCisgKiAgIFtjaGFubmVscy1taW47IGNoYW5uZWxzLW1heF0KKyAqIGJ1ZmZl
cl9zeiAtIHVpbnQzMl90LCBidWZmZXIgc2l6ZSB0byBiZSBhbGxvY2F0ZWQsIG9jdGV0cworICog
Z3JlZl9kaXJlY3RvcnkgLSBncmFudF9yZWZfdCwgYSByZWZlcmVuY2UgdG8gdGhlIGZpcnN0IHNo
YXJlZCBwYWdlCisgKiAgIGRlc2NyaWJpbmcgc2hhcmVkIGJ1ZmZlciByZWZlcmVuY2VzLiBBdCBs
ZWFzdCBvbmUgcGFnZSBleGlzdHMuIElmIHNoYXJlZAorICogICBidWZmZXIgc2l6ZSAgKGJ1ZmZl
cl9zeikgZXhjZWVkcyB3aGF0IGNhbiBiZSBhZGRyZXNzZWQgYnkgdGhpcyBzaW5nbGUgcGFnZSwK
KyAqICAgdGhlbiByZWZlcmVuY2UgdG8gdGhlIG5leHQgcGFnZSBtdXN0IGJlIHN1cHBsaWVkIChz
ZWUgZ3JlZl9kaXJfbmV4dF9wYWdlCisgKiAgIGJlbG93KQorICovCisKK3N0cnVjdCB4ZW5zbmRf
b3Blbl9yZXEgeworICAgIHVpbnQzMl90IHBjbV9yYXRlOworICAgIHVpbnQ4X3QgcGNtX2Zvcm1h
dDsKKyAgICB1aW50OF90IHBjbV9jaGFubmVsczsKKyAgICB1aW50MTZfdCByZXNlcnZlZDsKKyAg
ICB1aW50MzJfdCBidWZmZXJfc3o7CisgICAgZ3JhbnRfcmVmX3QgZ3JlZl9kaXJlY3Rvcnk7Cit9
OworCisvKgorICogU2hhcmVkIHBhZ2UgZm9yIFhFTlNORF9PUF9PUEVOIGJ1ZmZlciBkZXNjcmlw
dG9yIChncmVmX2RpcmVjdG9yeSBpbiB0aGUKKyAqICAgcmVxdWVzdCkgZW1wbG95cyBhIGxpc3Qg
b2YgcGFnZXMsIGRlc2NyaWJpbmcgYWxsIHBhZ2VzIG9mIHRoZSBzaGFyZWQgZGF0YQorICogICBi
dWZmZXI6CisgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAg
ICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAg
ICAgICAgICAgICAgICAgICBncmVmX2Rpcl9uZXh0X3BhZ2UgICAgICAgICAgICAgICAgICAgICAg
ICAgfCA0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBncmVmWzBdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4CisgKiArLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ3JlZltpXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgaSo0
KzgKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKworICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAq
IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZWZbTiAtIDFdICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCBOKjQrOAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogZ3JlZl9kaXJfbmV4
dF9wYWdlIC0gZ3JhbnRfcmVmX3QsIHJlZmVyZW5jZSB0byB0aGUgbmV4dCBwYWdlIGRlc2NyaWJp
bmcKKyAqICAgcGFnZSBkaXJlY3RvcnkuIE11c3QgYmUgMCBpZiB0aGVyZSBhcmUgbm8gbW9yZSBw
YWdlcyBpbiB0aGUgbGlzdC4KKyAqIGdyZWZbaV0gLSBncmFudF9yZWZfdCwgcmVmZXJlbmNlIHRv
IGEgc2hhcmVkIHBhZ2Ugb2YgdGhlIGJ1ZmZlcgorICogICBhbGxvY2F0ZWQgYXQgWEVOU05EX09Q
X09QRU4KKyAqCisgKiBOdW1iZXIgb2YgZ3JhbnRfcmVmX3QgZW50cmllcyBpbiB0aGUgd2hvbGUg
cGFnZSBkaXJlY3RvcnkgaXMgbm90CisgKiBwYXNzZWQsIGJ1dCBpbnN0ZWFkIGNhbiBiZSBjYWxj
dWxhdGVkIGFzOgorICogICBudW1fZ3JlZnNfdG90YWwgPSAoWEVOU05EX09QX09QRU4uYnVmZmVy
X3N6ICsgWEVOX1BBR0VfU0laRSAtIDEpIC8KKyAqICAgICAgIFhFTl9QQUdFX1NJWkUKKyAqLwor
CitzdHJ1Y3QgeGVuc25kX3BhZ2VfZGlyZWN0b3J5IHsKKyAgICBncmFudF9yZWZfdCBncmVmX2Rp
cl9uZXh0X3BhZ2U7CisgICAgZ3JhbnRfcmVmX3QgZ3JlZlsxXTsgLyogVmFyaWFibGUgbGVuZ3Ro
ICovCit9OworCisvKgorICogIFJlcXVlc3QgY2xvc2UgLSBjbG9zZSBhbiBvcGVuZWQgcGNtIHN0
cmVhbToKKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAg
ICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAg
ICAgICAgIGlkICAgICAgICAgICAgICAgIHwgWEVOU05EX09QX0NMT1NFfCAgICByZXNlcnZlZCAg
ICB8IDQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKKyAqICstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
KworICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzMgor
ICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rCisgKgorICogUmVxdWVzdCByZWFkL3dyaXRlIC0gdXNlZCBmb3IgcmVh
ZCAoZm9yIGNhcHR1cmUpIG9yIHdyaXRlIChmb3IgcGxheWJhY2spOgorICogICAgICAgICAwICAg
ICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBv
Y3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAg
ICAgfCAgIG9wZXJhdGlvbiAgICB8ICAgIHJlc2VydmVkICAgIHwgNAorICogKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
CisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgOAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb2Zmc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIK
KyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0
aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE2CisgKiArLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAq
IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAyMAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMyCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBv
cGVyYXRpb24gLSBYRU5TTkRfT1BfUkVBRCBmb3IgcmVhZCBvciBYRU5TTkRfT1BfV1JJVEUgZm9y
IHdyaXRlCisgKi8KKworc3RydWN0IHhlbnNuZF9yd19yZXEgeworICAgIHVpbnQzMl90IG9mZnNl
dDsKKyAgICB1aW50MzJfdCBsZW5ndGg7Cit9OworCisvKgorICogUmVxdWVzdCBzZXQvZ2V0IHZv
bHVtZSAtIHNldC9nZXQgY2hhbm5lbHMnIHZvbHVtZSBvZiB0aGUgc3RyZWFtIGdpdmVuOgorICog
ICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAg
ICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgaWQg
ICAgICAgICAgICAgICAgfCAgIG9wZXJhdGlvbiAgICB8ICAgIHJlc2VydmVkICAgIHwgNAorICog
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgMTIKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxlbmd0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE2CisgKiArLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgMzIKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIG9wZXJhdGlvbiAtIFhFTlNORF9PUF9TRVRf
Vk9MVU1FIGZvciB2b2x1bWUgc2V0CisgKiAgIG9yIFhFTlNORF9PUF9HRVRfVk9MVU1FIGZvciB2
b2x1bWUgZ2V0CisgKiBCdWZmZXIgcGFzc2VkIHdpdGggWEVOU05EX09QX09QRU4gaXMgdXNlZCB0
byBleGNoYW5nZSB2b2x1bWUKKyAqIHZhbHVlczoKKyAqCisgKiAgICAgICAgIDAgICAgICAgICAg
ICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cisg
KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWxb
MF0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0CisgKiArLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGFubmVsW2ldICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgaSo0CisgKiArLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2hhbm5lbFtOIC0gMV0gICAgICAgICAgICAgICAgICAgICAgICAg
IHwgKE4tMSkqNAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogTiA9IFhFTlNORF9PUF9PUEVOLnBj
bV9jaGFubmVscworICogaSAtIHVpbnQ4X3QsIGluZGV4IG9mIGEgY2hhbm5lbAorICogY2hhbm5l
bFtpXSAtIHNpbnQzMl90LCB2b2x1bWUgb2YgaS10aCBjaGFubmVsCisgKiBWb2x1bWUgaXMgZXhw
cmVzc2VkIGFzIGEgc2lnbmVkIHZhbHVlIGluIHN0ZXBzIG9mIDAuMDAxIGRCLAorICogd2hpbGUg
MCBiZWluZyAwIGRCLgorICoKKyAqIFJlcXVlc3QgbXV0ZS91bm11dGUgLSBtdXRlL3VubXV0ZSBz
dHJlYW06CisgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAg
ICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAg
ICAgICAgICBpZCAgICAgICAgICAgICAgICB8ICAgb3BlcmF0aW9uICAgIHwgICAgcmVzZXJ2ZWQg
ICAgfCA0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4CisgKiArLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAxMgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGVuZ3RoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
MTYKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKworICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAq
IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAzMgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogb3BlcmF0aW9uIC0gWEVO
U05EX09QX01VVEUgZm9yIG11dGUgb3IgWEVOU05EX09QX1VOTVVURSBmb3IgdW5tdXRlCisgKiBC
dWZmZXIgcGFzc2VkIHdpdGggWEVOU05EX09QX09QRU4gaXMgdXNlZCB0byBleGNoYW5nZSBtdXRl
L3VubXV0ZQorICogdmFsdWVzOgorICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbFswXSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8IDQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogKy9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98
CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5u
ZWxbaV0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBpKjQKKyAqICstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwor
ICogKy9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjaGFubmVsW04gLSAxXSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoTi0xKSo0
CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBOID0gWEVOU05EX09QX09QRU4ucGNtX2NoYW5uZWxz
CisgKiBpIC0gdWludDhfdCwgaW5kZXggb2YgYSBjaGFubmVsCisgKiBjaGFubmVsW2ldIC0gdWlu
dDhfdCwgbm9uLXplcm8gaWYgaS10aCBjaGFubmVsIG5lZWRzIHRvIGJlIG11dGVkL3VubXV0ZWQK
KyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBOLkIuIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogVGhlICdzdHJ1Y3QgeGVuc25kX3J3
X3JlcScgaXMgYWxzbyB1c2VkIGZvciBYRU5TTkRfT1BfU0VUX1ZPTFVNRSwKKyAqIFhFTlNORF9P
UF9HRVRfVk9MVU1FLCBYRU5TTkRfT1BfTVVURSwgWEVOU05EX09QX1VOTVVURS4KKyAqLworCisv
KgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFJlc3BvbnNlcyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIEFsbCByZXNwb25zZSBwYWNrZXRzIGhh
dmUgdGhlIHNhbWUgbGVuZ3RoICgzMiBvY3RldHMpCisgKgorICogUmVzcG9uc2UgZm9yIGFsbCBy
ZXF1ZXN0czoKKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAy
ICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAg
ICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwgICAgb3BlcmF0aW9uICAgfCAgICByZXNlcnZl
ZCAgICB8IDQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0YXR1cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKKyAqICstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8IDEyCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
fAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNl
cnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzIKKyAqICstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwor
ICoKKyAqIGlkIC0gdWludDE2X3QsIGNvcGllZCBmcm9tIHRoZSByZXF1ZXN0CisgKiBvcGVyYXRp
b24gLSB1aW50OF90LCBYRU5TTkRfT1BfKiAtIGNvcGllZCBmcm9tIHJlcXVlc3QKKyAqIHN0YXR1
cyAtIGludDMyX3QsIHJlc3BvbnNlIHN0YXR1cywgemVybyBvbiBzdWNjZXNzIGFuZCAtWEVOX0VY
WCBvbiBmYWlsdXJlCisgKi8KKworc3RydWN0IHhlbnNuZF9yZXEgeworICAgIHVpbnQxNl90IGlk
OworICAgIHVpbnQ4X3Qgb3BlcmF0aW9uOworICAgIHVpbnQ4X3QgcmVzZXJ2ZWRbNV07CisgICAg
dW5pb24geworICAgICAgICBzdHJ1Y3QgeGVuc25kX29wZW5fcmVxIG9wZW47CisgICAgICAgIHN0
cnVjdCB4ZW5zbmRfcndfcmVxIHJ3OworICAgICAgICB1aW50OF90IHJlc2VydmVkWzI0XTsKKyAg
ICB9IG9wOworfTsKKworc3RydWN0IHhlbnNuZF9yZXNwIHsKKyAgICB1aW50MTZfdCBpZDsKKyAg
ICB1aW50OF90IG9wZXJhdGlvbjsKKyAgICB1aW50OF90IHJlc2VydmVkOworICAgIGludDMyX3Qg
c3RhdHVzOworICAgIHVpbnQ4X3QgcmVzZXJ2ZWQxWzI0XTsKK307CisKK0RFRklORV9SSU5HX1RZ
UEVTKHhlbl9zbmRpZiwgc3RydWN0IHhlbnNuZF9yZXEsIHN0cnVjdCB4ZW5zbmRfcmVzcCk7CisK
KyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfSU9fU05ESUZfSF9fICovCisKKy8qCisgKiBMb2NhbCB2
YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2lj
LW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAq
IEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vaW8vdXNiaWYuaCBiL2luY2x1ZGUv
eGVuL2lvL3VzYmlmLmgKaW5kZXggMGFmMmEzOC4uYzZhNTg2MyAxMDA2NDQKLS0tIGEvaW5jbHVk
ZS94ZW4vaW8vdXNiaWYuaAorKysgYi9pbmNsdWRlL3hlbi9pby91c2JpZi5oCkBAIC0zMSw2ICsz
MSw3NiBAQAogI2luY2x1ZGUgInJpbmcuaCIKICNpbmNsdWRlICIuLi9ncmFudF90YWJsZS5oIgog
CisvKgorICogRmVhdHVyZSBhbmQgUGFyYW1ldGVyIE5lZ290aWF0aW9uCisgKiA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIFRoZSB0d28gaGFsdmVzIG9mIGEgWGVuIHB2VVNC
IGRyaXZlciB1dGlsaXplIG5vZGVzIHdpdGhpbiB0aGUgWGVuU3RvcmUgdG8KKyAqIGNvbW11bmlj
YXRlIGNhcGFiaWxpdGllcyBhbmQgdG8gbmVnb3RpYXRlIG9wZXJhdGluZyBwYXJhbWV0ZXJzLiBU
aGlzCisgKiBzZWN0aW9uIGVudW1lcmF0ZXMgdGhlc2Ugbm9kZXMgd2hpY2ggcmVzaWRlIGluIHRo
ZSByZXNwZWN0aXZlIGZyb250IGFuZAorICogYmFja2VuZCBwb3J0aW9ucyBvZiB0aGUgWGVuU3Rv
cmUsIGZvbGxvd2luZyB0aGUgWGVuQnVzIGNvbnZlbnRpb24uCisgKgorICogQW55IHNwZWNpZmll
ZCBkZWZhdWx0IHZhbHVlIGlzIGluIGVmZmVjdCBpZiB0aGUgY29ycmVzcG9uZGluZyBYZW5CdXMg
bm9kZQorICogaXMgbm90IHByZXNlbnQgaW4gdGhlIFhlblN0b3JlLgorICoKKyAqIFhlblN0b3Jl
IG5vZGVzIGluIHNlY3Rpb25zIG1hcmtlZCAiUFJJVkFURSIgYXJlIHNvbGVseSBmb3IgdXNlIGJ5
IHRoZQorICogZHJpdmVyIHNpZGUgd2hvc2UgWGVuQnVzIHRyZWUgY29udGFpbnMgdGhlbS4KKyAq
CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJh
Y2tlbmQgWGVuQnVzIE5vZGVzCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi0tLS0tLS0t
LS0tLS0tLS0tLSBCYWNrZW5kIERldmljZSBJZGVudGlmaWNhdGlvbiAoUFJJVkFURSkgLS0tLS0t
LS0tLS0tLS0tLS0tCisgKgorICogbnVtLXBvcnRzCisgKiAgICAgIFZhbHVlczogICAgICAgICB1
bnNpZ25lZCBbMS4uLjMxXQorICoKKyAqICAgICAgTnVtYmVyIG9mIHBvcnRzIGZvciB0aGlzICh2
aXJ0dWFsKSBVU0IgaG9zdCBjb25uZWN0b3IuCisgKgorICogdXNiLXZlcgorICogICAgICBWYWx1
ZXM6ICAgICAgICAgdW5zaWduZWQgWzEuLi4yXQorICoKKyAqICAgICAgVVNCIHZlcnNpb24gb2Yg
dGhpcyBob3N0IGNvbm5lY3RvcjogMSA9IFVTQiAxLjEsIDIgPSBVU0IgMi4wLgorICoKKyAqIHBv
cnQvWzEuLi4zMV0KKyAqICAgICAgVmFsdWVzOiAgICAgICAgIHN0cmluZworICoKKyAqICAgICAg
UGh5c2ljYWwgVVNCIGRldmljZSBjb25uZWN0ZWQgdG8gdGhlIGdpdmVuIHBvcnQsIGUuZy4gIjMt
MS41Ii4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEZyb250ZW5kIFhlbkJ1cyBOb2RlcworICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgor
ICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSZXF1ZXN0IFRyYW5zcG9ydCBQYXJhbWV0ZXJzIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogZXZlbnQtY2hhbm5lbAorICogICAgICBWYWx1
ZXM6ICAgICAgICAgdW5zaWduZWQKKyAqCisgKiAgICAgIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBY
ZW4gZXZlbnQgY2hhbm5lbCB1c2VkIHRvIHNpZ25hbCBhY3Rpdml0eQorICogICAgICBpbiB0aGUg
cmluZyBidWZmZXIuCisgKgorICogdXJiLXJpbmctcmVmCisgKiAgICAgIFZhbHVlczogICAgICAg
ICB1bnNpZ25lZAorICoKKyAqICAgICAgVGhlIFhlbiBncmFudCByZWZlcmVuY2UgZ3JhbnRpbmcg
cGVybWlzc2lvbiBmb3IgdGhlIGJhY2tlbmQgdG8gbWFwCisgKiAgICAgIHRoZSBzb2xlIHBhZ2Ug
aW4gYSBzaW5nbGUgcGFnZSBzaXplZCByaW5nIGJ1ZmZlci4gVGhpcyBpcyB0aGUgcmluZworICog
ICAgICBidWZmZXIgZm9yIHVyYiByZXF1ZXN0cy4KKyAqCisgKiBjb25uLXJpbmctcmVmCisgKiAg
ICAgIFZhbHVlczogICAgICAgICB1bnNpZ25lZAorICoKKyAqICAgICAgVGhlIFhlbiBncmFudCBy
ZWZlcmVuY2UgZ3JhbnRpbmcgcGVybWlzc2lvbiBmb3IgdGhlIGJhY2tlbmQgdG8gbWFwCisgKiAg
ICAgIHRoZSBzb2xlIHBhZ2UgaW4gYSBzaW5nbGUgcGFnZSBzaXplZCByaW5nIGJ1ZmZlci4gVGhp
cyBpcyB0aGUgcmluZworICogICAgICBidWZmZXIgZm9yIGNvbm5lY3Rpb24vZGlzY29ubmVjdGlv
biByZXF1ZXN0cy4KKyAqCisgKiBwcm90b2NvbAorICogICAgICBWYWx1ZXM6ICAgICAgICAgc3Ry
aW5nIChYRU5fSU9fUFJPVE9fQUJJXyopCisgKiAgICAgIERlZmF1bHQgVmFsdWU6ICBYRU5fSU9f
UFJPVE9fQUJJX05BVElWRQorICoKKyAqICAgICAgVGhlIG1hY2hpbmUgQUJJIHJ1bGVzIGdvdmVy
bmluZyB0aGUgZm9ybWF0IG9mIGFsbCByaW5nIHJlcXVlc3QgYW5kCisgKiAgICAgIHJlc3BvbnNl
IHN0cnVjdHVyZXMuCisgKgorICovCisKIGVudW0gdXNiX3NwZWNfdmVyc2lvbiB7CiAJVVNCX1ZF
Ul9VTktOT1dOID0gMCwKIAlVU0JfVkVSX1VTQjExLApAQCAtNDEsMzcgKzExMSw2NiBAQCBlbnVt
IHVzYl9zcGVjX3ZlcnNpb24gewogLyoKICAqICBVU0IgcGlwZSBpbiB1c2JpZl9yZXF1ZXN0CiAg
KgotICogIGJpdHMgMC01IGFyZSBzcGVjaWZpYyBiaXRzIGZvciB2aXJ0dWFsIFVTQiBkcml2ZXIu
Ci0gKiAgYml0cyA3LTMxIGFyZSBzdGFuZGFyZCB1cmIgcGlwZS4KLSAqCi0gKiAgLSBwb3J0IG51
bWJlcihORVcpOgliaXRzIDAtNAotICogIAkJCQkoVVNCX01BWENISUxEUkVOIGlzIDMxKQorICog
IC0gcG9ydCBudW1iZXI6CWJpdHMgMC00CisgKgkJCQkoVVNCX01BWENISUxEUkVOIGlzIDMxKQog
ICoKLSAqICAtIG9wZXJhdGlvbiBmbGFnKE5FVyk6CWJpdCA1Ci0gKiAgCQkJCSgwID0gc3VibWl0
IHVyYiwKLSAqICAJCQkJIDEgPSB1bmxpbmsgdXJiKQorICogIC0gb3BlcmF0aW9uIGZsYWc6CWJp
dCA1CisgKgkJCQkoMCA9IHN1Ym1pdCB1cmIsCisgKgkJCQkgMSA9IHVubGluayB1cmIpCiAgKgog
ICogIC0gZGlyZWN0aW9uOgkJYml0IDcKLSAqICAJCQkJKDAgPSBIb3N0LXRvLURldmljZSBbT3V0
XQotICogICAgICAgICAgICAgICAgICAgICAgICAgICAxID0gRGV2aWNlLXRvLUhvc3QgW0luXSkK
KyAqCQkJCSgwID0gSG9zdC10by1EZXZpY2UgW091dF0KKyAqCQkJCSAxID0gRGV2aWNlLXRvLUhv
c3QgW0luXSkKICAqCiAgKiAgLSBkZXZpY2UgYWRkcmVzczoJYml0cyA4LTE0CiAgKgogICogIC0g
ZW5kcG9pbnQ6CQliaXRzIDE1LTE4CiAgKgotICogIC0gcGlwZSB0eXBlOgkJYml0cyAzMC0zMQot
ICogIAkJCQkoMDAgPSBpc29jaHJvbm91cywgMDEgPSBpbnRlcnJ1cHQsCi0gKiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDEwID0gY29udHJvbCwgMTEgPSBidWxrKQorICogIC0gcGlwZSB0eXBl
OgliaXRzIDMwLTMxCisgKgkJCQkoMDAgPSBpc29jaHJvbm91cywgMDEgPSBpbnRlcnJ1cHQsCisg
KgkJCQkgMTAgPSBjb250cm9sLCAxMSA9IGJ1bGspCiAgKi8KLSNkZWZpbmUgdXNiaWZfcGlwZXBv
cnRudW0ocGlwZSkgKChwaXBlKSAmIDB4MWYpCi0jZGVmaW5lIHVzYmlmX3NldHBvcnRudW1fcGlw
ZShwaXBlLCBwb3J0bnVtKSBcCi0JKChwaXBlKXwocG9ydG51bSkpCiAKLSNkZWZpbmUgdXNiaWZf
cGlwZXVubGluayhwaXBlKSAoKHBpcGUpICYgMHgyMCkKLSNkZWZpbmUgdXNiaWZfcGlwZXN1Ym1p
dChwaXBlKSAoIXVzYmlmX3BpcGV1bmxpbmsocGlwZSkpCi0jZGVmaW5lIHVzYmlmX3NldHVubGlu
a19waXBlKHBpcGUpICgocGlwZSl8KDB4MjApKQorI2RlZmluZSBVU0JJRl9QSVBFX1BPUlRfTUFT
SwkweDAwMDAwMDFmCisjZGVmaW5lIFVTQklGX1BJUEVfVU5MSU5LCTB4MDAwMDAwMjAKKyNkZWZp
bmUgVVNCSUZfUElQRV9ESVIJCTB4MDAwMDAwODAKKyNkZWZpbmUgVVNCSUZfUElQRV9ERVZfTUFT
SwkweDAwMDAwMDdmCisjZGVmaW5lIFVTQklGX1BJUEVfREVWX1NISUZUCTgKKyNkZWZpbmUgVVNC
SUZfUElQRV9FUF9NQVNLCTB4MDAwMDAwMGYKKyNkZWZpbmUgVVNCSUZfUElQRV9FUF9TSElGVAkx
NQorI2RlZmluZSBVU0JJRl9QSVBFX1RZUEVfTUFTSwkweDAwMDAwMDAzCisjZGVmaW5lIFVTQklG
X1BJUEVfVFlQRV9TSElGVAkzMAorI2RlZmluZSBVU0JJRl9QSVBFX1RZUEVfSVNPQwkwCisjZGVm
aW5lIFVTQklGX1BJUEVfVFlQRV9JTlQJMQorI2RlZmluZSBVU0JJRl9QSVBFX1RZUEVfQ1RSTAky
CisjZGVmaW5lIFVTQklGX1BJUEVfVFlQRV9CVUxLCTMKKworI2RlZmluZSB1c2JpZl9waXBlcG9y
dG51bShwaXBlKQkJCSgocGlwZSkgJiBVU0JJRl9QSVBFX1BPUlRfTUFTSykKKyNkZWZpbmUgdXNi
aWZfc2V0cG9ydG51bV9waXBlKHBpcGUsIHBvcnRudW0pCSgocGlwZSkgfCAocG9ydG51bSkpCisK
KyNkZWZpbmUgdXNiaWZfcGlwZXVubGluayhwaXBlKQkJCSgocGlwZSkgJiBVU0JJRl9QSVBFX1VO
TElOSykKKyNkZWZpbmUgdXNiaWZfcGlwZXN1Ym1pdChwaXBlKQkJCSghdXNiaWZfcGlwZXVubGlu
ayhwaXBlKSkKKyNkZWZpbmUgdXNiaWZfc2V0dW5saW5rX3BpcGUocGlwZSkJCSgocGlwZSkgfCBV
U0JJRl9QSVBFX1VOTElOSykKKworI2RlZmluZSB1c2JpZl9waXBlaW4ocGlwZSkJCQkoKHBpcGUp
ICYgVVNCSUZfUElQRV9ESVIpCisjZGVmaW5lIHVzYmlmX3BpcGVvdXQocGlwZSkJCQkoIXVzYmlm
X3BpcGVpbihwaXBlKSkKKworI2RlZmluZSB1c2JpZl9waXBlZGV2aWNlKHBpcGUpCQkJXAorCQko
KChwaXBlKSA+PiBVU0JJRl9QSVBFX0RFVl9TSElGVCkgJiBVU0JJRl9QSVBFX0RFVl9NQVNLKQor
CisjZGVmaW5lIHVzYmlmX3BpcGVlbmRwb2ludChwaXBlKQkJXAorCQkoKChwaXBlKSA+PiBVU0JJ
Rl9QSVBFX0VQX1NISUZUKSAmIFVTQklGX1BJUEVfRVBfTUFTSykKKworI2RlZmluZSB1c2JpZl9w
aXBldHlwZShwaXBlKQkJCVwKKwkJKCgocGlwZSkgPj4gVVNCSUZfUElQRV9UWVBFX1NISUZUKSAm
IFVTQklGX1BJUEVfVFlQRV9NQVNLKQorI2RlZmluZSB1c2JpZl9waXBlaXNvYyhwaXBlKQkodXNi
aWZfcGlwZXR5cGUocGlwZSkgPT0gVVNCSUZfUElQRV9UWVBFX0lTT0MpCisjZGVmaW5lIHVzYmlm
X3BpcGVpbnQocGlwZSkJKHVzYmlmX3BpcGV0eXBlKHBpcGUpID09IFVTQklGX1BJUEVfVFlQRV9J
TlQpCisjZGVmaW5lIHVzYmlmX3BpcGVjdHJsKHBpcGUpCSh1c2JpZl9waXBldHlwZShwaXBlKSA9
PSBVU0JJRl9QSVBFX1RZUEVfQ1RSTCkKKyNkZWZpbmUgdXNiaWZfcGlwZWJ1bGsocGlwZSkJKHVz
YmlmX3BpcGV0eXBlKHBpcGUpID09IFVTQklGX1BJUEVfVFlQRV9CVUxLKQogCiAjZGVmaW5lIFVT
QklGX01BWF9TRUdNRU5UU19QRVJfUkVRVUVTVCAoMTYpCisjZGVmaW5lIFVTQklGX01BWF9QT1JU
TlIJMzEKKyNkZWZpbmUgVVNCSUZfUklOR19TSVpFCTQwOTYKIAogLyoKICAqIFJJTkcgZm9yIHRy
YW5zZmVycmluZyB1cmJzLgpAQCAtODksNiArMTg4LDcgQEAgc3RydWN0IHVzYmlmX3VyYl9yZXF1
ZXN0IHsKIAkvKiBiYXNpYyB1cmIgcGFyYW1ldGVyICovCiAJdWludDMyX3QgcGlwZTsKIAl1aW50
MTZfdCB0cmFuc2Zlcl9mbGFnczsKKyNkZWZpbmUgVVNCSUZfU0hPUlRfTk9UX09LCTB4MDAwMQog
CXVpbnQxNl90IGJ1ZmZlcl9sZW5ndGg7CiAJdW5pb24gewogCQl1aW50OF90IGN0cmxbOF07IC8q
IHNldHVwX3BhY2tldCAoQ3RybCkgKi8KQEAgLTEyNyw3ICsyMjcsNyBAQCBzdHJ1Y3QgdXNiaWZf
dXJiX3Jlc3BvbnNlIHsKIHR5cGVkZWYgc3RydWN0IHVzYmlmX3VyYl9yZXNwb25zZSB1c2JpZl91
cmJfcmVzcG9uc2VfdDsKIAogREVGSU5FX1JJTkdfVFlQRVModXNiaWZfdXJiLCBzdHJ1Y3QgdXNi
aWZfdXJiX3JlcXVlc3QsIHN0cnVjdCB1c2JpZl91cmJfcmVzcG9uc2UpOwotI2RlZmluZSBVU0Jf
VVJCX1JJTkdfU0laRSBfX0NPTlNUX1JJTkdfU0laRSh1c2JpZl91cmIsIFBBR0VfU0laRSkKKyNk
ZWZpbmUgVVNCX1VSQl9SSU5HX1NJWkUgX19DT05TVF9SSU5HX1NJWkUodXNiaWZfdXJiLCBVU0JJ
Rl9SSU5HX1NJWkUpCiAKIC8qCiAgKiBSSU5HIGZvciBub3RpZnlpbmcgY29ubmVjdC9kaXNjb25u
ZWN0IGV2ZW50cyB0byBmcm9udGVuZApAQCAtMTQxLDEwICsyNDEsMTQgQEAgc3RydWN0IHVzYmlm
X2Nvbm5fcmVzcG9uc2UgewogCXVpbnQxNl90IGlkOyAvKiByZXF1ZXN0IGlkICovCiAJdWludDhf
dCBwb3J0bnVtOyAvKiBwb3J0IG51bWJlciAqLwogCXVpbnQ4X3Qgc3BlZWQ7IC8qIHVzYl9kZXZp
Y2Vfc3BlZWQgKi8KKyNkZWZpbmUgVVNCSUZfU1BFRURfTk9ORQkwCisjZGVmaW5lIFVTQklGX1NQ
RUVEX0xPVwkJMQorI2RlZmluZSBVU0JJRl9TUEVFRF9GVUxMCTIKKyNkZWZpbmUgVVNCSUZfU1BF
RURfSElHSAkzCiB9OwogdHlwZWRlZiBzdHJ1Y3QgdXNiaWZfY29ubl9yZXNwb25zZSB1c2JpZl9j
b25uX3Jlc3BvbnNlX3Q7CiAKIERFRklORV9SSU5HX1RZUEVTKHVzYmlmX2Nvbm4sIHN0cnVjdCB1
c2JpZl9jb25uX3JlcXVlc3QsIHN0cnVjdCB1c2JpZl9jb25uX3Jlc3BvbnNlKTsKLSNkZWZpbmUg
VVNCX0NPTk5fUklOR19TSVpFIF9fQ09OU1RfUklOR19TSVpFKHVzYmlmX2Nvbm4sIFBBR0VfU0la
RSkKKyNkZWZpbmUgVVNCX0NPTk5fUklOR19TSVpFIF9fQ09OU1RfUklOR19TSVpFKHVzYmlmX2Nv
bm4sIFVTQklGX1JJTkdfU0laRSkKIAogI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19JT19VU0JJRl9I
X18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2lvL3ZzY3NpaWYuaCBiL2luY2x1ZGUveGVu
L2lvL3ZzY3NpaWYuaAppbmRleCA3YTFkYjA1Li5kMGJkM2I1IDEwMDY0NAotLS0gYS9pbmNsdWRl
L3hlbi9pby92c2NzaWlmLmgKKysrIGIvaW5jbHVkZS94ZW4vaW8vdnNjc2lpZi5oCkBAIC02MCw3
ICs2MCw3IEBACiAgKgogICogICAgICBBIHN0cmluZyBzcGVjaWZ5aW5nIHRoZSBiYWNrZW5kIGRl
dmljZTogZWl0aGVyIGEgNC10dXBsZSAiaDpjOnQ6bCIKICAqICAgICAgKGhvc3QsIGNvbnRyb2xs
ZXIsIHRhcmdldCwgbHVuLCBhbGwgaW50ZWdlcnMpLCBvciBhIFdXTiAoZS5nLgotICogICAgICAi
bmFhLjYwMDE0MDU0YWM3ODA1ODIiKS4KKyAqICAgICAgIm5hYS42MDAxNDA1NGFjNzgwNTgyOjAi
KS4KICAqCiAgKiB2LWRldgogICogICAgICBWYWx1ZXM6ICAgICAgICAgc3RyaW5nCkBAIC0xMDQs
NiArMTA0LDc1IEBACiAgKiAgICAgIHJlc3BvbnNlIHN0cnVjdHVyZXMuCiAgKi8KIAorLyoKKyAq
IFhlbnN0b3JlIGZvcm1hdCBpbiBwcmFjdGljZQorICogPT09PT09PT09PT09PT09PT09PT09PT09
PT09CisgKiAKKyAqIFRoZSBiYWNrZW5kIGRyaXZlciB1c2VzIGEgc2luZ2xlX2hvc3Q6bWFueV9k
ZXZpY2VzIG5vdGF0aW9uIHRvIG1hbmFnZSBkb21VCisgKiBkZXZpY2VzLiBFdmVyeXRoaW5nIGlz
IHN0b3JlZCBpbiAvbG9jYWwvZG9tYWluLzxiYWNrZW5kX2RvbWlkPi9iYWNrZW5kL3ZzY3NpLy4K
KyAqIFRoZSB4ZW5zdG9yZSBsYXlvdXQgbG9va3MgbGlrZSB0aGlzIChkb20wIGlzIGFzc3VtZWQg
dG8gYmUgdGhlIGJhY2tlbmRfZG9taWQpOgorICogCisgKiAgICAgPGRvbWlkPi88dmhvc3Q+L2Zl
YXR1cmUtaG9zdCA9ICIwIgorICogICAgIDxkb21pZD4vPHZob3N0Pi9mcm9udGVuZCA9ICIvbG9j
YWwvZG9tYWluLzxkb21pZD4vZGV2aWNlL3ZzY3NpLzAiCisgKiAgICAgPGRvbWlkPi88dmhvc3Q+
L2Zyb250ZW5kLWlkID0gIjxkb21pZD4iCisgKiAgICAgPGRvbWlkPi88dmhvc3Q+L29ubGluZSA9
ICIxIgorICogICAgIDxkb21pZD4vPHZob3N0Pi9zdGF0ZSA9ICI0IgorICogICAgIDxkb21pZD4v
PHZob3N0Pi92c2NzaS1kZXZzL2Rldi0wL3AtZGV2ID0gIjg6MDoyOjEiIG9yICJuYWEud3duOmx1
biIKKyAqICAgICA8ZG9taWQ+Lzx2aG9zdD4vdnNjc2ktZGV2cy9kZXYtMC9zdGF0ZSA9ICI0Igor
ICogICAgIDxkb21pZD4vPHZob3N0Pi92c2NzaS1kZXZzL2Rldi0wL3YtZGV2ID0gIjA6MDowOjAi
CisgKiAgICAgPGRvbWlkPi88dmhvc3Q+L3ZzY3NpLWRldnMvZGV2LTEvcC1kZXYgPSAiODowOjI6
MiIKKyAqICAgICA8ZG9taWQ+Lzx2aG9zdD4vdnNjc2ktZGV2cy9kZXYtMS9zdGF0ZSA9ICI0Igor
ICogICAgIDxkb21pZD4vPHZob3N0Pi92c2NzaS1kZXZzL2Rldi0xL3YtZGV2ID0gIjA6MDoxOjAi
CisgKiAKKyAqIFRoZSBmcm9udGVuZCBkcml2ZXIgbWFpbnRhaW5zIGl0cyBzdGF0ZSBpbgorICog
L2xvY2FsL2RvbWFpbi88ZG9taWQ+L2RldmljZS92c2NzaS8uCisgKiAKKyAqICAgICA8dmhvc3Q+
L2JhY2tlbmQgPSAiL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQvdnNjc2kvPGRvbWlkPi88dmhvc3Q+
IgorICogICAgIDx2aG9zdD4vYmFja2VuZC1pZCA9ICIwIgorICogICAgIDx2aG9zdD4vZXZlbnQt
Y2hhbm5lbCA9ICIyMCIKKyAqICAgICA8dmhvc3Q+L3JpbmctcmVmID0gIjQzIgorICogICAgIDx2
aG9zdD4vc3RhdGUgPSAiNCIKKyAqICAgICA8dmhvc3Q+L3ZzY3NpLWRldnMvZGV2LTAvc3RhdGUg
PSAiNCIKKyAqICAgICA8dmhvc3Q+L3ZzY3NpLWRldnMvZGV2LTEvc3RhdGUgPSAiNCIKKyAqIAor
ICogSW4gYWRkaXRpb24gdG8gdGhlIGVudHJpZXMgZm9yIGJhY2tlbmQgYW5kIGZyb250ZW5kIHRo
ZXNlIGZsYWdzIGFyZSBzdG9yZWQKKyAqIGZvciB0aGUgdG9vbHN0YWNrOgorICogCisgKiAgICAg
PGRvbWlkPi88dmhvc3Q+L3ZzY3NpLWRldnMvZGV2LTEvcC1kZXZuYW1lID0gIi9kZXYvJGRldmlj
ZSIKKyAqICAgICA8ZG9taWQ+Lzx2aG9zdD4vbGlieGxfY3RybF9pbmRleCA9ICIwIgorICogCisg
KiAKKyAqIEJhY2tlbmQvZnJvbnRlbmQgcHJvdG9jb2wKKyAqID09PT09PT09PT09PT09PT09PT09
PT09PT0KKyAqIAorICogVG8gY3JlYXRlIGEgdmhvc3QgYWxvbmcgd2l0aCBhIGRldmljZToKKyAq
ICAgICA8ZG9taWQ+Lzx2aG9zdD4vZmVhdHVyZS1ob3N0ID0gIjAiCisgKiAgICAgPGRvbWlkPi88
dmhvc3Q+L2Zyb250ZW5kID0gIi9sb2NhbC9kb21haW4vPGRvbWlkPi9kZXZpY2UvdnNjc2kvMCIK
KyAqICAgICA8ZG9taWQ+Lzx2aG9zdD4vZnJvbnRlbmQtaWQgPSAiPGRvbWlkPiIKKyAqICAgICA8
ZG9taWQ+Lzx2aG9zdD4vb25saW5lID0gIjEiCisgKiAgICAgPGRvbWlkPi88dmhvc3Q+L3N0YXRl
ID0gIjEiCisgKiAgICAgPGRvbWlkPi88dmhvc3Q+L3ZzY3NpLWRldnMvZGV2LTAvcC1kZXYgPSAi
ODowOjI6MSIKKyAqICAgICA8ZG9taWQ+Lzx2aG9zdD4vdnNjc2ktZGV2cy9kZXYtMC9zdGF0ZSA9
ICIxIgorICogICAgIDxkb21pZD4vPHZob3N0Pi92c2NzaS1kZXZzL2Rldi0wL3YtZGV2ID0gIjA6
MDowOjAiCisgKiBXYWl0IGZvciA8ZG9taWQ+Lzx2aG9zdD4vc3RhdGUgKyA8ZG9taWQ+Lzx2aG9z
dD4vdnNjc2ktZGV2cy9kZXYtMC9zdGF0ZSBiZWNvbWUgNAorICogCisgKiBUbyBhZGQgYW5vdGhl
ciBkZXZpY2UgdG8gYSB2aG9zdDoKKyAqICAgICA8ZG9taWQ+Lzx2aG9zdD4vc3RhdGUgPSAiNyIK
KyAqICAgICA8ZG9taWQ+Lzx2aG9zdD4vdnNjc2ktZGV2cy9kZXYtMS9wLWRldiA9ICI4OjA6Mjoy
IgorICogICAgIDxkb21pZD4vPHZob3N0Pi92c2NzaS1kZXZzL2Rldi0xL3N0YXRlID0gIjEiCisg
KiAgICAgPGRvbWlkPi88dmhvc3Q+L3ZzY3NpLWRldnMvZGV2LTEvdi1kZXYgPSAiMDowOjE6MCIK
KyAqIFdhaXQgZm9yIDxkb21pZD4vPHZob3N0Pi9zdGF0ZSArIDxkb21pZD4vPHZob3N0Pi92c2Nz
aS1kZXZzL2Rldi0xL3N0YXRlIGJlY29tZSA0CisgKiAKKyAqIFRvIHJlbW92ZSBhIGRldmljZSBm
cm9tIGEgdmhvc3Q6CisgKiAgICAgPGRvbWlkPi88dmhvc3Q+L3N0YXRlID0gIjciCisgKiAgICAg
PGRvbWlkPi88dmhvc3Q+L3ZzY3NpLWRldnMvZGV2LTEvc3RhdGUgPSAiNSIKKyAqIFdhaXQgZm9y
IDxkb21pZD4vPHZob3N0Pi9zdGF0ZSB0byBiZWNvbWUgNAorICogV2FpdCBmb3IgPGRvbWlkPi88
dmhvc3Q+L3ZzY3NpLWRldnMvZGV2LTEvc3RhdGUgYmVjb21lIDYKKyAqIFJlbW92ZSA8ZG9taWQ+
Lzx2aG9zdD4vdnNjc2ktZGV2cy9kZXYtMS97c3RhdGUscC1kZXYsdi1kZXYscC1kZXZuYW1lfQor
ICogUmVtb3ZlIDxkb21pZD4vPHZob3N0Pi92c2NzaS1kZXZzL2Rldi0xLworICoKKyAqLworCiAv
KiBSZXF1ZXN0cyBmcm9tIHRoZSBmcm9udGVuZCB0byB0aGUgYmFja2VuZCAqLwogCiAvKgpAQCAt
MTc5LDYgKzI0OCw3IEBACiAgKi8KICNkZWZpbmUgVlNDU0lJRl9NQVhfQ09NTUFORF9TSVpFICAg
ICAgICAgMTYKICNkZWZpbmUgVlNDU0lJRl9TRU5TRV9CVUZGRVJTSVpFICAgICAgICAgOTYKKyNk
ZWZpbmUgVlNDU0lJRl9QQUdFX1NJWkUgICAgICAgICAgICAgIDQwOTYKIAogc3RydWN0IHNjc2lp
Zl9yZXF1ZXN0X3NlZ21lbnQgewogICAgIGdyYW50X3JlZl90IGdyZWY7CkBAIC0xODcsNyArMjU3
LDcgQEAgc3RydWN0IHNjc2lpZl9yZXF1ZXN0X3NlZ21lbnQgewogfTsKIHR5cGVkZWYgc3RydWN0
IHNjc2lpZl9yZXF1ZXN0X3NlZ21lbnQgdnNjc2lpZl9zZWdtZW50X3Q7CiAKLSNkZWZpbmUgVlND
U0lJRl9TR19QRVJfUEFHRSAoUEFHRV9TSVpFIC8gc2l6ZW9mKHN0cnVjdCBzY3NpaWZfcmVxdWVz
dF9zZWdtZW50KSkKKyNkZWZpbmUgVlNDU0lJRl9TR19QRVJfUEFHRSAoVlNDU0lJRl9QQUdFX1NJ
WkUgLyBzaXplb2Yoc3RydWN0IHNjc2lpZl9yZXF1ZXN0X3NlZ21lbnQpKQogCiAvKiBTaXplIG9m
IG9uZSByZXF1ZXN0IGlzIDI1MiBieXRlcyAqLwogc3RydWN0IHZzY3NpaWZfcmVxdWVzdCB7CmRp
ZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9pby94c193aXJlLmggYi9pbmNsdWRlL3hlbi9pby94c193
aXJlLmgKaW5kZXggMGEwY2RiYy4uNGRkNjYzMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4vaW8v
eHNfd2lyZS5oCisrKyBiL2luY2x1ZGUveGVuL2lvL3hzX3dpcmUuaApAQCAtMjgsNyArMjgsOCBA
QAogCiBlbnVtIHhzZF9zb2NrbXNnX3R5cGUKIHsKLSAgICBYU19ERUJVRywKKyAgICBYU19DT05U
Uk9MLAorI2RlZmluZSBYU19ERUJVRyBYU19DT05UUk9MCiAgICAgWFNfRElSRUNUT1JZLAogICAg
IFhTX1JFQUQsCiAgICAgWFNfR0VUX1BFUk1TLApAQCAtNDgsOCArNDksMTEgQEAgZW51bSB4c2Rf
c29ja21zZ190eXBlCiAgICAgWFNfSVNfRE9NQUlOX0lOVFJPRFVDRUQsCiAgICAgWFNfUkVTVU1F
LAogICAgIFhTX1NFVF9UQVJHRVQsCi0gICAgWFNfUkVTVFJJQ1QsCi0gICAgWFNfUkVTRVRfV0FU
Q0hFUywKKyAgICAvKiBYU19SRVNUUklDVCBoYXMgYmVlbiByZW1vdmVkICovCisgICAgWFNfUkVT
RVRfV0FUQ0hFUyA9IFhTX1NFVF9UQVJHRVQgKyAyLAorICAgIFhTX0RJUkVDVE9SWV9QQVJULAor
CisgICAgWFNfVFlQRV9DT1VOVCwgICAgICAvKiBOdW1iZXIgb2YgdmFsaWQgdHlwZXMuICovCiAK
ICAgICBYU19JTlZBTElEID0gMHhmZmZmIC8qIEd1YXJhbnRlZWQgdG8gcmVtYWluIGFuIGludmFs
aWQgdHlwZSAqLwogfTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2tleGVjLmggYi9pbmNsdWRl
L3hlbi9rZXhlYy5oCmluZGV4IGE2YTBhODguLjc0ZWE5ODEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv
eGVuL2tleGVjLmgKKysrIGIvaW5jbHVkZS94ZW4va2V4ZWMuaApAQCAtMjI3LDYgKzIyNywyMCBA
QCB0eXBlZGVmIHN0cnVjdCB4ZW5fa2V4ZWNfdW5sb2FkIHsKIH0geGVuX2tleGVjX3VubG9hZF90
OwogREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2tleGVjX3VubG9hZF90KTsKIAorLyoKKyAq
IEZpZ3VyZSBvdXQgd2hldGhlciB3ZSBoYXZlIGFuIGltYWdlIGxvYWRlZC4gQSByZXR1cm4gdmFs
dWUgb2YKKyAqIHplcm8gaW5kaWNhdGVzIG5vIGltYWdlIGxvYWRlZC4gQSByZXR1cm4gdmFsdWUg
b2Ygb25lCisgKiBpbmRpY2F0ZXMgYW4gaW1hZ2UgaXMgbG9hZGVkLiBBIG5lZ2F0aXZlIHJldHVy
biB2YWx1ZQorICogaW5kaWNhdGVzIGFuIGVycm9yLgorICoKKyAqIFR5cGUgbXVzdCBiZSBvbmUg
b2YgS0VYRUNfVFlQRV9ERUZBVUxUIG9yIEtFWEVDX1RZUEVfQ1JBU0guCisgKi8KKyNkZWZpbmUg
S0VYRUNfQ01EX2tleGVjX3N0YXR1cyA2Cit0eXBlZGVmIHN0cnVjdCB4ZW5fa2V4ZWNfc3RhdHVz
IHsKKyAgICB1aW50OF90IHR5cGU7Cit9IHhlbl9rZXhlY19zdGF0dXNfdDsKK0RFRklORV9YRU5f
R1VFU1RfSEFORExFKHhlbl9rZXhlY19zdGF0dXNfdCk7CisKICNlbHNlIC8qIF9fWEVOX0lOVEVS
RkFDRV9WRVJTSU9OX18gPCAweDAwMDQwNDAwICovCiAKICNkZWZpbmUgS0VYRUNfQ01EX2tleGVj
X2xvYWQgS0VYRUNfQ01EX2tleGVjX2xvYWRfdjEKZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL21l
bV9ldmVudC5oIGIvaW5jbHVkZS94ZW4vbWVtX2V2ZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDU5OWY5ZTguLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS94ZW4vbWVtX2V2ZW50LmgK
KysrIC9kZXYvbnVsbApAQCAtMSwxMzQgKzAsMCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgot
ICogbWVtX2V2ZW50LmgKLSAqCi0gKiBNZW1vcnkgZXZlbnQgY29tbW9uIHN0cnVjdHVyZXMuCi0g
KgotICogQ29weXJpZ2h0IChjKSAyMDA5IGJ5IENpdHJpeCBTeXN0ZW1zLCBJbmMuIChQYXRyaWNr
IENvbHApCi0gKgotICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFy
Z2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQotICogb2YgdGhpcyBzb2Z0d2FyZSBh
bmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCi0g
KiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0
aG91dCBsaW1pdGF0aW9uIHRoZQotICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn
ZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCi0gKiBzZWxsIGNvcGll
cyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0
d2FyZSBpcwotICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9uczoKLSAqCi0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw
ZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgotICogYWxsIGNvcGllcyBvciBz
dWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJF
IElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJF
U1MgT1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCi0gKiBBVVRI
T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VT
IE9SIE9USEVSCi0gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU
LCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwotICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F
Q1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgotICogREVBTElOR1Mg
SU4gVEhFIFNPRlRXQVJFLgotICovCi0KLSNpZm5kZWYgX1hFTl9QVUJMSUNfTUVNX0VWRU5UX0gK
LSNkZWZpbmUgX1hFTl9QVUJMSUNfTUVNX0VWRU5UX0gKLQotI2luY2x1ZGUgInhlbi5oIgotI2lu
Y2x1ZGUgImlvL3JpbmcuaCIKLQotLyogTWVtb3J5IGV2ZW50IGZsYWdzICovCi0jZGVmaW5lIE1F
TV9FVkVOVF9GTEFHX1ZDUFVfUEFVU0VEICAgICAoMSA8PCAwKQotI2RlZmluZSBNRU1fRVZFTlRf
RkxBR19EUk9QX1BBR0UgICAgICAgKDEgPDwgMSkKLSNkZWZpbmUgTUVNX0VWRU5UX0ZMQUdfRVZJ
Q1RfRkFJTCAgICAgICgxIDw8IDIpCi0jZGVmaW5lIE1FTV9FVkVOVF9GTEFHX0ZPUkVJR04gICAg
ICAgICAoMSA8PCAzKQotI2RlZmluZSBNRU1fRVZFTlRfRkxBR19EVU1NWSAgICAgICAgICAgKDEg
PDwgNCkKLS8qCi0gKiBFbXVsYXRlIHRoZSBmYXVsdC1jYXVzaW5nIGluc3RydWN0aW9uIChpZiBz
ZXQgaW4gdGhlIGV2ZW50IHJlc3BvbnNlIGZsYWdzKS4KLSAqIFRoaXMgd2lsbCBhbGxvdyB0aGUg
Z3Vlc3QgdG8gY29udGludWUgZXhlY3V0aW9uIHdpdGhvdXQgbGlmdGluZyB0aGUgcGFnZQotICog
YWNjZXNzIHJlc3RyaWN0aW9ucy4KLSAqLwotI2RlZmluZSBNRU1fRVZFTlRfRkxBR19FTVVMQVRF
ICAgICAgICAgKDEgPDwgNSkKLS8qCi0gKiBTYW1lIGFzIE1FTV9FVkVOVF9GTEFHX0VNVUxBVEUs
IGJ1dCB3aXRoIHdyaXRlIG9wZXJhdGlvbnMgb3Igb3BlcmF0aW9ucwotICogcG90ZW50aWFsbHkg
aGF2aW5nIHNpZGUgZWZmZWN0cyAobGlrZSBtZW1vcnkgbWFwcGVkIG9yIHBvcnQgSS9PKSBkaXNh
YmxlZC4KLSAqLwotI2RlZmluZSBNRU1fRVZFTlRfRkxBR19FTVVMQVRFX05PV1JJVEUgKDEgPDwg
NikKLQotLyogUmVhc29ucyBmb3IgdGhlIG1lbW9yeSBldmVudCByZXF1ZXN0ICovCi0jZGVmaW5l
IE1FTV9FVkVOVF9SRUFTT05fVU5LTk9XTiAgICAgMCAgICAvKiB0eXBpY2FsIHJlYXNvbiAqLwot
I2RlZmluZSBNRU1fRVZFTlRfUkVBU09OX1ZJT0xBVElPTiAgIDEgICAgLyogYWNjZXNzIHZpb2xh
dGlvbiwgR0ZOIGlzIGFkZHJlc3MgKi8KLSNkZWZpbmUgTUVNX0VWRU5UX1JFQVNPTl9DUjAgICAg
ICAgICAyICAgIC8qIENSMCB3YXMgaGl0OiBnZm4gaXMgbmV3IENSMCB2YWx1ZSwgZ2xhIGlzIHBy
ZXZpb3VzICovCi0jZGVmaW5lIE1FTV9FVkVOVF9SRUFTT05fQ1IzICAgICAgICAgMyAgICAvKiBD
UjMgd2FzIGhpdDogZ2ZuIGlzIG5ldyBDUjMgdmFsdWUsIGdsYSBpcyBwcmV2aW91cyAqLwotI2Rl
ZmluZSBNRU1fRVZFTlRfUkVBU09OX0NSNCAgICAgICAgIDQgICAgLyogQ1I0IHdhcyBoaXQ6IGdm
biBpcyBuZXcgQ1I0IHZhbHVlLCBnbGEgaXMgcHJldmlvdXMgKi8KLSNkZWZpbmUgTUVNX0VWRU5U
X1JFQVNPTl9JTlQzICAgICAgICA1ICAgIC8qIGludDMgd2FzIGhpdDogZ2xhL2dmbiBhcmUgUklQ
ICovCi0jZGVmaW5lIE1FTV9FVkVOVF9SRUFTT05fU0lOR0xFU1RFUCAgNiAgICAvKiBzaW5nbGUg
c3RlcCB3YXMgaW52b2tlZDogZ2xhL2dmbiBhcmUgUklQICovCi0jZGVmaW5lIE1FTV9FVkVOVF9S
RUFTT05fTVNSICAgICAgICAgNyAgICAvKiBNU1Igd2FzIGhpdDogZ2ZuIGlzIE1TUiB2YWx1ZSwg
Z2xhIGlzIE1TUiBhZGRyZXNzOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZG9lcyBOT1QgaG9ub3VyIEhWTVBNRV9vbmNoYW5nZW9ubHkgKi8KLQotLyogVXNp
bmcgYSBjdXN0b20gc3RydWN0IChub3QgaHZtX2h3X2NwdSkgc28gYXMgdG8gbm90IGZpbGwKLSAq
IHRoZSBtZW1fZXZlbnQgcmluZyBidWZmZXIgdG9vIHF1aWNrbHkuICovCi1zdHJ1Y3QgbWVtX2V2
ZW50X3JlZ3NfeDg2IHsKLSAgICB1aW50NjRfdCByYXg7Ci0gICAgdWludDY0X3QgcmN4OwotICAg
IHVpbnQ2NF90IHJkeDsKLSAgICB1aW50NjRfdCByYng7Ci0gICAgdWludDY0X3QgcnNwOwotICAg
IHVpbnQ2NF90IHJicDsKLSAgICB1aW50NjRfdCByc2k7Ci0gICAgdWludDY0X3QgcmRpOwotICAg
IHVpbnQ2NF90IHI4OwotICAgIHVpbnQ2NF90IHI5OwotICAgIHVpbnQ2NF90IHIxMDsKLSAgICB1
aW50NjRfdCByMTE7Ci0gICAgdWludDY0X3QgcjEyOwotICAgIHVpbnQ2NF90IHIxMzsKLSAgICB1
aW50NjRfdCByMTQ7Ci0gICAgdWludDY0X3QgcjE1OwotICAgIHVpbnQ2NF90IHJmbGFnczsKLSAg
ICB1aW50NjRfdCBkcjc7Ci0gICAgdWludDY0X3QgcmlwOwotICAgIHVpbnQ2NF90IGNyMDsKLSAg
ICB1aW50NjRfdCBjcjI7Ci0gICAgdWludDY0X3QgY3IzOwotICAgIHVpbnQ2NF90IGNyNDsKLSAg
ICB1aW50NjRfdCBzeXNlbnRlcl9jczsKLSAgICB1aW50NjRfdCBzeXNlbnRlcl9lc3A7Ci0gICAg
dWludDY0X3Qgc3lzZW50ZXJfZWlwOwotICAgIHVpbnQ2NF90IG1zcl9lZmVyOwotICAgIHVpbnQ2
NF90IG1zcl9zdGFyOwotICAgIHVpbnQ2NF90IG1zcl9sc3RhcjsKLSAgICB1aW50NjRfdCBmc19i
YXNlOwotICAgIHVpbnQ2NF90IGdzX2Jhc2U7Ci0gICAgdWludDMyX3QgY3NfYXJieXRlczsKLSAg
ICB1aW50MzJfdCBfcGFkOwotfTsKLQotdHlwZWRlZiBzdHJ1Y3QgbWVtX2V2ZW50X3N0IHsKLSAg
ICB1aW50MzJfdCBmbGFnczsKLSAgICB1aW50MzJfdCB2Y3B1X2lkOwotCi0gICAgdWludDY0X3Qg
Z2ZuOwotICAgIHVpbnQ2NF90IG9mZnNldDsKLSAgICB1aW50NjRfdCBnbGE7IC8qIGlmIGdsYV92
YWxpZCAqLwotCi0gICAgdWludDMyX3QgcDJtdDsKLQotICAgIHVpbnQxNl90IGFjY2Vzc19yOjE7
Ci0gICAgdWludDE2X3QgYWNjZXNzX3c6MTsKLSAgICB1aW50MTZfdCBhY2Nlc3NfeDoxOwotICAg
IHVpbnQxNl90IGdsYV92YWxpZDoxOwotICAgIHVpbnQxNl90IGZhdWx0X3dpdGhfZ2xhOjE7Ci0g
ICAgdWludDE2X3QgZmF1bHRfaW5fZ3B0OjE7Ci0gICAgdWludDE2X3QgYXZhaWxhYmxlOjEwOwot
Ci0gICAgdWludDE2X3QgcmVhc29uOwotICAgIHN0cnVjdCBtZW1fZXZlbnRfcmVnc194ODYgeDg2
X3JlZ3M7Ci19IG1lbV9ldmVudF9yZXF1ZXN0X3QsIG1lbV9ldmVudF9yZXNwb25zZV90OwotCi1E
RUZJTkVfUklOR19UWVBFUyhtZW1fZXZlbnQsIG1lbV9ldmVudF9yZXF1ZXN0X3QsIG1lbV9ldmVu
dF9yZXNwb25zZV90KTsKLQotI2VuZGlmCi0KLS8qCi0gKiBMb2NhbCB2YXJpYWJsZXM6Ci0gKiBt
b2RlOiBDCi0gKiBjLWZpbGUtc3R5bGU6ICJCU0QiCi0gKiBjLWJhc2ljLW9mZnNldDogNAotICog
dGFiLXdpZHRoOiA0Ci0gKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKLSAqIEVuZDoKLSAqLwpkaWZm
IC0tZ2l0IGEvaW5jbHVkZS94ZW4vbWVtb3J5LmggYi9pbmNsdWRlL3hlbi9tZW1vcnkuaAppbmRl
eCA1OTVmOTUzLi4yOTM4NmRmIDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi9tZW1vcnkuaAorKysg
Yi9pbmNsdWRlL3hlbi9tZW1vcnkuaApAQCAtMjgsNiArMjgsNyBAQAogI2RlZmluZSBfX1hFTl9Q
VUJMSUNfTUVNT1JZX0hfXwogCiAjaW5jbHVkZSAieGVuLmgiCisjaW5jbHVkZSAicGh5c2Rldi5o
IgogCiAvKgogICogSW5jcmVhc2Ugb3IgZGVjcmVhc2UgdGhlIHNwZWNpZmllZCBkb21haW4ncyBt
ZW1vcnkgcmVzZXJ2YXRpb24uIFJldHVybnMgdGhlCkBAIC01NSw2ICs1Niw4IEBACiAvKiBGbGFn
IHRvIHJlcXVlc3QgYWxsb2NhdGlvbiBvbmx5IGZyb20gdGhlIG5vZGUgc3BlY2lmaWVkICovCiAj
ZGVmaW5lIFhFTk1FTUZfZXhhY3Rfbm9kZV9yZXF1ZXN0ICAoMTw8MTcpCiAjZGVmaW5lIFhFTk1F
TUZfZXhhY3Rfbm9kZShuKSAoWEVOTUVNRl9ub2RlKG4pIHwgWEVOTUVNRl9leGFjdF9ub2RlX3Jl
cXVlc3QpCisvKiBGbGFnIHRvIGluZGljYXRlIHRoZSBub2RlIHNwZWNpZmllZCBpcyB2aXJ0dWFs
IG5vZGUgKi8KKyNkZWZpbmUgWEVOTUVNRl92bm9kZSAgKDE8PDE4KQogI2VuZGlmCiAKIHN0cnVj
dCB4ZW5fbWVtb3J5X3Jlc2VydmF0aW9uIHsKQEAgLTk5LDYgKzEwMiw4IEBAIERFRklORV9YRU5f
R1VFU1RfSEFORExFKHhlbl9tZW1vcnlfcmVzZXJ2YXRpb25fdCk7CiAgKiBSZXR1cm5zIHplcm8g
b24gY29tcGxldGUgc3VjY2Vzcywgb3RoZXJ3aXNlIGEgbmVnYXRpdmUgZXJyb3IgY29kZS4KICAq
IE9uIGNvbXBsZXRlIHN1Y2Nlc3MgdGhlbiBhbHdheXMgQG5yX2V4Y2hhbmdlZCA9PSBAaW4ubnJf
ZXh0ZW50cy4KICAqIE9uIHBhcnRpYWwgc3VjY2VzcyBAbnJfZXhjaGFuZ2VkIGluZGljYXRlcyBo
b3cgbXVjaCB3b3JrIHdhcyBkb25lLgorICoKKyAqIE5vdGUgdGhhdCBvbmx5IFBWIGd1ZXN0cyBj
YW4gdXNlIHRoaXMgb3BlcmF0aW9uLgogICovCiAjZGVmaW5lIFhFTk1FTV9leGNoYW5nZSAgICAg
ICAgICAgICAxMQogc3RydWN0IHhlbl9tZW1vcnlfZXhjaGFuZ2UgewpAQCAtMjE3LDYgKzIyMiwx
MSBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fbWFjaHBoeXNfbWFwcGluZ190KTsKICNk
ZWZpbmUgWEVOTUFQU1BBQ0VfZ21mbl9yYW5nZSAgIDMgLyogR01GTiByYW5nZSwgWEVOTUVNX2Fk
ZF90b19waHlzbWFwIG9ubHkuICovCiAjZGVmaW5lIFhFTk1BUFNQQUNFX2dtZm5fZm9yZWlnbiA0
IC8qIEdNRk4gZnJvbSBhbm90aGVyIGRvbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICogWEVOTUVNX2FkZF90b19waHlzbWFwX2JhdGNoIG9ubHkuICovCisjZGVmaW5lIFhF
Tk1BUFNQQUNFX2Rldl9tbWlvICAgICA1IC8qIGRldmljZSBtbWlvIHJlZ2lvbgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUk0gb25seTsgdGhlIHJlZ2lvbiBpcyBtYXBw
ZWQgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhZ2UtMiB1c2lu
ZyB0aGUgTm9ybWFsIE1lbW9yeQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBJbm5lci9PdXRlciBXcml0ZS1CYWNrIENhY2hlYWJsZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtZW1vcnkgYXR0cmlidXRlLiAqLwogLyogYCB9ICovCiAKIC8qCkBA
IC0yNTUsNyArMjY1LDE1IEBAIHN0cnVjdCB4ZW5fYWRkX3RvX3BoeXNtYXBfYmF0Y2ggewogCiAg
ICAgLyogTnVtYmVyIG9mIHBhZ2VzIHRvIGdvIHRocm91Z2ggKi8KICAgICB1aW50MTZfdCBzaXpl
OwotICAgIGRvbWlkX3QgZm9yZWlnbl9kb21pZDsgLyogSUZGIGdtZm5fZm9yZWlnbiAqLworCisj
aWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAwNDA3MDAKKyAgICBkb21pZF90IGZv
cmVpZ25fZG9taWQ7IC8qIElGRiBnbWZuX2ZvcmVpZ24uIFNob3VsZCBiZSAwIGZvciBvdGhlciBz
cGFjZXMuICovCisjZWxzZQorICAgIHVuaW9uIHhlbl9hZGRfdG9fcGh5c21hcF9iYXRjaF9leHRy
YSB7CisgICAgICAgIGRvbWlkX3QgZm9yZWlnbl9kb21pZDsgLyogZ21mbl9mb3JlaWduICovCisg
ICAgICAgIHVpbnQxNl90IHJlczA7ICAvKiBBbGwgdGhlIG90aGVyIHNwYWNlcy4gU2hvdWxkIGJl
IDAgKi8KKyAgICB9IHU7CisjZW5kaWYKIAogICAgIC8qIEluZGV4ZXMgaW50byBzcGFjZSBiZWlu
ZyBtYXBwZWQuICovCiAgICAgWEVOX0dVRVNUX0hBTkRMRSh4ZW5fdWxvbmdfdCkgaWR4czsKQEAg
LTMyMyw2ICszNDEsOCBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fbWVtb3J5X21hcF90
KTsKIC8qCiAgKiBSZXR1cm5zIHRoZSByZWFsIHBoeXNpY2FsIG1lbW9yeSBtYXAuIFBhc3NlcyB0
aGUgc2FtZSBzdHJ1Y3R1cmUgYXMKICAqIFhFTk1FTV9tZW1vcnlfbWFwLgorICogU3BlY2lmeWlu
ZyBidWZmZXIgYXMgTlVMTCB3aWxsIHJldHVybiB0aGUgbnVtYmVyIG9mIGVudHJpZXMgcmVxdWly
ZWQKKyAqIHRvIHN0b3JlIHRoZSBjb21wbGV0ZSBtZW1vcnkgbWFwLgogICogYXJnID09IGFkZHIg
b2YgeGVuX21lbW9yeV9tYXBfdC4KICAqLwogI2RlZmluZSBYRU5NRU1fbWFjaGluZV9tZW1vcnlf
bWFwICAgMTAKQEAgLTM3MiwyMyArMzkyLDI5IEBAIHR5cGVkZWYgc3RydWN0IHhlbl9wb2RfdGFy
Z2V0IHhlbl9wb2RfdGFyZ2V0X3Q7CiAjZGVmaW5lIFhFTk1FTV9wYWdpbmdfb3BfZXZpY3QgICAg
ICAgICAgICAgIDEKICNkZWZpbmUgWEVOTUVNX3BhZ2luZ19vcF9wcmVwICAgICAgICAgICAgICAg
MgogCi1zdHJ1Y3QgeGVuX21lbV9ldmVudF9vcCB7Ci0gICAgdWludDhfdCAgICAgb3A7ICAgICAg
ICAgLyogWEVOTUVNXypfb3BfKiAqLworc3RydWN0IHhlbl9tZW1fcGFnaW5nX29wIHsKKyAgICB1
aW50OF90ICAgICBvcDsgICAgICAgICAvKiBYRU5NRU1fcGFnaW5nX29wXyogKi8KICAgICBkb21p
ZF90ICAgICBkb21haW47Ci0gICAgCiAKICAgICAvKiBQQUdJTkdfUFJFUCBJTjogYnVmZmVyIHRv
IGltbWVkaWF0ZWx5IGZpbGwgcGFnZSBpbiAqLwogICAgIHVpbnQ2NF9hbGlnbmVkX3QgICAgYnVm
ZmVyOwogICAgIC8qIE90aGVyIE9QcyAqLwogICAgIHVpbnQ2NF9hbGlnbmVkX3QgICAgZ2ZuOyAg
ICAgICAgICAgLyogSU46ICBnZm4gb2YgcGFnZSBiZWluZyBvcGVyYXRlZCBvbiAqLwogfTsKLXR5
cGVkZWYgc3RydWN0IHhlbl9tZW1fZXZlbnRfb3AgeGVuX21lbV9ldmVudF9vcF90OwotREVGSU5F
X1hFTl9HVUVTVF9IQU5ETEUoeGVuX21lbV9ldmVudF9vcF90KTsKK3R5cGVkZWYgc3RydWN0IHhl
bl9tZW1fcGFnaW5nX29wIHhlbl9tZW1fcGFnaW5nX29wX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hB
TkRMRSh4ZW5fbWVtX3BhZ2luZ19vcF90KTsKIAogI2RlZmluZSBYRU5NRU1fYWNjZXNzX29wICAg
ICAgICAgICAgICAgICAgICAyMQotI2RlZmluZSBYRU5NRU1fYWNjZXNzX29wX3Jlc3VtZSAgICAg
ICAgICAgICAwCi0jZGVmaW5lIFhFTk1FTV9hY2Nlc3Nfb3Bfc2V0X2FjY2VzcyAgICAgICAgIDEK
LSNkZWZpbmUgWEVOTUVNX2FjY2Vzc19vcF9nZXRfYWNjZXNzICAgICAgICAgMgorI2RlZmluZSBY
RU5NRU1fYWNjZXNzX29wX3NldF9hY2Nlc3MgICAgICAgICAwCisjZGVmaW5lIFhFTk1FTV9hY2Nl
c3Nfb3BfZ2V0X2FjY2VzcyAgICAgICAgIDEKKy8qCisgKiBYRU5NRU1fYWNjZXNzX29wX2VuYWJs
ZV9lbXVsYXRlIGFuZCBYRU5NRU1fYWNjZXNzX29wX2Rpc2FibGVfZW11bGF0ZSBhcmUKKyAqIGN1
cnJlbnRseSB1bnVzZWQsIGJ1dCBzaW5jZSB0aGV5IGhhdmUgYmVlbiBpbiB1c2UgcGxlYXNlIGRv
IG5vdCByZXVzZSB0aGVtLgorICoKKyAqICNkZWZpbmUgWEVOTUVNX2FjY2Vzc19vcF9lbmFibGVf
ZW11bGF0ZSAgICAgMgorICogI2RlZmluZSBYRU5NRU1fYWNjZXNzX29wX2Rpc2FibGVfZW11bGF0
ZSAgICAzCisgKi8KKyNkZWZpbmUgWEVOTUVNX2FjY2Vzc19vcF9zZXRfYWNjZXNzX211bHRpICAg
NAogCiB0eXBlZGVmIGVudW0gewogICAgIFhFTk1FTV9hY2Nlc3NfbiwKQEAgLTQyMSw3ICs0NDcs
OCBAQCBzdHJ1Y3QgeGVuX21lbV9hY2Nlc3Nfb3AgewogICAgIHVpbnQ4X3QgYWNjZXNzOwogICAg
IGRvbWlkX3QgZG9taWQ7CiAgICAgLyoKLSAgICAgKiBOdW1iZXIgb2YgcGFnZXMgZm9yIHNldCBv
cAorICAgICAqIE51bWJlciBvZiBwYWdlcyBmb3Igc2V0IG9wIChvciBzaXplIG9mIHBmbl9saXN0
IGZvcgorICAgICAqIFhFTk1FTV9hY2Nlc3Nfb3Bfc2V0X2FjY2Vzc19tdWx0aSkKICAgICAgKiBJ
Z25vcmVkIG9uIHNldHRpbmcgZGVmYXVsdCBhY2Nlc3MgYW5kIG90aGVyIG9wcwogICAgICAqLwog
ICAgIHVpbnQzMl90IG5yOwpAQCAtNDMxLDYgKzQ1OCwxNiBAQCBzdHJ1Y3QgeGVuX21lbV9hY2Nl
c3Nfb3AgewogICAgICAqIH4wdWxsIGlzIHVzZWQgdG8gc2V0IGFuZCBnZXQgdGhlIGRlZmF1bHQg
YWNjZXNzIGZvciBwYWdlcwogICAgICAqLwogICAgIHVpbnQ2NF9hbGlnbmVkX3QgcGZuOworICAg
IC8qCisgICAgICogTGlzdCBvZiBwZm5zIHRvIHNldCBhY2Nlc3MgZm9yCisgICAgICogVXNlZCBv
bmx5IHdpdGggWEVOTUVNX2FjY2Vzc19vcF9zZXRfYWNjZXNzX211bHRpCisgICAgICovCisgICAg
WEVOX0dVRVNUX0hBTkRMRShjb25zdF91aW50NjQpIHBmbl9saXN0OworICAgIC8qCisgICAgICog
Q29ycmVzcG9uZGluZyBsaXN0IG9mIGFjY2VzcyBzZXR0aW5ncyBmb3IgcGZuX2xpc3QKKyAgICAg
KiBVc2VkIG9ubHkgd2l0aCBYRU5NRU1fYWNjZXNzX29wX3NldF9hY2Nlc3NfbXVsdGkKKyAgICAg
Ki8KKyAgICBYRU5fR1VFU1RfSEFORExFKGNvbnN0X3VpbnQ4KSBhY2Nlc3NfbGlzdDsKIH07CiB0
eXBlZGVmIHN0cnVjdCB4ZW5fbWVtX2FjY2Vzc19vcCB4ZW5fbWVtX2FjY2Vzc19vcF90OwogREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX21lbV9hY2Nlc3Nfb3BfdCk7CkBAIC00MzksMTIgKzQ3
NiwxMiBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fbWVtX2FjY2Vzc19vcF90KTsKICNk
ZWZpbmUgWEVOTUVNX3NoYXJpbmdfb3Bfbm9taW5hdGVfZ2ZuICAgICAgMAogI2RlZmluZSBYRU5N
RU1fc2hhcmluZ19vcF9ub21pbmF0ZV9ncmVmICAgICAxCiAjZGVmaW5lIFhFTk1FTV9zaGFyaW5n
X29wX3NoYXJlICAgICAgICAgICAgIDIKLSNkZWZpbmUgWEVOTUVNX3NoYXJpbmdfb3BfcmVzdW1l
ICAgICAgICAgICAgMwotI2RlZmluZSBYRU5NRU1fc2hhcmluZ19vcF9kZWJ1Z19nZm4gICAgICAg
ICA0Ci0jZGVmaW5lIFhFTk1FTV9zaGFyaW5nX29wX2RlYnVnX21mbiAgICAgICAgIDUKLSNkZWZp
bmUgWEVOTUVNX3NoYXJpbmdfb3BfZGVidWdfZ3JlZiAgICAgICAgNgotI2RlZmluZSBYRU5NRU1f
c2hhcmluZ19vcF9hZGRfcGh5c21hcCAgICAgICA3Ci0jZGVmaW5lIFhFTk1FTV9zaGFyaW5nX29w
X2F1ZGl0ICAgICAgICAgICAgIDgKKyNkZWZpbmUgWEVOTUVNX3NoYXJpbmdfb3BfZGVidWdfZ2Zu
ICAgICAgICAgMworI2RlZmluZSBYRU5NRU1fc2hhcmluZ19vcF9kZWJ1Z19tZm4gICAgICAgICA0
CisjZGVmaW5lIFhFTk1FTV9zaGFyaW5nX29wX2RlYnVnX2dyZWYgICAgICAgIDUKKyNkZWZpbmUg
WEVOTUVNX3NoYXJpbmdfb3BfYWRkX3BoeXNtYXAgICAgICAgNgorI2RlZmluZSBYRU5NRU1fc2hh
cmluZ19vcF9hdWRpdCAgICAgICAgICAgICA3CisjZGVmaW5lIFhFTk1FTV9zaGFyaW5nX29wX3Jh
bmdlX3NoYXJlICAgICAgIDgKIAogI2RlZmluZSBYRU5NRU1fU0hBUklOR19PUF9TX0hBTkRMRV9J
TlZBTElEICAoLTEwKQogI2RlZmluZSBYRU5NRU1fU0hBUklOR19PUF9DX0hBTkRMRV9JTlZBTElE
ICAoLTkpCkBAIC00NTMsNyArNDkwLDcgQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX21l
bV9hY2Nlc3Nfb3BfdCk7CiAgKiBmb3Igc2hhcmluZyB1dGlsaXRpZXMgc2l0dGluZyBhcyAiZmls
dGVycyIgaW4gSU8gYmFja2VuZHMKICAqIChlLmcuIG1lbXNociArIGJsa3RhcCgyKSkuIFRoZSBJ
TyBiYWNrZW5kIGlzIG9ubHkgZXhwb3NlZCAKICAqIHRvIGdyYW50IHJlZmVyZW5jZXMsIGFuZCB0
aGlzIGFsbG93cyBzaGFyaW5nIG9mIHRoZSBncmVmcyAqLwotI2RlZmluZSBYRU5NRU1fU0hBUklO
R19PUF9GSUVMRF9JU19HUkVGX0ZMQUcgICAoMVVMTCA8PCA2MikKKyNkZWZpbmUgWEVOTUVNX1NI
QVJJTkdfT1BfRklFTERfSVNfR1JFRl9GTEFHICAgKHhlbl9ta191bGxvbmcoMSkgPDwgNjIpCiAK
ICNkZWZpbmUgWEVOTUVNX1NIQVJJTkdfT1BfRklFTERfTUFLRV9HUkVGKGZpZWxkLCB2YWwpICBc
CiAgICAgKGZpZWxkKSA9IChYRU5NRU1fU0hBUklOR19PUF9GSUVMRF9JU19HUkVGX0ZMQUcgfCB2
YWwpCkBAIC00ODAsNyArNTE3LDE0IEBAIHN0cnVjdCB4ZW5fbWVtX3NoYXJpbmdfb3AgewogICAg
ICAgICAgICAgdWludDY0X2FsaWduZWRfdCBjbGllbnRfZ2ZuOyAgICAvKiBJTjogdGhlIGNsaWVu
dCBnZm4gKi8KICAgICAgICAgICAgIHVpbnQ2NF9hbGlnbmVkX3QgY2xpZW50X2hhbmRsZTsgLyog
SU46IGhhbmRsZSB0byB0aGUgY2xpZW50IHBhZ2UgKi8KICAgICAgICAgICAgIGRvbWlkX3QgIGNs
aWVudF9kb21haW47IC8qIElOOiB0aGUgY2xpZW50IGRvbWFpbiBpZCAqLwotICAgICAgICB9IHNo
YXJlOyAKKyAgICAgICAgfSBzaGFyZTsKKyAgICAgICAgc3RydWN0IG1lbV9zaGFyaW5nX29wX3Jh
bmdlIHsgICAgICAgICAvKiBPUF9SQU5HRV9TSEFSRSAqLworICAgICAgICAgICAgdWludDY0X2Fs
aWduZWRfdCBmaXJzdF9nZm47ICAgICAgLyogSU46IHRoZSBmaXJzdCBnZm4gKi8KKyAgICAgICAg
ICAgIHVpbnQ2NF9hbGlnbmVkX3QgbGFzdF9nZm47ICAgICAgIC8qIElOOiB0aGUgbGFzdCBnZm4g
Ki8KKyAgICAgICAgICAgIHVpbnQ2NF9hbGlnbmVkX3Qgb3BhcXVlOyAgICAgICAgIC8qIE11c3Qg
YmUgc2V0IHRvIDAgKi8KKyAgICAgICAgICAgIGRvbWlkX3QgY2xpZW50X2RvbWFpbjsgICAgICAg
ICAgIC8qIElOOiB0aGUgY2xpZW50IGRvbWFpbiBpZCAqLworICAgICAgICAgICAgdWludDE2X3Qg
X3BhZFszXTsgICAgICAgICAgICAgICAgLyogTXVzdCBiZSBzZXQgdG8gMCAqLworICAgICAgICB9
IHJhbmdlOwogICAgICAgICBzdHJ1Y3QgbWVtX3NoYXJpbmdfb3BfZGVidWcgeyAgICAgLyogT1Bf
REVCVUdfeHh4ICovCiAgICAgICAgICAgICB1bmlvbiB7CiAgICAgICAgICAgICAgICAgdWludDY0
X2FsaWduZWRfdCBnZm47ICAgICAgLyogSU46IGdmbiB0byBkZWJ1ZyAgICAgICAgICAqLwpAQCAt
NTE4LDkgKzU2Miw0MyBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fbWVtX3NoYXJpbmdf
b3BfdCk7CiAKIC8qCiAgKiBYRU5NRU1fY2xhaW1fcGFnZXMgZmxhZ3MgLSB0aGUgYXJlIG5vIGZs
YWdzIGF0IHRoaXMgdGltZS4KLSAqIFRoZSB6ZXJvIHZhbHVlIGlzIGFwcHJvcGlhdGUuCisgKiBU
aGUgemVybyB2YWx1ZSBpcyBhcHByb3ByaWF0ZS4KICAqLwogCisvKgorICogV2l0aCBzb21lIGxl
Z2FjeSBkZXZpY2VzLCBjZXJ0YWluIGd1ZXN0LXBoeXNpY2FsIGFkZHJlc3NlcyBjYW5ub3Qgc2Fm
ZWx5CisgKiBiZSB1c2VkIGZvciBvdGhlciBwdXJwb3NlcywgZS5nLiB0byBtYXAgZ3Vlc3QgUkFN
LiAgVGhpcyBoeXBlcmNhbGwKKyAqIGVudW1lcmF0ZXMgdGhvc2UgcmVnaW9ucyBzbyB0aGUgdG9v
bHN0YWNrIGNhbiBhdm9pZCB1c2luZyB0aGVtLgorICovCisjZGVmaW5lIFhFTk1FTV9yZXNlcnZl
ZF9kZXZpY2VfbWVtb3J5X21hcCAgIDI3CitzdHJ1Y3QgeGVuX3Jlc2VydmVkX2RldmljZV9tZW1v
cnkgeworICAgIHhlbl9wZm5fdCBzdGFydF9wZm47CisgICAgeGVuX3Vsb25nX3QgbnJfcGFnZXM7
Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX3Jlc2VydmVkX2RldmljZV9tZW1vcnkgeGVuX3Jlc2Vy
dmVkX2RldmljZV9tZW1vcnlfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9yZXNlcnZl
ZF9kZXZpY2VfbWVtb3J5X3QpOworCitzdHJ1Y3QgeGVuX3Jlc2VydmVkX2RldmljZV9tZW1vcnlf
bWFwIHsKKyNkZWZpbmUgWEVOTUVNX1JETV9BTEwgMSAvKiBSZXF1ZXN0IGFsbCByZWdpb25zIChp
Z25vcmUgZGV2IHVuaW9uKS4gKi8KKyAgICAvKiBJTiAqLworICAgIHVpbnQzMl90IGZsYWdzOwor
ICAgIC8qCisgICAgICogSU4vT1VUCisgICAgICoKKyAgICAgKiBHZXRzIHNldCB0byB0aGUgcmVx
dWlyZWQgbnVtYmVyIG9mIGVudHJpZXMgd2hlbiB0b28gbG93LAorICAgICAqIHNpZ25hbGVkIGJ5
IGVycm9yIGNvZGUgLUVSQU5HRS4KKyAgICAgKi8KKyAgICB1bnNpZ25lZCBpbnQgbnJfZW50cmll
czsKKyAgICAvKiBPVVQgKi8KKyAgICBYRU5fR1VFU1RfSEFORExFKHhlbl9yZXNlcnZlZF9kZXZp
Y2VfbWVtb3J5X3QpIGJ1ZmZlcjsKKyAgICAvKiBJTiAqLworICAgIHVuaW9uIHsKKyAgICAgICAg
c3RydWN0IHBoeXNkZXZfcGNpX2RldmljZSBwY2k7CisgICAgfSBkZXY7Cit9OwordHlwZWRlZiBz
dHJ1Y3QgeGVuX3Jlc2VydmVkX2RldmljZV9tZW1vcnlfbWFwIHhlbl9yZXNlcnZlZF9kZXZpY2Vf
bWVtb3J5X21hcF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3Jlc2VydmVkX2Rldmlj
ZV9tZW1vcnlfbWFwX3QpOworCiAjZW5kaWYgLyogZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVk
KF9fWEVOX1RPT0xTX18pICovCiAKIC8qCkBAIC01NzIsNyArNjUwLDcgQEAgc3RydWN0IHhlbl92
bnVtYV90b3BvbG9neV9pbmZvIHsKIHR5cGVkZWYgc3RydWN0IHhlbl92bnVtYV90b3BvbG9neV9p
bmZvIHhlbl92bnVtYV90b3BvbG9neV9pbmZvX3Q7CiBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4
ZW5fdm51bWFfdG9wb2xvZ3lfaW5mb190KTsKIAotLyogTmV4dCBhdmFpbGFibGUgc3Vib3AgbnVt
YmVyIGlzIDI3ICovCisvKiBOZXh0IGF2YWlsYWJsZSBzdWJvcCBudW1iZXIgaXMgMjggKi8KIAog
I2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19NRU1PUllfSF9fICovCiAKZGlmZiAtLWdpdCBhL2luY2x1
ZGUveGVuL3BoeXNkZXYuaCBiL2luY2x1ZGUveGVuL3BoeXNkZXYuaAppbmRleCAyNjgzNzE5Li4w
ZTU0NjM1IDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi9waHlzZGV2LmgKKysrIGIvaW5jbHVkZS94
ZW4vcGh5c2Rldi5oCkBAIC0xNiw2ICsxNiw4IEBACiAgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
QU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwogICogRlJP
TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBP
UiBPVEhFUgogICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIENvcHlyaWdodCAo
YykgMjAwNiwgS2VpciBGcmFzZXIKICAqLwogCiAjaWZuZGVmIF9fWEVOX1BVQkxJQ19QSFlTREVW
X0hfXwpAQCAtMjkzLDYgKzI5NSwxMSBAQCBzdHJ1Y3QgcGh5c2Rldl9wY2lfZGV2aWNlX2FkZCB7
CiAgICAgICAgIHVpbnQ4X3QgYnVzOwogICAgICAgICB1aW50OF90IGRldmZuOwogICAgIH0gcGh5
c2ZuOworICAgIC8qCisgICAgICogT3B0aW9uYWwgcGFyYW1ldGVycyBhcnJheS4KKyAgICAgKiBG
aXJzdCBlbGVtZW50IChbMF0pIGlzIFBYTSBkb21haW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBkZXZp
Y2UgKGlmCisgICAgICogWEVOX1BDSV9ERVZfUFhNIGlzIHNldCkKKyAgICAgKi8KICNpZiBkZWZp
bmVkKF9fU1REQ19WRVJTSU9OX18pICYmIF9fU1REQ19WRVJTSU9OX18gPj0gMTk5OTAxTAogICAg
IHVpbnQzMl90IG9wdGFycltdOwogI2VsaWYgZGVmaW5lZChfX0dOVUNfXykKZGlmZiAtLWdpdCBh
L2luY2x1ZGUveGVuL3BsYXRmb3JtLmggYi9pbmNsdWRlL3hlbi9wbGF0Zm9ybS5oCmluZGV4IDVj
NTc2MTUuLjk0ZGJjM2YgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL3BsYXRmb3JtLmgKKysrIGIv
aW5jbHVkZS94ZW4vcGxhdGZvcm0uaApAQCAtMzUsMTMgKzM1LDI4IEBACiAgKiBTZXQgY2xvY2sg
c3VjaCB0aGF0IGl0IHdvdWxkIHJlYWQgPHNlY3MsbnNlY3M+IGFmdGVyIDAwOjAwOjAwIFVUQywK
ICAqIDEgSmFudWFyeSwgMTk3MCBpZiB0aGUgY3VycmVudCBzeXN0ZW0gdGltZSB3YXMgPHN5c3Rl
bV90aW1lPi4KICAqLwotI2RlZmluZSBYRU5QRl9zZXR0aW1lICAgICAgICAgICAgIDE3Ci1zdHJ1
Y3QgeGVucGZfc2V0dGltZSB7CisjZGVmaW5lIFhFTlBGX3NldHRpbWUzMiAgICAgICAgICAgMTcK
K3N0cnVjdCB4ZW5wZl9zZXR0aW1lMzIgewogICAgIC8qIElOIHZhcmlhYmxlcy4gKi8KICAgICB1
aW50MzJfdCBzZWNzOwogICAgIHVpbnQzMl90IG5zZWNzOwogICAgIHVpbnQ2NF90IHN5c3RlbV90
aW1lOwogfTsKKyNkZWZpbmUgWEVOUEZfc2V0dGltZTY0ICAgICAgICAgICA2Mgorc3RydWN0IHhl
bnBmX3NldHRpbWU2NCB7CisgICAgLyogSU4gdmFyaWFibGVzLiAqLworICAgIHVpbnQ2NF90IHNl
Y3M7CisgICAgdWludDMyX3QgbnNlY3M7CisgICAgdWludDMyX3QgbWJ6OworICAgIHVpbnQ2NF90
IHN5c3RlbV90aW1lOworfTsKKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDA0
MDYwMAorI2RlZmluZSBYRU5QRl9zZXR0aW1lIFhFTlBGX3NldHRpbWUzMgorI2RlZmluZSB4ZW5w
Zl9zZXR0aW1lIHhlbnBmX3NldHRpbWUzMgorI2Vsc2UKKyNkZWZpbmUgWEVOUEZfc2V0dGltZSBY
RU5QRl9zZXR0aW1lNjQKKyNkZWZpbmUgeGVucGZfc2V0dGltZSB4ZW5wZl9zZXR0aW1lNjQKKyNl
bmRpZgogdHlwZWRlZiBzdHJ1Y3QgeGVucGZfc2V0dGltZSB4ZW5wZl9zZXR0aW1lX3Q7CiBERUZJ
TkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5wZl9zZXR0aW1lX3QpOwogCkBAIC0xMjYsNiArMTQxLDI2
IEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbnBmX3BsYXRmb3JtX3F1aXJrX3QpOwogI2Rl
ZmluZSBYRU5fRUZJX3F1ZXJ5X3ZhcmlhYmxlX2luZm8gICAgICAgICAgIDkKICNkZWZpbmUgWEVO
X0VGSV9xdWVyeV9jYXBzdWxlX2NhcGFiaWxpdGllcyAgIDEwCiAjZGVmaW5lIFhFTl9FRklfdXBk
YXRlX2NhcHN1bGUgICAgICAgICAgICAgICAxMQorCitzdHJ1Y3QgeGVucGZfZWZpX3RpbWUgewor
ICAgIHVpbnQxNl90IHllYXI7CisgICAgdWludDhfdCBtb250aDsKKyAgICB1aW50OF90IGRheTsK
KyAgICB1aW50OF90IGhvdXI7CisgICAgdWludDhfdCBtaW47CisgICAgdWludDhfdCBzZWM7Cisg
ICAgdWludDMyX3QgbnM7CisgICAgaW50MTZfdCB0ejsKKyAgICB1aW50OF90IGRheWxpZ2h0Owor
fTsKKworc3RydWN0IHhlbnBmX2VmaV9ndWlkIHsKKyAgICB1aW50MzJfdCBkYXRhMTsKKyAgICB1
aW50MTZfdCBkYXRhMjsKKyAgICB1aW50MTZfdCBkYXRhMzsKKyAgICB1aW50OF90IGRhdGE0Wzhd
OworfTsKKwogc3RydWN0IHhlbnBmX2VmaV9ydW50aW1lX2NhbGwgewogICAgIHVpbnQzMl90IGZ1
bmN0aW9uOwogICAgIC8qCkBAIC0xMzgsMTcgKzE3Myw3IEBAIHN0cnVjdCB4ZW5wZl9lZmlfcnVu
dGltZV9jYWxsIHsKICAgICB1bmlvbiB7CiAjZGVmaW5lIFhFTl9FRklfR0VUX1RJTUVfU0VUX0NM
RUFSU19OUyAweDAwMDAwMDAxCiAgICAgICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICBzdHJ1Y3Qg
eGVucGZfZWZpX3RpbWUgewotICAgICAgICAgICAgICAgIHVpbnQxNl90IHllYXI7Ci0gICAgICAg
ICAgICAgICAgdWludDhfdCBtb250aDsKLSAgICAgICAgICAgICAgICB1aW50OF90IGRheTsKLSAg
ICAgICAgICAgICAgICB1aW50OF90IGhvdXI7Ci0gICAgICAgICAgICAgICAgdWludDhfdCBtaW47
Ci0gICAgICAgICAgICAgICAgdWludDhfdCBzZWM7Ci0gICAgICAgICAgICAgICAgdWludDMyX3Qg
bnM7Ci0gICAgICAgICAgICAgICAgaW50MTZfdCB0ejsKLSAgICAgICAgICAgICAgICB1aW50OF90
IGRheWxpZ2h0OwotICAgICAgICAgICAgfSB0aW1lOworICAgICAgICAgICAgc3RydWN0IHhlbnBm
X2VmaV90aW1lIHRpbWU7CiAgICAgICAgICAgICB1aW50MzJfdCByZXNvbHV0aW9uOwogICAgICAg
ICAgICAgdWludDMyX3QgYWNjdXJhY3k7CiAgICAgICAgIH0gZ2V0X3RpbWU7CkBAIC0xNzAsMTIg
KzE5NSw3IEBAIHN0cnVjdCB4ZW5wZl9lZmlfcnVudGltZV9jYWxsIHsKICAgICAgICAgICAgIFhF
Tl9HVUVTVF9IQU5ETEUodm9pZCkgbmFtZTsgIC8qIFVDUy0yL1VURi0xNiBzdHJpbmcgKi8KICAg
ICAgICAgICAgIHhlbl91bG9uZ190IHNpemU7CiAgICAgICAgICAgICBYRU5fR1VFU1RfSEFORExF
KHZvaWQpIGRhdGE7Ci0gICAgICAgICAgICBzdHJ1Y3QgeGVucGZfZWZpX2d1aWQgewotICAgICAg
ICAgICAgICAgIHVpbnQzMl90IGRhdGExOwotICAgICAgICAgICAgICAgIHVpbnQxNl90IGRhdGEy
OwotICAgICAgICAgICAgICAgIHVpbnQxNl90IGRhdGEzOwotICAgICAgICAgICAgICAgIHVpbnQ4
X3QgZGF0YTRbOF07Ci0gICAgICAgICAgICB9IHZlbmRvcl9ndWlkOworICAgICAgICAgICAgc3Ry
dWN0IHhlbnBmX2VmaV9ndWlkIHZlbmRvcl9ndWlkOwogICAgICAgICB9IGdldF92YXJpYWJsZSwg
c2V0X3ZhcmlhYmxlOwogCiAgICAgICAgIHN0cnVjdCB7CkBAIC0yMjAsNiArMjQwLDcgQEAgREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVucGZfZWZpX3J1bnRpbWVfY2FsbF90KTsKICNkZWZpbmUg
IFhFTl9GV19FRklfTUVNX0lORk8gICAgICAgMwogI2RlZmluZSAgWEVOX0ZXX0VGSV9SVF9WRVJT
SU9OICAgICA0CiAjZGVmaW5lICBYRU5fRldfRUZJX1BDSV9ST00gICAgICAgIDUKKyNkZWZpbmUg
IFhFTl9GV19FRklfQVBQTEVfUFJPUEVSVElFUyA2CiAjZGVmaW5lIFhFTl9GV19LQkRfU0hJRlRf
RkxBR1MgICAgNQogc3RydWN0IHhlbnBmX2Zpcm13YXJlX2luZm8gewogICAgIC8qIElOIHZhcmlh
Ymxlcy4gKi8KQEAgLTI3OSw2ICszMDAsMTEgQEAgc3RydWN0IHhlbnBmX2Zpcm13YXJlX2luZm8g
ewogICAgICAgICAgICAgICAgIHVpbnQ2NF90IGFkZHJlc3M7CiAgICAgICAgICAgICAgICAgeGVu
X3Vsb25nX3Qgc2l6ZTsKICAgICAgICAgICAgIH0gcGNpX3JvbTsKKyAgICAgICAgICAgIHN0cnVj
dCB7CisgICAgICAgICAgICAgICAgLyogT1VUIHZhcmlhYmxlcyAqLworICAgICAgICAgICAgICAg
IHVpbnQ2NF90IGFkZHJlc3M7CisgICAgICAgICAgICAgICAgeGVuX3Vsb25nX3Qgc2l6ZTsKKyAg
ICAgICAgICAgIH0gYXBwbGVfcHJvcGVydGllczsKICAgICAgICAgfSBlZmlfaW5mbzsgLyogWEVO
X0ZXX0VGSV9JTkZPICovCiAKICAgICAgICAgLyogSW50MTYsIEZuMDI6IEdldCBrZXlib2FyZCBz
aGlmdCBmbGFncy4gKi8KQEAgLTU0MCw2ICs1NjYsMTYgQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5E
TEUoeGVucGZfY29yZV9wYXJraW5nX3QpOwogI2RlZmluZSBYRU5fUkVTT1VSQ0VfT1BfTVNSX1JF
QUQgIDAKICNkZWZpbmUgWEVOX1JFU09VUkNFX09QX01TUl9XUklURSAxCiAKKy8qCisgKiBTcGVj
aWFsbHkgaGFuZGxlZCBNU1JzOgorICogLSBNU1JfSUEzMl9UU0MKKyAqIFJFQUQ6IFJldHVybnMg
dGhlIHNjYWxlZCBzeXN0ZW0gdGltZShucykgaW5zdGVhZCBvZiByYXcgdGltZXN0YW1wLiBJbgor
ICogICAgICAgbXVsdGlwbGUgZW50cnkgY2FzZSwgaWYgb3RoZXIgTVNSIHJlYWQgaXMgZm9sbG93
ZWQgYnkgYSBNU1JfSUEzMl9UU0MKKyAqICAgICAgIHJlYWQsIHRoZW4gYm90aCByZWFkcyBhcmUg
Z3VhcmFudGVlZCB0byBiZSBwZXJmb3JtZWQgYXRvbWljYWxseSAod2l0aAorICogICAgICAgSVJR
IGRpc2FibGVkKS4gVGhlIHJldHVybiB0aW1lIGluZGljYXRlcyB0aGUgcG9pbnQgb2YgcmVhZGlu
ZyB0aGF0IE1TUi4KKyAqIFdSSVRFOiBOb3Qgc3VwcG9ydGVkLgorICovCisKIHN0cnVjdCB4ZW5w
Zl9yZXNvdXJjZV9lbnRyeSB7CiAgICAgdW5pb24gewogICAgICAgICB1aW50MzJfdCBjbWQ7ICAg
LyogSU46IFhFTl9SRVNPVVJDRV9PUF8qICovCkBAIC01NjAsNiArNTk2LDI0IEBAIHN0cnVjdCB4
ZW5wZl9yZXNvdXJjZV9vcCB7CiB0eXBlZGVmIHN0cnVjdCB4ZW5wZl9yZXNvdXJjZV9vcCB4ZW5w
Zl9yZXNvdXJjZV9vcF90OwogREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVucGZfcmVzb3VyY2Vf
b3BfdCk7CiAKKyNkZWZpbmUgWEVOUEZfZ2V0X3N5bWJvbCAgIDYzCitzdHJ1Y3QgeGVucGZfc3lt
ZGF0YSB7CisgICAgLyogSU4vT1VUIHZhcmlhYmxlcyAqLworICAgIHVpbnQzMl90IG5hbWVsZW47
IC8qIElOOiAgc2l6ZSBvZiBuYW1lIGJ1ZmZlciAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAg
ICAgICAgICAgICAgICAgICAgICAvKiBPVVQ6IHN0cmxlbihuYW1lKSBvZiBoeXBlcnZpc29yIHN5
bWJvbCAobWF5IGJlICovCisgICAgICAgICAgICAgICAgICAgICAgLyogICAgICBsYXJnZXIgdGhh
biB3aGF0J3MgYmVlbiBjb3BpZWQgdG8gZ3Vlc3QpICAqLworICAgIHVpbnQzMl90IHN5bW51bTsg
IC8qIElOOiAgU3ltYm9sIHRvIHJlYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAg
ICAgICAgICAgICAgICAgICAgICAvKiBPVVQ6IE5leHQgYXZhaWxhYmxlIHN5bWJvbC4gSWYgc2Ft
ZSBhcyBJTiB0aGVuICovCisgICAgICAgICAgICAgICAgICAgICAgLyogICAgICB3ZSByZWFjaGVk
IHRoZSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAqLworCisgICAgLyogT1VUIHZhcmlhYmxl
cyAqLworICAgIFhFTl9HVUVTVF9IQU5ETEUoY2hhcikgbmFtZTsKKyAgICB1aW50NjRfdCBhZGRy
ZXNzOworICAgIGNoYXIgdHlwZTsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5wZl9zeW1kYXRhIHhl
bnBmX3N5bWRhdGFfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbnBmX3N5bWRhdGFfdCk7
CisKIC8qCiAgKiBgIGVudW0gbmVnX2Vycm5vdmFsCiAgKiBgIEhZUEVSVklTT1JfcGxhdGZvcm1f
b3AoY29uc3Qgc3RydWN0IHhlbl9wbGF0Zm9ybV9vcCopOwpAQCAtNTY5LDYgKzYyMyw4IEBAIHN0
cnVjdCB4ZW5fcGxhdGZvcm1fb3AgewogICAgIHVpbnQzMl90IGludGVyZmFjZV92ZXJzaW9uOyAv
KiBYRU5QRl9JTlRFUkZBQ0VfVkVSU0lPTiAqLwogICAgIHVuaW9uIHsKICAgICAgICAgc3RydWN0
IHhlbnBmX3NldHRpbWUgICAgICAgICAgIHNldHRpbWU7CisgICAgICAgIHN0cnVjdCB4ZW5wZl9z
ZXR0aW1lMzIgICAgICAgICBzZXR0aW1lMzI7CisgICAgICAgIHN0cnVjdCB4ZW5wZl9zZXR0aW1l
NjQgICAgICAgICBzZXR0aW1lNjQ7CiAgICAgICAgIHN0cnVjdCB4ZW5wZl9hZGRfbWVtdHlwZSAg
ICAgICBhZGRfbWVtdHlwZTsKICAgICAgICAgc3RydWN0IHhlbnBmX2RlbF9tZW10eXBlICAgICAg
IGRlbF9tZW10eXBlOwogICAgICAgICBzdHJ1Y3QgeGVucGZfcmVhZF9tZW10eXBlICAgICAgcmVh
ZF9tZW10eXBlOwpAQCAtNTg3LDYgKzY0Myw3IEBAIHN0cnVjdCB4ZW5fcGxhdGZvcm1fb3Agewog
ICAgICAgICBzdHJ1Y3QgeGVucGZfbWVtX2hvdGFkZCAgICAgICAgbWVtX2FkZDsKICAgICAgICAg
c3RydWN0IHhlbnBmX2NvcmVfcGFya2luZyAgICAgIGNvcmVfcGFya2luZzsKICAgICAgICAgc3Ry
dWN0IHhlbnBmX3Jlc291cmNlX29wICAgICAgIHJlc291cmNlX29wOworICAgICAgICBzdHJ1Y3Qg
eGVucGZfc3ltZGF0YSAgICAgICAgICAgc3ltZGF0YTsKICAgICAgICAgdWludDhfdCAgICAgICAg
ICAgICAgICAgICAgICAgIHBhZFsxMjhdOwogICAgIH0gdTsKIH07CmRpZmYgLS1naXQgYS9pbmNs
dWRlL3hlbi9wbXUuaCBiL2luY2x1ZGUveGVuL3BtdS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjBlMTMxMmMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi9wbXUu
aApAQCAtMCwwICsxLDE0MyBAQAorLyoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs
IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRo
aXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0
d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwg
aW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHks
IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgor
ICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8g
d2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp
Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFs
bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAq
IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO
WSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE
IFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBD
TEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP
TiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBP
RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIK
KyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTUg
T3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqLwor
CisjaWZuZGVmIF9fWEVOX1BVQkxJQ19QTVVfSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19QTVVf
SF9fCisKKyNpbmNsdWRlICJ4ZW4uaCIKKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk
KF9feDg2XzY0X18pCisjaW5jbHVkZSAiYXJjaC14ODYvcG11LmgiCisjZWxpZiBkZWZpbmVkIChf
X2FybV9fKSB8fCBkZWZpbmVkIChfX2FhcmNoNjRfXykKKyNpbmNsdWRlICJhcmNoLWFybS5oIgor
I2Vsc2UKKyNlcnJvciAiVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlIgorI2VuZGlmCisKKyNkZWZp
bmUgWEVOUE1VX1ZFUl9NQUogICAgMAorI2RlZmluZSBYRU5QTVVfVkVSX01JTiAgICAxCisKKy8q
CisgKiBgIGVudW0gbmVnX2Vycm5vdmFsCisgKiBgIEhZUEVSVklTT1JfeGVucG11X29wKGVudW0g
eGVucG11X29wIGNtZCwgc3RydWN0IHhlbnBtdV9wYXJhbXMgKmFyZ3MpOworICoKKyAqIEBjbWQg
ID09IFhFTlBNVV8qIChQTVUgb3BlcmF0aW9uKQorICogQGFyZ3MgPT0gc3RydWN0IHhlbnBtdV9w
YXJhbXMKKyAqLworLyogYCBlbnVtIHhlbnBtdV9vcCB7ICovCisjZGVmaW5lIFhFTlBNVV9tb2Rl
X2dldCAgICAgICAgMCAvKiBBbHNvIHVzZWQgZm9yIGdldHRpbmcgUE1VIHZlcnNpb24gKi8KKyNk
ZWZpbmUgWEVOUE1VX21vZGVfc2V0ICAgICAgICAxCisjZGVmaW5lIFhFTlBNVV9mZWF0dXJlX2dl
dCAgICAgMgorI2RlZmluZSBYRU5QTVVfZmVhdHVyZV9zZXQgICAgIDMKKyNkZWZpbmUgWEVOUE1V
X2luaXQgICAgICAgICAgICA0CisjZGVmaW5lIFhFTlBNVV9maW5pc2ggICAgICAgICAgNQorI2Rl
ZmluZSBYRU5QTVVfbHZ0cGNfc2V0ICAgICAgIDYKKyNkZWZpbmUgWEVOUE1VX2ZsdXNoICAgICAg
ICAgICA3IC8qIFdyaXRlIGNhY2hlZCBNU1IgdmFsdWVzIHRvIEhXICAgICAqLworLyogYCB9ICov
CisKKy8qIFBhcmFtZXRlcnMgc3RydWN0dXJlIGZvciBIWVBFUlZJU09SX3hlbnBtdV9vcCBjYWxs
ICovCitzdHJ1Y3QgeGVuX3BtdV9wYXJhbXMgeworICAgIC8qIElOL09VVCBwYXJhbWV0ZXJzICov
CisgICAgc3RydWN0IHsKKyAgICAgICAgdWludDMyX3QgbWFqOworICAgICAgICB1aW50MzJfdCBt
aW47CisgICAgfSB2ZXJzaW9uOworICAgIHVpbnQ2NF90IHZhbDsKKworICAgIC8qIElOIHBhcmFt
ZXRlcnMgKi8KKyAgICB1aW50MzJfdCB2Y3B1OworICAgIHVpbnQzMl90IHBhZDsKK307Cit0eXBl
ZGVmIHN0cnVjdCB4ZW5fcG11X3BhcmFtcyB4ZW5fcG11X3BhcmFtc190OworREVGSU5FX1hFTl9H
VUVTVF9IQU5ETEUoeGVuX3BtdV9wYXJhbXNfdCk7CisKKy8qIFBNVSBtb2RlczoKKyAqIC0gWEVO
UE1VX01PREVfT0ZGOiAgIE5vIFBNVSB2aXJ0dWFsaXphdGlvbgorICogLSBYRU5QTVVfTU9ERV9T
RUxGOiAgR3Vlc3RzIGNhbiBwcm9maWxlIHRoZW1zZWx2ZXMKKyAqIC0gWEVOUE1VX01PREVfSFY6
ICAgIEd1ZXN0cyBjYW4gcHJvZmlsZSB0aGVtc2VsdmVzLCBkb20wIHByb2ZpbGVzCisgKiAgICAg
ICAgICAgICAgICAgICAgICBpdHNlbGYgYW5kIFhlbgorICogLSBYRU5QTVVfTU9ERV9BTEw6ICAg
T25seSBkb20wIGhhcyBhY2Nlc3MgdG8gVlBNVSBhbmQgaXQgcHJvZmlsZXMKKyAqICAgICAgICAg
ICAgICAgICAgICAgIGV2ZXJ5b25lOiBpdHNlbGYsIHRoZSBoeXBlcnZpc29yIGFuZCB0aGUgZ3Vl
c3RzLgorICovCisjZGVmaW5lIFhFTlBNVV9NT0RFX09GRiAgICAgICAgICAgMAorI2RlZmluZSBY
RU5QTVVfTU9ERV9TRUxGICAgICAgICAgICgxPDwwKQorI2RlZmluZSBYRU5QTVVfTU9ERV9IViAg
ICAgICAgICAgICgxPDwxKQorI2RlZmluZSBYRU5QTVVfTU9ERV9BTEwgICAgICAgICAgICgxPDwy
KQorCisvKgorICogUE1VIGZlYXR1cmVzOgorICogLSBYRU5QTVVfRkVBVFVSRV9JTlRFTF9CVFM6
ICBJbnRlbCBCVFMgc3VwcG9ydCAoaWdub3JlZCBvbiBBTUQpCisgKiAtIFhFTlBNVV9GRUFUVVJF
X0lQQ19PTkxZOiAgIFJlc3RyaWN0IFBNQ3MgdG8gdGhlIG1vc3QgbWluaW11bSBzZXQgcG9zc2li
bGUuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluc3RydWN0aW9ucywgY3ljbGVz
LCBhbmQgcmVmIGN5Y2xlcy4gQ2FuIGJlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVzZWQgdG8gY2FsY3VsYXRlIGluc3RydWN0aW9ucy1wZXItY3ljbGUgKElQQykKKyAqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGlnbm9yZWQgb24gQU1EKS4KKyAqIC0gWEVOUE1VX0ZF
QVRVUkVfQVJDSF9PTkxZOiAgUmVzdHJpY3QgUE1DcyB0byB0aGUgSW50ZWwgUHJlLURlZmluZWQK
KyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJjaGl0ZWN0dXJhbCBQZXJmb3JtYW5j
ZSBFdmVudHMgZXhwb3NlZCBieQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHVp
ZCBhbmQgbGlzdGVkIGluIHRoZSBJbnRlbCBkZXZlbG9wZXIncyBtYW51YWwKKyAqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGlnbm9yZWQgb24gQU1EKS4KKyAqLworI2RlZmluZSBYRU5Q
TVVfRkVBVFVSRV9JTlRFTF9CVFMgICgxPDwwKQorI2RlZmluZSBYRU5QTVVfRkVBVFVSRV9JUENf
T05MWSAgICgxPDwxKQorI2RlZmluZSBYRU5QTVVfRkVBVFVSRV9BUkNIX09OTFkgICgxPDwyKQor
CisvKgorICogU2hhcmVkIFBNVSBkYXRhIGJldHdlZW4gaHlwZXJ2aXNvciBhbmQgUFYoSCkgZG9t
YWlucy4KKyAqCisgKiBUaGUgaHlwZXJ2aXNvciBmaWxscyBvdXQgdGhpcyBzdHJ1Y3R1cmUgZHVy
aW5nIFBNVSBpbnRlcnJ1cHQgYW5kIHNlbmRzIGFuCisgKiBpbnRlcnJ1cHQgdG8gYXBwcm9wcmlh
dGUgVkNQVS4KKyAqIEFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBmaWVsZHMgb2YgeGVuX3BtdV9k
YXRhIGFyZSBXTyBmb3IgdGhlIGh5cGVydmlzb3IKKyAqIGFuZCBSTyBmb3IgdGhlIGd1ZXN0IGJ1
dCBzb21lIGZpZWxkcyBpbiB4ZW5fcG11X2FyY2ggY2FuIGJlIHdyaXRhYmxlCisgKiBieSBib3Ro
IHRoZSBoeXBlcnZpc29yIGFuZCB0aGUgZ3Vlc3QgKHNlZSBhcmNoLSRhcmNoL3BtdS5oKS4KKyAq
Lworc3RydWN0IHhlbl9wbXVfZGF0YSB7CisgICAgLyogSW50ZXJydXB0ZWQgVkNQVSAqLworICAg
IHVpbnQzMl90IHZjcHVfaWQ7CisKKyAgICAvKgorICAgICAqIFBoeXNpY2FsIHByb2Nlc3NvciBv
biB3aGljaCB0aGUgaW50ZXJydXB0IG9jY3VycmVkLiBPbiBub24tcHJpdmlsZWdlZAorICAgICAq
IGd1ZXN0cyBzZXQgdG8gdmNwdV9pZDsKKyAgICAgKi8KKyAgICB1aW50MzJfdCBwY3B1X2lkOwor
CisgICAgLyoKKyAgICAgKiBEb21haW4gdGhhdCB3YXMgaW50ZXJydXB0ZWQuIE9uIG5vbi1wcml2
aWxlZ2VkIGd1ZXN0cyBzZXQgdG8gRE9NSURfU0VMRi4KKyAgICAgKiBPbiBwcml2aWxlZ2VkIGd1
ZXN0cyBjYW4gYmUgRE9NSURfU0VMRiwgRE9NSURfWEVOLCBvciwgd2hlbiBpbgorICAgICAqIFhF
TlBNVV9NT0RFX0FMTCBtb2RlLCBkb21haW4gSUQgb2YgYW5vdGhlciBkb21haW4uCisgICAgICov
CisgICAgZG9taWRfdCAgZG9tYWluX2lkOworCisgICAgdWludDhfdCBwYWRbNl07CisKKyAgICAv
KiBBcmNoaXRlY3R1cmUtc3BlY2lmaWMgaW5mb3JtYXRpb24gKi8KKyAgICBzdHJ1Y3QgeGVuX3Bt
dV9hcmNoIHBtdTsKK307CisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfUE1VX0hfXyAqLworCisv
KgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNE
IgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMt
bW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3NjaGVkLmgg
Yi9pbmNsdWRlL3hlbi9zY2hlZC5oCmluZGV4IDQwMDBhYzkuLjgxMWJkODcgMTAwNjQ0Ci0tLSBh
L2luY2x1ZGUveGVuL3NjaGVkLmgKKysrIGIvaW5jbHVkZS94ZW4vc2NoZWQuaApAQCAtMTE4LDYg
KzExOCwxOCBAQAogICogV2l0aCBpZCAhPSAwIGFuZCB0aW1lb3V0ICE9IDAsIHBva2Ugd2F0Y2hk
b2cgdGltZXIgYW5kIHNldCBuZXcgdGltZW91dC4KICAqLwogI2RlZmluZSBTQ0hFRE9QX3dhdGNo
ZG9nICAgIDYKKworLyoKKyAqIE92ZXJyaWRlIHRoZSBjdXJyZW50IHZjcHUgYWZmaW5pdHkgYnkg
cGlubmluZyBpdCB0byBvbmUgcGh5c2ljYWwgY3B1IG9yCisgKiB1bmRvIHRoaXMgb3ZlcnJpZGUg
cmVzdG9yaW5nIHRoZSBwcmV2aW91cyBhZmZpbml0eS4KKyAqIEBhcmcgPT0gcG9pbnRlciB0byBz
Y2hlZF9waW5fb3ZlcnJpZGVfdCBzdHJ1Y3R1cmUuCisgKgorICogQSBuZWdhdGl2ZSBwY3B1IHZh
bHVlIHdpbGwgdW5kbyBhIHByZXZpb3VzIHBpbiBvdmVycmlkZSBhbmQgcmVzdG9yZSB0aGUKKyAq
IHByZXZpb3VzIGNwdSBhZmZpbml0eS4KKyAqIFRoaXMgY2FsbCBpcyBhbGxvd2VkIGZvciB0aGUg
aGFyZHdhcmUgZG9tYWluIG9ubHkgYW5kIHJlcXVpcmVzIHRoZSBjcHUKKyAqIHRvIGJlIHBhcnQg
b2YgdGhlIGRvbWFpbidzIGNwdXBvb2wuCisgKi8KKyNkZWZpbmUgU0NIRURPUF9waW5fb3ZlcnJp
ZGUgNwogLyogYCB9ICovCiAKIHN0cnVjdCBzY2hlZF9zaHV0ZG93biB7CkBAIC0xNDgsNiArMTYw
LDEyIEBAIHN0cnVjdCBzY2hlZF93YXRjaGRvZyB7CiB0eXBlZGVmIHN0cnVjdCBzY2hlZF93YXRj
aGRvZyBzY2hlZF93YXRjaGRvZ190OwogREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoc2NoZWRfd2F0
Y2hkb2dfdCk7CiAKK3N0cnVjdCBzY2hlZF9waW5fb3ZlcnJpZGUgeworICAgIGludDMyX3QgcGNw
dTsKK307Cit0eXBlZGVmIHN0cnVjdCBzY2hlZF9waW5fb3ZlcnJpZGUgc2NoZWRfcGluX292ZXJy
aWRlX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShzY2hlZF9waW5fb3ZlcnJpZGVfdCk7CisK
IC8qCiAgKiBSZWFzb24gY29kZXMgZm9yIFNDSEVET1Bfc2h1dGRvd24uIFRoZXNlIG1heSBiZSBp
bnRlcnByZXRlZCBieSBjb250cm9sCiAgKiBzb2Z0d2FyZSB0byBkZXRlcm1pbmUgdGhlIGFwcHJv
cHJpYXRlIGFjdGlvbi4gRm9yIHRoZSBtb3N0IHBhcnQsIFhlbiBkb2VzCkBAIC0xNTksNyArMTc3
LDE2IEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKHNjaGVkX3dhdGNoZG9nX3QpOwogI2RlZmlu
ZSBTSFVURE9XTl9zdXNwZW5kICAgIDIgIC8qIENsZWFuIHVwLCBzYXZlIHN1c3BlbmQgaW5mbywg
a2lsbC4gICAgICAgICAqLwogI2RlZmluZSBTSFVURE9XTl9jcmFzaCAgICAgIDMgIC8qIFRlbGwg
Y29udHJvbGxlciB3ZSd2ZSBjcmFzaGVkLiAgICAgICAgICAgICAqLwogI2RlZmluZSBTSFVURE9X
Tl93YXRjaGRvZyAgIDQgIC8qIFJlc3RhcnQgYmVjYXVzZSB3YXRjaGRvZyB0aW1lIGV4cGlyZWQu
ICAgICAqLwotI2RlZmluZSBTSFVURE9XTl9NQVggICAgICAgIDQgIC8qIE1heGltdW0gdmFsaWQg
c2h1dGRvd24gcmVhc29uLiAgICAgICAgICAgICAqLworCisvKgorICogRG9tYWluIGFza2VkIHRv
IHBlcmZvcm0gJ3NvZnQgcmVzZXQnIGZvciBpdC4gVGhlIGV4cGVjdGVkIGJlaGF2aW9yIGlzIHRv
CisgKiByZXNldCBpbnRlcm5hbCBYZW4gc3RhdGUgZm9yIHRoZSBkb21haW4gcmV0dXJuaW5nIGl0
IHRvIHRoZSBwb2ludCB3aGVyZSBpdAorICogd2FzIGNyZWF0ZWQgYnV0IGxlYXZpbmcgdGhlIGRv
bWFpbidzIG1lbW9yeSBjb250ZW50cyBhbmQgdkNQVSBjb250ZXh0cworICogaW50YWN0LiBUaGlz
IHdpbGwgYWxsb3cgdGhlIGRvbWFpbiB0byBzdGFydCBvdmVyIGFuZCBzZXQgdXAgYWxsIFhlbiBz
cGVjaWZpYworICogaW50ZXJmYWNlcyBhZ2Fpbi4KKyAqLworI2RlZmluZSBTSFVURE9XTl9zb2Z0
X3Jlc2V0IDUKKyNkZWZpbmUgU0hVVERPV05fTUFYICAgICAgICA1ICAvKiBNYXhpbXVtIHZhbGlk
IHNodXRkb3duIHJlYXNvbi4gICAgICAgICAgICAgKi8KIC8qIGAgfSAqLwogCiAjZW5kaWYgLyog
X19YRU5fUFVCTElDX1NDSEVEX0hfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vc3lzY3Rs
LmggYi9pbmNsdWRlL3hlbi9zeXNjdGwuaAppbmRleCA4NTUyZGM2Li42MTQwZjFhIDEwMDY0NAot
LS0gYS9pbmNsdWRlL3hlbi9zeXNjdGwuaAorKysgYi9pbmNsdWRlL3hlbi9zeXNjdGwuaApAQCAt
MzMsOCArMzMsMTAgQEAKIAogI2luY2x1ZGUgInhlbi5oIgogI2luY2x1ZGUgImRvbWN0bC5oIgor
I2luY2x1ZGUgInBoeXNkZXYuaCIKKyNpbmNsdWRlICJ0bWVtLmgiCiAKLSNkZWZpbmUgWEVOX1NZ
U0NUTF9JTlRFUkZBQ0VfVkVSU0lPTiAweDAwMDAwMDBCCisjZGVmaW5lIFhFTl9TWVNDVExfSU5U
RVJGQUNFX1ZFUlNJT04gMHgwMDAwMDAxMAogCiAvKgogICogUmVhZCBjb25zb2xlIGNvbnRlbnQg
ZnJvbSBYZW4gYnVmZmVyIHJpbmcuCkBAIC01Niw4ICs1OCw2IEBAIHN0cnVjdCB4ZW5fc3lzY3Rs
X3JlYWRjb25zb2xlIHsKICAgICAvKiBJTjogU2l6ZSBvZiBidWZmZXI7IE9VVDogQnl0ZXMgd3Jp
dHRlbiB0byBidWZmZXIuICovCiAgICAgdWludDMyX3QgY291bnQ7CiB9OwotdHlwZWRlZiBzdHJ1
Y3QgeGVuX3N5c2N0bF9yZWFkY29uc29sZSB4ZW5fc3lzY3RsX3JlYWRjb25zb2xlX3Q7Ci1ERUZJ
TkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX3JlYWRjb25zb2xlX3QpOwogCiAvKiBHZXQg
dHJhY2UgYnVmZmVycyBtYWNoaW5lIGJhc2UgYWRkcmVzcyAqLwogLyogWEVOX1NZU0NUTF90YnVm
X29wICovCkBAIC03Nyw4ICs3Nyw2IEBAIHN0cnVjdCB4ZW5fc3lzY3RsX3RidWZfb3AgewogICAg
IHVpbnQ2NF9hbGlnbmVkX3QgYnVmZmVyX21mbjsKICAgICB1aW50MzJfdCBzaXplOyAgLyogQWxz
byBhbiBJTiB2YXJpYWJsZSEgKi8KIH07Ci10eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX3RidWZf
b3AgeGVuX3N5c2N0bF90YnVmX29wX3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lz
Y3RsX3RidWZfb3BfdCk7CiAKIC8qCiAgKiBHZXQgcGh5c2ljYWwgaW5mb3JtYXRpb24gYWJvdXQg
dGhlIGhvc3QgbWFjaGluZQpAQCAtOTgsMTcgKzk2LDE0IEBAIHN0cnVjdCB4ZW5fc3lzY3RsX3Bo
eXNpbmZvIHsKICAgICB1aW50MzJfdCBucl9ub2RlczsgICAgLyogIyBub2RlcyBjdXJyZW50bHkg
b25saW5lICovCiAgICAgdWludDMyX3QgbWF4X25vZGVfaWQ7IC8qIExhcmdlc3QgcG9zc2libGUg
bm9kZSBJRCBvbiB0aGlzIGhvc3QgKi8KICAgICB1aW50MzJfdCBjcHVfa2h6OworICAgIHVpbnQz
Ml90IGNhcGFiaWxpdGllczsvKiBYRU5fU1lTQ1RMX1BIWVNDQVBfPz8/ICovCiAgICAgdWludDY0
X2FsaWduZWRfdCB0b3RhbF9wYWdlczsKICAgICB1aW50NjRfYWxpZ25lZF90IGZyZWVfcGFnZXM7
CiAgICAgdWludDY0X2FsaWduZWRfdCBzY3J1Yl9wYWdlczsKICAgICB1aW50NjRfYWxpZ25lZF90
IG91dHN0YW5kaW5nX3BhZ2VzOworICAgIHVpbnQ2NF9hbGlnbmVkX3QgbWF4X21mbjsgLyogTGFy
Z2VzdCBwb3NzaWJsZSBNRk4gb24gdGhpcyBob3N0ICovCiAgICAgdWludDMyX3QgaHdfY2FwWzhd
OwotCi0gICAgLyogWEVOX1NZU0NUTF9QSFlTQ0FQXz8/PyAqLwotICAgIHVpbnQzMl90IGNhcGFi
aWxpdGllczsKIH07Ci10eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX3BoeXNpbmZvIHhlbl9zeXNj
dGxfcGh5c2luZm9fdDsKLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNjdGxfcGh5c2lu
Zm9fdCk7CiAKIC8qCiAgKiBHZXQgdGhlIElEIG9mIHRoZSBjdXJyZW50IHNjaGVkdWxlci4KQEAg
LTExOCw4ICsxMTMsNiBAQCBzdHJ1Y3QgeGVuX3N5c2N0bF9zY2hlZF9pZCB7CiAgICAgLyogT1VU
IHZhcmlhYmxlICovCiAgICAgdWludDMyX3Qgc2NoZWRfaWQ7CiB9OwotdHlwZWRlZiBzdHJ1Y3Qg
eGVuX3N5c2N0bF9zY2hlZF9pZCB4ZW5fc3lzY3RsX3NjaGVkX2lkX3Q7Ci1ERUZJTkVfWEVOX0dV
RVNUX0hBTkRMRSh4ZW5fc3lzY3RsX3NjaGVkX2lkX3QpOwogCiAvKiBJbnRlcmZhY2UgZm9yIGNv
bnRyb2xsaW5nIFhlbiBzb2Z0d2FyZSBwZXJmb3JtYW5jZSBjb3VudGVycy4gKi8KIC8qIFhFTl9T
WVNDVExfcGVyZmNfb3AgKi8KQEAgLTE0Niw4ICsxMzksNiBAQCBzdHJ1Y3QgeGVuX3N5c2N0bF9w
ZXJmY19vcCB7CiAgICAgLyogY291bnRlciB2YWx1ZXMgKG9yIE5VTEwpICovCiAgICAgWEVOX0dV
RVNUX0hBTkRMRV82NCh4ZW5fc3lzY3RsX3BlcmZjX3ZhbF90KSB2YWw7CiB9OwotdHlwZWRlZiBz
dHJ1Y3QgeGVuX3N5c2N0bF9wZXJmY19vcCB4ZW5fc3lzY3RsX3BlcmZjX29wX3Q7Ci1ERUZJTkVf
WEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX3BlcmZjX29wX3QpOwogCiAvKiBYRU5fU1lTQ1RM
X2dldGRvbWFpbmluZm9saXN0ICovCiBzdHJ1Y3QgeGVuX3N5c2N0bF9nZXRkb21haW5pbmZvbGlz
dCB7CkBAIC0xNTgsOCArMTQ5LDYgQEAgc3RydWN0IHhlbl9zeXNjdGxfZ2V0ZG9tYWluaW5mb2xp
c3QgewogICAgIC8qIE9VVCB2YXJpYWJsZXMuICovCiAgICAgdWludDMyX3QgICAgICAgICAgICAg
IG51bV9kb21haW5zOwogfTsKLXR5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfZ2V0ZG9tYWluaW5m
b2xpc3QgeGVuX3N5c2N0bF9nZXRkb21haW5pbmZvbGlzdF90OwotREVGSU5FX1hFTl9HVUVTVF9I
QU5ETEUoeGVuX3N5c2N0bF9nZXRkb21haW5pbmZvbGlzdF90KTsKIAogLyogSW5qZWN0IGRlYnVn
IGtleXMgaW50byBYZW4uICovCiAvKiBYRU5fU1lTQ1RMX2RlYnVnX2tleXMgKi8KQEAgLTE2OCw4
ICsxNTcsNiBAQCBzdHJ1Y3QgeGVuX3N5c2N0bF9kZWJ1Z19rZXlzIHsKICAgICBYRU5fR1VFU1Rf
SEFORExFXzY0KGNoYXIpIGtleXM7CiAgICAgdWludDMyX3QgbnJfa2V5czsKIH07Ci10eXBlZGVm
IHN0cnVjdCB4ZW5fc3lzY3RsX2RlYnVnX2tleXMgeGVuX3N5c2N0bF9kZWJ1Z19rZXlzX3Q7Ci1E
RUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX2RlYnVnX2tleXNfdCk7CiAKIC8qIEdl
dCBwaHlzaWNhbCBDUFUgaW5mb3JtYXRpb24uICovCiAvKiBYRU5fU1lTQ1RMX2dldGNwdWluZm8g
Ki8KQEAgLTE4NSw4ICsxNzIsNiBAQCBzdHJ1Y3QgeGVuX3N5c2N0bF9nZXRjcHVpbmZvIHsKICAg
ICAvKiBPVVQgdmFyaWFibGVzLiAqLwogICAgIHVpbnQzMl90IG5yX2NwdXM7CiB9OyAKLXR5cGVk
ZWYgc3RydWN0IHhlbl9zeXNjdGxfZ2V0Y3B1aW5mbyB4ZW5fc3lzY3RsX2dldGNwdWluZm9fdDsK
LURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNjdGxfZ2V0Y3B1aW5mb190KTsgCiAKIC8q
IFhFTl9TWVNDVExfYXZhaWxoZWFwICovCiBzdHJ1Y3QgeGVuX3N5c2N0bF9hdmFpbGhlYXAgewpA
QCAtMTk3LDggKzE4Miw2IEBAIHN0cnVjdCB4ZW5fc3lzY3RsX2F2YWlsaGVhcCB7CiAgICAgLyog
T1VUIHZhcmlhYmxlcy4gKi8KICAgICB1aW50NjRfYWxpZ25lZF90IGF2YWlsX2J5dGVzOy8qIEJ5
dGVzIGF2YWlsYWJsZSBpbiB0aGUgc3BlY2lmaWVkIHJlZ2lvbi4gKi8KIH07Ci10eXBlZGVmIHN0
cnVjdCB4ZW5fc3lzY3RsX2F2YWlsaGVhcCB4ZW5fc3lzY3RsX2F2YWlsaGVhcF90OwotREVGSU5F
X1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9hdmFpbGhlYXBfdCk7CiAKIC8qIFhFTl9TWVND
VExfZ2V0X3Btc3RhdCAqLwogc3RydWN0IHBtX3B4X3ZhbCB7CkBAIC0yMTcsOCArMjAwLDYgQEAg
c3RydWN0IHBtX3B4X3N0YXQgewogICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQodWludDY0KSB0cmFu
c19wdDsgICAvKiBQeCB0cmFuc2l0aW9uIHRhYmxlICovCiAgICAgWEVOX0dVRVNUX0hBTkRMRV82
NChwbV9weF92YWxfdCkgcHQ7CiB9OwotdHlwZWRlZiBzdHJ1Y3QgcG1fcHhfc3RhdCBwbV9weF9z
dGF0X3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShwbV9weF9zdGF0X3QpOwogCiBzdHJ1Y3Qg
cG1fY3hfc3RhdCB7CiAgICAgdWludDMyX3QgbnI7ICAgIC8qIGVudHJ5IG5yIGluIHRyaWdnZXJz
ICYgcmVzaWRlbmNpZXMsIGluY2x1ZGluZyBDMCAqLwpAQCAtMjU3LDggKzIzOCw2IEBAIHN0cnVj
dCB4ZW5fc3lzY3RsX2dldF9wbXN0YXQgewogICAgICAgICAvKiBvdGhlciBzdHJ1Y3QgZm9yIHR4
LCBldGMgKi8KICAgICB9IHU7CiB9OwotdHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bF9nZXRfcG1z
dGF0IHhlbl9zeXNjdGxfZ2V0X3Btc3RhdF90OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVu
X3N5c2N0bF9nZXRfcG1zdGF0X3QpOwogCiAvKiBYRU5fU1lTQ1RMX2NwdV9ob3RwbHVnICovCiBz
dHJ1Y3QgeGVuX3N5c2N0bF9jcHVfaG90cGx1ZyB7CkBAIC0yNjgsOCArMjQ3LDYgQEAgc3RydWN0
IHhlbl9zeXNjdGxfY3B1X2hvdHBsdWcgewogI2RlZmluZSBYRU5fU1lTQ1RMX0NQVV9IT1RQTFVH
X09GRkxJTkUgMQogICAgIHVpbnQzMl90IG9wOyAgICAvKiBob3RwbHVnIG9wY29kZSAqLwogfTsK
LXR5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfY3B1X2hvdHBsdWcgeGVuX3N5c2N0bF9jcHVfaG90
cGx1Z190OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9jcHVfaG90cGx1Z190
KTsKIAogLyoKICAqIEdldC9zZXQgeGVuIHBvd2VyIG1hbmFnZW1lbnQsIGluY2x1ZGUgCkBAIC0y
NzksNyArMjU2LDYgQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9jcHVfaG90
cGx1Z190KTsKIHN0cnVjdCB4ZW5fdXNlcnNwYWNlIHsKICAgICB1aW50MzJfdCBzY2FsaW5nX3Nl
dHNwZWVkOwogfTsKLXR5cGVkZWYgc3RydWN0IHhlbl91c2Vyc3BhY2UgeGVuX3VzZXJzcGFjZV90
OwogCiBzdHJ1Y3QgeGVuX29uZGVtYW5kIHsKICAgICB1aW50MzJfdCBzYW1wbGluZ19yYXRlX21h
eDsKQEAgLTI4OCw3ICsyNjQsNiBAQCBzdHJ1Y3QgeGVuX29uZGVtYW5kIHsKICAgICB1aW50MzJf
dCBzYW1wbGluZ19yYXRlOwogICAgIHVpbnQzMl90IHVwX3RocmVzaG9sZDsKIH07Ci10eXBlZGVm
IHN0cnVjdCB4ZW5fb25kZW1hbmQgeGVuX29uZGVtYW5kX3Q7CiAKIC8qIAogICogY3B1ZnJlcSBw
YXJhIG5hbWUgb2YgdGhpcyBzdHJ1Y3R1cmUgbmFtZWQgCkBAIC00NTksNjcgKzQzNCw3NiBAQCBz
dHJ1Y3QgeGVuX3N5c2N0bF9sb2NrcHJvZl9vcCB7CiAgICAgLyogcHJvZmlsZSBpbmZvcm1hdGlv
biAob3IgTlVMTCkgKi8KICAgICBYRU5fR1VFU1RfSEFORExFXzY0KHhlbl9zeXNjdGxfbG9ja3By
b2ZfZGF0YV90KSBkYXRhOwogfTsKLXR5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfbG9ja3Byb2Zf
b3AgeGVuX3N5c2N0bF9sb2NrcHJvZl9vcF90OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVu
X3N5c2N0bF9sb2NrcHJvZl9vcF90KTsKIAotLyogWEVOX1NZU0NUTF90b3BvbG9neWluZm8gKi8K
LSNkZWZpbmUgSU5WQUxJRF9UT1BPTE9HWV9JRCAgKH4wVSkKLXN0cnVjdCB4ZW5fc3lzY3RsX3Rv
cG9sb2d5aW5mbyB7Ci0gICAgLyoKLSAgICAgKiBJTjogbWF4aW11bSBhZGRyZXNzYWJsZSBlbnRy
eSBpbiB0aGUgY2FsbGVyLXByb3ZpZGVkIGFycmF5cy4KLSAgICAgKiBPVVQ6IGxhcmdlc3QgY3B1
IGlkZW50aWZpZXIgaW4gdGhlIHN5c3RlbS4KLSAgICAgKiBJZiBPVVQgaXMgZ3JlYXRlciB0aGFu
IElOIHRoZW4gdGhlIGFycmF5cyBhcmUgdHJ1bmNhdGVkIQotICAgICAqIElmIE9VVCBpcyBsZWFz
cyB0aGFuIElOIHRoZW4gdGhlIGFycmF5IHRhaWxzIGFyZSBub3Qgd3JpdHRlbiBieSBzeXNjdGwu
Ci0gICAgICovCi0gICAgdWludDMyX3QgbWF4X2NwdV9pbmRleDsKKy8qIFhFTl9TWVNDVExfY3B1
dG9wb2luZm8gKi8KKyNkZWZpbmUgWEVOX0lOVkFMSURfQ09SRV9JRCAgICAgKH4wVSkKKyNkZWZp
bmUgWEVOX0lOVkFMSURfU09DS0VUX0lEICAgKH4wVSkKKyNkZWZpbmUgWEVOX0lOVkFMSURfTk9E
RV9JRCAgICAgKH4wVSkKIAotICAgIC8qCi0gICAgICogSWYgbm90IE5VTEwsIHRoZXNlIGFycmF5
cyBhcmUgZmlsbGVkIHdpdGggY29yZS9zb2NrZXQvbm9kZSBpZGVudGlmaWVyCi0gICAgICogZm9y
IGVhY2ggY3B1LgotICAgICAqIElmIGEgY3B1IGhhcyBubyBjb3JlL3NvY2tldC9ub2RlIGluZm9y
bWF0aW9uIChlLmcuLCBjcHUgbm90IHByZXNlbnQpIAotICAgICAqIHRoZW4gdGhlIHNlbnRpbmVs
IHZhbHVlIH4wdSBpcyB3cml0dGVuIHRvIGVhY2ggYXJyYXkuCi0gICAgICogVGhlIG51bWJlciBv
ZiBhcnJheSBlbGVtZW50cyB3cml0dGVuIGJ5IHRoZSBzeXNjdGwgaXM6Ci0gICAgICogICBtaW4o
QG1heF9jcHVfaW5kZXhfSU4sQG1heF9jcHVfaW5kZXhfT1VUKSsxCi0gICAgICovCi0gICAgWEVO
X0dVRVNUX0hBTkRMRV82NCh1aW50MzIpIGNwdV90b19jb3JlOwotICAgIFhFTl9HVUVTVF9IQU5E
TEVfNjQodWludDMyKSBjcHVfdG9fc29ja2V0OwotICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQodWlu
dDMyKSBjcHVfdG9fbm9kZTsKK3N0cnVjdCB4ZW5fc3lzY3RsX2NwdXRvcG8geworICAgIHVpbnQz
Ml90IGNvcmU7CisgICAgdWludDMyX3Qgc29ja2V0OworICAgIHVpbnQzMl90IG5vZGU7Cit9Owor
dHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bF9jcHV0b3BvIHhlbl9zeXNjdGxfY3B1dG9wb190Owor
REVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9jcHV0b3BvX3QpOworCisvKgorICog
SU46CisgKiAgLSBhIE5VTEwgJ2NwdXRvcG8nIGhhbmRsZSBpcyBhIHJlcXVlc3QgZm9yIG1heGlt
dW4gJ251bV9jcHVzJy4KKyAqICAtIG90aGVyd2lzZSBpdCdzIHRoZSBudW1iZXIgb2YgZW50cmll
cyBpbiAnY3B1dG9wbycKKyAqCisgKiBPVVQ6CisgKiAgLSBJZiAnbnVtX2NwdXMnIGlzIGxlc3Mg
dGhhbiB0aGUgbnVtYmVyIFhlbiB3YW50cyB0byB3cml0ZSBidXQgdGhlIGhhbmRsZQorICogICAg
aGFuZGxlIGlzIG5vdCBhIE5VTEwgb25lLCBwYXJ0aWFsIGRhdGEgZ2V0cyByZXR1cm5lZCBhbmQg
J251bV9jcHVzJyBnZXRzCisgKiAgICB1cGRhdGVkIHRvIHJlZmxlY3QgdGhlIGludGVuZGVkIG51
bWJlci4KKyAqICAtIE90aGVyd2lzZSwgJ251bV9jcHVzJyBzaGFsbCBpbmRpY2F0ZSB0aGUgbnVt
YmVyIG9mIGVudHJpZXMgd3JpdHRlbiwgd2hpY2gKKyAqICAgIG1heSBiZSBsZXNzIHRoYW4gdGhl
IGlucHV0IHZhbHVlLgorICovCitzdHJ1Y3QgeGVuX3N5c2N0bF9jcHV0b3BvaW5mbyB7CisgICAg
dWludDMyX3QgbnVtX2NwdXM7CisgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh4ZW5fc3lzY3RsX2Nw
dXRvcG9fdCkgY3B1dG9wbzsKIH07Ci10eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX3RvcG9sb2d5
aW5mbyB4ZW5fc3lzY3RsX3RvcG9sb2d5aW5mb190OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo
eGVuX3N5c2N0bF90b3BvbG9neWluZm9fdCk7CiAKIC8qIFhFTl9TWVNDVExfbnVtYWluZm8gKi8K
LSNkZWZpbmUgSU5WQUxJRF9OVU1BSU5GT19JRCAofjBVKQorI2RlZmluZSBYRU5fSU5WQUxJRF9N
RU1fU1ogICAgICh+MFUpCisjZGVmaW5lIFhFTl9JTlZBTElEX05PREVfRElTVCAgKH4wVSkKKwor
c3RydWN0IHhlbl9zeXNjdGxfbWVtaW5mbyB7CisgICAgdWludDY0X3QgbWVtc2l6ZTsKKyAgICB1
aW50NjRfdCBtZW1mcmVlOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfbWVtaW5mbyB4
ZW5fc3lzY3RsX21lbWluZm9fdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNjdGxf
bWVtaW5mb190KTsKKworLyoKKyAqIElOOgorICogIC0gQm90aCAnbWVtaW5mbycgYW5kICdkaXN0
YW5jZScgaGFuZGxlcyBiZWluZyBudWxsIGlzIGEgcmVxdWVzdAorICogICAgZm9yIG1heGltdW0g
dmFsdWUgb2YgJ251bV9ub2RlcycuCisgKiAgLSBPdGhlcndpc2UgaXQncyB0aGUgbnVtYmVyIG9m
IGVudHJpZXMgaW4gJ21lbWluZm8nIGFuZCBzcXVhcmUgcm9vdAorICogICAgb2YgbnVtYmVyIG9m
IGVudHJpZXMgaW4gJ2Rpc3RhbmNlJyAod2hlbiBjb3JyZXNwb25kaW5nIGhhbmRsZSBpcworICog
ICAgbm9uLW51bGwpCisgKgorICogT1VUOgorICogIC0gSWYgJ251bV9ub2RlcycgaXMgbGVzcyB0
aGFuIHRoZSBudW1iZXIgWGVuIHdhbnRzIHRvIHdyaXRlIGJ1dCBlaXRoZXIKKyAqICAgIGhhbmRs
ZSBpcyBub3QgYSBOVUxMIG9uZSwgcGFydGlhbCBkYXRhIGdldHMgcmV0dXJuZWQgYW5kICdudW1f
bm9kZXMnCisgKiAgICBnZXRzIHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUgaW50ZW5kZWQgbnVtYmVy
LgorICogIC0gT3RoZXJ3aXNlLCAnbnVtX25vZGVzJyBzaGFsbCBpbmRpY2F0ZSB0aGUgbnVtYmVy
IG9mIGVudHJpZXMgd3JpdHRlbiwgd2hpY2gKKyAqICAgIG1heSBiZSBsZXNzIHRoYW4gdGhlIGlu
cHV0IHZhbHVlLgorICovCisKIHN0cnVjdCB4ZW5fc3lzY3RsX251bWFpbmZvIHsKLSAgICAvKgot
ICAgICAqIElOOiBtYXhpbXVtIGFkZHJlc3NhYmxlIGVudHJ5IGluIHRoZSBjYWxsZXItcHJvdmlk
ZWQgYXJyYXlzLgotICAgICAqIE9VVDogbGFyZ2VzdCBub2RlIGlkZW50aWZpZXIgaW4gdGhlIHN5
c3RlbS4KLSAgICAgKiBJZiBPVVQgaXMgZ3JlYXRlciB0aGFuIElOIHRoZW4gdGhlIGFycmF5cyBh
cmUgdHJ1bmNhdGVkIQotICAgICAqLwotICAgIHVpbnQzMl90IG1heF9ub2RlX2luZGV4OworICAg
IHVpbnQzMl90IG51bV9ub2RlczsKIAotICAgIC8qIE5CLiBFbnRyaWVzIGFyZSAwIGlmIG5vZGUg
aXMgbm90IHByZXNlbnQuICovCi0gICAgWEVOX0dVRVNUX0hBTkRMRV82NCh1aW50NjQpIG5vZGVf
dG9fbWVtc2l6ZTsKLSAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQ2NCkgbm9kZV90b19tZW1m
cmVlOworICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQoeGVuX3N5c2N0bF9tZW1pbmZvX3QpIG1lbWlu
Zm87CiAKICAgICAvKgotICAgICAqIEFycmF5LCBvZiBzaXplIChtYXhfbm9kZV9pbmRleCsxKV4y
LCBsaXN0aW5nIG1lbW9yeSBhY2Nlc3MgZGlzdGFuY2VzCi0gICAgICogYmV0d2VlbiBub2Rlcy4g
SWYgYW4gZW50cnkgaGFzIG5vIG5vZGUgZGlzdGFuY2UgaW5mb3JtYXRpb24gKGUuZy4sIG5vZGUg
Ci0gICAgICogbm90IHByZXNlbnQpIHRoZW4gdGhlIHZhbHVlIH4wdSBpcyB3cml0dGVuLgotICAg
ICAqIAotICAgICAqIE5vdGUgdGhhdCB0aGUgYXJyYXkgcm93cyBtdXN0IGJlIGluZGV4ZWQgYnkg
bXVsdGlwbHlpbmcgYnkgdGhlIG1pbmltdW0gCi0gICAgICogb2YgdGhlIGNhbGxlci1wcm92aWRl
ZCBtYXhfbm9kZV9pbmRleCBhbmQgdGhlIHJldHVybmVkIHZhbHVlIG9mCi0gICAgICogbWF4X25v
ZGVfaW5kZXguIFRoYXQgaXMsIGlmIHRoZSBsYXJnZXN0IG5vZGUgaW5kZXggaW4gdGhlIHN5c3Rl
bSBpcwotICAgICAqIHNtYWxsZXIgdGhhbiB0aGUgY2FsbGVyIGNhbiBoYW5kbGUsIGEgc21hbGxl
ciAyLWQgYXJyYXkgaXMgY29uc3RydWN0ZWQKLSAgICAgKiB3aXRoaW4gdGhlIHNwYWNlIHByb3Zp
ZGVkIGJ5IHRoZSBjYWxsZXIuIFdoZW4gdGhpcyBvY2N1cnMsIHRyYWlsaW5nCi0gICAgICogc3Bh
Y2UgcHJvdmlkZWQgYnkgdGhlIGNhbGxlciBpcyBub3QgbW9kaWZpZWQuIElmIHRoZSBsYXJnZXN0
IG5vZGUgaW5kZXgKLSAgICAgKiBpbiB0aGUgc3lzdGVtIGlzIGxhcmdlciB0aGFuIHRoZSBjYWxs
ZXIgY2FuIGhhbmRsZSwgdGhlbiBhIDItZCBhcnJheSBvZgotICAgICAqIHRoZSBtYXhpbXVtIHNp
emUgaGFuZGxlYWJsZSBieSB0aGUgY2FsbGVyIGlzIGNvbnN0cnVjdGVkLgorICAgICAqIERpc3Rh
bmNlIGJldHdlZW4gbm9kZXMgJ2knIGFuZCAnaicgaXMgc3RvcmVkIGluIGluZGV4ICdpKk4gKyBq
JywKKyAgICAgKiB3aGVyZSBOIGlzIHRoZSBudW1iZXIgb2Ygbm9kZXMgdGhhdCB3aWxsIGJlIHJl
dHVybmVkIGluICdudW1fbm9kZXMnCisgICAgICogKGkuZS4gbm90ICdudW1fbm9kZXMnIHByb3Zp
ZGVkIGJ5IHRoZSBjYWxsZXIpCiAgICAgICovCi0gICAgWEVOX0dVRVNUX0hBTkRMRV82NCh1aW50
MzIpIG5vZGVfdG9fbm9kZV9kaXN0YW5jZTsKKyAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQz
MikgZGlzdGFuY2U7CiB9OwotdHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bF9udW1haW5mbyB4ZW5f
c3lzY3RsX251bWFpbmZvX3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX251
bWFpbmZvX3QpOwogCiAvKiBYRU5fU1lTQ1RMX2NwdXBvb2xfb3AgKi8KICNkZWZpbmUgWEVOX1NZ
U0NUTF9DUFVQT09MX09QX0NSRUFURSAgICAgICAgICAgICAgICAxICAvKiBDICovCkBAIC01Mzks
OCArNTIzLDQyIEBAIHN0cnVjdCB4ZW5fc3lzY3RsX2NwdXBvb2xfb3AgewogICAgIHVpbnQzMl90
IG5fZG9tOyAgICAgICAvKiAgICAgICAgICAgIE9VVDogSSAgKi8KICAgICBzdHJ1Y3QgeGVuY3Rs
X2JpdG1hcCBjcHVtYXA7IC8qICAgICBPVVQ6IElGICovCiB9OwotdHlwZWRlZiBzdHJ1Y3QgeGVu
X3N5c2N0bF9jcHVwb29sX29wIHhlbl9zeXNjdGxfY3B1cG9vbF9vcF90OwotREVGSU5FX1hFTl9H
VUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9jcHVwb29sX29wX3QpOworCisvKgorICogRXJyb3IgcmV0
dXJuIHZhbHVlcyBvZiBjcHVwb29sIG9wZXJhdGlvbnM6CisgKgorICogLUVBRERSSU5VU0U6Cisg
KiAgWEVOX1NZU0NUTF9DUFVQT09MX09QX1JNQ1BVOiBBIHZjcHUgaXMgdGVtcG9yYXJpbHkgcGlu
bmVkIHRvIHRoZSBjcHUKKyAqICAgIHdoaWNoIGlzIHRvIGJlIHJlbW92ZWQgZnJvbSBhIGNwdXBv
b2wuCisgKiAtRUFERFJOT1RBVkFJTDoKKyAqICBYRU5fU1lTQ1RMX0NQVVBPT0xfT1BfQUREQ1BV
LCBYRU5fU1lTQ1RMX0NQVVBPT0xfT1BfUk1DUFU6IEEgcHJldmlvdXMKKyAqICAgIHJlcXVlc3Qg
dG8gcmVtb3ZlIGEgY3B1IGZyb20gYSBjcHVwb29sIHdhcyB0ZXJtaW5hdGVkIHdpdGggLUVBR0FJ
TgorICogICAgYW5kIGhhcyBub3QgYmVlbiByZXRyaWVkIHVzaW5nIHRoZSBzYW1lIHBhcmFtZXRl
cnMuCisgKiAtRUFHQUlOOgorICogIFhFTl9TWVNDVExfQ1BVUE9PTF9PUF9STUNQVTogVGhlIGNw
dSBjYW4ndCBiZSByZW1vdmVkIGZyb20gdGhlIGNwdXBvb2wKKyAqICAgIGFzIGl0IGlzIGFjdGl2
ZSBpbiB0aGUgaHlwZXJ2aXNvci4gQSByZXRyeSB3aWxsIHN1Y2NlZWQgc29vbi4KKyAqIC1FQlVT
WToKKyAqICBYRU5fU1lTQ1RMX0NQVVBPT0xfT1BfREVTVFJPWSwgWEVOX1NZU0NUTF9DUFVQT09M
X09QX1JNQ1BVOiBBIGNwdXBvb2wKKyAqICAgIGNhbid0IGJlIGRlc3Ryb3llZCBvciB0aGUgbGFz
dCBjcHUgY2FuJ3QgYmUgcmVtb3ZlZCBhcyB0aGVyZSBpcyBzdGlsbAorICogICAgYSBydW5uaW5n
IGRvbWFpbiBpbiB0aGF0IGNwdXBvb2wuCisgKiAtRUVYSVNUOgorICogIFhFTl9TWVNDVExfQ1BV
UE9PTF9PUF9DUkVBVEU6IEEgY3B1cG9vbF9pZCB3YXMgc3BlY2lmaWVkIGFuZCBpcyBhbHJlYWR5
CisgKiAgICBleGlzdGluZy4KKyAqIC1FSU5WQUw6CisgKiAgWEVOX1NZU0NUTF9DUFVQT09MX09Q
X0FERENQVSwgWEVOX1NZU0NUTF9DUFVQT09MX09QX1JNQ1BVOiBBbiBpbGxlZ2FsCisgKiAgICBj
cHUgd2FzIHNwZWNpZmllZCAoY3B1IGRvZXMgbm90IGV4aXN0KS4KKyAqICBYRU5fU1lTQ1RMX0NQ
VVBPT0xfT1BfTU9WRURPTUFJTjogQW4gaWxsZWdhbCBkb21haW4gd2FzIHNwZWNpZmllZAorICog
ICAgKGRvbWFpbiBpZCBpbGxlZ2FsIG9yIG5vdCBzdWl0YWJsZSBmb3Igb3BlcmF0aW9uKS4KKyAq
IC1FTk9ERVY6CisgKiAgWEVOX1NZU0NUTF9DUFVQT09MX09QX0FERENQVSwgWEVOX1NZU0NUTF9D
UFVQT09MX09QX1JNQ1BVOiBUaGUgc3BlY2lmaWVkCisgKiAgICBjcHUgaXMgZWl0aGVyIG5vdCBm
cmVlIChhZGQpIG9yIG5vdCBtZW1iZXIgb2YgdGhlIHNwZWNpZmllZCBjcHVwb29sCisgKiAgICAo
cmVtb3ZlKS4KKyAqIC1FTk9FTlQ6CisgKiAgYWxsOiBUaGUgY3B1cG9vbCB3aXRoIHRoZSBzcGVj
aWZpZWQgY3B1cG9vbF9pZCBkb2Vzbid0IGV4aXN0LgorICoKKyAqIFNvbWUgY29tbW9uIGVycm9y
IHJldHVybiB2YWx1ZXMgbGlrZSAtRU5PTUVNIGFuZCAtRUZBVUxUIGFyZSBwb3NzaWJsZSBmb3IK
KyAqIGFsbCB0aGUgb3BlcmF0aW9ucy4KKyAqLwogCiAjZGVmaW5lIEFSSU5DNjUzX01BWF9ET01B
SU5TX1BFUl9TQ0hFRFVMRSAgIDY0CiAvKgpAQCAtNTcwLDE4ICs1ODgsMjQgQEAgc3RydWN0IHhl
bl9zeXNjdGxfYXJpbmM2NTNfc2NoZWR1bGUgewogdHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bF9h
cmluYzY1M19zY2hlZHVsZSB4ZW5fc3lzY3RsX2FyaW5jNjUzX3NjaGVkdWxlX3Q7CiBERUZJTkVf
WEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX2FyaW5jNjUzX3NjaGVkdWxlX3QpOwogCisvKgor
ICogVmFsaWQgcmFuZ2UgZm9yIGNvbnRleHQgc3dpdGNoIHJhdGUgbGltaXQgKGluIG1pY3Jvc2Vj
b25kcykuCisgKiBBcHBsaWNhYmxlIHRvIENyZWRpdCBhbmQgQ3JlZGl0MiBzY2hlZHVsZXJzLgor
ICovCisjZGVmaW5lIFhFTl9TWVNDVExfU0NIRURfUkFURUxJTUlUX01BWCA1MDAwMDAKKyNkZWZp
bmUgWEVOX1NZU0NUTF9TQ0hFRF9SQVRFTElNSVRfTUlOIDEwMAorCiBzdHJ1Y3QgeGVuX3N5c2N0
bF9jcmVkaXRfc2NoZWR1bGUgewogICAgIC8qIExlbmd0aCBvZiB0aW1lc2xpY2UgaW4gbWlsbGlz
ZWNvbmRzICovCiAjZGVmaW5lIFhFTl9TWVNDVExfQ1NDSEVEX1RTTElDRV9NQVggMTAwMAogI2Rl
ZmluZSBYRU5fU1lTQ1RMX0NTQ0hFRF9UU0xJQ0VfTUlOIDEKICAgICB1bnNpZ25lZCB0c2xpY2Vf
bXM7Ci0gICAgLyogUmF0ZSBsaW1pdCAobWluaW11bSB0aW1lc2xpY2UpIGluIG1pY3Jvc2Vjb25k
cyAqLwotI2RlZmluZSBYRU5fU1lTQ1RMX1NDSEVEX1JBVEVMSU1JVF9NQVggNTAwMDAwCi0jZGVm
aW5lIFhFTl9TWVNDVExfU0NIRURfUkFURUxJTUlUX01JTiAxMDAKICAgICB1bnNpZ25lZCByYXRl
bGltaXRfdXM7CiB9OwotdHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bF9jcmVkaXRfc2NoZWR1bGUg
eGVuX3N5c2N0bF9jcmVkaXRfc2NoZWR1bGVfdDsKLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhl
bl9zeXNjdGxfY3JlZGl0X3NjaGVkdWxlX3QpOworCitzdHJ1Y3QgeGVuX3N5c2N0bF9jcmVkaXQy
X3NjaGVkdWxlIHsKKyAgICB1bnNpZ25lZCByYXRlbGltaXRfdXM7Cit9OwogCiAvKiBYRU5fU1lT
Q1RMX3NjaGVkdWxlcl9vcCAqLwogLyogU2V0IG9yIGdldCBpbmZvPyAqLwpAQCAtNTk2LDQ1ICs2
MjAsNDEgQEAgc3RydWN0IHhlbl9zeXNjdGxfc2NoZWR1bGVyX29wIHsKICAgICAgICAgICAgIFhF
Tl9HVUVTVF9IQU5ETEVfNjQoeGVuX3N5c2N0bF9hcmluYzY1M19zY2hlZHVsZV90KSBzY2hlZHVs
ZTsKICAgICAgICAgfSBzY2hlZF9hcmluYzY1MzsKICAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxf
Y3JlZGl0X3NjaGVkdWxlIHNjaGVkX2NyZWRpdDsKKyAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxf
Y3JlZGl0Ml9zY2hlZHVsZSBzY2hlZF9jcmVkaXQyOwogICAgIH0gdTsKIH07Ci10eXBlZGVmIHN0
cnVjdCB4ZW5fc3lzY3RsX3NjaGVkdWxlcl9vcCB4ZW5fc3lzY3RsX3NjaGVkdWxlcl9vcF90Owot
REVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9zY2hlZHVsZXJfb3BfdCk7Ci0KLS8q
IFhFTl9TWVNDVExfY292ZXJhZ2Vfb3AgKi8KLS8qCi0gKiBHZXQgdG90YWwgc2l6ZSBvZiBpbmZv
cm1hdGlvbiwgdG8gaGVscCBhbGxvY2F0ZQotICogdGhlIGJ1ZmZlci4gVGhlIHBvaW50ZXIgcG9p
bnRzIHRvIGEgMzIgYml0IHZhbHVlLgotICovCi0jZGVmaW5lIFhFTl9TWVNDVExfQ09WRVJBR0Vf
Z2V0X3RvdGFsX3NpemUgMAogCiAvKgotICogUmVhZCBjb3ZlcmFnZSBpbmZvcm1hdGlvbiBpbiBh
IHNpbmdsZSBydW4KLSAqIFlvdSBtdXN0IHVzZSBhIHRvb2wgdG8gc3BsaXQgdGhlbS4KKyAqIE91
dHB1dCBmb3JtYXQgb2YgZ2NvdiBkYXRhOgorICoKKyAqIFhFTl9HQ09WX0ZPUk1BVF9NQUdJQyBY
RU5fR0NPVl9SRUNPUkQgLi4uIFhFTl9HQ09WX1JFQ09SRAorICoKKyAqIFRoYXQgaXMsIG9uZSBt
YWdpYyBudW1iZXIgZm9sbG93ZWQgYnkgMCBvciBtb3JlIHJlY29yZC4KKyAqCisgKiBUaGUgbWFn
aWMgbnVtYmVyIGlzIHN0b3JlZCBhcyBhbiB1aW50MzJfdCBmaWVsZC4KKyAqCisgKiBUaGUgcmVj
b3JkIGlzIHBhY2tlZCBhbmQgdmFyaWFibGUgaW4gbGVuZ3RoLiBJdCBoYXMgdGhlIGZvcm06Cisg
KgorICogIGZpbGVuYW1lOiBhIE5VTEwgdGVybWluYXRlZCBwYXRoIG5hbWUgZXh0cmFjdGVkIGZy
b20gZ2NvdiwgdXNlZCB0bworICogICAgICAgICAgICBjcmVhdGUgdGhlIG5hbWUgb2YgZ2NkYSBm
aWxlLgorICogIHNpemU6ICAgICBhIHVpbnQzMl90IGZpZWxkIGluZGljYXRpbmcgdGhlIHNpemUg
b2YgdGhlIHBheWxvYWQsIHRoZQorICogICAgICAgICAgICB1bml0IGlzIGJ5dGUuCisgKiAgcGF5
bG9hZDogIHRoZSBhY3R1YWwgcGF5bG9hZCwgbGVuZ3RoIGlzIGBzaXplJyBieXRlcy4KKyAqCisg
KiBVc2Vyc3BhY2UgdG9vbCB3aWxsIHNwbGl0IHRoZSByZWNvcmQgdG8gZGlmZmVyZW50IGZpbGVz
LgogICovCi0jZGVmaW5lIFhFTl9TWVNDVExfQ09WRVJBR0VfcmVhZCAgICAgICAgICAgMQogCi0v
KgotICogUmVzZXQgYWxsIHRoZSBjb3ZlcmFnZSBjb3VudGVycyB0byAwCi0gKiBObyBwYXJhbWV0
ZXJzLgotICovCi0jZGVmaW5lIFhFTl9TWVNDVExfQ09WRVJBR0VfcmVzZXQgICAgICAgICAgMgor
I2RlZmluZSBYRU5fR0NPVl9GT1JNQVRfTUFHSUMgICAgMHg1ODQzNGY1NiAvKiBYQ09WICovCiAK
LS8qCi0gKiBMaWtlIFhFTl9TWVNDVExfQ09WRVJBR0VfcmVhZCBidXQgcmVzZXQgYWxzbwotICog
Y291bnRlcnMgdG8gMCBpbiBhIHNpbmdsZSBjYWxsLgotICovCi0jZGVmaW5lIFhFTl9TWVNDVExf
Q09WRVJBR0VfcmVhZF9hbmRfcmVzZXQgMworI2RlZmluZSBYRU5fU1lTQ1RMX0dDT1ZfZ2V0X3Np
emUgMCAvKiBHZXQgdG90YWwgc2l6ZSBvZiBvdXRwdXQgZGF0YSAqLworI2RlZmluZSBYRU5fU1lT
Q1RMX0dDT1ZfcmVhZCAgICAgMSAvKiBSZWFkIG91dHB1dCBkYXRhICovCisjZGVmaW5lIFhFTl9T
WVNDVExfR0NPVl9yZXNldCAgICAyIC8qIFJlc2V0IGFsbCBjb3VudGVycyAqLwogCi1zdHJ1Y3Qg
eGVuX3N5c2N0bF9jb3ZlcmFnZV9vcCB7Ci0gICAgdWludDMyX3QgY21kOyAgICAgICAgLyogWEVO
X1NZU0NUTF9DT1ZFUkFHRV8qICovCi0gICAgdW5pb24gewotICAgICAgICB1aW50MzJfdCB0b3Rh
bF9zaXplOyAvKiBPVVQgKi8KLSAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh1aW50OCkgIHJh
d19pbmZvOyAgIC8qIE9VVCAqLwotICAgIH0gdTsKK3N0cnVjdCB4ZW5fc3lzY3RsX2djb3Zfb3Ag
eworICAgIHVpbnQzMl90IGNtZDsKKyAgICB1aW50MzJfdCBzaXplOyAvKiBJTi9PVVQ6IHNpemUg
b2YgdGhlIGJ1ZmZlciAgKi8KKyAgICBYRU5fR1VFU1RfSEFORExFXzY0KGNoYXIpIGJ1ZmZlcjsg
LyogT1VUICovCiB9OwotdHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bF9jb3ZlcmFnZV9vcCB4ZW5f
c3lzY3RsX2NvdmVyYWdlX29wX3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3Rs
X2NvdmVyYWdlX29wX3QpOwogCiAjZGVmaW5lIFhFTl9TWVNDVExfUFNSX0NNVF9nZXRfdG90YWxf
cm1pZCAgICAgICAgICAgIDAKICNkZWZpbmUgWEVOX1NZU0NUTF9QU1JfQ01UX2dldF9sM191cHNj
YWxpbmdfZmFjdG9yICAgMQpAQCAtNjUzLDggKzY3MywzNzcgQEAgc3RydWN0IHhlbl9zeXNjdGxf
cHNyX2NtdF9vcCB7CiAgICAgICAgIH0gbDNfY2FjaGU7CiAgICAgfSB1OwogfTsKLXR5cGVkZWYg
c3RydWN0IHhlbl9zeXNjdGxfcHNyX2NtdF9vcCB4ZW5fc3lzY3RsX3Bzcl9jbXRfb3BfdDsKLURF
RklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNjdGxfcHNyX2NtdF9vcF90KTsKKworLyogWEVO
X1NZU0NUTF9wY2l0b3BvaW5mbyAqLworI2RlZmluZSBYRU5fSU5WQUxJRF9ERVYgKFhFTl9JTlZB
TElEX05PREVfSUQgLSAxKQorc3RydWN0IHhlbl9zeXNjdGxfcGNpdG9wb2luZm8geworICAgIC8q
CisgICAgICogSU46IE51bWJlciBvZiBlbGVtZW50cyBpbiAncGNpdG9wbycgYW5kICdub2Rlcycg
YXJyYXlzLgorICAgICAqIE9VVDogTnVtYmVyIG9mIHByb2Nlc3NlZCBlbGVtZW50cyBvZiB0aG9z
ZSBhcnJheXMuCisgICAgICovCisgICAgdWludDMyX3QgbnVtX2RldnM7CisKKyAgICAvKiBJTjog
bGlzdCBvZiBkZXZpY2VzIGZvciB3aGljaCBub2RlIElEcyBhcmUgcmVxdWVzdGVkLiAqLworICAg
IFhFTl9HVUVTVF9IQU5ETEVfNjQocGh5c2Rldl9wY2lfZGV2aWNlX3QpIGRldnM7CisKKyAgICAv
KgorICAgICAqIE9VVDogbm9kZSBpZGVudGlmaWVyIGZvciBlYWNoIGRldmljZS4KKyAgICAgKiBJ
ZiBpbmZvcm1hdGlvbiBmb3IgYSBwYXJ0aWN1bGFyIGRldmljZSBpcyBub3QgYXZhaWxhYmxlIHRo
ZW4KKyAgICAgKiBjb3JyZXNwb25kaW5nIGVudHJ5IHdpbGwgYmUgc2V0IHRvIFhFTl9JTlZBTElE
X05PREVfSUQuIElmCisgICAgICogZGV2aWNlIGlzIG5vdCBrbm93biB0byB0aGUgaHlwZXJ2aXNv
ciB0aGVuIFhFTl9JTlZBTElEX0RFVgorICAgICAqIHdpbGwgYmUgcHJvdmlkZWQuCisgICAgICov
CisgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh1aW50MzIpIG5vZGVzOworfTsKKworI2RlZmluZSBY
RU5fU1lTQ1RMX1BTUl9DQVRfZ2V0X2wzX2luZm8gICAgICAgICAgICAgICAwCisjZGVmaW5lIFhF
Tl9TWVNDVExfUFNSX0NBVF9nZXRfbDJfaW5mbyAgICAgICAgICAgICAgIDEKK3N0cnVjdCB4ZW5f
c3lzY3RsX3Bzcl9jYXRfb3AgeworICAgIHVpbnQzMl90IGNtZDsgICAgICAgLyogSU46IFhFTl9T
WVNDVExfUFNSX0NBVF8qICovCisgICAgdWludDMyX3QgdGFyZ2V0OyAgICAvKiBJTiAqLworICAg
IHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIHVpbnQzMl90IGNibV9sZW47
ICAgLyogT1VUOiBDQk0gbGVuZ3RoICovCisgICAgICAgICAgICB1aW50MzJfdCBjb3NfbWF4OyAg
IC8qIE9VVDogTWF4aW11bSBDT1MgKi8KKyNkZWZpbmUgWEVOX1NZU0NUTF9QU1JfQ0FUX0wzX0NE
UCAgICAgICAoMXUgPDwgMCkKKyAgICAgICAgICAgIHVpbnQzMl90IGZsYWdzOyAgICAgLyogT1VU
OiBDQVQgZmxhZ3MgKi8KKyAgICAgICAgfSBjYXRfaW5mbzsKKyAgICB9IHU7Cit9OworCisjZGVm
aW5lIFhFTl9TWVNDVExfVE1FTV9PUF9BTExfQ0xJRU5UUyAweEZGRkZVCisKKyNkZWZpbmUgWEVO
X1NZU0NUTF9UTUVNX09QX1RIQVcgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBYRU5fU1lT
Q1RMX1RNRU1fT1BfRlJFRVpFICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIFhFTl9TWVNDVExf
VE1FTV9PUF9GTFVTSCAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgWEVOX1NZU0NUTF9UTUVN
X09QX0RFU1RST1kgICAgICAgICAgICAgICAgMworI2RlZmluZSBYRU5fU1lTQ1RMX1RNRU1fT1Bf
TElTVCAgICAgICAgICAgICAgICAgICA0CisjZGVmaW5lIFhFTl9TWVNDVExfVE1FTV9PUF9HRVRf
Q0xJRU5UX0lORk8gICAgICAgIDUKKyNkZWZpbmUgWEVOX1NZU0NUTF9UTUVNX09QX1NFVF9DTElF
TlRfSU5GTyAgICAgICAgNgorI2RlZmluZSBYRU5fU1lTQ1RMX1RNRU1fT1BfR0VUX1BPT0xTICAg
ICAgICAgICAgICA3CisjZGVmaW5lIFhFTl9TWVNDVExfVE1FTV9PUF9RVUVSWV9GUkVFQUJMRV9N
QiAgICAgIDgKKyNkZWZpbmUgWEVOX1NZU0NUTF9UTUVNX09QX1NFVF9QT09MUyAgICAgICAgICAg
ICAgOQorI2RlZmluZSBYRU5fU1lTQ1RMX1RNRU1fT1BfU0FWRV9CRUdJTiAgICAgICAgICAgICAx
MAorI2RlZmluZSBYRU5fU1lTQ1RMX1RNRU1fT1BfU0VUX0FVVEggICAgICAgICAgICAgICAxMQor
I2RlZmluZSBYRU5fU1lTQ1RMX1RNRU1fT1BfU0FWRV9HRVRfTkVYVF9QQUdFICAgICAxOQorI2Rl
ZmluZSBYRU5fU1lTQ1RMX1RNRU1fT1BfU0FWRV9HRVRfTkVYVF9JTlYgICAgICAyMAorI2RlZmlu
ZSBYRU5fU1lTQ1RMX1RNRU1fT1BfU0FWRV9FTkQgICAgICAgICAgICAgICAyMQorI2RlZmluZSBY
RU5fU1lTQ1RMX1RNRU1fT1BfUkVTVE9SRV9CRUdJTiAgICAgICAgICAzMAorI2RlZmluZSBYRU5f
U1lTQ1RMX1RNRU1fT1BfUkVTVE9SRV9QVVRfUEFHRSAgICAgICAzMgorI2RlZmluZSBYRU5fU1lT
Q1RMX1RNRU1fT1BfUkVTVE9SRV9GTFVTSF9QQUdFICAgICAzMworCisvKgorICogWEVOX1NZU0NU
TF9UTUVNX09QX1NBVkVfR0VUX05FWFRfW1BBR0V8SU5WXSBvdmVycmlkZSB0aGUgJ2J1ZicgaW4K
KyAqIHhlbl9zeXNjdGxfdG1lbV9vcCB3aXRoIHRoaXMgc3RydWN0dXJlIC0gc29tZXRpbWVzIHdp
dGggYW4gZXh0cmEKKyAqIHBhZ2UgdGFja2xlZCBvbi4KKyAqLworc3RydWN0IHRtZW1faGFuZGxl
IHsKKyAgICB1aW50MzJfdCBwb29sX2lkOworICAgIHVpbnQzMl90IGluZGV4OworICAgIHhlbl90
bWVtX29pZF90IG9pZDsKK307CisKKy8qCisgKiBYRU5fU1lTQ1RMX1RNRU1fT1BfW0dFVCxTQVZF
XV9DTElFTlQgdXNlcyB0aGUgJ2NsaWVudCcgaW4KKyAqIHhlbl90bWVtX29wIHdpdGggdGhpcyBz
dHJ1Y3R1cmUsIHdoaWNoIGlzIG1vc3RseSB1c2VkIGR1cmluZyBtaWdyYXRpb24uCisgKi8KK3N0
cnVjdCB4ZW5fdG1lbV9jbGllbnQgeworICAgIHVpbnQzMl90IHZlcnNpb247ICAgLyogSWYgbWlz
bWF0Y2hlZCB3ZSB3aWxsIGdldCBYRU5fRU9QTk9UU1VQUC4gKi8KKyAgICB1aW50MzJfdCBtYXhw
b29sczsgIC8qIElmIGdyZWF0ZXIgdGhhbiB3aGF0IGh5cGVydmlzb3Igc3VwcG9ydHMsIHdpbGwg
Z2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5fRVJBTkdFLiAqLworICAgIHVpbnQz
Ml90IG5yX3Bvb2xzOyAgLyogQ3VycmVudCBhbW91bnQgb2YgcG9vbHMuIElnbm9yZWQgb24gU0VU
Ki8KKyAgICB1bmlvbiB7ICAgICAgICAgICAgIC8qIFNlZSBUTUVNX0NMSUVOVF9bQ09NUFJFU1Ms
RlJPWkVOXSAqLworICAgICAgICB1aW50MzJfdCByYXc7CisgICAgICAgIHN0cnVjdCB7CisgICAg
ICAgICAgICB1aW50OF90IGZyb3plbjoxLAorICAgICAgICAgICAgICAgICAgICBjb21wcmVzczox
LAorICAgICAgICAgICAgICAgICAgICBtaWdyYXRpbmc6MTsKKyAgICAgICAgfSB1OworICAgIH0g
ZmxhZ3M7CisgICAgdWludDMyX3Qgd2VpZ2h0OworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl90bWVt
X2NsaWVudCB4ZW5fdG1lbV9jbGllbnRfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl90
bWVtX2NsaWVudF90KTsKKworLyoKKyAqIFhFTl9TWVNDVExfVE1FTV9PUF9bR0VUfFNFVF1fUE9P
TFMgb3IgWEVOX1NZU0NUTF9UTUVNX09QX1NFVF9BVVRICisgKiB1c2VzIHRoZSAncG9vbCcgYXJy
YXkgaW4gKiB4ZW5fc3lzY3RsX3RtZW1fb3Agd2l0aCB0aGlzIHN0cnVjdHVyZS4KKyAqIFRoZSBY
RU5fU1lTQ1RMX1RNRU1fT1BfR0VUX1BPT0xTIGh5cGVyY2FsbCB3aWxsCisgKiByZXR1cm4gdGhl
IG51bWJlciBvZiBlbnRyaWVzIGluICdwb29sJyBvciBhIG5lZ2F0aXZlIHZhbHVlCisgKiBpZiBh
biBlcnJvciB3YXMgZW5jb3VudGVyZWQuCisgKiBUaGUgWEVOX1NZU0NUTF9UTUVNX09QX1NFVF9b
QVVUSHxQT09MU10gd2lsbCByZXR1cm4gdGhlIG51bWJlciBvZgorICogZW50cmllcyBpbiAncG9v
bCcgcHJvY2Vzc2VkIG9yIGEgbmVnYXRpdmUgdmFsdWUgaWYgYW4gZXJyb3IKKyAqIHdhcyBlbmNv
dW50ZXJlZC4KKyAqLworc3RydWN0IHhlbl90bWVtX3Bvb2xfaW5mbyB7CisgICAgdW5pb24gewor
ICAgICAgICB1aW50MzJfdCByYXc7CisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1aW50
MzJfdCBwZXJzaXN0OjEsICAgIC8qIFNlZSBUTUVNX1BPT0xfUEVSU0lTVC4gKi8KKyAgICAgICAg
ICAgICAgICAgICAgIHNoYXJlZDoxLCAgICAgLyogU2VlIFRNRU1fUE9PTF9TSEFSRUQuICovCisg
ICAgICAgICAgICAgICAgICAgICBhdXRoOjEsICAgICAgIC8qIFNlZSBUTUVNX1BPT0xfQVVUSC4g
Ki8KKyAgICAgICAgICAgICAgICAgICAgIHJzdjE6MSwKKyAgICAgICAgICAgICAgICAgICAgIHBh
Z2ViaXRzOjgsICAgLyogVE1FTV9QT09MX1BBR0VTSVpFX1tTSElGVCxNQVNLXS4gKi8KKyAgICAg
ICAgICAgICAgICAgICAgIHJzdjI6MTIsCisgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOjg7
ICAgIC8qIFRNRU1fUE9PTF9WRVJTSU9OX1tTSElGVCxNQVNLXS4gKi8KKyAgICAgICAgfSB1Owor
ICAgIH0gZmxhZ3M7CisgICAgdWludDMyX3QgaWQ7ICAgICAgICAgICAgICAgICAgLyogTGVzcyB0
aGFuIHRtZW1fY2xpZW50Lm1heHBvb2xzLiAqLworICAgIHVpbnQ2NF90IG5fcGFnZXM7ICAgICAg
ICAgICAgIC8qIFplcm8gb24gWEVOX1NZU0NUTF9UTUVNX09QX1NFVF9bQVVUSHxQT09MU10uICov
CisgICAgdWludDY0X2FsaWduZWRfdCB1dWlkWzJdOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl90
bWVtX3Bvb2xfaW5mbyB4ZW5fdG1lbV9wb29sX2luZm9fdDsKK0RFRklORV9YRU5fR1VFU1RfSEFO
RExFKHhlbl90bWVtX3Bvb2xfaW5mb190KTsKKworc3RydWN0IHhlbl9zeXNjdGxfdG1lbV9vcCB7
CisgICAgdWludDMyX3QgY21kOyAgICAgICAvKiBJTjogWEVOX1NZU0NUTF9UTUVNX09QXyogLiAq
LworICAgIGludDMyX3QgcG9vbF9pZDsgICAgLyogSU46IDAgYnkgZGVmYXVsdCB1bmxlc3MgX1NB
VkVfKiwgUkVTVE9SRV8qIC4qLworICAgIHVpbnQzMl90IGNsaV9pZDsgICAgLyogSU46IGNsaWVu
dCBpZCwgMCBmb3IgWEVOX1NZU0NUTF9UTUVNX1FVRVJZX0ZSRUVBQkxFX01CCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmb3IgYWxsIG90aGVycyBjYW4gYmUgdGhlIGRvbWFpbiBpZCBvcgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX1NZU0NUTF9UTUVNX09QX0FMTF9DTElFTlRT
IGZvciBhbGwuICovCisgICAgdWludDMyX3QgbGVuOyAgICAgICAvKiBJTjogbGVuZ3RoIG9mICdi
dWYnLiBJZiBub3QgYXBwbGljYWJsZSB0byB1c2UgMC4gKi8KKyAgICB1aW50MzJfdCBhcmc7ICAg
ICAgIC8qIElOOiBJZiBub3QgYXBwbGljYWJsZSB0byBjb21tYW5kIHVzZSAwLiAqLworICAgIHVp
bnQzMl90IHBhZDsgICAgICAgLyogUGFkZGluZyBzbyBzdHJ1Y3R1cmUgaXMgdGhlIHNhbWUgdW5k
ZXIgMzIgYW5kIDY0LiAqLworICAgIHhlbl90bWVtX29pZF90IG9pZDsgLyogSU46IElmIG5vdCBh
cHBsaWNhYmxlIHRvIGNvbW1hbmQgdXNlIDBzLiAqLworICAgIHVuaW9uIHsKKyAgICAgICAgWEVO
X0dVRVNUX0hBTkRMRV82NChjaGFyKSBidWY7IC8qIElOL09VVDogQnVmZmVyIHRvIHNhdmUvcmVz
dG9yZSAqLworICAgICAgICBYRU5fR1VFU1RfSEFORExFXzY0KHhlbl90bWVtX2NsaWVudF90KSBj
bGllbnQ7IC8qIElOL09VVCBmb3IgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8qICBYRU5f
U1lTQ1RMX1RNRU1fT1BfW0dFVCxTQVZFXV9DTElFTlQuICovCisgICAgICAgIFhFTl9HVUVTVF9I
QU5ETEVfNjQoeGVuX3RtZW1fcG9vbF9pbmZvX3QpIHBvb2w7IC8qIE9VVCBmb3IgKi8KKyAgICAg
ICAgICAgICAgICAgICAgICAgIC8qIFhFTl9TWVNDVExfVE1FTV9PUF9HRVRfUE9PTFMuIE11c3Qg
aGF2ZSAnbGVuJyAqLworICAgICAgICAgICAgICAgICAgICAgICAgLyogb2YgdGhlbS4gKi8KKyAg
ICB9IHU7Cit9OworCisvKgorICogWEVOX1NZU0NUTF9nZXRfY3B1X2xldmVsbGluZ19jYXBzICh4
ODYgc3BlY2lmaWMpCisgKgorICogUmV0dXJuIGhhcmR3YXJlIGNhcGFiaWxpdGllcyBjb25jZXJu
aW5nIG1hc2tpbmcgb3IgZmF1bHRpbmcgb2YgdGhlIGNwdWlkCisgKiBpbnN0cnVjdGlvbiBmb3Ig
UFYgZ3Vlc3RzLgorICovCitzdHJ1Y3QgeGVuX3N5c2N0bF9jcHVfbGV2ZWxsaW5nX2NhcHMgewor
I2RlZmluZSBYRU5fU1lTQ1RMX0NQVV9MRVZFTENBUF9mYXVsdGluZyAgICAoMXVsIDw8ICAwKSAv
KiBDUFVJRCBmYXVsdGluZyAgICAqLworI2RlZmluZSBYRU5fU1lTQ1RMX0NQVV9MRVZFTENBUF9l
Y3ggICAgICAgICAoMXVsIDw8ICAxKSAvKiAweDAwMDAwMDAxLmVjeCAgICAqLworI2RlZmluZSBY
RU5fU1lTQ1RMX0NQVV9MRVZFTENBUF9lZHggICAgICAgICAoMXVsIDw8ICAyKSAvKiAweDAwMDAw
MDAxLmVkeCAgICAqLworI2RlZmluZSBYRU5fU1lTQ1RMX0NQVV9MRVZFTENBUF9leHRkX2VjeCAg
ICAoMXVsIDw8ICAzKSAvKiAweDgwMDAwMDAxLmVjeCAgICAqLworI2RlZmluZSBYRU5fU1lTQ1RM
X0NQVV9MRVZFTENBUF9leHRkX2VkeCAgICAoMXVsIDw8ICA0KSAvKiAweDgwMDAwMDAxLmVkeCAg
ICAqLworI2RlZmluZSBYRU5fU1lTQ1RMX0NQVV9MRVZFTENBUF94c2F2ZV9lYXggICAoMXVsIDw8
ICA1KSAvKiAweDAwMDAwMDBEOjEuZWF4ICAqLworI2RlZmluZSBYRU5fU1lTQ1RMX0NQVV9MRVZF
TENBUF90aGVybWFsX2VjeCAoMXVsIDw8ICA2KSAvKiAweDAwMDAwMDA2LmVjeCAgICAqLworI2Rl
ZmluZSBYRU5fU1lTQ1RMX0NQVV9MRVZFTENBUF9sN3MwX2VheCAgICAoMXVsIDw8ICA3KSAvKiAw
eDAwMDAwMDA3OjAuZWF4ICAqLworI2RlZmluZSBYRU5fU1lTQ1RMX0NQVV9MRVZFTENBUF9sN3Mw
X2VieCAgICAoMXVsIDw8ICA4KSAvKiAweDAwMDAwMDA3OjAuZWJ4ICAqLworICAgIHVpbnQzMl90
IGNhcHM7Cit9OworCisvKgorICogWEVOX1NZU0NUTF9nZXRfY3B1X2ZlYXR1cmVzZXQgKHg4NiBz
cGVjaWZpYykKKyAqCisgKiBSZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgZmVhdHVyZXNldHMgYXZh
aWxhYmxlIG9uIHRoaXMgaG9zdC4KKyAqICAtICBSYXc6IFRoZSByZWFsIGNwdWlkIHZhbHVlcy4K
KyAqICAtIEhvc3Q6IFRoZSB2YWx1ZXMgWGVuIGlzIHVzaW5nLCAoYWZ0ZXIgY29tbWFuZCBsaW5l
IG92ZXJyaWRlcywgZXRjKS4KKyAqICAtICAgUFY6IE1heGltdW0gc2V0IG9mIGZlYXR1cmVzIHdo
aWNoIGNhbiBiZSBnaXZlbiB0byBhIFBWIGd1ZXN0LgorICogIC0gIEhWTTogTWF4aW11bSBzZXQg
b2YgZmVhdHVyZXMgd2hpY2ggY2FuIGJlIGdpdmVuIHRvIGEgSFZNIGd1ZXN0LgorICovCitzdHJ1
Y3QgeGVuX3N5c2N0bF9jcHVfZmVhdHVyZXNldCB7CisjZGVmaW5lIFhFTl9TWVNDVExfY3B1X2Zl
YXR1cmVzZXRfcmF3ICAgICAgMAorI2RlZmluZSBYRU5fU1lTQ1RMX2NwdV9mZWF0dXJlc2V0X2hv
c3QgICAgIDEKKyNkZWZpbmUgWEVOX1NZU0NUTF9jcHVfZmVhdHVyZXNldF9wdiAgICAgICAyCisj
ZGVmaW5lIFhFTl9TWVNDVExfY3B1X2ZlYXR1cmVzZXRfaHZtICAgICAgMworICAgIHVpbnQzMl90
IGluZGV4OyAgICAgICAvKiBJTjogV2hpY2ggZmVhdHVyZXNldCB0byBxdWVyeT8gKi8KKyAgICB1
aW50MzJfdCBucl9mZWF0dXJlczsgLyogSU4vT1VUOiBOdW1iZXIgb2YgZW50cmllcyBpbi93cml0
dGVuIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAqICdmZWF0dXJlcycsIG9yIHRoZSBt
YXhpbXVtIG51bWJlciBvZiBmZWF0dXJlcyBpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
KiB0aGUgZ3Vlc3QgaGFuZGxlIGlzIE5VTEwuICBOQi4gQWxsIGZlYXR1cmVzZXRzCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqIGNvbWUgZnJvbSB0aGUgc2FtZSBudW1iZXJzcGFjZSwgc28g
aGF2ZSB0aGUgc2FtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBtYXhpbXVtIGxlbmd0
aC4gKi8KKyAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQzMikgZmVhdHVyZXM7IC8qIE9VVDog
Ki8KK307CisKKy8qCisgKiBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9vcAorICoKKyAqIFJlZmVyIHRv
IHRoZSBkb2NzL3Vuc3RhYmxlL21pc2MvbGl2ZXBhdGNoLm1hcmtkb3duCisgKiBmb3IgdGhlIGRl
c2lnbiBkZXRhaWxzIG9mIHRoaXMgaHlwZXJjYWxsLgorICoKKyAqIFRoZXJlIGFyZSBmb3VyIHN1
Yi1vcHM6CisgKiAgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfVVBMT0FEICgwKQorICogIFhFTl9TWVND
VExfTElWRVBBVENIX0dFVCAoMSkKKyAqICBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9MSVNUICgyKQor
ICogIFhFTl9TWVNDVExfTElWRVBBVENIX0FDVElPTiAoMykKKyAqCisgKiBUaGUgbm9ybWFsIHNl
cXVlbmNlIG9mIHN1Yi1vcHMgaXMgdG86CisgKiAgMSkgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfVVBM
T0FEIHRvIHVwbG9hZCB0aGUgcGF5bG9hZC4gSWYgZXJyb3JzIFNUT1AuCisgKiAgMikgWEVOX1NZ
U0NUTF9MSVZFUEFUQ0hfR0VUIHRvIGNoZWNrIHRoZSBgLT5yY2AuIElmIC1YRU5fRUFHQUlOIHNw
aW4uCisgKiAgICAgSWYgemVybyBnbyB0byBuZXh0IHN0ZXAuCisgKiAgMykgWEVOX1NZU0NUTF9M
SVZFUEFUQ0hfQUNUSU9OIHdpdGggTElWRVBBVENIX0FDVElPTl9BUFBMWSB0byBhcHBseSB0aGUg
cGF0Y2guCisgKiAgNCkgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfR0VUIHRvIGNoZWNrIHRoZSBgLT5y
Y2AuIElmIGluIC1YRU5fRUFHQUlOIHNwaW4uCisgKiAgICAgSWYgemVybyBleGl0IHdpdGggc3Vj
Y2Vzcy4KKyAqLworCisjZGVmaW5lIExJVkVQQVRDSF9QQVlMT0FEX1ZFUlNJT04gMQorLyoKKyAq
IC5saXZlcGF0Y2guZnVuY3Mgc3RydWN0dXJlIGxheW91dCBkZWZpbmVkIGluIHRoZSBgUGF5bG9h
ZCBmb3JtYXRgCisgKiBzZWN0aW9uIGluIHRoZSBMaXZlIFBhdGNoIGRlc2lnbiBkb2N1bWVudC4K
KyAqCisgKiBXZSBndWFyZCB0aGlzIHdpdGggX19YRU5fXyBhcyB0b29sc3RhY2tzIFNIT1VMRCBu
b3QgdXNlIGl0LgorICovCisjaWZkZWYgX19YRU5fXworc3RydWN0IGxpdmVwYXRjaF9mdW5jIHsK
KyAgICBjb25zdCBjaGFyICpuYW1lOyAgICAgICAvKiBOYW1lIG9mIGZ1bmN0aW9uIHRvIGJlIHBh
dGNoZWQuICovCisgICAgdm9pZCAqbmV3X2FkZHI7CisgICAgdm9pZCAqb2xkX2FkZHI7CisgICAg
dWludDMyX3QgbmV3X3NpemU7CisgICAgdWludDMyX3Qgb2xkX3NpemU7CisgICAgdWludDhfdCB2
ZXJzaW9uOyAgICAgICAgLyogTVVTVCBiZSBMSVZFUEFUQ0hfUEFZTE9BRF9WRVJTSU9OLiAqLwor
ICAgIHVpbnQ4X3Qgb3BhcXVlWzMxXTsKK307Cit0eXBlZGVmIHN0cnVjdCBsaXZlcGF0Y2hfZnVu
YyBsaXZlcGF0Y2hfZnVuY190OworI2VuZGlmCisKKy8qCisgKiBTdHJ1Y3R1cmUgZGVzY3JpYmlu
ZyBhbiBFTEYgcGF5bG9hZC4gVW5pcXVlbHkgaWRlbnRpZmllcyB0aGUKKyAqIHBheWxvYWQuIFNo
b3VsZCBiZSBodW1hbiByZWFkYWJsZS4KKyAqIFJlY29tbWVuZGVkIGxlbmd0aCBpcyB1cHRvIFhF
Tl9MSVZFUEFUQ0hfTkFNRV9TSVpFLgorICogSW5jbHVkZXMgdGhlIE5VTCB0ZXJtaW5hdG9yLgor
ICovCisjZGVmaW5lIFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFIDEyOAorc3RydWN0IHhlbl9saXZl
cGF0Y2hfbmFtZSB7CisgICAgWEVOX0dVRVNUX0hBTkRMRV82NChjaGFyKSBuYW1lOyAgICAgICAg
IC8qIElOOiBwb2ludGVyIHRvIG5hbWUuICovCisgICAgdWludDE2X3Qgc2l6ZTsgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8qIElOOiBzaXplIG9mIG5hbWUuIE1heSBiZSB1cHRvCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9MSVZFUEFUQ0hfTkFN
RV9TSVpFLiAqLworICAgIHVpbnQxNl90IHBhZFszXTsgICAgICAgICAgICAgICAgICAgICAgICAv
KiBJTjogTVVTVCBiZSB6ZXJvLiAqLworfTsKKworLyoKKyAqIFVwbG9hZCBhIHBheWxvYWQgdG8g
dGhlIGh5cGVydmlzb3IuIFRoZSBwYXlsb2FkIGlzIHZlcmlmaWVkCisgKiBhZ2FpbnN0IGJhc2lj
IGNoZWNrcyBhbmQgaWYgdGhlcmUgYXJlIGFueSBpc3N1ZXMgdGhlIHByb3BlciByZXR1cm4gY29k
ZQorICogd2lsbCBiZSByZXR1cm5lZC4gVGhlIHBheWxvYWQgaXMgbm90IGFwcGxpZWQgYXQgdGhp
cyB0aW1lIC0gdGhhdCBpcworICogY29udHJvbGxlZCBieSBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9B
Q1RJT04uCisgKgorICogVGhlIHJldHVybiB2YWx1ZSBpcyB6ZXJvIGlmIHRoZSBwYXlsb2FkIHdh
cyBzdWNjZXNmdWxseSB1cGxvYWRlZC4KKyAqIE90aGVyd2lzZSBhbiBFWFggcmV0dXJuIHZhbHVl
IGlzIHByb3ZpZGVkLiBEdXBsaWNhdGUgYG5hbWVgIGFyZSBub3QKKyAqIHN1cHBvcnRlZC4KKyAq
CisgKiBUaGUgcGF5bG9hZCBhdCB0aGlzIHBvaW50IGlzIHZlcmlmaWVkIGFnYWluc3QgYmFzaWMg
Y2hlY2tzLgorICoKKyAqIFRoZSBgcGF5bG9hZGAgaXMgdGhlIEVMRiBwYXlsb2FkIGFzIG1lbnRp
b25lZCBpbiB0aGUgYFBheWxvYWQgZm9ybWF0YAorICogc2VjdGlvbiBpbiB0aGUgTGl2ZSBQYXRj
aCBkZXNpZ24gZG9jdW1lbnQuCisgKi8KKyNkZWZpbmUgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfVVBM
T0FEIDAKK3N0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF91cGxvYWQgeworICAgIHN0cnVjdCB4
ZW5fbGl2ZXBhdGNoX25hbWUgbmFtZTsgICAgICAgICAvKiBJTiwgbmFtZSBvZiB0aGUgcGF0Y2gu
ICovCisgICAgdWludDY0X3Qgc2l6ZTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOLCBz
aXplIG9mIHRoZSBFTEYgZmlsZS4gKi8KKyAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQ4KSBw
YXlsb2FkOyAgICAgLyogSU4sIHRoZSBFTEYgZmlsZS4gKi8KK307CisKKy8qCisgKiBSZXRyaWV2
ZSBhbiBzdGF0dXMgb2YgYW4gc3BlY2lmaWMgcGF5bG9hZC4KKyAqCisgKiBVcG9uIGNvbXBsZXRp
b24gdGhlIGBzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9zdGF0dXNgIGlzIHVwZGF0ZWQuCisgKgorICog
VGhlIHJldHVybiB2YWx1ZSBpcyB6ZXJvIG9uIHN1Y2Nlc3MgYW5kIFhFTl9FWFggb24gZmFpbHVy
ZS4gVGhpcyBvcGVyYXRpb24KKyAqIGlzIHN5bmNocm9ub3VzIGFuZCBkb2VzIG5vdCByZXF1aXJl
IHByZWVtcHRpb24uCisgKi8KKyNkZWZpbmUgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfR0VUIDEKKwor
c3RydWN0IHhlbl9saXZlcGF0Y2hfc3RhdHVzIHsKKyNkZWZpbmUgTElWRVBBVENIX1NUQVRFX0NI
RUNLRUQgICAgICAxCisjZGVmaW5lIExJVkVQQVRDSF9TVEFURV9BUFBMSUVEICAgICAgMgorICAg
IHVpbnQzMl90IHN0YXRlOyAgICAgICAgICAgICAgICAvKiBPVVQ6IExJVkVQQVRDSF9TVEFURV8q
LiAqLworICAgIGludDMyX3QgcmM7ICAgICAgICAgICAgICAgICAgICAvKiBPVVQ6IDAgaWYgbm8g
ZXJyb3IsIG90aGVyd2lzZSAtWEVOX0VYWC4gKi8KK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5fbGl2
ZXBhdGNoX3N0YXR1cyB4ZW5fbGl2ZXBhdGNoX3N0YXR1c190OworREVGSU5FX1hFTl9HVUVTVF9I
QU5ETEUoeGVuX2xpdmVwYXRjaF9zdGF0dXNfdCk7CisKK3N0cnVjdCB4ZW5fc3lzY3RsX2xpdmVw
YXRjaF9nZXQgeworICAgIHN0cnVjdCB4ZW5fbGl2ZXBhdGNoX25hbWUgbmFtZTsgICAgICAgICAv
KiBJTiwgbmFtZSBvZiB0aGUgcGF5bG9hZC4gKi8KKyAgICBzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9z
dGF0dXMgc3RhdHVzOyAgICAgLyogSU4vT1VULCBzdGF0ZSBvZiBpdC4gKi8KK307CisKKy8qCisg
KiBSZXRyaWV2ZSBhbiBhcnJheSBvZiBhYmJyZXZpYXRlZCBzdGF0dXMgYW5kIG5hbWVzIG9mIHBh
eWxvYWRzIHRoYXQgYXJlCisgKiBsb2FkZWQgaW4gdGhlIGh5cGVydmlzb3IuCisgKgorICogSWYg
dGhlIGh5cGVyY2FsbCByZXR1cm5zIGFuIHBvc2l0aXZlIG51bWJlciwgaXQgaXMgdGhlIG51bWJl
ciAodXAgdG8gYG5yYCkKKyAqIG9mIHRoZSBwYXlsb2FkcyByZXR1cm5lZCwgYWxvbmcgd2l0aCBg
bnJgIHVwZGF0ZWQgd2l0aCB0aGUgbnVtYmVyIG9mIHJlbWFpbmluZworICogcGF5bG9hZHMsIGB2
ZXJzaW9uYCB1cGRhdGVkIChpdCBtYXkgYmUgdGhlIHNhbWUgYWNyb3NzIGh5cGVyY2FsbHMuIElm
IGl0CisgKiB2YXJpZXMgdGhlIGRhdGEgaXMgc3RhbGUgYW5kIGZ1cnRoZXIgY2FsbHMgY291bGQg
ZmFpbCkuIFRoZSBgc3RhdHVzYCwKKyAqIGBuYW1lYCwgYW5kIGBsZW5gJyBhcmUgdXBkYXRlZCBh
dCB0aGVpciBkZXNpZ25lZCBpbmRleCB2YWx1ZSAoYGlkeGApIHdpdGgKKyAqIHRoZSByZXR1cm5l
ZCB2YWx1ZSBvZiBkYXRhLgorICoKKyAqIElmIHRoZSBoeXBlcmNhbGwgcmV0dXJucyBFMkJJRyB0
aGUgYG5yYCBpcyB0b28gYmlnIGFuZCBzaG91bGQgYmUKKyAqIGxvd2VyZWQuIFRoZSB1cHBlciBs
aW1pdCBvZiBgbnJgIGlzIGxlZnQgdG8gdGhlIGltcGxlbWVudGlvbi4KKyAqCisgKiBOb3RlIHRo
YXQgZHVlIHRvIHRoZSBhc3luY2hyb25vdXMgbmF0dXJlIG9mIGh5cGVyY2FsbHMgdGhlIGRvbWFp
biBtaWdodCBoYXZlCisgKiBhZGRlZCBvciByZW1vdmVkIHRoZSBudW1iZXIgb2YgcGF5bG9hZHMg
bWFraW5nIHRoaXMgaW5mb3JtYXRpb24gc3RhbGUuIEl0IGlzCisgKiB0aGUgcmVzcG9uc2liaWxp
dHkgb2YgdGhlIHRvb2xzdGFjayB0byB1c2UgdGhlIGB2ZXJzaW9uYCBmaWVsZCB0byBjaGVjawor
ICogYmV0d2VlbiBlYWNoIGludm9jYXRpb24uIGlmIHRoZSB2ZXJzaW9uIGRpZmZlcnMgaXQgc2hv
dWxkIGRpc2NhcmQgdGhlIHN0YWxlCisgKiBkYXRhIGFuZCBzdGFydCBmcm9tIHNjcmF0Y2guIEl0
IGlzIE9LIGZvciB0aGUgdG9vbHN0YWNrIHRvIHVzZSB0aGUgbmV3CisgKiBgdmVyc2lvbmAgZmll
bGQuCisgKi8KKyNkZWZpbmUgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfTElTVCAyCitzdHJ1Y3QgeGVu
X3N5c2N0bF9saXZlcGF0Y2hfbGlzdCB7CisgICAgdWludDMyX3QgdmVyc2lvbjsgICAgICAgICAg
ICAgICAgICAgICAgIC8qIE9VVDogSHlwZXJ2aXNvciBzdGFtcHMgdmFsdWUuCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHZhcmllcyBiZXR3ZWVuIGNh
bGxzLCB3ZSBhcmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICogZ2V0dGluZyBzdGFsZSBkYXRhLiAqLworICAgIHVpbnQzMl90IGlkeDsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvKiBJTjogSW5kZXggaW50byBoeXBlcnZpc29yIGxpc3QuICovCisgICAg
dWludDMyX3QgbnI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBIb3cgbWFueSBz
dGF0dXMsIG5hbWUsIGFuZCBsZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2hvdWxkIGZpbGwgb3V0LiBDYW4gYmUgemVybyB0byBnZXQKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50IG9mIHBheWxvYWRz
IGFuZCB2ZXJzaW9uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBPVVQ6IEhvdyBtYW55IHBheWxvYWRzIGxlZnQuICovCisgICAgdWludDMyX3QgcGFkOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBNdXN0IGJlIHplcm8uICovCisgICAgWEVO
X0dVRVNUX0hBTkRMRV82NCh4ZW5fbGl2ZXBhdGNoX3N0YXR1c190KSBzdGF0dXM7ICAvKiBPVVQu
IE11c3QgaGF2ZSBlbm91Z2gKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3BhY2UgYWxsb2NhdGUgZm9yIG5yIG9mIHRoZW0uICovCisgICAgWEVOX0dVRVNU
X0hBTkRMRV82NChjaGFyKSBuYW1lOyAgICAgICAgIC8qIE9VVDogQXJyYXkgb2YgbmFtZXMuIEVh
Y2ggbWVtYmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE1VU1QgWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUgaW4gc2l6ZS4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTXVzdCBoYXZlIG5yIG9mIHRoZW0uICovCisg
ICAgWEVOX0dVRVNUX0hBTkRMRV82NCh1aW50MzIpIGxlbjsgICAgICAgIC8qIE9VVDogQXJyYXkg
b2YgbGVuZ3RocyBvZiBuYW1lJ3MuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE11c3QgaGF2ZSBuciBvZiB0aGVtLiAqLworfTsKKworLyoKKyAqIFBlcmZv
cm0gYW4gb3BlcmF0aW9uIG9uIHRoZSBwYXlsb2FkIHN0cnVjdHVyZSByZWZlcmVuY2VkIGJ5IHRo
ZSBgbmFtZWAgZmllbGQuCisgKiBUaGUgb3BlcmF0aW9uIHJlcXVlc3QgaXMgYXN5bmNocm9ub3Vz
IGFuZCB0aGUgc3RhdHVzIHNob3VsZCBiZSByZXRyaWV2ZWQKKyAqIGJ5IHVzaW5nIGVpdGhlciBY
RU5fU1lTQ1RMX0xJVkVQQVRDSF9HRVQgb3IgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfTElTVCBoeXBl
cmNhbGwuCisgKi8KKyNkZWZpbmUgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfQUNUSU9OIDMKK3N0cnVj
dCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9hY3Rpb24geworICAgIHN0cnVjdCB4ZW5fbGl2ZXBhdGNo
X25hbWUgbmFtZTsgICAgICAgICAvKiBJTiwgbmFtZSBvZiB0aGUgcGF0Y2guICovCisjZGVmaW5l
IExJVkVQQVRDSF9BQ1RJT05fVU5MT0FEICAgICAgIDEKKyNkZWZpbmUgTElWRVBBVENIX0FDVElP
Tl9SRVZFUlQgICAgICAgMgorI2RlZmluZSBMSVZFUEFUQ0hfQUNUSU9OX0FQUExZICAgICAgICAz
CisjZGVmaW5lIExJVkVQQVRDSF9BQ1RJT05fUkVQTEFDRSAgICAgIDQKKyAgICB1aW50MzJfdCBj
bWQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSU46IExJVkVQQVRDSF9BQ1RJT05fKi4g
Ki8KKyAgICB1aW50MzJfdCB0aW1lb3V0OyAgICAgICAgICAgICAgICAgICAgICAgLyogSU46IElm
IHplcm8gdGhlbiB1c2VzICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8qIGh5cGVydmlzb3IgZGVmYXVsdC4gKi8KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLyogT3IgdXBwZXIgYm91bmQgb2YgdGltZSAobnMpICovCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZvciBvcGVyYXRp
b24gdG8gdGFrZS4gKi8KK307CisKK3N0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9vcCB7Cisg
ICAgdWludDMyX3QgY21kOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBYRU5fU1lT
Q1RMX0xJVkVQQVRDSF8qLiAqLworICAgIHVpbnQzMl90IHBhZDsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvKiBJTjogQWx3YXlzIHplcm8uICovCisgICAgdW5pb24geworICAgICAgICBzdHJ1
Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfdXBsb2FkIHVwbG9hZDsKKyAgICAgICAgc3RydWN0IHhl
bl9zeXNjdGxfbGl2ZXBhdGNoX2xpc3QgbGlzdDsKKyAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxf
bGl2ZXBhdGNoX2dldCBnZXQ7CisgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9h
Y3Rpb24gYWN0aW9uOworICAgIH0gdTsKK307CisKKy8qCisgKiBYRU5fU1lTQ1RMX3NldF9wYXJh
bWV0ZXIKKyAqCisgKiBDaGFuZ2UgaHlwZXJ2aXNvciBwYXJhbWV0ZXJzIGF0IHJ1bnRpbWUuCisg
KiBUaGUgaW5wdXQgc3RyaW5nIGlzIHBhcnNlZCBzaW1pbGFyIHRvIHRoZSBib290IHBhcmFtZXRl
cnMuCisgKiBQYXJhbWV0ZXJzIGFyZSBhIHNpbmdsZSBzdHJpbmcgdGVybWluYXRlZCBieSBhIE5V
TCBieXRlIG9mIG1heC4gc2l6ZQorICogY2hhcmFjdGVycy4gTXVsdGlwbGUgc2V0dGluZ3MgY2Fu
IGJlIHNwZWNpZmllZCBieSBzZXBhcmF0aW5nIHRoZW0KKyAqIHdpdGggYmxhbmtzLgorICovCisK
K3N0cnVjdCB4ZW5fc3lzY3RsX3NldF9wYXJhbWV0ZXIgeworICAgIFhFTl9HVUVTVF9IQU5ETEVf
NjQoY2hhcikgcGFyYW1zOyAgICAgICAvKiBJTjogcG9pbnRlciB0byBwYXJhbWV0ZXJzLiAqLwor
ICAgIHVpbnQxNl90IHNpemU7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJTjogc2l6ZSBv
ZiBwYXJhbWV0ZXJzLiAqLworICAgIHVpbnQxNl90IHBhZFszXTsgICAgICAgICAgICAgICAgICAg
ICAgICAvKiBJTjogTVVTVCBiZSB6ZXJvLiAqLworfTsKIAogc3RydWN0IHhlbl9zeXNjdGwgewog
ICAgIHVpbnQzMl90IGNtZDsKQEAgLTY3MiwxOCArMTA2MSwyNiBAQCBzdHJ1Y3QgeGVuX3N5c2N0
bCB7CiAjZGVmaW5lIFhFTl9TWVNDVExfcG1fb3AgICAgICAgICAgICAgICAgICAgICAgICAgMTIK
ICNkZWZpbmUgWEVOX1NZU0NUTF9wYWdlX29mZmxpbmVfb3AgICAgICAgICAgICAgICAxNAogI2Rl
ZmluZSBYRU5fU1lTQ1RMX2xvY2twcm9mX29wICAgICAgICAgICAgICAgICAgIDE1Ci0jZGVmaW5l
IFhFTl9TWVNDVExfdG9wb2xvZ3lpbmZvICAgICAgICAgICAgICAgICAgMTYgCisjZGVmaW5lIFhF
Tl9TWVNDVExfY3B1dG9wb2luZm8gICAgICAgICAgICAgICAgICAgMTYKICNkZWZpbmUgWEVOX1NZ
U0NUTF9udW1haW5mbyAgICAgICAgICAgICAgICAgICAgICAxNwogI2RlZmluZSBYRU5fU1lTQ1RM
X2NwdXBvb2xfb3AgICAgICAgICAgICAgICAgICAgIDE4CiAjZGVmaW5lIFhFTl9TWVNDVExfc2No
ZWR1bGVyX29wICAgICAgICAgICAgICAgICAgMTkKLSNkZWZpbmUgWEVOX1NZU0NUTF9jb3ZlcmFn
ZV9vcCAgICAgICAgICAgICAgICAgICAyMAorI2RlZmluZSBYRU5fU1lTQ1RMX2djb3Zfb3AgICAg
ICAgICAgICAgICAgICAgICAgIDIwCiAjZGVmaW5lIFhFTl9TWVNDVExfcHNyX2NtdF9vcCAgICAg
ICAgICAgICAgICAgICAgMjEKKyNkZWZpbmUgWEVOX1NZU0NUTF9wY2l0b3BvaW5mbyAgICAgICAg
ICAgICAgICAgICAyMgorI2RlZmluZSBYRU5fU1lTQ1RMX3Bzcl9jYXRfb3AgICAgICAgICAgICAg
ICAgICAgIDIzCisjZGVmaW5lIFhFTl9TWVNDVExfdG1lbV9vcCAgICAgICAgICAgICAgICAgICAg
ICAgMjQKKyNkZWZpbmUgWEVOX1NZU0NUTF9nZXRfY3B1X2xldmVsbGluZ19jYXBzICAgICAgICAy
NQorI2RlZmluZSBYRU5fU1lTQ1RMX2dldF9jcHVfZmVhdHVyZXNldCAgICAgICAgICAgIDI2Cisj
ZGVmaW5lIFhFTl9TWVNDVExfbGl2ZXBhdGNoX29wICAgICAgICAgICAgICAgICAgMjcKKyNkZWZp
bmUgWEVOX1NZU0NUTF9zZXRfcGFyYW1ldGVyICAgICAgICAgICAgICAgICAyOAogICAgIHVpbnQz
Ml90IGludGVyZmFjZV92ZXJzaW9uOyAvKiBYRU5fU1lTQ1RMX0lOVEVSRkFDRV9WRVJTSU9OICov
CiAgICAgdW5pb24gewogICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9yZWFkY29uc29sZSAgICAg
ICByZWFkY29uc29sZTsKICAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfdGJ1Zl9vcCAgICAgICAg
ICAgdGJ1Zl9vcDsKICAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfcGh5c2luZm8gICAgICAgICAg
cGh5c2luZm87Ci0gICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX3RvcG9sb2d5aW5mbyAgICAgIHRv
cG9sb2d5aW5mbzsKKyAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfY3B1dG9wb2luZm8gICAgICAg
Y3B1dG9wb2luZm87CisgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX3BjaXRvcG9pbmZvICAgICAg
IHBjaXRvcG9pbmZvOwogICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9udW1haW5mbyAgICAgICAg
ICBudW1haW5mbzsKICAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfc2NoZWRfaWQgICAgICAgICAg
c2NoZWRfaWQ7CiAgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX3BlcmZjX29wICAgICAgICAgIHBl
cmZjX29wOwpAQCAtNjk4LDggKzEwOTUsMTQgQEAgc3RydWN0IHhlbl9zeXNjdGwgewogICAgICAg
ICBzdHJ1Y3QgeGVuX3N5c2N0bF9sb2NrcHJvZl9vcCAgICAgICBsb2NrcHJvZl9vcDsKICAgICAg
ICAgc3RydWN0IHhlbl9zeXNjdGxfY3B1cG9vbF9vcCAgICAgICAgY3B1cG9vbF9vcDsKICAgICAg
ICAgc3RydWN0IHhlbl9zeXNjdGxfc2NoZWR1bGVyX29wICAgICAgc2NoZWR1bGVyX29wOwotICAg
ICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9jb3ZlcmFnZV9vcCAgICAgICBjb3ZlcmFnZV9vcDsKKyAg
ICAgICAgc3RydWN0IHhlbl9zeXNjdGxfZ2Nvdl9vcCAgICAgICAgICAgZ2Nvdl9vcDsKICAgICAg
ICAgc3RydWN0IHhlbl9zeXNjdGxfcHNyX2NtdF9vcCAgICAgICAgcHNyX2NtdF9vcDsKKyAgICAg
ICAgc3RydWN0IHhlbl9zeXNjdGxfcHNyX2NhdF9vcCAgICAgICAgcHNyX2NhdF9vcDsKKyAgICAg
ICAgc3RydWN0IHhlbl9zeXNjdGxfdG1lbV9vcCAgICAgICAgICAgdG1lbV9vcDsKKyAgICAgICAg
c3RydWN0IHhlbl9zeXNjdGxfY3B1X2xldmVsbGluZ19jYXBzIGNwdV9sZXZlbGxpbmdfY2FwczsK
KyAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfY3B1X2ZlYXR1cmVzZXQgICAgY3B1X2ZlYXR1cmVz
ZXQ7CisgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9vcCAgICAgIGxpdmVwYXRj
aDsKKyAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfc2V0X3BhcmFtZXRlciAgICAgc2V0X3BhcmFt
ZXRlcjsKICAgICAgICAgdWludDhfdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkWzEy
OF07CiAgICAgfSB1OwogfTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3RtZW0uaCBiL2luY2x1
ZGUveGVuL3RtZW0uaAppbmRleCA0ZmQyZmM2Li5hYTBhYWZhIDEwMDY0NAotLS0gYS9pbmNsdWRl
L3hlbi90bWVtLmgKKysrIGIvaW5jbHVkZS94ZW4vdG1lbS5oCkBAIC0zMyw3ICszMywxMSBAQAog
I2RlZmluZSBUTUVNX1NQRUNfVkVSU0lPTiAgICAgICAgICAxCiAKIC8qIENvbW1hbmRzIHRvIEhZ
UEVSVklTT1JfdG1lbV9vcCgpICovCi0jZGVmaW5lIFRNRU1fQ09OVFJPTCAgICAgICAgICAgICAg
IDAKKyNpZmRlZiBfX1hFTl9fCisjZGVmaW5lIFRNRU1fQ09OVFJPTCAgICAgICAgICAgICAgIDAg
LyogTm93IGNhbGxlZCBYRU5fU1lTQ1RMX3RtZW1fb3AgKi8KKyNlbHNlCisjdW5kZWYgVE1FTV9D
T05UUk9MCisjZW5kaWYKICNkZWZpbmUgVE1FTV9ORVdfUE9PTCAgICAgICAgICAgICAgMQogI2Rl
ZmluZSBUTUVNX0RFU1RST1lfUE9PTCAgICAgICAgICAyCiAjZGVmaW5lIFRNRU1fUFVUX1BBR0Ug
ICAgICAgICAgICAgIDQKQEAgLTQ3LDM1ICs1MSw5IEBACiAjZGVmaW5lIFRNRU1fWENIRyAgICAg
ICAgICAgICAgICAgMTAKICNlbmRpZgogCi0vKiBQcml2aWxlZ2VkIGNvbW1hbmRzIHRvIEhZUEVS
VklTT1JfdG1lbV9vcCgpICovCi0jZGVmaW5lIFRNRU1fQVVUSCAgICAgICAgICAgICAgICAgMTAx
IAotI2RlZmluZSBUTUVNX1JFU1RPUkVfTkVXICAgICAgICAgIDEwMgotCi0vKiBTdWJvcHMgZm9y
IEhZUEVSVklTT1JfdG1lbV9vcChUTUVNX0NPTlRST0wpICovCi0jZGVmaW5lIFRNRU1DX1RIQVcg
ICAgICAgICAgICAgICAgICAgMAotI2RlZmluZSBUTUVNQ19GUkVFWkUgICAgICAgICAgICAgICAg
IDEKLSNkZWZpbmUgVE1FTUNfRkxVU0ggICAgICAgICAgICAgICAgICAyCi0jZGVmaW5lIFRNRU1D
X0RFU1RST1kgICAgICAgICAgICAgICAgMwotI2RlZmluZSBUTUVNQ19MSVNUICAgICAgICAgICAg
ICAgICAgIDQKLSNkZWZpbmUgVE1FTUNfU0VUX1dFSUdIVCAgICAgICAgICAgICA1Ci0jZGVmaW5l
IFRNRU1DX1NFVF9DQVAgICAgICAgICAgICAgICAgNgotI2RlZmluZSBUTUVNQ19TRVRfQ09NUFJF
U1MgICAgICAgICAgIDcKLSNkZWZpbmUgVE1FTUNfUVVFUllfRlJFRUFCTEVfTUIgICAgICA4Ci0j
ZGVmaW5lIFRNRU1DX1NBVkVfQkVHSU4gICAgICAgICAgICAgMTAKLSNkZWZpbmUgVE1FTUNfU0FW
RV9HRVRfVkVSU0lPTiAgICAgICAxMQotI2RlZmluZSBUTUVNQ19TQVZFX0dFVF9NQVhQT09MUyAg
ICAgIDEyCi0jZGVmaW5lIFRNRU1DX1NBVkVfR0VUX0NMSUVOVF9XRUlHSFQgMTMKLSNkZWZpbmUg
VE1FTUNfU0FWRV9HRVRfQ0xJRU5UX0NBUCAgICAxNAotI2RlZmluZSBUTUVNQ19TQVZFX0dFVF9D
TElFTlRfRkxBR1MgIDE1Ci0jZGVmaW5lIFRNRU1DX1NBVkVfR0VUX1BPT0xfRkxBR1MgICAgMTYK
LSNkZWZpbmUgVE1FTUNfU0FWRV9HRVRfUE9PTF9OUEFHRVMgICAxNwotI2RlZmluZSBUTUVNQ19T
QVZFX0dFVF9QT09MX1VVSUQgICAgIDE4Ci0jZGVmaW5lIFRNRU1DX1NBVkVfR0VUX05FWFRfUEFH
RSAgICAgMTkKLSNkZWZpbmUgVE1FTUNfU0FWRV9HRVRfTkVYVF9JTlYgICAgICAyMAotI2RlZmlu
ZSBUTUVNQ19TQVZFX0VORCAgICAgICAgICAgICAgIDIxCi0jZGVmaW5lIFRNRU1DX1JFU1RPUkVf
QkVHSU4gICAgICAgICAgMzAKLSNkZWZpbmUgVE1FTUNfUkVTVE9SRV9QVVRfUEFHRSAgICAgICAz
MgotI2RlZmluZSBUTUVNQ19SRVNUT1JFX0ZMVVNIX1BBR0UgICAgIDMzCisvKiBQcml2aWxlZ2Vk
IGNvbW1hbmRzIG5vdyBjYWxsZWQgdmlhIFhFTl9TWVNDVExfdG1lbV9vcC4gKi8KKyNkZWZpbmUg
VE1FTV9BVVRIICAgICAgICAgICAgICAgICAxMDEgLyogYXMgWEVOX1NZU0NUTF9UTUVNX09QX1NF
VF9BVVRILiAqLworI2RlZmluZSBUTUVNX1JFU1RPUkVfTkVXICAgICAgICAgIDEwMiAvKiBhcyBY
RU5fU1lTQ1RMX1RNRU1fT1BfU0VUX1BPT0wuICovCiAKIC8qIEJpdHMgZm9yIEhZUEVSVklTT1Jf
dG1lbV9vcChUTUVNX05FV19QT09MKSAqLwogI2RlZmluZSBUTUVNX1BPT0xfUEVSU0lTVCAgICAg
ICAgICAxCkBAIC05NSw2ICs3MywxMSBAQAogI2RlZmluZSBFRlJPWkVOICAgICAgICAgICAgICAg
ICAxMDAwCiAjZGVmaW5lIEVFTVBUWSAgICAgICAgICAgICAgICAgIDEwMDEKIAorc3RydWN0IHhl
bl90bWVtX29pZCB7CisgICAgdWludDY0X3Qgb2lkWzNdOworfTsKK3R5cGVkZWYgc3RydWN0IHhl
bl90bWVtX29pZCB4ZW5fdG1lbV9vaWRfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl90
bWVtX29pZF90KTsKIAogI2lmbmRlZiBfX0FTU0VNQkxZX18KICNpZiBfX1hFTl9JTlRFUkZBQ0Vf
VkVSU0lPTl9fIDwgMHgwMDA0MDQwMApAQCAtMTA5LDE4ICs5MiwxMyBAQCBzdHJ1Y3QgdG1lbV9v
cCB7CiAgICAgICAgICAgICB1aW50NjRfdCB1dWlkWzJdOwogICAgICAgICAgICAgdWludDMyX3Qg
ZmxhZ3M7CiAgICAgICAgICAgICB1aW50MzJfdCBhcmcxOwotICAgICAgICB9IGNyZWF0OyAvKiBm
b3IgY21kID09IFRNRU1fTkVXX1BPT0wsIFRNRU1fQVVUSCwgVE1FTV9SRVNUT1JFX05FVyAqLwot
ICAgICAgICBzdHJ1Y3QgeyAKLSAgICAgICAgICAgIHVpbnQzMl90IHN1Ym9wOwotICAgICAgICAg
ICAgdWludDMyX3QgY2xpX2lkOwotICAgICAgICAgICAgdWludDMyX3QgYXJnMTsKLSAgICAgICAg
ICAgIHVpbnQzMl90IGFyZzI7Ci0gICAgICAgICAgICB1aW50NjRfdCBvaWRbM107Ci0gICAgICAg
ICAgICB0bWVtX2NsaV92YV90IGJ1ZjsKLSAgICAgICAgfSBjdHJsOyAvKiBmb3IgY21kID09IFRN
RU1fQ09OVFJPTCAqLworICAgICAgICB9IGNyZWF0OyAvKiBmb3IgY21kID09IFRNRU1fTkVXX1BP
T0wuICovCiAgICAgICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICAKKyNpZiBfX1hFTl9JTlRFUkZB
Q0VfVkVSU0lPTl9fIDwgMHgwMDA0MDYwMAogICAgICAgICAgICAgdWludDY0X3Qgb2lkWzNdOwor
I2Vsc2UKKyAgICAgICAgICAgIHhlbl90bWVtX29pZF90IG9pZDsKKyNlbmRpZgogICAgICAgICAg
ICAgdWludDMyX3QgaW5kZXg7CiAgICAgICAgICAgICB1aW50MzJfdCB0bWVtX29mZnNldDsKICAg
ICAgICAgICAgIHVpbnQzMl90IHBmbl9vZmZzZXQ7CkBAIC0xMzEsMTIgKzEwOSw2IEBAIHN0cnVj
dCB0bWVtX29wIHsKIH07CiB0eXBlZGVmIHN0cnVjdCB0bWVtX29wIHRtZW1fb3BfdDsKIERFRklO
RV9YRU5fR1VFU1RfSEFORExFKHRtZW1fb3BfdCk7Ci0KLXN0cnVjdCB0bWVtX2hhbmRsZSB7Ci0g
ICAgdWludDMyX3QgcG9vbF9pZDsKLSAgICB1aW50MzJfdCBpbmRleDsKLSAgICB1aW50NjRfdCBv
aWRbM107Ci19OwogI2VuZGlmCiAKICNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfVE1FTV9IX18gKi8K
ZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3RyYWNlLmggYi9pbmNsdWRlL3hlbi90cmFjZS5oCmlu
ZGV4IDUyMTFhZTcuLjM3NDZiZmYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL3RyYWNlLmgKKysr
IGIvaW5jbHVkZS94ZW4vdHJhY2UuaApAQCAtNzUsOSArNzUsMTAgQEAKIC8qIFBlci1zY2hlZHVs
ZXIgSURzLCB0byBpZGVudGlmeSBzY2hlZHVsZXIgc3BlY2lmaWMgZXZlbnRzICovCiAjZGVmaW5l
IFRSQ19TQ0hFRF9DU0NIRUQgICAwCiAjZGVmaW5lIFRSQ19TQ0hFRF9DU0NIRUQyICAxCi0jZGVm
aW5lIFRSQ19TQ0hFRF9TRURGICAgICAyCisvKiAjZGVmaW5lIFhFTl9TQ0hFRFVMRVJfU0VERiAy
IChSZW1vdmVkKSAqLwogI2RlZmluZSBUUkNfU0NIRURfQVJJTkM2NTMgMwogI2RlZmluZSBUUkNf
U0NIRURfUlREUyAgICAgNAorI2RlZmluZSBUUkNfU0NIRURfU05VTEwgICAgNQogCiAvKiBQZXIt
c2NoZWR1bGVyIHRyYWNpbmcgKi8KICNkZWZpbmUgVFJDX1NDSEVEX0NMQVNTX0VWVChfYywgX2Up
IFwKQEAgLTg1LDYgKzg2LDkgQEAKICAgICAgICgoVFJDX1NDSEVEXyMjX2MgPDwgVFJDX1NDSEVE
X0lEX1NISUZUKSAmIFRSQ19TQ0hFRF9JRF9NQVNLKSApICsgXAogICAgIChfZSAmIFRSQ19TQ0hF
RF9FVlRfTUFTSykgKQogCisvKiBUcmFjZSBjbGFzc2VzIGZvciBET00wIG9wZXJhdGlvbnMgKi8K
KyNkZWZpbmUgVFJDX0RPTTBfRE9NT1BTICAgICAweDAwMDQxMDAwICAgLyogRG9tYWlucyBtYW5p
cHVsYXRpb25zICovCisKIC8qIFRyYWNlIGNsYXNzZXMgZm9yIEhhcmR3YXJlICovCiAjZGVmaW5l
IFRSQ19IV19QTSAgICAgICAgICAgMHgwMDgwMTAwMCAgIC8qIFBvd2VyIG1hbmFnZW1lbnQgdHJh
Y2VzICovCiAjZGVmaW5lIFRSQ19IV19JUlEgICAgICAgICAgMHgwMDgwMjAwMCAgIC8qIFRyYWNl
cyByZWxhdGluZyB0byB0aGUgaGFuZGxpbmcgb2YgSVJRcyAqLwpAQCAtMTEyLDYgKzExNiwxMCBA
QAogI2RlZmluZSBUUkNfU0NIRURfU1dJVENIX0lORlBSRVYgKFRSQ19TQ0hFRF9WRVJCT1NFICsg
MTQpCiAjZGVmaW5lIFRSQ19TQ0hFRF9TV0lUQ0hfSU5GTkVYVCAoVFJDX1NDSEVEX1ZFUkJPU0Ug
KyAxNSkKICNkZWZpbmUgVFJDX1NDSEVEX1NIVVRET1dOX0NPREUgIChUUkNfU0NIRURfVkVSQk9T
RSArIDE2KQorI2RlZmluZSBUUkNfU0NIRURfU1dJVENIX0lORkNPTlQgKFRSQ19TQ0hFRF9WRVJC
T1NFICsgMTcpCisKKyNkZWZpbmUgVFJDX0RPTTBfRE9NX0FERCAgICAgICAgIChUUkNfRE9NMF9E
T01PUFMgKyAxKQorI2RlZmluZSBUUkNfRE9NMF9ET01fUkVNICAgICAgICAgKFRSQ19ET00wX0RP
TU9QUyArIDIpCiAKICNkZWZpbmUgVFJDX01FTV9QQUdFX0dSQU5UX01BUCAgICAgIChUUkNfTUVN
ICsgMSkKICNkZWZpbmUgVFJDX01FTV9QQUdFX0dSQU5UX1VOTUFQICAgIChUUkNfTUVNICsgMikK
ZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3ZjcHUuaCBiL2luY2x1ZGUveGVuL3ZjcHUuaAppbmRl
eCA4OThiODlmLi44YTllMzBkIDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi92Y3B1LmgKKysrIGIv
aW5jbHVkZS94ZW4vdmNwdS5oCkBAIC00MSw4ICs0MSwxMCBAQAogICogSW5pdGlhbGlzZSBhIFZD
UFUuIEVhY2ggVkNQVSBjYW4gYmUgaW5pdGlhbGlzZWQgb25seSBvbmNlLiBBIAogICogbmV3bHkt
aW5pdGlhbGlzZWQgVkNQVSB3aWxsIG5vdCBydW4gdW50aWwgaXQgaXMgYnJvdWdodCB1cCBieSBW
Q1BVT1BfdXAuCiAgKiAKLSAqIEBleHRyYV9hcmcgPT0gcG9pbnRlciB0byB2Y3B1X2d1ZXN0X2Nv
bnRleHQgc3RydWN0dXJlIGNvbnRhaW5pbmcgaW5pdGlhbAotICogICAgICAgICAgICAgICBzdGF0
ZSBmb3IgdGhlIFZDUFUuCisgKiBAZXh0cmFfYXJnID09IEZvciBQViBvciBBUk0gZ3Vlc3RzIHRo
aXMgaXMgYSBwb2ludGVyIHRvIGEgdmNwdV9ndWVzdF9jb250ZXh0CisgKiAgICAgICAgICAgICAg
IHN0cnVjdHVyZSBjb250YWluaW5nIHRoZSBpbml0aWFsIHN0YXRlIGZvciB0aGUgVkNQVS4gRm9y
IHg4NgorICogICAgICAgICAgICAgICBIVk0gYmFzZWQgZ3Vlc3RzIHRoaXMgaXMgYSBwb2ludGVy
IHRvIGEgdmNwdV9odm1fY29udGV4dAorICogICAgICAgICAgICAgICBzdHJ1Y3R1cmUuCiAgKi8K
ICNkZWZpbmUgVkNQVU9QX2luaXRpYWxpc2UgICAgICAgICAgICAwCiAKQEAgLTgyLDYgKzg0LDEy
IEBAIHN0cnVjdCB2Y3B1X3J1bnN0YXRlX2luZm8gewogICAgIC8qIFdoZW4gd2FzIGN1cnJlbnQg
c3RhdGUgZW50ZXJlZCAoc3lzdGVtIHRpbWUsIG5zKT8gKi8KICAgICB1aW50NjRfdCBzdGF0ZV9l
bnRyeV90aW1lOwogICAgIC8qCisgICAgICogVXBkYXRlIGluZGljYXRvciBzZXQgaW4gc3RhdGVf
ZW50cnlfdGltZToKKyAgICAgKiBXaGVuIGFjdGl2YXRlZCB2aWEgVk1BU1NUX1RZUEVfcnVuc3Rh
dGVfdXBkYXRlX2ZsYWcsIHNldCBkdXJpbmcKKyAgICAgKiB1cGRhdGVzIGluIGd1ZXN0IG1lbW9y
eSBtYXBwZWQgY29weSBvZiB2Y3B1X3J1bnN0YXRlX2luZm8uCisgICAgICovCisjZGVmaW5lIFhF
Tl9SVU5TVEFURV9VUERBVEUgICAgICAgICAgKHhlbl9ta191bGxvbmcoMSkgPDwgNjMpCisgICAg
LyoKICAgICAgKiBUaW1lIHNwZW50IGluIGVhY2ggUlVOU1RBVEVfKiAobnMpLiBUaGUgc3VtIG9m
IHRoZXNlIHRpbWVzIGlzCiAgICAgICogZ3VhcmFudGVlZCBub3QgdG8gZHJpZnQgZnJvbSBzeXN0
ZW0gdGltZS4KICAgICAgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3ZlcnNpb24uaCBiL2lu
Y2x1ZGUveGVuL3ZlcnNpb24uaAppbmRleCA0NGYyNmIwLi5jYjg0NTY1IDEwMDY0NAotLS0gYS9p
bmNsdWRlL3hlbi92ZXJzaW9uLmgKKysrIGIvaW5jbHVkZS94ZW4vdmVyc2lvbi5oCkBAIC0zMCw3
ICszMCw4IEBACiAKICNpbmNsdWRlICJ4ZW4uaCIKIAotLyogTkIuIEFsbCBvcHMgcmV0dXJuIHpl
cm8gb24gc3VjY2VzcywgZXhjZXB0IFhFTlZFUl97dmVyc2lvbixwYWdlc2l6ZX0gKi8KKy8qIE5C
LiBBbGwgb3BzIHJldHVybiB6ZXJvIG9uIHN1Y2Nlc3MsIGV4Y2VwdCBYRU5WRVJfe3ZlcnNpb24s
cGFnZXNpemV9CisgKiBYRU5WRVJfe3ZlcnNpb24scGFnZXNpemUsYnVpbGRfaWR9ICovCiAKIC8q
IGFyZyA9PSBOVUxMOyByZXR1cm5zIG1ham9yOm1pbm9yICgxNjoxNikuICovCiAjZGVmaW5lIFhF
TlZFUl92ZXJzaW9uICAgICAgMApAQCAtNzcsMTIgKzc4LDMxIEBAIHR5cGVkZWYgc3RydWN0IHhl
bl9mZWF0dXJlX2luZm8geGVuX2ZlYXR1cmVfaW5mb190OwogLyogYXJnID09IE5VTEw7IHJldHVy
bnMgaG9zdCBtZW1vcnkgcGFnZSBzaXplLiAqLwogI2RlZmluZSBYRU5WRVJfcGFnZXNpemUgNwog
Ci0vKiBhcmcgPT0geGVuX2RvbWFpbl9oYW5kbGVfdC4gKi8KKy8qIGFyZyA9PSB4ZW5fZG9tYWlu
X2hhbmRsZV90LgorICoKKyAqIFRoZSB0b29sc3RhY2sgZmlsbHMgaXQgb3V0IGZvciBndWVzdCBj
b25zdW1wdGlvbi4gSXQgaXMgaW50ZW5kZWQgdG8gaG9sZAorICogdGhlIFVVSUQgb2YgdGhlIGd1
ZXN0LgorICovCiAjZGVmaW5lIFhFTlZFUl9ndWVzdF9oYW5kbGUgOAogCiAjZGVmaW5lIFhFTlZF
Ul9jb21tYW5kbGluZSA5CiB0eXBlZGVmIGNoYXIgeGVuX2NvbW1hbmRsaW5lX3RbMTAyNF07CiAK
Ky8qCisgKiBSZXR1cm4gdmFsdWUgaXMgdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuLCBvciBY
RU5fRXh4IG9uIGVycm9yLgorICogQ2FsbGluZyB3aXRoIGVtcHR5IHBhcmFtZXRlciByZXR1cm5z
IHRoZSBzaXplIG9mIGJ1aWxkX2lkLgorICovCisjZGVmaW5lIFhFTlZFUl9idWlsZF9pZCAxMAor
c3RydWN0IHhlbl9idWlsZF9pZCB7CisgICAgICAgIHVpbnQzMl90ICAgICAgICBsZW47IC8qIElO
OiBzaXplIG9mIGJ1ZltdLiAqLworI2lmIGRlZmluZWQoX19TVERDX1ZFUlNJT05fXykgJiYgX19T
VERDX1ZFUlNJT05fXyA+PSAxOTk5MDFMCisgICAgICAgIHVuc2lnbmVkIGNoYXIgICBidWZbXTsK
KyNlbGlmIGRlZmluZWQoX19HTlVDX18pCisgICAgICAgIHVuc2lnbmVkIGNoYXIgICBidWZbMV07
IC8qIE9VVDogVmFyaWFibGUgbGVuZ3RoIGJ1ZmZlciB3aXRoIGJ1aWxkX2lkLiAqLworI2VuZGlm
Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2J1aWxkX2lkIHhlbl9idWlsZF9pZF90OworCiAjZW5k
aWYgLyogX19YRU5fUFVCTElDX1ZFUlNJT05fSF9fICovCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNs
dWRlL3hlbi92bV9ldmVudC5oIGIvaW5jbHVkZS94ZW4vdm1fZXZlbnQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTMxZjcxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVk
ZS94ZW4vdm1fZXZlbnQuaApAQCAtMCwwICsxLDM3OCBAQAorLyoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgorICogdm1fZXZlbnQuaAorICoKKyAqIE1lbW9yeSBldmVudCBjb21tb24gc3RydWN0dXJlcy4K
KyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDkgYnkgQ2l0cml4IFN5c3RlbXMsIEluYy4gKFBhdHJp
Y2sgQ29scCkKKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNo
YXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJl
IGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8K
KyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3
aXRob3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1l
cmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29w
aWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNv
ZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz
IHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9y
IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdB
UkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQ
UkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFV
VEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFH
RVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJB
Q1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09O
TkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5H
UyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2lmbmRlZiBfWEVOX1BVQkxJQ19WTV9FVkVOVF9I
CisjZGVmaW5lIF9YRU5fUFVCTElDX1ZNX0VWRU5UX0gKKworI2luY2x1ZGUgInhlbi5oIgorCisj
ZGVmaW5lIFZNX0VWRU5UX0lOVEVSRkFDRV9WRVJTSU9OIDB4MDAwMDAwMDIKKworI2lmIGRlZmlu
ZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKQorCisjaW5jbHVkZSAiaW8vcmlu
Zy5oIgorCisvKgorICogTWVtb3J5IGV2ZW50IGZsYWdzCisgKi8KKworLyoKKyAqIFZDUFVfUEFV
U0VEIGluIGEgcmVxdWVzdCBzaWduYWxzIHRoYXQgdGhlIHZDUFUgdHJpZ2dlcmluZyB0aGUgZXZl
bnQgaGFzIGJlZW4KKyAqICBwYXVzZWQKKyAqIFZDUFVfUEFVU0VEIGluIGEgcmVzcG9uc2Ugc2ln
bmFscyB0byB1bnBhdXNlIHRoZSB2Q1BVCisgKi8KKyNkZWZpbmUgVk1fRVZFTlRfRkxBR19WQ1BV
X1BBVVNFRCAgICAgICAgKDEgPDwgMCkKKy8qIEZsYWdzIHRvIGFpZCBkZWJ1Z2dpbmcgdm1fZXZl
bnQgKi8KKyNkZWZpbmUgVk1fRVZFTlRfRkxBR19GT1JFSUdOICAgICAgICAgICAgKDEgPDwgMSkK
Ky8qCisgKiBUaGUgZm9sbG93aW5nIGZsYWdzIGNhbiBiZSBzZXQgaW4gcmVzcG9uc2UgdG8gYSBt
ZW1fYWNjZXNzIGV2ZW50LgorICoKKyAqIEVtdWxhdGUgdGhlIGZhdWx0LWNhdXNpbmcgaW5zdHJ1
Y3Rpb24gKGlmIHNldCBpbiB0aGUgZXZlbnQgcmVzcG9uc2UgZmxhZ3MpLgorICogVGhpcyB3aWxs
IGFsbG93IHRoZSBndWVzdCB0byBjb250aW51ZSBleGVjdXRpb24gd2l0aG91dCBsaWZ0aW5nIHRo
ZSBwYWdlCisgKiBhY2Nlc3MgcmVzdHJpY3Rpb25zLgorICovCisjZGVmaW5lIFZNX0VWRU5UX0ZM
QUdfRU1VTEFURSAgICAgICAgICAgICgxIDw8IDIpCisvKgorICogU2FtZSBhcyBWTV9FVkVOVF9G
TEFHX0VNVUxBVEUsIGJ1dCB3aXRoIHdyaXRlIG9wZXJhdGlvbnMgb3Igb3BlcmF0aW9ucworICog
cG90ZW50aWFsbHkgaGF2aW5nIHNpZGUgZWZmZWN0cyAobGlrZSBtZW1vcnkgbWFwcGVkIG9yIHBv
cnQgSS9PKSBkaXNhYmxlZC4KKyAqLworI2RlZmluZSBWTV9FVkVOVF9GTEFHX0VNVUxBVEVfTk9X
UklURSAgICAoMSA8PCAzKQorLyoKKyAqIFRvZ2dsZSBzaW5nbGVzdGVwcGluZyBvbiB2bV9ldmVu
dCByZXNwb25zZS4KKyAqIFJlcXVpcmVzIHRoZSB2Q1BVIHRvIGJlIHBhdXNlZCBhbHJlYWR5IChz
eW5jaHJvbm91cyBldmVudHMgb25seSkuCisgKi8KKyNkZWZpbmUgVk1fRVZFTlRfRkxBR19UT0dH
TEVfU0lOR0xFU1RFUCAgKDEgPDwgNCkKKy8qCisgKiBEYXRhIGlzIGJlaW5nIHNlbnQgYmFjayB0
byB0aGUgaHlwZXJ2aXNvciBpbiB0aGUgZXZlbnQgcmVzcG9uc2UsIHRvIGJlCisgKiByZXR1cm5l
ZCBieSB0aGUgcmVhZCBmdW5jdGlvbiB3aGVuIGVtdWxhdGluZyBhbiBpbnN0cnVjdGlvbi4KKyAq
IFRoaXMgZmxhZyBpcyBvbmx5IHVzZWZ1bCB3aGVuIGNvbWJpbmVkIHdpdGggVk1fRVZFTlRfRkxB
R19FTVVMQVRFCisgKiBhbmQgdGFrZXMgcHJlY2VkZW5jZSBpZiBjb21iaW5lZCB3aXRoIFZNX0VW
RU5UX0ZMQUdfRU1VTEFURV9OT1dSSVRFCisgKiAoaS5lLiBpZiBib3RoIFZNX0VWRU5UX0ZMQUdf
RU1VTEFURV9OT1dSSVRFIGFuZAorICogVk1fRVZFTlRfRkxBR19TRVRfRU1VTF9SRUFEX0RBVEEg
YXJlIHNldCwgb25seSB0aGUgbGF0dGVyIHdpbGwgYmUgaG9ub3JlZCkuCisgKi8KKyNkZWZpbmUg
Vk1fRVZFTlRfRkxBR19TRVRfRU1VTF9SRUFEX0RBVEEgKDEgPDwgNSkKKy8qCisgKiBEZW55IGNv
bXBsZXRpb24gb2YgdGhlIG9wZXJhdGlvbiB0aGF0IHRyaWdnZXJlZCB0aGUgZXZlbnQuCisgKiBD
dXJyZW50bHkgb25seSB1c2VmdWwgZm9yIE1TUiBhbmQgY29udHJvbC1yZWdpc3RlciB3cml0ZSBl
dmVudHMuCisgKiBSZXF1aXJlcyB0aGUgdkNQVSB0byBiZSBwYXVzZWQgYWxyZWFkeSAoc3luY2hy
b25vdXMgZXZlbnRzIG9ubHkpLgorICovCisjZGVmaW5lIFZNX0VWRU5UX0ZMQUdfREVOWSAgICAg
ICAgICAgICAgICgxIDw8IDYpCisvKgorICogVGhpcyBmbGFnIGNhbiBiZSBzZXQgaW4gYSByZXF1
ZXN0IG9yIGEgcmVzcG9uc2UKKyAqCisgKiBPbiBhIHJlcXVlc3QsIGluZGljYXRlcyB0aGF0IHRo
ZSBldmVudCBvY2N1cnJlZCBpbiB0aGUgYWx0ZXJuYXRlIHAybQorICogc3BlY2lmaWVkIGJ5IHRo
ZSBhbHRwMm1faWR4IHJlcXVlc3QgZmllbGQuCisgKgorICogT24gYSByZXNwb25zZSwgaW5kaWNh
dGVzIHRoYXQgdGhlIFZDUFUgc2hvdWxkIHJlc3VtZSBpbiB0aGUgYWx0ZXJuYXRlIHAybQorICog
c3BlY2lmaWVkIGJ5IHRoZSBhbHRwMm1faWR4IHJlc3BvbnNlIGZpZWxkIGlmIHBvc3NpYmxlLgor
ICovCisjZGVmaW5lIFZNX0VWRU5UX0ZMQUdfQUxURVJOQVRFX1AyTSAgICAgICgxIDw8IDcpCisv
KgorICogU2V0IHRoZSB2Q1BVIHJlZ2lzdGVycyB0byB0aGUgdmFsdWVzIGluIHRoZSAgdm1fZXZl
bnQgcmVzcG9uc2UuCisgKiBBdCB0aGUgbW9tZW50IHg4Ni1vbmx5LCBhcHBsaWVzIHRvIEVBWC1F
RFgsIEVTUCwgRUJQLCBFU0ksIEVESSwgUjgtUjE1LAorICogRUZMQUdTLCBhbmQgRUlQLgorICog
UmVxdWlyZXMgdGhlIHZDUFUgdG8gYmUgcGF1c2VkIGFscmVhZHkgKHN5bmNocm9ub3VzIGV2ZW50
cyBvbmx5KS4KKyAqLworI2RlZmluZSBWTV9FVkVOVF9GTEFHX1NFVF9SRUdJU1RFUlMgICAgICAo
MSA8PCA4KQorLyoKKyAqIEluc3RydWN0aW9uIGNhY2hlIGlzIGJlaW5nIHNlbnQgYmFjayB0byB0
aGUgaHlwZXJ2aXNvciBpbiB0aGUgZXZlbnQgcmVzcG9uc2UKKyAqIHRvIGJlIHVzZWQgYnkgdGhl
IGVtdWxhdG9yLiBUaGlzIGZsYWcgaXMgb25seSB1c2VmdWwgd2hlbiBjb21iaW5lZCB3aXRoCisg
KiBWTV9FVkVOVF9GTEFHX0VNVUxBVEUgYW5kIGRvZXMgbm90IHRha2UgcHJlc2VkZW5jZSBpZiBj
b21iaW5lZCB3aXRoCisgKiBWTV9FVkVOVF9GTEFHX0VNVUxBVEVfTk9XUklURSBvciBWTV9FVkVO
VF9GTEFHX1NFVF9FTVVMX1JFQURfREFUQSwgKGkuZS4KKyAqIGlmIGFueSBvZiB0aG9zZSBmbGFn
cyBhcmUgc2V0LCBvbmx5IHRob3NlIHdpbGwgYmUgaG9ub3JlZCkuCisgKi8KKyNkZWZpbmUgVk1f
RVZFTlRfRkxBR19TRVRfRU1VTF9JTlNOX0RBVEEgKDEgPDwgOSkKKy8qCisgKiBIYXZlIGEgb25l
LXNob3QgVk1fRVZFTlRfUkVBU09OX0lOVEVSUlVQVCBldmVudCBzZW50IGZvciB0aGUgZmlyc3QK
KyAqIGludGVycnVwdCBwZW5kaW5nIGFmdGVyIHJlc3VtaW5nIHRoZSBWQ1BVLgorICovCisjZGVm
aW5lIFZNX0VWRU5UX0ZMQUdfR0VUX05FWFRfSU5URVJSVVBUICgxIDw8IDEwKQorCisvKgorICog
UmVhc29ucyBmb3IgdGhlIHZtIGV2ZW50IHJlcXVlc3QKKyAqLworCisvKiBEZWZhdWx0IGNhc2Ug
Ki8KKyNkZWZpbmUgVk1fRVZFTlRfUkVBU09OX1VOS05PV04gICAgICAgICAgICAgICAgIDAKKy8q
IE1lbW9yeSBhY2Nlc3MgdmlvbGF0aW9uICovCisjZGVmaW5lIFZNX0VWRU5UX1JFQVNPTl9NRU1f
QUNDRVNTICAgICAgICAgICAgICAxCisvKiBNZW1vcnkgc2hhcmluZyBldmVudCAqLworI2RlZmlu
ZSBWTV9FVkVOVF9SRUFTT05fTUVNX1NIQVJJTkcgICAgICAgICAgICAgMgorLyogTWVtb3J5IHBh
Z2luZyBldmVudCAqLworI2RlZmluZSBWTV9FVkVOVF9SRUFTT05fTUVNX1BBR0lORyAgICAgICAg
ICAgICAgMworLyogQSBjb250cm9sIHJlZ2lzdGVyIHdhcyB1cGRhdGVkICovCisjZGVmaW5lIFZN
X0VWRU5UX1JFQVNPTl9XUklURV9DVFJMUkVHICAgICAgICAgICA0CisvKiBBbiBNU1Igd2FzIHVw
ZGF0ZWQuICovCisjZGVmaW5lIFZNX0VWRU5UX1JFQVNPTl9NT1ZfVE9fTVNSICAgICAgICAgICAg
ICA1CisvKiBEZWJ1ZyBvcGVyYXRpb24gZXhlY3V0ZWQgKGUuZy4gaW50MykgKi8KKyNkZWZpbmUg
Vk1fRVZFTlRfUkVBU09OX1NPRlRXQVJFX0JSRUFLUE9JTlQgICAgIDYKKy8qIFNpbmdsZS1zdGVw
IChlLmcuIE1URikgKi8KKyNkZWZpbmUgVk1fRVZFTlRfUkVBU09OX1NJTkdMRVNURVAgICAgICAg
ICAgICAgIDcKKy8qIEFuIGV2ZW50IGhhcyBiZWVuIHJlcXVlc3RlZCB2aWEgSFZNT1BfZ3Vlc3Rf
cmVxdWVzdF92bV9ldmVudC4gKi8KKyNkZWZpbmUgVk1fRVZFTlRfUkVBU09OX0dVRVNUX1JFUVVF
U1QgICAgICAgICAgIDgKKy8qIEEgZGVidWcgZXhjZXB0aW9uIHdhcyBjYXVnaHQgKi8KKyNkZWZp
bmUgVk1fRVZFTlRfUkVBU09OX0RFQlVHX0VYQ0VQVElPTiAgICAgICAgIDkKKy8qIENQVUlEIGV4
ZWN1dGVkICovCisjZGVmaW5lIFZNX0VWRU5UX1JFQVNPTl9DUFVJRCAgICAgICAgICAgICAgICAg
ICAxMAorLyoKKyAqIFByaXZpbGVnZWQgY2FsbCBleGVjdXRlZCAoZS5nLiBTTUMpLgorICogTm90
ZTogZXZlbnQgbWF5IGJlIGdlbmVyYXRlZCBldmVuIGlmIFNNQyBjb25kaXRpb24gY2hlY2sgZmFp
bHMgb24gc29tZSBDUFVzLgorICogICAgICAgQXMgdGhpcyBiZWhhdmlvciBpcyBDUFUtc3BlY2lm
aWMsIHVzZXJzIGFyZSBhZHZpc2VkIHRvIG5vdCByZWx5IG9uIGl0LgorICogICAgICAgVGhlc2Ug
a2luZHMgb2YgZXZlbnRzIHdpbGwgYmUgZmlsdGVyZWQgb3V0IGluIGZ1dHVyZSB2ZXJzaW9ucy4K
KyAqLworI2RlZmluZSBWTV9FVkVOVF9SRUFTT05fUFJJVklMRUdFRF9DQUxMICAgICAgICAgMTEK
Ky8qIEFuIGludGVycnVwdCBoYXMgYmVlbiBkZWxpdmVyZWQuICovCisjZGVmaW5lIFZNX0VWRU5U
X1JFQVNPTl9JTlRFUlJVUFQgICAgICAgICAgICAgICAxMgorLyogQSBkZXNjcmlwdG9yIHRhYmxl
IHJlZ2lzdGVyIHdhcyBhY2Nlc3NlZC4gKi8KKyNkZWZpbmUgVk1fRVZFTlRfUkVBU09OX0RFU0NS
SVBUT1JfQUNDRVNTICAgICAgIDEzCisvKiBDdXJyZW50IGluc3RydWN0aW9uIGlzIG5vdCBpbXBs
ZW1lbnRlZCBieSB0aGUgZW11bGF0b3IgKi8KKyNkZWZpbmUgVk1fRVZFTlRfUkVBU09OX0VNVUxf
VU5JTVBMRU1FTlRFRCAgICAgIDE0CisKKy8qIFN1cHBvcnRlZCB2YWx1ZXMgZm9yIHRoZSB2bV9l
dmVudF93cml0ZV9jdHJscmVnIGluZGV4LiAqLworI2RlZmluZSBWTV9FVkVOVF9YODZfQ1IwICAg
IDAKKyNkZWZpbmUgVk1fRVZFTlRfWDg2X0NSMyAgICAxCisjZGVmaW5lIFZNX0VWRU5UX1g4Nl9D
UjQgICAgMgorI2RlZmluZSBWTV9FVkVOVF9YODZfWENSMCAgIDMKKworLyoKKyAqIFVzaW5nIGN1
c3RvbSB2Q1BVIHN0cnVjdHMgKGkuZS4gbm90IGh2bV9od19jcHUpIGZvciBib3RoIHg4NiBhbmQg
QVJNCisgKiBzbyBhcyB0byBub3QgZmlsbCB0aGUgdm1fZXZlbnQgcmluZyBidWZmZXIgdG9vIHF1
aWNrbHkuCisgKi8KK3N0cnVjdCB2bV9ldmVudF9yZWdzX3g4NiB7CisgICAgdWludDY0X3QgcmF4
OworICAgIHVpbnQ2NF90IHJjeDsKKyAgICB1aW50NjRfdCByZHg7CisgICAgdWludDY0X3QgcmJ4
OworICAgIHVpbnQ2NF90IHJzcDsKKyAgICB1aW50NjRfdCByYnA7CisgICAgdWludDY0X3QgcnNp
OworICAgIHVpbnQ2NF90IHJkaTsKKyAgICB1aW50NjRfdCByODsKKyAgICB1aW50NjRfdCByOTsK
KyAgICB1aW50NjRfdCByMTA7CisgICAgdWludDY0X3QgcjExOworICAgIHVpbnQ2NF90IHIxMjsK
KyAgICB1aW50NjRfdCByMTM7CisgICAgdWludDY0X3QgcjE0OworICAgIHVpbnQ2NF90IHIxNTsK
KyAgICB1aW50NjRfdCByZmxhZ3M7CisgICAgdWludDY0X3QgZHI3OworICAgIHVpbnQ2NF90IHJp
cDsKKyAgICB1aW50NjRfdCBjcjA7CisgICAgdWludDY0X3QgY3IyOworICAgIHVpbnQ2NF90IGNy
MzsKKyAgICB1aW50NjRfdCBjcjQ7CisgICAgdWludDY0X3Qgc3lzZW50ZXJfY3M7CisgICAgdWlu
dDY0X3Qgc3lzZW50ZXJfZXNwOworICAgIHVpbnQ2NF90IHN5c2VudGVyX2VpcDsKKyAgICB1aW50
NjRfdCBtc3JfZWZlcjsKKyAgICB1aW50NjRfdCBtc3Jfc3RhcjsKKyAgICB1aW50NjRfdCBtc3Jf
bHN0YXI7CisgICAgdWludDY0X3QgZnNfYmFzZTsKKyAgICB1aW50NjRfdCBnc19iYXNlOworICAg
IHVpbnQzMl90IGNzX2FyYnl0ZXM7CisgICAgdWludDMyX3QgX3BhZDsKK307CisKKy8qCisgKiBP
bmx5IHRoZSByZWdpc3RlciAncGMnIGNhbiBiZSBzZXQgb24gYSB2bV9ldmVudCByZXNwb25zZSB1
c2luZyB0aGUKKyAqIFZNX0VWRU5UX0ZMQUdfU0VUX1JFR0lTVEVSUyBmbGFnLgorICovCitzdHJ1
Y3Qgdm1fZXZlbnRfcmVnc19hcm0geworICAgIHVpbnQ2NF90IHR0YnIwOworICAgIHVpbnQ2NF90
IHR0YnIxOworICAgIHVpbnQ2NF90IHR0YmNyOworICAgIHVpbnQ2NF90IHBjOworICAgIHVpbnQz
Ml90IGNwc3I7CisgICAgdWludDMyX3QgX3BhZDsKK307CisKKy8qCisgKiBtZW1fYWNjZXNzIGZs
YWcgZGVmaW5pdGlvbnMKKyAqCisgKiBUaGVzZSBmbGFncyBhcmUgc2V0IG9ubHkgYXMgcGFydCBv
ZiBhIG1lbV9ldmVudCByZXF1ZXN0LgorICoKKyAqIFIvVy9YOiBEZWZpbmVzIHRoZSB0eXBlIG9m
IHZpb2xhdGlvbiB0aGF0IGhhcyB0cmlnZ2VyZWQgdGhlIGV2ZW50CisgKiAgICAgICAgTXVsdGlw
bGUgdHlwZXMgY2FuIGJlIHNldCBpbiBhIHNpbmdsZSB2aW9sYXRpb24hCisgKiBHTEFfVkFMSUQ6
IElmIHRoZSBnbGEgZmllbGQgaG9sZHMgYSBndWVzdCBWQSBhc3NvY2lhdGVkIHdpdGggdGhlIGV2
ZW50CisgKiBGQVVMVF9XSVRIX0dMQTogSWYgdGhlIHZpb2xhdGlvbiB3YXMgdHJpZ2dlcmVkIGJ5
IGFjY2Vzc2luZyBnbGEKKyAqIEZBVUxUX0lOX0dQVDogSWYgdGhlIHZpb2xhdGlvbiB3YXMgdHJp
Z2dlcmVkIGR1cmluZyB0cmFuc2xhdGluZyBnbGEKKyAqLworI2RlZmluZSBNRU1fQUNDRVNTX1Ig
ICAgICAgICAgICAgICAgKDEgPDwgMCkKKyNkZWZpbmUgTUVNX0FDQ0VTU19XICAgICAgICAgICAg
ICAgICgxIDw8IDEpCisjZGVmaW5lIE1FTV9BQ0NFU1NfWCAgICAgICAgICAgICAgICAoMSA8PCAy
KQorI2RlZmluZSBNRU1fQUNDRVNTX1JXWCAgICAgICAgICAgICAgKE1FTV9BQ0NFU1NfUiB8IE1F
TV9BQ0NFU1NfVyB8IE1FTV9BQ0NFU1NfWCkKKyNkZWZpbmUgTUVNX0FDQ0VTU19SVyAgICAgICAg
ICAgICAgIChNRU1fQUNDRVNTX1IgfCBNRU1fQUNDRVNTX1cpCisjZGVmaW5lIE1FTV9BQ0NFU1Nf
UlggICAgICAgICAgICAgICAoTUVNX0FDQ0VTU19SIHwgTUVNX0FDQ0VTU19YKQorI2RlZmluZSBN
RU1fQUNDRVNTX1dYICAgICAgICAgICAgICAgKE1FTV9BQ0NFU1NfVyB8IE1FTV9BQ0NFU1NfWCkK
KyNkZWZpbmUgTUVNX0FDQ0VTU19HTEFfVkFMSUQgICAgICAgICgxIDw8IDMpCisjZGVmaW5lIE1F
TV9BQ0NFU1NfRkFVTFRfV0lUSF9HTEEgICAoMSA8PCA0KQorI2RlZmluZSBNRU1fQUNDRVNTX0ZB
VUxUX0lOX0dQVCAgICAgKDEgPDwgNSkKKworc3RydWN0IHZtX2V2ZW50X21lbV9hY2Nlc3Mgewor
ICAgIHVpbnQ2NF90IGdmbjsKKyAgICB1aW50NjRfdCBvZmZzZXQ7CisgICAgdWludDY0X3QgZ2xh
OyAgIC8qIGlmIGZsYWdzIGhhcyBNRU1fQUNDRVNTX0dMQV9WQUxJRCBzZXQgKi8KKyAgICB1aW50
MzJfdCBmbGFnczsgLyogTUVNX0FDQ0VTU18qICovCisgICAgdWludDMyX3QgX3BhZDsKK307CisK
K3N0cnVjdCB2bV9ldmVudF93cml0ZV9jdHJscmVnIHsKKyAgICB1aW50MzJfdCBpbmRleDsKKyAg
ICB1aW50MzJfdCBfcGFkOworICAgIHVpbnQ2NF90IG5ld192YWx1ZTsKKyAgICB1aW50NjRfdCBv
bGRfdmFsdWU7Cit9OworCitzdHJ1Y3Qgdm1fZXZlbnRfc2luZ2xlc3RlcCB7CisgICAgdWludDY0
X3QgZ2ZuOworfTsKKworc3RydWN0IHZtX2V2ZW50X2RlYnVnIHsKKyAgICB1aW50NjRfdCBnZm47
CisgICAgdWludDMyX3QgaW5zbl9sZW5ndGg7CisgICAgdWludDhfdCB0eXBlOyAgICAgICAgLyog
SFZNT1BfVFJBUF8qICovCisgICAgdWludDhfdCBfcGFkWzNdOworfTsKKworc3RydWN0IHZtX2V2
ZW50X21vdl90b19tc3IgeworICAgIHVpbnQ2NF90IG1zcjsKKyAgICB1aW50NjRfdCB2YWx1ZTsK
K307CisKKyNkZWZpbmUgVk1fRVZFTlRfREVTQ19JRFRSICAgICAgICAgICAxCisjZGVmaW5lIFZN
X0VWRU5UX0RFU0NfR0RUUiAgICAgICAgICAgMgorI2RlZmluZSBWTV9FVkVOVF9ERVNDX0xEVFIg
ICAgICAgICAgIDMKKyNkZWZpbmUgVk1fRVZFTlRfREVTQ19UUiAgICAgICAgICAgICA0CisKK3N0
cnVjdCB2bV9ldmVudF9kZXNjX2FjY2VzcyB7CisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3Qg
eworICAgICAgICAgICAgdWludDMyX3QgaW5zdHJfaW5mbzsgICAgICAgICAvKiBWTVg6IFZNQ1Mg
SW5zdHJ1Y3Rpb24tSW5mb3JtYXRpb24gKi8KKyAgICAgICAgICAgIHVpbnQzMl90IF9wYWQxOwor
ICAgICAgICAgICAgdWludDY0X3QgZXhpdF9xdWFsaWZpY2F0aW9uOyAvKiBWTVg6IFZNQ1MgRXhp
dCBRdWFsaWZpY2F0aW9uICovCisgICAgICAgIH0gdm14OworICAgICAgICBzdHJ1Y3QgeworICAg
ICAgICAgICAgdWludDY0X3QgZXhpdGluZm87ICAgICAgICAgICAvKiBTVk06IFZNQ0IgRVhJVElO
Rk8gKi8KKyAgICAgICAgICAgIHVpbnQ2NF90IF9wYWQyOworICAgICAgICB9IHN2bTsKKyAgICB9
IGFyY2g7CisgICAgdWludDhfdCBkZXNjcmlwdG9yOyAgICAgICAgICAgICAgICAgIC8qIFZNX0VW
RU5UX0RFU0NfKiAqLworICAgIHVpbnQ4X3QgaXNfd3JpdGU7CisgICAgdWludDhfdCBfcGFkWzZd
OworfTsKKworc3RydWN0IHZtX2V2ZW50X2NwdWlkIHsKKyAgICB1aW50MzJfdCBpbnNuX2xlbmd0
aDsKKyAgICB1aW50MzJfdCBsZWFmOworICAgIHVpbnQzMl90IHN1YmxlYWY7CisgICAgdWludDMy
X3QgX3BhZDsKK307CisKK3N0cnVjdCB2bV9ldmVudF9pbnRlcnJ1cHRfeDg2IHsKKyAgICB1aW50
MzJfdCB2ZWN0b3I7CisgICAgdWludDMyX3QgdHlwZTsKKyAgICB1aW50MzJfdCBlcnJvcl9jb2Rl
OworICAgIHVpbnQzMl90IF9wYWQ7CisgICAgdWludDY0X3QgY3IyOworfTsKKworI2RlZmluZSBN
RU1fUEFHSU5HX0RST1BfUEFHRSAgICAgICAoMSA8PCAwKQorI2RlZmluZSBNRU1fUEFHSU5HX0VW
SUNUX0ZBSUwgICAgICAoMSA8PCAxKQorCitzdHJ1Y3Qgdm1fZXZlbnRfcGFnaW5nIHsKKyAgICB1
aW50NjRfdCBnZm47CisgICAgdWludDMyX3QgcDJtdDsKKyAgICB1aW50MzJfdCBmbGFnczsKK307
CisKK3N0cnVjdCB2bV9ldmVudF9zaGFyaW5nIHsKKyAgICB1aW50NjRfdCBnZm47CisgICAgdWlu
dDMyX3QgcDJtdDsKKyAgICB1aW50MzJfdCBfcGFkOworfTsKKworc3RydWN0IHZtX2V2ZW50X2Vt
dWxfcmVhZF9kYXRhIHsKKyAgICB1aW50MzJfdCBzaXplOworICAgIC8qIFRoZSBzdHJ1Y3QgaXMg
dXNlZCBpbiBhIHVuaW9uIHdpdGggdm1fZXZlbnRfcmVnc194ODYuICovCisgICAgdWludDhfdCAg
ZGF0YVtzaXplb2Yoc3RydWN0IHZtX2V2ZW50X3JlZ3NfeDg2KSAtIHNpemVvZih1aW50MzJfdCld
OworfTsKKworc3RydWN0IHZtX2V2ZW50X2VtdWxfaW5zbl9kYXRhIHsKKyAgICB1aW50OF90IGRh
dGFbMTZdOyAvKiBIYXMgdG8gYmUgY29tcGxldGVseSBmaWxsZWQgKi8KK307CisKK3R5cGVkZWYg
c3RydWN0IHZtX2V2ZW50X3N0IHsKKyAgICB1aW50MzJfdCB2ZXJzaW9uOyAgIC8qIFZNX0VWRU5U
X0lOVEVSRkFDRV9WRVJTSU9OICovCisgICAgdWludDMyX3QgZmxhZ3M7ICAgICAvKiBWTV9FVkVO
VF9GTEFHXyogKi8KKyAgICB1aW50MzJfdCByZWFzb247ICAgIC8qIFZNX0VWRU5UX1JFQVNPTl8q
ICovCisgICAgdWludDMyX3QgdmNwdV9pZDsKKyAgICB1aW50MTZfdCBhbHRwMm1faWR4OyAvKiBt
YXkgYmUgdXNlZCBkdXJpbmcgcmVxdWVzdCBhbmQgcmVzcG9uc2UgKi8KKyAgICB1aW50MTZfdCBf
cGFkWzNdOworCisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3Qgdm1fZXZlbnRfcGFnaW5nICAg
ICAgICAgICAgICAgIG1lbV9wYWdpbmc7CisgICAgICAgIHN0cnVjdCB2bV9ldmVudF9zaGFyaW5n
ICAgICAgICAgICAgICAgbWVtX3NoYXJpbmc7CisgICAgICAgIHN0cnVjdCB2bV9ldmVudF9tZW1f
YWNjZXNzICAgICAgICAgICAgbWVtX2FjY2VzczsKKyAgICAgICAgc3RydWN0IHZtX2V2ZW50X3dy
aXRlX2N0cmxyZWcgICAgICAgICB3cml0ZV9jdHJscmVnOworICAgICAgICBzdHJ1Y3Qgdm1fZXZl
bnRfbW92X3RvX21zciAgICAgICAgICAgIG1vdl90b19tc3I7CisgICAgICAgIHN0cnVjdCB2bV9l
dmVudF9kZXNjX2FjY2VzcyAgICAgICAgICAgZGVzY19hY2Nlc3M7CisgICAgICAgIHN0cnVjdCB2
bV9ldmVudF9zaW5nbGVzdGVwICAgICAgICAgICAgc2luZ2xlc3RlcDsKKyAgICAgICAgc3RydWN0
IHZtX2V2ZW50X2RlYnVnICAgICAgICAgICAgICAgICBzb2Z0d2FyZV9icmVha3BvaW50OworICAg
ICAgICBzdHJ1Y3Qgdm1fZXZlbnRfZGVidWcgICAgICAgICAgICAgICAgIGRlYnVnX2V4Y2VwdGlv
bjsKKyAgICAgICAgc3RydWN0IHZtX2V2ZW50X2NwdWlkICAgICAgICAgICAgICAgICBjcHVpZDsK
KyAgICAgICAgdW5pb24geworICAgICAgICAgICAgc3RydWN0IHZtX2V2ZW50X2ludGVycnVwdF94
ODYgICAgIHg4NjsKKyAgICAgICAgfSBpbnRlcnJ1cHQ7CisgICAgfSB1OworCisgICAgdW5pb24g
eworICAgICAgICB1bmlvbiB7CisgICAgICAgICAgICBzdHJ1Y3Qgdm1fZXZlbnRfcmVnc194ODYg
eDg2OworICAgICAgICAgICAgc3RydWN0IHZtX2V2ZW50X3JlZ3NfYXJtIGFybTsKKyAgICAgICAg
fSByZWdzOworCisgICAgICAgIHVuaW9uIHsKKyAgICAgICAgICAgIHN0cnVjdCB2bV9ldmVudF9l
bXVsX3JlYWRfZGF0YSByZWFkOworICAgICAgICAgICAgc3RydWN0IHZtX2V2ZW50X2VtdWxfaW5z
bl9kYXRhIGluc247CisgICAgICAgIH0gZW11bDsKKyAgICB9IGRhdGE7Cit9IHZtX2V2ZW50X3Jl
cXVlc3RfdCwgdm1fZXZlbnRfcmVzcG9uc2VfdDsKKworREVGSU5FX1JJTkdfVFlQRVModm1fZXZl
bnQsIHZtX2V2ZW50X3JlcXVlc3RfdCwgdm1fZXZlbnRfcmVzcG9uc2VfdCk7CisKKyNlbmRpZiAv
KiBkZWZpbmVkKF9fWEVOX18pIHx8IGRlZmluZWQoX19YRU5fVE9PTFNfXykgKi8KKyNlbmRpZiAv
KiBfWEVOX1BVQkxJQ19WTV9FVkVOVF9IICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6Cisg
KiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAor
ICogdGFiLXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpk
aWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4veGVuLWNvbXBhdC5oIGIvaW5jbHVkZS94ZW4veGVuLWNv
bXBhdC5oCmluZGV4IDFlNjJkYzEuLmI2NzM2NTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL3hl
bi1jb21wYXQuaAorKysgYi9pbmNsdWRlL3hlbi94ZW4tY29tcGF0LmgKQEAgLTI3LDcgKzI3LDcg
QEAKICNpZm5kZWYgX19YRU5fUFVCTElDX1hFTl9DT01QQVRfSF9fCiAjZGVmaW5lIF9fWEVOX1BV
QkxJQ19YRU5fQ09NUEFUX0hfXwogCi0jZGVmaW5lIF9fWEVOX0xBVEVTVF9JTlRFUkZBQ0VfVkVS
U0lPTl9fIDB4MDAwNDA2MDAKKyNkZWZpbmUgX19YRU5fTEFURVNUX0lOVEVSRkFDRV9WRVJTSU9O
X18gMHgwMDA0MDkwMAogCiAjaWYgZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RP
T0xTX18pCiAvKiBYZW4gaXMgYnVpbHQgd2l0aCBtYXRjaGluZyBoZWFkZXJzIGFuZCBpbXBsZW1l
bnRzIHRoZSBsYXRlc3QgaW50ZXJmYWNlLiAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4veGVu
LmggYi9pbmNsdWRlL3hlbi94ZW4uaAppbmRleCBhNmEyMDkyLi4yYWM2YjFlIDEwMDY0NAotLS0g
YS9pbmNsdWRlL3hlbi94ZW4uaAorKysgYi9pbmNsdWRlL3hlbi94ZW4uaApAQCAtNTIsNiArNTIs
MjQgQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUodm9pZCk7CiBERUZJTkVfWEVOX0dVRVNUX0hB
TkRMRSh1aW50NjRfdCk7CiBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fcGZuX3QpOwogREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3Vsb25nX3QpOworCisvKiBUdXJuIGEgcGxhaW4gbnVt
YmVyIGludG8gYSBDIHVuc2lnbmVkIChsb25nIChsb25nKSkgY29uc3RhbnQuICovCisjZGVmaW5l
IF9feGVuX21rX3VpbnQoeCkgIHggIyMgVQorI2RlZmluZSBfX3hlbl9ta191bG9uZyh4KSB4ICMj
IFVMCisjaWZuZGVmIF9feGVuX21rX3VsbG9uZworIyBkZWZpbmUgX194ZW5fbWtfdWxsb25nKHgp
IHggIyMgVUxMCisjZW5kaWYKKyNkZWZpbmUgeGVuX21rX3VpbnQoeCkgICAgX194ZW5fbWtfdWlu
dCh4KQorI2RlZmluZSB4ZW5fbWtfdWxvbmcoeCkgICBfX3hlbl9ta191bG9uZyh4KQorI2RlZmlu
ZSB4ZW5fbWtfdWxsb25nKHgpICBfX3hlbl9ta191bGxvbmcoeCkKKworI2Vsc2UKKworLyogSW4g
YXNzZW1ibHkgY29kZSB3ZSBjYW5ub3QgdXNlIEMgbnVtZXJpYyBjb25zdGFudCBzdWZmaXhlcy4g
Ki8KKyNkZWZpbmUgeGVuX21rX3VpbnQoeCkgICB4CisjZGVmaW5lIHhlbl9ta191bG9uZyh4KSAg
eAorI2RlZmluZSB4ZW5fbWtfdWxsb25nKHgpIHgKKwogI2VuZGlmCiAKIC8qCkBAIC0xMDEsNiAr
MTE5LDggQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3Vsb25nX3QpOwogI2RlZmluZSBf
X0hZUEVSVklTT1Jfa2V4ZWNfb3AgICAgICAgICAgICAgMzcKICNkZWZpbmUgX19IWVBFUlZJU09S
X3RtZW1fb3AgICAgICAgICAgICAgIDM4CiAjZGVmaW5lIF9fSFlQRVJWSVNPUl94Y19yZXNlcnZl
ZF9vcCAgICAgICAzOSAvKiByZXNlcnZlZCBmb3IgWGVuQ2xpZW50ICovCisjZGVmaW5lIF9fSFlQ
RVJWSVNPUl94ZW5wbXVfb3AgICAgICAgICAgICA0MAorI2RlZmluZSBfX0hZUEVSVklTT1JfZG1f
b3AgICAgICAgICAgICAgICAgNDEKIAogLyogQXJjaGl0ZWN0dXJlLXNwZWNpZmljIGh5cGVyY2Fs
bCBkZWZpbml0aW9ucy4gKi8KICNkZWZpbmUgX19IWVBFUlZJU09SX2FyY2hfMCAgICAgICAgICAg
ICAgIDQ4CkBAIC0xNjAsNiArMTgwLDcgQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3Vs
b25nX3QpOwogI2RlZmluZSBWSVJRX01FTV9FVkVOVCAgMTAgLyogRy4gKERPTTApIEEgbWVtb3J5
IGV2ZW50IGhhcyBvY2N1cmVkICAgICAgICAgICAqLwogI2RlZmluZSBWSVJRX1hDX1JFU0VSVkVE
IDExIC8qIEcuIFJlc2VydmVkIGZvciBYZW5DbGllbnQgICAgICAgICAgICAgICAgICAgICAqLwog
I2RlZmluZSBWSVJRX0VOT01FTSAgICAgMTIgLyogRy4gKERPTTApIExvdyBvbiBoZWFwIG1lbW9y
eSAgICAgICAqLworI2RlZmluZSBWSVJRX1hFTlBNVSAgICAgMTMgLyogVi4gIFBNQyBpbnRlcnJ1
cHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCiAvKiBBcmNoaXRlY3R1cmUtc3Bl
Y2lmaWMgVklSUSBkZWZpbml0aW9ucy4gKi8KICNkZWZpbmUgVklSUV9BUkNIXzAgICAgMTYKQEAg
LTQ0OSwxMyArNDcwLDEzIEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKG1tdWV4dF9vcF90KTsK
IC8qIFdoZW4gc3BlY2lmeWluZyBVVk1GX01VTFRJLCBhbHNvIE9SIGluIGEgcG9pbnRlciB0byBh
IENQVSBiaXRtYXAuICAgKi8KIC8qIFVWTUZfTE9DQUwgaXMgbWVyZWx5IFVWTUZfTVVMVEkgd2l0
aCBhIE5VTEwgYml0bWFwIHBvaW50ZXIuICAgICAgICAgKi8KIC8qIGAgZW51bSB1dm1fZmxhZ3Mg
eyAqLwotI2RlZmluZSBVVk1GX05PTkUgICAgICAgICAgICAgICAoMFVMPDwwKSAvKiBObyBmbHVz
aGluZyBhdCBhbGwuICAgKi8KLSNkZWZpbmUgVVZNRl9UTEJfRkxVU0ggICAgICAgICAgKDFVTDw8
MCkgLyogRmx1c2ggZW50aXJlIFRMQihzKS4gICovCi0jZGVmaW5lIFVWTUZfSU5WTFBHICAgICAg
ICAgICAgICgyVUw8PDApIC8qIEZsdXNoIG9ubHkgb25lIGVudHJ5LiAqLwotI2RlZmluZSBVVk1G
X0ZMVVNIVFlQRV9NQVNLICAgICAoM1VMPDwwKQotI2RlZmluZSBVVk1GX01VTFRJICAgICAgICAg
ICAgICAoMFVMPDwyKSAvKiBGbHVzaCBzdWJzZXQgb2YgVExCcy4gKi8KLSNkZWZpbmUgVVZNRl9M
T0NBTCAgICAgICAgICAgICAgKDBVTDw8MikgLyogRmx1c2ggbG9jYWwgVExCLiAgICAgICovCi0j
ZGVmaW5lIFVWTUZfQUxMICAgICAgICAgICAgICAgICgxVUw8PDIpIC8qIEZsdXNoIGFsbCBUTEJz
LiAgICAgICAqLworI2RlZmluZSBVVk1GX05PTkUgICAgICAgICAgICh4ZW5fbWtfdWxvbmcoMCk8
PDApIC8qIE5vIGZsdXNoaW5nIGF0IGFsbC4gICAqLworI2RlZmluZSBVVk1GX1RMQl9GTFVTSCAg
ICAgICh4ZW5fbWtfdWxvbmcoMSk8PDApIC8qIEZsdXNoIGVudGlyZSBUTEIocykuICAqLworI2Rl
ZmluZSBVVk1GX0lOVkxQRyAgICAgICAgICh4ZW5fbWtfdWxvbmcoMik8PDApIC8qIEZsdXNoIG9u
bHkgb25lIGVudHJ5LiAqLworI2RlZmluZSBVVk1GX0ZMVVNIVFlQRV9NQVNLICh4ZW5fbWtfdWxv
bmcoMyk8PDApCisjZGVmaW5lIFVWTUZfTVVMVEkgICAgICAgICAgKHhlbl9ta191bG9uZygwKTw8
MikgLyogRmx1c2ggc3Vic2V0IG9mIFRMQnMuICovCisjZGVmaW5lIFVWTUZfTE9DQUwgICAgICAg
ICAgKHhlbl9ta191bG9uZygwKTw8MikgLyogRmx1c2ggbG9jYWwgVExCLiAgICAgICovCisjZGVm
aW5lIFVWTUZfQUxMICAgICAgICAgICAgKHhlbl9ta191bG9uZygxKTw8MikgLyogRmx1c2ggYWxs
IFRMQnMuICAgICAgICovCiAvKiBgIH0gKi8KIAogLyoKQEAgLTQ4NiwxNyArNTA3LDQyIEBAIERF
RklORV9YRU5fR1VFU1RfSEFORExFKG1tdWV4dF9vcF90KTsKIC8qIHg4Ni9QQUUgZ3Vlc3RzOiBz
dXBwb3J0IFBEUFRzIGFib3ZlIDRHQi4gKi8KICNkZWZpbmUgVk1BU1NUX1RZUEVfcGFlX2V4dGVu
ZGVkX2NyMyAgICAgMwogCi0jZGVmaW5lIE1BWF9WTUFTU1RfVFlQRSAgICAgICAgICAgICAgICAg
IDMKKy8qCisgKiB4ODYgZ3Vlc3RzOiBTYW5lIGJlaGF2aW91ciBmb3IgdmlydHVhbCBpb3BsCisg
KiAgLSB2aXJ0dWFsIGlvcGwgdXBkYXRlZCBmcm9tIGRvX2lyZXQoKSBoeXBlcmNhbGxzLgorICog
IC0gdmlydHVhbCBpb3BsIHJlcG9ydGVkIGluIGJvdW5jZSBmcmFtZXMuCisgKiAgLSBndWVzdCBr
ZXJuZWxzIGFzc3VtZWQgdG8gYmUgbGV2ZWwgMCBmb3IgdGhlIHB1cnBvc2Ugb2YgaW9wbCBjaGVj
a3MuCisgKi8KKyNkZWZpbmUgVk1BU1NUX1RZUEVfYXJjaGl0ZWN0dXJhbF9pb3BsICAgNAogCi0j
aWZuZGVmIF9fQVNTRU1CTFlfXworLyoKKyAqIEFsbCBndWVzdHM6IGFjdGl2YXRlIHVwZGF0ZSBp
bmRpY2F0b3IgaW4gdmNwdV9ydW5zdGF0ZV9pbmZvCisgKiBFbmFibGUgc2V0dGluZyB0aGUgWEVO
X1JVTlNUQVRFX1VQREFURSBmbGFnIGluIGd1ZXN0IG1lbW9yeSBtYXBwZWQKKyAqIHZjcHVfcnVu
c3RhdGVfaW5mbyBkdXJpbmcgdXBkYXRlcyBvZiB0aGUgcnVuc3RhdGUgaW5mb3JtYXRpb24uCisg
Ki8KKyNkZWZpbmUgVk1BU1NUX1RZUEVfcnVuc3RhdGVfdXBkYXRlX2ZsYWcgNQogCi10eXBlZGVm
IHVpbnQxNl90IGRvbWlkX3Q7CisvKgorICogeDg2LzY0IGd1ZXN0czogc3RyaWN0bHkgaGlkZSBN
MlAgZnJvbSB1c2VyIG1vZGUuCisgKiBUaGlzIGFsbG93cyB0aGUgZ3Vlc3QgdG8gY29udHJvbCBy
ZXNwZWN0aXZlIGh5cGVydmlzb3IgYmVoYXZpb3I6CisgKiAtIHdoZW4gbm90IHNldCwgTDQgdGFi
bGVzIGdldCBjcmVhdGVkIHdpdGggdGhlIHJlc3BlY3RpdmUgc2xvdCBibGFuaywKKyAqICAgYW5k
IHdoZW5ldmVyIHRoZSBMNCB0YWJsZSBnZXRzIHVzZWQgYXMgYSBrZXJuZWwgb25lIHRoZSBtaXNz
aW5nCisgKiAgIG1hcHBpbmcgZ2V0cyBpbnNlcnRlZCwKKyAqIC0gd2hlbiBzZXQsIEw0IHRhYmxl
cyBnZXQgY3JlYXRlZCB3aXRoIHRoZSByZXNwZWN0aXZlIHNsb3QgaW5pdGlhbGl6ZWQKKyAqICAg
YXMgYmVmb3JlLCBhbmQgd2hlbmV2ZXIgdGhlIEw0IHRhYmxlIGdldHMgdXNlZCBhcyBhIHVzZXIg
b25lIHRoZQorICogICBtYXBwaW5nIGdldHMgemFwcGVkLgorICovCisjZGVmaW5lIFZNQVNTVF9U
WVBFX20ycF9zdHJpY3QgICAgICAgICAgIDMyCisKKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lP
Tl9fIDwgMHgwMDA0MDYwMAorI2RlZmluZSBNQVhfVk1BU1NUX1RZUEUgICAgICAgICAgICAgICAg
ICAzCisjZW5kaWYKIAogLyogRG9tYWluIGlkcyA+PSBET01JRF9GSVJTVF9SRVNFUlZFRCBjYW5u
b3QgYmUgdXNlZCBmb3Igb3JkaW5hcnkgZG9tYWlucy4gKi8KLSNkZWZpbmUgRE9NSURfRklSU1Rf
UkVTRVJWRUQgKDB4N0ZGMFUpCisjZGVmaW5lIERPTUlEX0ZJUlNUX1JFU0VSVkVEIHhlbl9ta191
aW50KDB4N0ZGMCkKIAogLyogRE9NSURfU0VMRiBpcyB1c2VkIGluIGNlcnRhaW4gY29udGV4dHMg
dG8gcmVmZXIgdG8gb25lc2VsZi4gKi8KLSNkZWZpbmUgRE9NSURfU0VMRiAoMHg3RkYwVSkKKyNk
ZWZpbmUgRE9NSURfU0VMRiAgICAgICAgICAgeGVuX21rX3VpbnQoMHg3RkYwKQogCiAvKgogICog
RE9NSURfSU8gaXMgdXNlZCB0byByZXN0cmljdCBwYWdlLXRhYmxlIHVwZGF0ZXMgdG8gbWFwcGlu
ZyBJL08gbWVtb3J5LgpAQCAtNTA0LDI4ICs1NTAsMzcgQEAgdHlwZWRlZiB1aW50MTZfdCBkb21p
ZF90OwogICogaXMgdXNlZnVsIHRvIGVuc3VyZSB0aGF0IG5vIG1hcHBpbmdzIHRvIHRoZSBPUydz
IG93biBoZWFwIGFyZSBhY2NpZGVudGFsbHkKICAqIGluc3RhbGxlZC4gKGUuZy4sIGluIExpbnV4
IHRoaXMgY291bGQgY2F1c2UgaGF2b2MgYXMgcmVmZXJlbmNlIGNvdW50cwogICogYXJlbid0IGFk
anVzdGVkIG9uIHRoZSBJL08tbWFwcGluZyBjb2RlIHBhdGgpLgotICogVGhpcyBvbmx5IG1ha2Vz
IHNlbnNlIGluIE1NVUVYVF9TRVRfRk9SRUlHTkRPTSwgYnV0IGluIHRoYXQgY29udGV4dCBjYW4K
LSAqIGJlIHNwZWNpZmllZCBieSBhbnkgY2FsbGluZyBkb21haW4uCisgKiBUaGlzIG9ubHkgbWFr
ZXMgc2Vuc2UgYXMgSFlQRVJWSVNPUl9tbXVfdXBkYXRlKCkncyBhbmQKKyAqIEhZUEVSVklTT1Jf
dXBkYXRlX3ZhX21hcHBpbmdfb3RoZXJkb21haW4oKSdzICJmb3JlaWduZG9tIiBhcmd1bWVudC4g
Rm9yCisgKiBIWVBFUlZJU09SX21tdV91cGRhdGUoKSBjb250ZXh0IGl0IGNhbiBiZSBzcGVjaWZp
ZWQgYnkgYW55IGNhbGxpbmcgZG9tYWluLAorICogb3RoZXJ3aXNlIGl0J3Mgb25seSBwZXJtaXR0
ZWQgaWYgdGhlIGNhbGxlciBpcyBwcml2aWxlZ2VkLgogICovCi0jZGVmaW5lIERPTUlEX0lPICAg
KDB4N0ZGMVUpCisjZGVmaW5lIERPTUlEX0lPICAgICAgICAgICAgIHhlbl9ta191aW50KDB4N0ZG
MSkKIAogLyoKICAqIERPTUlEX1hFTiBpcyB1c2VkIHRvIGFsbG93IHByaXZpbGVnZWQgZG9tYWlu
cyB0byBtYXAgcmVzdHJpY3RlZCBwYXJ0cyBvZgogICogWGVuJ3MgaGVhcCBzcGFjZSAoZS5nLiwg
dGhlIG1hY2hpbmVfdG9fcGh5cyB0YWJsZSkuCi0gKiBUaGlzIG9ubHkgbWFrZXMgc2Vuc2UgaW4g
TU1VRVhUX1NFVF9GT1JFSUdORE9NLCBhbmQgaXMgb25seSBwZXJtaXR0ZWQgaWYKLSAqIHRoZSBj
YWxsZXIgaXMgcHJpdmlsZWdlZC4KKyAqIFRoaXMgb25seSBtYWtlcyBzZW5zZSBhcworICogLSBI
WVBFUlZJU09SX21tdV91cGRhdGUoKSdzLCBIWVBFUlZJU09SX21tdWV4dF9vcCgpJ3MsIG9yCisg
KiAgIEhZUEVSVklTT1JfdXBkYXRlX3ZhX21hcHBpbmdfb3RoZXJkb21haW4oKSdzICJmb3JlaWdu
ZG9tIiBhcmd1bWVudCwKKyAqIC0gd2l0aCBYRU5NQVBTUEFDRV9nbWZuX2ZvcmVpZ24sCisgKiBh
bmQgaXMgb25seSBwZXJtaXR0ZWQgaWYgdGhlIGNhbGxlciBpcyBwcml2aWxlZ2VkLgogICovCi0j
ZGVmaW5lIERPTUlEX1hFTiAgKDB4N0ZGMlUpCisjZGVmaW5lIERPTUlEX1hFTiAgICAgICAgICAg
IHhlbl9ta191aW50KDB4N0ZGMikKIAogLyoKICAqIERPTUlEX0NPVyBpcyB1c2VkIGFzIHRoZSBv
d25lciBvZiBzaGFyYWJsZSBwYWdlcyAqLwotI2RlZmluZSBET01JRF9DT1cgICgweDdGRjNVKQor
I2RlZmluZSBET01JRF9DT1cgICAgICAgICAgICB4ZW5fbWtfdWludCgweDdGRjMpCiAKIC8qIERP
TUlEX0lOVkFMSUQgaXMgdXNlZCB0byBpZGVudGlmeSBwYWdlcyB3aXRoIHVua25vd24gb3duZXIu
ICovCi0jZGVmaW5lIERPTUlEX0lOVkFMSUQgKDB4N0ZGNFUpCisjZGVmaW5lIERPTUlEX0lOVkFM
SUQgICAgICAgIHhlbl9ta191aW50KDB4N0ZGNCkKIAogLyogSWRsZSBkb21haW4uICovCi0jZGVm
aW5lIERPTUlEX0lETEUgKDB4N0ZGRlUpCisjZGVmaW5lIERPTUlEX0lETEUgICAgICAgICAgIHhl
bl9ta191aW50KDB4N0ZGRikKKworI2lmbmRlZiBfX0FTU0VNQkxZX18KKwordHlwZWRlZiB1aW50
MTZfdCBkb21pZF90OwogCiAvKgogICogU2VuZCBhbiBhcnJheSBvZiB0aGVzZSB0byBIWVBFUlZJ
U09SX21tdV91cGRhdGUoKS4KQEAgLTU4NSwxMCArNjQwLDE4IEBAIHN0cnVjdCB2Y3B1X3RpbWVf
aW5mbyB7CiAgICAgICovCiAgICAgdWludDMyX3QgdHNjX3RvX3N5c3RlbV9tdWw7CiAgICAgaW50
OF90ICAgdHNjX3NoaWZ0OworI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPiAweDA0MDYw
MAorICAgIHVpbnQ4X3QgIGZsYWdzOworICAgIHVpbnQ4X3QgIHBhZDFbMl07CisjZWxzZQogICAg
IGludDhfdCAgIHBhZDFbM107CisjZW5kaWYKIH07IC8qIDMyIGJ5dGVzICovCiB0eXBlZGVmIHN0
cnVjdCB2Y3B1X3RpbWVfaW5mbyB2Y3B1X3RpbWVfaW5mb190OwogCisjZGVmaW5lIFhFTl9QVkNM
T0NLX1RTQ19TVEFCTEVfQklUICAgICAoMSA8PCAwKQorI2RlZmluZSBYRU5fUFZDTE9DS19HVUVT
VF9TVE9QUEVEICAgICAgKDEgPDwgMSkKKwogc3RydWN0IHZjcHVfaW5mbyB7CiAgICAgLyoKICAg
ICAgKiAnZXZ0Y2huX3VwY2FsbF9wZW5kaW5nJyBpcyB3cml0dGVuIG5vbi16ZXJvIGJ5IFhlbiB0
byBpbmRpY2F0ZQpAQCAtNjgyLDYgKzc0NSwxMiBAQCBzdHJ1Y3Qgc2hhcmVkX2luZm8gewogICAg
IHVpbnQzMl90IHdjX3ZlcnNpb247ICAgICAgLyogVmVyc2lvbiBjb3VudGVyOiBzZWUgdmNwdV90
aW1lX2luZm9fdC4gKi8KICAgICB1aW50MzJfdCB3Y19zZWM7ICAgICAgICAgIC8qIFNlY3MgIDAw
OjAwOjAwIFVUQywgSmFuIDEsIDE5NzAuICAqLwogICAgIHVpbnQzMl90IHdjX25zZWM7ICAgICAg
ICAgLyogTnNlY3MgMDA6MDA6MDAgVVRDLCBKYW4gMSwgMTk3MC4gICovCisjaWYgIWRlZmluZWQo
X19pMzg2X18pCisgICAgdWludDMyX3Qgd2Nfc2VjX2hpOworIyBkZWZpbmUgeGVuX3djX3NlY19o
aSB3Y19zZWNfaGkKKyNlbGlmICFkZWZpbmVkKF9fWEVOX18pICYmICFkZWZpbmVkKF9fWEVOX1RP
T0xTX18pCisjIGRlZmluZSB4ZW5fd2Nfc2VjX2hpIGFyY2gud2Nfc2VjX2hpCisjZW5kaWYKIAog
ICAgIHN0cnVjdCBhcmNoX3NoYXJlZF9pbmZvIGFyY2g7CiAKQEAgLTY5OCwyNCArNzY3LDI3IEBA
IHR5cGVkZWYgc3RydWN0IHNoYXJlZF9pbmZvIHNoYXJlZF9pbmZvX3Q7CiAgKiAgMy4gVGhpcyB0
aGUgb3JkZXIgb2YgYm9vdHN0cmFwIGVsZW1lbnRzIGluIHRoZSBpbml0aWFsIHZpcnR1YWwgcmVn
aW9uOgogICogICAgICBhLiByZWxvY2F0ZWQga2VybmVsIGltYWdlCiAgKiAgICAgIGIuIGluaXRp
YWwgcmFtIGRpc2sgICAgICAgICAgICAgIFttb2Rfc3RhcnQsIG1vZF9sZW5dCisgKiAgICAgICAg
IChtYXkgYmUgb21pdHRlZCkKICAqICAgICAgYy4gbGlzdCBvZiBhbGxvY2F0ZWQgcGFnZSBmcmFt
ZXMgW21mbl9saXN0LCBucl9wYWdlc10KICAqICAgICAgICAgKHVubGVzcyByZWxvY2F0ZWQgZHVl
IHRvIFhFTl9FTEZOT1RFX0lOSVRfUDJNKQotICogICAgICBkLiBzdGFydF9pbmZvX3Qgc3RydWN0
dXJlICAgICAgICBbcmVnaXN0ZXIgRVNJICh4ODYpXQotICogICAgICBlLiBib290c3RyYXAgcGFn
ZSB0YWJsZXMgICAgICAgICBbcHRfYmFzZSBhbmQgQ1IzICh4ODYpXQotICogICAgICBmLiBib290
c3RyYXAgc3RhY2sgICAgICAgICAgICAgICBbcmVnaXN0ZXIgRVNQICh4ODYpXQorICogICAgICBk
LiBzdGFydF9pbmZvX3Qgc3RydWN0dXJlICAgICAgICBbcmVnaXN0ZXIgclNJICh4ODYpXQorICog
ICAgICAgICBpbiBjYXNlIG9mIGRvbTAgdGhpcyBwYWdlIGNvbnRhaW5zIHRoZSBjb25zb2xlIGlu
Zm8sIHRvbworICogICAgICBlLiB1bmxlc3MgZG9tMDogeGVuc3RvcmUgcmluZyBwYWdlCisgKiAg
ICAgIGYuIHVubGVzcyBkb20wOiBjb25zb2xlIHJpbmcgcGFnZQorICogICAgICBnLiBib290c3Ry
YXAgcGFnZSB0YWJsZXMgICAgICAgICBbcHRfYmFzZSBhbmQgQ1IzICh4ODYpXQorICogICAgICBo
LiBib290c3RyYXAgc3RhY2sgICAgICAgICAgICAgICBbcmVnaXN0ZXIgRVNQICh4ODYpXQogICog
IDQuIEJvb3RzdHJhcCBlbGVtZW50cyBhcmUgcGFja2VkIHRvZ2V0aGVyLCBidXQgZWFjaCBpcyA0
a0ItYWxpZ25lZC4KLSAqICA1LiBUaGUgaW5pdGlhbCByYW0gZGlzayBtYXkgYmUgb21pdHRlZC4K
LSAqICA2LiBUaGUgbGlzdCBvZiBwYWdlIGZyYW1lcyBmb3JtcyBhIGNvbnRpZ3VvdXMgJ3BzZXVk
by1waHlzaWNhbCcgbWVtb3J5CisgKiAgNS4gVGhlIGxpc3Qgb2YgcGFnZSBmcmFtZXMgZm9ybXMg
YSBjb250aWd1b3VzICdwc2V1ZG8tcGh5c2ljYWwnIG1lbW9yeQogICogICAgIGxheW91dCBmb3Ig
dGhlIGRvbWFpbi4gSW4gcGFydGljdWxhciwgdGhlIGJvb3RzdHJhcCB2aXJ0dWFsLW1lbW9yeQog
ICogICAgIHJlZ2lvbiBpcyBhIDE6MSBtYXBwaW5nIHRvIHRoZSBmaXJzdCBzZWN0aW9uIG9mIHRo
ZSBwc2V1ZG8tcGh5c2ljYWwgbWFwLgotICogIDcuIEFsbCBib290c3RyYXAgZWxlbWVudHMgYXJl
IG1hcHBlZCByZWFkLXdyaXRhYmxlIGZvciB0aGUgZ3Vlc3QgT1MuIFRoZQorICogIDYuIEFsbCBi
b290c3RyYXAgZWxlbWVudHMgYXJlIG1hcHBlZCByZWFkLXdyaXRhYmxlIGZvciB0aGUgZ3Vlc3Qg
T1MuIFRoZQogICogICAgIG9ubHkgZXhjZXB0aW9uIGlzIHRoZSBib290c3RyYXAgcGFnZSB0YWJs
ZSwgd2hpY2ggaXMgbWFwcGVkIHJlYWQtb25seS4KLSAqICA4LiBUaGVyZSBpcyBndWFyYW50ZWVk
IHRvIGJlIGF0IGxlYXN0IDUxMmtCIHBhZGRpbmcgYWZ0ZXIgdGhlIGZpbmFsCisgKiAgNy4gVGhl
cmUgaXMgZ3VhcmFudGVlZCB0byBiZSBhdCBsZWFzdCA1MTJrQiBwYWRkaW5nIGFmdGVyIHRoZSBm
aW5hbAogICogICAgIGJvb3RzdHJhcCBlbGVtZW50LiBJZiBuZWNlc3NhcnksIHRoZSBib290c3Ry
YXAgdmlydHVhbCByZWdpb24gaXMKICAqICAgICBleHRlbmRlZCBieSBhbiBleHRyYSA0TUIgdG8g
ZW5zdXJlIHRoaXMuCiAgKgogICogTm90ZTogUHJpb3IgdG8gMjU4MzM6YmI4NWJiY2NiMWM5LiAo
Ing4Ni8zMi1vbi02NCBhZGp1c3QgRG9tMCBpbml0aWFsIHBhZ2UKLSAqIHRhYmxlIGxheW91dCIp
IGEgYnVnIGNhdXNlZCB0aGUgcHRfYmFzZSAoMy5lIGFib3ZlKSBhbmQgY3IzIHRvIG5vdCBwb2lu
dAorICogdGFibGUgbGF5b3V0IikgYSBidWcgY2F1c2VkIHRoZSBwdF9iYXNlICgzLmcgYWJvdmUp
IGFuZCBjcjMgdG8gbm90IHBvaW50CiAgKiB0byB0aGUgc3RhcnQgb2YgdGhlIGd1ZXN0IHBhZ2Ug
dGFibGVzIChpdCB3YXMgb2Zmc2V0IGJ5IHR3byBwYWdlcykuCiAgKiBUaGlzIG9ubHkgbWFuaWZl
c3RlZCBpdHNlbGYgb24gMzItb24tNjQgZG9tMCBrZXJuZWxzIGFuZCBub3QgMzItb24tNjQgZG9t
VQogICogb3IgNjQtYml0IGtlcm5lbHMgb2YgYW55IGNvbG91ci4gVGhlIHBhZ2UgdGFibGVzIGZv
ciBhIDMyLW9uLTY0IGRvbTAgZ290CkBAIC03NzEsNiArODQzLDggQEAgdHlwZWRlZiBzdHJ1Y3Qg
c3RhcnRfaW5mbyBzdGFydF9pbmZvX3Q7CiAjZGVmaW5lIFNJRl9JTklURE9NQUlOICAgICgxPDwx
KSAgLyogSXMgdGhpcyB0aGUgaW5pdGlhbCBjb250cm9sIGRvbWFpbj8gKi8KICNkZWZpbmUgU0lG
X01VTFRJQk9PVF9NT0QgKDE8PDIpICAvKiBJcyBtb2Rfc3RhcnQgYSBtdWx0aWJvb3QgbW9kdWxl
PyAqLwogI2RlZmluZSBTSUZfTU9EX1NUQVJUX1BGTiAoMTw8MykgIC8qIElzIG1vZF9zdGFydCBh
IFBGTj8gKi8KKyNkZWZpbmUgU0lGX1ZJUlRfUDJNXzRUT09MUyAoMTw8NCkgLyogRG8gWGVuIHRv
b2xzIHVuZGVyc3RhbmQgYSB2aXJ0LiBtYXBwZWQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLyogUC0+TSBtYWtpbmcgdGhlIDMgbGV2ZWwgdHJlZSBvYnNvbGV0ZT8gKi8K
ICNkZWZpbmUgU0lGX1BNX01BU0sgICAgICAgKDB4RkY8PDgpIC8qIHJlc2VydmUgMSBieXRlIGZv
ciB4ZW4tcG0gb3B0aW9ucyAqLwogCiAvKgpAQCAtODUxLDI1ICs5MjUsMTkgQEAgdHlwZWRlZiBz
dHJ1Y3QgZG9tMF92Z2FfY29uc29sZV9pbmZvIHsKIAogdHlwZWRlZiB1aW50OF90IHhlbl9kb21h
aW5faGFuZGxlX3RbMTZdOwogCi0vKiBUdXJuIGEgcGxhaW4gbnVtYmVyIGludG8gYSBDIHVuc2ln
bmVkIGxvbmcgY29uc3RhbnQuICovCi0jZGVmaW5lIF9fbWtfdW5zaWduZWRfbG9uZyh4KSB4ICMj
IFVMCi0jZGVmaW5lIG1rX3Vuc2lnbmVkX2xvbmcoeCkgX19ta191bnNpZ25lZF9sb25nKHgpCi0K
IF9fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUodWludDgsICB1aW50OF90KTsKIF9fREVGSU5FX1hF
Tl9HVUVTVF9IQU5ETEUodWludDE2LCB1aW50MTZfdCk7CiBfX0RFRklORV9YRU5fR1VFU1RfSEFO
RExFKHVpbnQzMiwgdWludDMyX3QpOwogX19ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh1aW50NjQs
IHVpbnQ2NF90KTsKIAotI2Vsc2UgLyogX19BU1NFTUJMWV9fICovCi0KLS8qIEluIGFzc2VtYmx5
IGNvZGUgd2UgY2Fubm90IHVzZSBDIG51bWVyaWMgY29uc3RhbnQgc3VmZml4ZXMuICovCi0jZGVm
aW5lIG1rX3Vuc2lnbmVkX2xvbmcoeCkgeAotCiAjZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAqLwog
CiAvKiBEZWZhdWx0IGRlZmluaXRpb25zIGZvciBtYWNyb3MgdXNlZCBieSBkb21jdGwvc3lzY3Rs
LiAqLwogI2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKQogCisj
aWZuZGVmIGludDY0X2FsaWduZWRfdAorI2RlZmluZSBpbnQ2NF9hbGlnbmVkX3QgaW50NjRfdAor
I2VuZGlmCiAjaWZuZGVmIHVpbnQ2NF9hbGlnbmVkX3QKICNkZWZpbmUgdWludDY0X2FsaWduZWRf
dCB1aW50NjRfdAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi94ZW5vcHJvZi5oIGIv
aW5jbHVkZS94ZW4veGVub3Byb2YuaAppbmRleCAxYzMwNWM0Li4xOTU1ZGIxIDEwMDY0NAotLS0g
YS9pbmNsdWRlL3hlbi94ZW5vcHJvZi5oCisrKyBiL2luY2x1ZGUveGVuL3hlbm9wcm9mLmgKQEAg
LTY4LDcgKzY4LDcgQEAgc3RydWN0IGV2ZW50X2xvZyB7CiB9OwogCiAvKiBQQyB2YWx1ZSB0aGF0
IGluZGljYXRlcyBhIHNwZWNpYWwgY29kZSAqLwotI2RlZmluZSBYRU5PUFJPRl9FU0NBUEVfQ09E
RSAofjBVTEwpCisjZGVmaW5lIFhFTk9QUk9GX0VTQ0FQRV9DT0RFICh+eGVuX21rX3VsbG9uZygw
KSkKIC8qIFRyYW5zaWVudCBldmVudHMgZm9yIHRoZSB4ZW5vcHJvZi0+b3Byb2ZpbGUgY3B1IGJ1
ZiAqLwogI2RlZmluZSBYRU5PUFJPRl9UUkFDRV9CRUdJTiAxCiAKZGlmZiAtLWdpdCBhL2luY2x1
ZGUveGVuL3hzbS9mbGFza19vcC5oIGIvaW5jbHVkZS94ZW4veHNtL2ZsYXNrX29wLmgKaW5kZXgg
MjMzZGU4MS4uOTcwZWMwNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4veHNtL2ZsYXNrX29wLmgK
KysrIGIvaW5jbHVkZS94ZW4veHNtL2ZsYXNrX29wLmgKQEAgLTI1LDYgKzI1LDggQEAKICNpZm5k
ZWYgX19GTEFTS19PUF9IX18KICNkZWZpbmUgX19GTEFTS19PUF9IX18KIAorI2luY2x1ZGUgIi4u
L2V2ZW50X2NoYW5uZWwuaCIKKwogI2RlZmluZSBYRU5fRkxBU0tfSU5URVJGQUNFX1ZFUlNJT04g
MQogCiBzdHJ1Y3QgeGVuX2ZsYXNrX2xvYWQgewpAQCAtNjgsNiArNzAsNyBAQCBzdHJ1Y3QgeGVu
X2ZsYXNrX3RyYW5zaXRpb24gewogICAgIHVpbnQzMl90IG5ld3NpZDsKIH07CiAKKyNpZiBfX1hF
Tl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDA0MDgwMAogc3RydWN0IHhlbl9mbGFza191c2Vy
bGlzdCB7CiAgICAgLyogSU46IHN0YXJ0aW5nIFNJRCBmb3IgbGlzdCAqLwogICAgIHVpbnQzMl90
IHN0YXJ0X3NpZDsKQEAgLTgxLDYgKzg0LDcgQEAgc3RydWN0IHhlbl9mbGFza191c2VybGlzdCB7
CiAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEUodWludDMyKSBzaWRzOwogICAgIH0gdTsKIH07Cisj
ZW5kaWYKIAogc3RydWN0IHhlbl9mbGFza19ib29sZWFuIHsKICAgICAvKiBJTi9PVVQ6IG51bWVy
aWMgaWRlbnRpZmllciBmb3IgYm9vbGVhbiBbR0VUL1NFVF0KQEAgLTE0OCw2ICsxNTIsMTMgQEAg
c3RydWN0IHhlbl9mbGFza19yZWxhYmVsIHsKICAgICB1aW50MzJfdCBzaWQ7CiB9OwogCitzdHJ1
Y3QgeGVuX2ZsYXNrX2RldmljZXRyZWVfbGFiZWwgeworICAgIC8qIElOICovCisgICAgdWludDMy
X3Qgc2lkOworICAgIHVpbnQzMl90IGxlbmd0aDsKKyAgICBYRU5fR1VFU1RfSEFORExFKGNoYXIp
IHBhdGg7Cit9OworCiBzdHJ1Y3QgeGVuX2ZsYXNrX29wIHsKICAgICB1aW50MzJfdCBjbWQ7CiAj
ZGVmaW5lIEZMQVNLX0xPQUQgICAgICAgICAgICAgIDEKQEAgLTE1OCw3ICsxNjksNyBAQCBzdHJ1
Y3QgeGVuX2ZsYXNrX29wIHsKICNkZWZpbmUgRkxBU0tfQUNDRVNTICAgICAgICAgICAgNgogI2Rl
ZmluZSBGTEFTS19DUkVBVEUgICAgICAgICAgICA3CiAjZGVmaW5lIEZMQVNLX1JFTEFCRUwgICAg
ICAgICAgIDgKLSNkZWZpbmUgRkxBU0tfVVNFUiAgICAgICAgICAgICAgOQorI2RlZmluZSBGTEFT
S19VU0VSICAgICAgICAgICAgICA5ICAvKiBObyBsb25nZXIgaW1wbGVtZW50ZWQgKi8KICNkZWZp
bmUgRkxBU0tfUE9MSUNZVkVSUyAgICAgICAgMTAKICNkZWZpbmUgRkxBU0tfR0VUQk9PTCAgICAg
ICAgICAgMTEKICNkZWZpbmUgRkxBU0tfU0VUQk9PTCAgICAgICAgICAgMTIKQEAgLTE3NCw2ICsx
ODUsNyBAQCBzdHJ1Y3QgeGVuX2ZsYXNrX29wIHsKICNkZWZpbmUgRkxBU0tfREVMX09DT05URVhU
ICAgICAgMjIKICNkZWZpbmUgRkxBU0tfR0VUX1BFRVJfU0lEICAgICAgMjMKICNkZWZpbmUgRkxB
U0tfUkVMQUJFTF9ET01BSU4gICAgMjQKKyNkZWZpbmUgRkxBU0tfREVWSUNFVFJFRV9MQUJFTCAg
MjUKICAgICB1aW50MzJfdCBpbnRlcmZhY2VfdmVyc2lvbjsgLyogWEVOX0ZMQVNLX0lOVEVSRkFD
RV9WRVJTSU9OICovCiAgICAgdW5pb24gewogICAgICAgICBzdHJ1Y3QgeGVuX2ZsYXNrX2xvYWQg
bG9hZDsKQEAgLTE4Myw3ICsxOTUsOSBAQCBzdHJ1Y3QgeGVuX2ZsYXNrX29wIHsKICAgICAgICAg
c3RydWN0IHhlbl9mbGFza19hY2Nlc3MgYWNjZXNzOwogICAgICAgICAvKiBGTEFTS19DUkVBVEUs
IEZMQVNLX1JFTEFCRUwsIEZMQVNLX01FTUJFUiAqLwogICAgICAgICBzdHJ1Y3QgeGVuX2ZsYXNr
X3RyYW5zaXRpb24gdHJhbnNpdGlvbjsKKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwg
MHgwMDA0MDgwMAogICAgICAgICBzdHJ1Y3QgeGVuX2ZsYXNrX3VzZXJsaXN0IHVzZXJsaXN0Owor
I2VuZGlmCiAgICAgICAgIC8qIEZMQVNLX0dFVEJPT0wsIEZMQVNLX1NFVEJPT0wgKi8KICAgICAg
ICAgc3RydWN0IHhlbl9mbGFza19ib29sZWFuIGJvb2xlYW47CiAgICAgICAgIHN0cnVjdCB4ZW5f
Zmxhc2tfc2V0YXZjX3RocmVzaG9sZCBzZXRhdmNfdGhyZXNob2xkOwpAQCAtMTkzLDYgKzIwNyw3
IEBAIHN0cnVjdCB4ZW5fZmxhc2tfb3AgewogICAgICAgICBzdHJ1Y3QgeGVuX2ZsYXNrX29jb250
ZXh0IG9jb250ZXh0OwogICAgICAgICBzdHJ1Y3QgeGVuX2ZsYXNrX3BlZXJzaWQgcGVlcnNpZDsK
ICAgICAgICAgc3RydWN0IHhlbl9mbGFza19yZWxhYmVsIHJlbGFiZWw7CisgICAgICAgIHN0cnVj
dCB4ZW5fZmxhc2tfZGV2aWNldHJlZV9sYWJlbCBkZXZpY2V0cmVlX2xhYmVsOwogICAgIH0gdTsK
IH07CiB0eXBlZGVmIHN0cnVjdCB4ZW5fZmxhc2tfb3AgeGVuX2ZsYXNrX29wX3Q7Ci0tIAoyLjEx
LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5p
b3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpo
dHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9taW5p
b3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Wed Oct 04 13:46:56 2017
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 04 Oct 2017 13:46:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1dzk0m-0004ke-Gp; Wed, 04 Oct 2017 13:46:56 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1dzk0k-0004kR-Tf; Wed, 04 Oct 2017 13:46:55 +0000
Received: from [193.109.254.147] by server-5.bemta-6.messagelabs.com id
 55/24-03454-E46E4D95; Wed, 04 Oct 2017 13:46:54 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrPIsWRWlGSWpSXmKPExsVyoG1Jhq77syu
 RBi23LCzefl3CbPF9y2QmByaPwx+usAQwRrFm5iXlVySwZmxub2Ut2DtHumLGnh72BsYdC0S6
 GDk4JAT8JVrXZHYxcnEICWxklJg2tY0JwtnAKPH5zgW2LkZODhYBFYmPLT2MIDabgIlEf+M8s
 LiIgKLEg5c3WUFsZoFEiXeXV4PVCAtYSRy9dgUszivgJbHwyUp2CPsAo8TO54IgtpCAucSFY5
 PYIOKCEidnPmGBmKMu8WfeJWaQ45gFpCWW/+OACMtLNG+dzQxicwpYSPQ8ngNWzi+gILHl2ks
 wWxTozM6lc1gmMArNQjJ1FpKpsxCmzkIydQEjyypGjeLUorLUIl1jQ72kosz0jJLcxMwcXUMD
 M73c1OLixPTUnMSkYr3k/NxNjMCAZwCCHYxNiwIPMUpyMCmJ8lY/uhIpxJeUn1KZkVicEV9Um
 pNafIhRhoNDSYL32FOgnGBRanpqRVpmDjD2YNISHDxKIry3QNK8xQWJucWZ6RCpU4yKUuK8KS
 AJAZBERmkeXBss3i8xykoJ8zICHSLEU5BalJtZgir/ilGcg1FJmHc9yBSezLwSuOmvgBYzAS2
 e0wS2uCQRISXVwOi3eMpN8R8aupox0kcv8n+VXDbP+Pj5Hr+722J+dpRmru88IX3YOsnWJeD6
 Q43mLZGTX4tN9Amwvnnl1bMJU3M+81oJGh3a+rnK0tTWoOlmUv0+5berNNateFIkuNm7aYJL9
 dKjbOU9T/YF/Pqp4O1TYHVotVuNvqvMVtuHIc1PZjTHugV/WKHEUpyRaKjFXFScCACCnFJp8g
 IAAA==
X-Env-Sender: samuel.thibault@ens-lyon.org
X-Msg-Ref: server-10.tower-27.messagelabs.com!1507124807!96705946!1
X-Originating-IP: [192.134.164.104]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13027 invoked from network); 4 Oct 2017 13:46:47 -0000
Received: from mail3-relais-sop.national.inria.fr (HELO
 mail3-relais-sop.national.inria.fr) (192.134.164.104)
 by server-10.tower-27.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted
 SMTP; 4 Oct 2017 13:46:47 -0000
X-IronPort-AV: E=Sophos;i="5.42,477,1500933600"; d="scan'208";a="239725530"
Received: from unknown (HELO var.youpi.perso.aquilenet.fr) ([193.50.110.99])
 by mail3-relais-sop.national.inria.fr with ESMTP/TLS/AES256-GCM-SHA384;
 04 Oct 2017 15:46:46 +0200
Received: from samy by var.youpi.perso.aquilenet.fr with local (Exim 4.89)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1dzk0b-00047P-U1; Wed, 04 Oct 2017 15:46:45 +0200
Date: Wed, 4 Oct 2017 15:46:45 +0200
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
To: Wei Liu <wei.liu2@citrix.com>
Message-ID: <20171004134645.kwajuornfbzynwcr@var.youpi.perso.aquilenet.fr>
Mail-Followup-To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Wei Liu <wei.liu2@citrix.com>,
 Minios-devel <minios-devel@lists.xenproject.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20171004134330.8008-1-wei.liu2@citrix.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <20171004134330.8008-1-wei.liu2@citrix.com>
Organization: I am not organized
User-Agent: NeoMutt/20170113 (1.7.2)
Cc: Minios-devel <minios-devel@lists.xenproject.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [Minios-devel] [MINIOS PATCH] Update public headers from Xen
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

V2VpIExpdSwgb24gbWVyLiAwNCBvY3QuIDIwMTcgMTQ6NDM6MzAgKzAxMDAsIHdyb3RlOgo+IFNp
Z25lZC1vZmYtYnk6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CgpJIG9ubHkgdmVyaWZp
ZWQgdGhhdCB0aGlzIGlzIHRoZSBzYW1lIGFzIGluIHRoZSBYZW4gc3RhZ2luZyB0cmVlLCBidXQK
aXQncyBwcm9iYWJseSBqdXN0IGZpbmUgZW5vdWdoIGZvciB0aGlzIGNoYW5nZS4KCkFja2VkLWJ5
OiBTYW11ZWwgVGhpYmF1bHQgPHNhbXVlbC50aGliYXVsdEBlbnMtbHlvbi5vcmc+Cgo+IC0tLQo+
ICBpbmNsdWRlL3hlbi9hcmNoLWFybS5oICAgICAgICAgICAgICAgfCAgOTQgKysrLQo+ICBpbmNs
dWRlL3hlbi9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0LmggfCAyNjMgKysrKysrKysrKysKPiAgaW5j
bHVkZS94ZW4vYXJjaC14ODYvY3B1aWQuaCAgICAgICAgIHwgIDMyICstCj4gIGluY2x1ZGUveGVu
L2FyY2gteDg2L2h2bS9zYXZlLmggICAgICB8IDEwMSArKy0tCj4gIGluY2x1ZGUveGVuL2FyY2gt
eDg2L3BtdS5oICAgICAgICAgICB8IDE2NyArKysrKysrCj4gIGluY2x1ZGUveGVuL2FyY2gteDg2
L3hlbi1tY2EuaCAgICAgICB8ICA2MCArLS0KPiAgaW5jbHVkZS94ZW4vYXJjaC14ODYveGVuLXg4
Nl8zMi5oICAgIHwgIDY5ICsrLQo+ICBpbmNsdWRlL3hlbi9hcmNoLXg4Ni94ZW4teDg2XzY0Lmgg
ICAgfCAgODcgKysrLQo+ICBpbmNsdWRlL3hlbi9hcmNoLXg4Ni94ZW4uaCAgICAgICAgICAgfCAg
NzQgKystCj4gIGluY2x1ZGUveGVuL2RvbWN0bC5oICAgICAgICAgICAgICAgICB8IDU1NSArKysr
KysrKysrKysrLS0tLS0tLS0tCj4gIGluY2x1ZGUveGVuL2VsZm5vdGUuaCAgICAgICAgICAgICAg
ICB8ICAgNCArLQo+ICBpbmNsdWRlL3hlbi9lcnJuby5oICAgICAgICAgICAgICAgICAgfCAxMjQg
KysrKysKPiAgaW5jbHVkZS94ZW4vZXZlbnRfY2hhbm5lbC5oICAgICAgICAgIHwgICAyICstCj4g
IGluY2x1ZGUveGVuL2ZlYXR1cmVzLmggICAgICAgICAgICAgICB8ICAgMyArCj4gIGluY2x1ZGUv
eGVuL2djb3YuaCAgICAgICAgICAgICAgICAgICB8IDExNSAtLS0tLQo+ICBpbmNsdWRlL3hlbi9n
cmFudF90YWJsZS5oICAgICAgICAgICAgfCAgMTkgKy0KPiAgaW5jbHVkZS94ZW4vaHZtL2RtX29w
LmggICAgICAgICAgICAgIHwgNDE3ICsrKysrKysrKysrKysrKysrCj4gIGluY2x1ZGUveGVuL2h2
bS9lODIwLmggICAgICAgICAgICAgICB8ICAgOCArLQo+ICBpbmNsdWRlL3hlbi9odm0vaHZtX2lu
Zm9fdGFibGUuaCAgICAgfCAgMTAgKwo+ICBpbmNsdWRlL3hlbi9odm0vaHZtX29wLmggICAgICAg
ICAgICAgfCAzNDAgKysrKystLS0tLS0tLS0KPiAgaW5jbHVkZS94ZW4vaHZtL2h2bV92Y3B1Lmgg
ICAgICAgICAgIHwgMTQ0ICsrKysrKwo+ICBpbmNsdWRlL3hlbi9odm0vaHZtX3hzX3N0cmluZ3Mu
aCAgICAgfCAgIDMgKwo+ICBpbmNsdWRlL3hlbi9odm0vaW9yZXEuaCAgICAgICAgICAgICAgfCAg
MjIgKy0KPiAgaW5jbHVkZS94ZW4vaHZtL3BhcmFtcy5oICAgICAgICAgICAgIHwgMTI5ICsrKysr
LQo+ICBpbmNsdWRlL3hlbi9odm0vc2F2ZS5oICAgICAgICAgICAgICAgfCAgMTAgKy0KPiAgaW5j
bHVkZS94ZW4vaW8vOXBmcy5oICAgICAgICAgICAgICAgIHwgIDQ5ICsrCj4gIGluY2x1ZGUveGVu
L2lvL2Jsa2lmLmggICAgICAgICAgICAgICB8ICA3NCArKy0KPiAgaW5jbHVkZS94ZW4vaW8vY29u
c29sZS5oICAgICAgICAgICAgIHwgICA2ICsKPiAgaW5jbHVkZS94ZW4vaW8vZGlzcGxpZi5oICAg
ICAgICAgICAgIHwgODY0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIGlu
Y2x1ZGUveGVuL2lvL2tiZGlmLmggICAgICAgICAgICAgICB8IDQ3MiArKysrKysrKysrKysrKysr
Ky0tCj4gIGluY2x1ZGUveGVuL2lvL2xpYnhlbnZjaGFuLmggICAgICAgICB8ICAyNiArLQo+ICBp
bmNsdWRlL3hlbi9pby9uZXRpZi5oICAgICAgICAgICAgICAgfCA3NzIgKysrKysrKysrKysrKysr
KysrKysrKysrKysrKy0tLQo+ICBpbmNsdWRlL3hlbi9pby9wcm90b2NvbHMuaCAgICAgICAgICAg
fCAgIDIgKwo+ICBpbmNsdWRlL3hlbi9pby9wdmNhbGxzLmggICAgICAgICAgICAgfCAxNTMgKysr
KysrKwo+ICBpbmNsdWRlL3hlbi9pby9yaW5nLmggICAgICAgICAgICAgICAgfCAxNzYgKysrKysr
LQo+ICBpbmNsdWRlL3hlbi9pby9zbmRpZi5oICAgICAgICAgICAgICAgfCA4MDMgKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysKPiAgaW5jbHVkZS94ZW4vaW8vdXNiaWYuaCAgICAgICAg
ICAgICAgIHwgMTQ2ICsrKysrLQo+ICBpbmNsdWRlL3hlbi9pby92c2NzaWlmLmggICAgICAgICAg
ICAgfCAgNzQgKystCj4gIGluY2x1ZGUveGVuL2lvL3hzX3dpcmUuaCAgICAgICAgICAgICB8ICAx
MCArLQo+ICBpbmNsdWRlL3hlbi9rZXhlYy5oICAgICAgICAgICAgICAgICAgfCAgMTQgKwo+ICBp
bmNsdWRlL3hlbi9tZW1fZXZlbnQuaCAgICAgICAgICAgICAgfCAxMzQgLS0tLS0tCj4gIGluY2x1
ZGUveGVuL21lbW9yeS5oICAgICAgICAgICAgICAgICB8IDExOCArKysrLQo+ICBpbmNsdWRlL3hl
bi9waHlzZGV2LmggICAgICAgICAgICAgICAgfCAgIDcgKwo+ICBpbmNsdWRlL3hlbi9wbGF0Zm9y
bS5oICAgICAgICAgICAgICAgfCAgOTUgKysrLQo+ICBpbmNsdWRlL3hlbi9wbXUuaCAgICAgICAg
ICAgICAgICAgICAgfCAxNDMgKysrKysrCj4gIGluY2x1ZGUveGVuL3NjaGVkLmggICAgICAgICAg
ICAgICAgICB8ICAyOSArLQo+ICBpbmNsdWRlL3hlbi9zeXNjdGwuaCAgICAgICAgICAgICAgICAg
fCA2NDkgKysrKysrKysrKysrKysrKysrKysrLS0tLS0KPiAgaW5jbHVkZS94ZW4vdG1lbS5oICAg
ICAgICAgICAgICAgICAgIHwgIDY0ICstLQo+ICBpbmNsdWRlL3hlbi90cmFjZS5oICAgICAgICAg
ICAgICAgICAgfCAgMTAgKy0KPiAgaW5jbHVkZS94ZW4vdmNwdS5oICAgICAgICAgICAgICAgICAg
IHwgIDEyICstCj4gIGluY2x1ZGUveGVuL3ZlcnNpb24uaCAgICAgICAgICAgICAgICB8ICAyNCAr
LQo+ICBpbmNsdWRlL3hlbi92bV9ldmVudC5oICAgICAgICAgICAgICAgfCAzNzggKysrKysrKysr
KysrKysrCj4gIGluY2x1ZGUveGVuL3hlbi1jb21wYXQuaCAgICAgICAgICAgICB8ICAgMiArLQo+
ICBpbmNsdWRlL3hlbi94ZW4uaCAgICAgICAgICAgICAgICAgICAgfCAxNDQgKysrKy0tCj4gIGlu
Y2x1ZGUveGVuL3hlbm9wcm9mLmggICAgICAgICAgICAgICB8ICAgMiArLQo+ICBpbmNsdWRlL3hl
bi94c20vZmxhc2tfb3AuaCAgICAgICAgICAgfCAgMTcgKy0KPiAgNTYgZmlsZXMgY2hhbmdlZCwg
NzA0MyBpbnNlcnRpb25zKCspLCAxMjc4IGRlbGV0aW9ucygtKQo+ICBjcmVhdGUgbW9kZSAxMDA2
NDQgaW5jbHVkZS94ZW4vYXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCj4gIGNyZWF0ZSBtb2RlIDEw
MDY0NCBpbmNsdWRlL3hlbi9hcmNoLXg4Ni9wbXUuaAo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgaW5j
bHVkZS94ZW4vZXJybm8uaAo+ICBkZWxldGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4vZ2Nvdi5o
Cj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi9odm0vZG1fb3AuaAo+ICBjcmVhdGUg
bW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4vaHZtL2h2bV92Y3B1LmgKPiAgY3JlYXRlIG1vZGUgMTAw
NjQ0IGluY2x1ZGUveGVuL2lvLzlwZnMuaAo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94
ZW4vaW8vZGlzcGxpZi5oCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi9pby9wdmNh
bGxzLmgKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL2lvL3NuZGlmLmgKPiAgZGVs
ZXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL21lbV9ldmVudC5oCj4gIGNyZWF0ZSBtb2RlIDEw
MDY0NCBpbmNsdWRlL3hlbi9wbXUuaAo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4v
dm1fZXZlbnQuaAo+IAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9hcmNoLWFybS5oIGIvaW5j
bHVkZS94ZW4vYXJjaC1hcm0uaAo+IGluZGV4IDEyNGZjOTAuLjU3MDhjZDIgMTAwNjQ0Cj4gLS0t
IGEvaW5jbHVkZS94ZW4vYXJjaC1hcm0uaAo+ICsrKyBiL2luY2x1ZGUveGVuL2FyY2gtYXJtLmgK
PiBAQCAtNjEsMTUgKzYxLDE1IEBACj4gICAqCj4gICAqIEFsbCBtZW1vcnkgd2hpY2ggaXMgc2hh
cmVkIHdpdGggb3RoZXIgZW50aXRpZXMgaW4gdGhlIHN5c3RlbQo+ICAgKiAoaW5jbHVkaW5nIHRo
ZSBoeXBlcnZpc29yIGFuZCBvdGhlciBndWVzdHMpIG11c3QgcmVzaWRlIGluIG1lbW9yeQo+IC0g
KiB3aGljaCBpcyBtYXBwZWQgYXMgTm9ybWFsIElubmVyLWNhY2hlYWJsZS4gVGhpcyBhcHBsaWVz
IHRvOgo+ICsgKiB3aGljaCBpcyBtYXBwZWQgYXMgTm9ybWFsIElubmVyIFdyaXRlLUJhY2sgT3V0
ZXIgV3JpdGUtQmFjayBJbm5lci1TaGFyZWFibGUuCj4gKyAqIFRoaXMgYXBwbGllcyB0bzoKPiAg
ICogIC0gaHlwZXJjYWxsIGFyZ3VtZW50cyBwYXNzZWQgdmlhIGEgcG9pbnRlciB0byBndWVzdCBt
ZW1vcnkuCj4gICAqICAtIG1lbW9yeSBzaGFyZWQgdmlhIHRoZSBncmFudCB0YWJsZSBtZWNoYW5p
c20gKGluY2x1ZGluZyBQViBJL08KPiAgICogICAgcmluZ3MgZXRjKS4KPiAgICogIC0gbWVtb3J5
IHNoYXJlZCB3aXRoIHRoZSBoeXBlcnZpc29yIChzdHJ1Y3Qgc2hhcmVkX2luZm8sIHN0cnVjdAo+
ICAgKiAgICB2Y3B1X2luZm8sIHRoZSBncmFudCB0YWJsZSwgZXRjKS4KPiAgICoKPiAtICogQW55
IElubmVyIGNhY2hlIGFsbG9jYXRpb24gc3RyYXRlZ3kgKFdyaXRlLUJhY2ssIFdyaXRlLVRocm91
Z2ggZXRjKQo+IC0gKiBpcyBhY2NlcHRhYmxlLiBUaGVyZSBpcyBubyByZXN0cmljdGlvbiBvbiB0
aGUgT3V0ZXItY2FjaGVhYmlsaXR5Lgo+ICsgKiBBbnkgY2FjaGUgYWxsb2NhdGlvbiBoaW50cyBh
cmUgYWNjZXB0YWJsZS4KPiAgICovCj4gIAo+ICAvKgo+IEBAIC0xNjUsNiArMTY1LDcgQEAKPiAg
Cj4gICNkZWZpbmUgWEVOX0hZUEVSQ0FMTF9UQUcgICAwWEVBMQo+ICAKPiArI2RlZmluZSAgaW50
NjRfYWxpZ25lZF90ICBpbnQ2NF90IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkpKQo+ICAjZGVm
aW5lIHVpbnQ2NF9hbGlnbmVkX3QgdWludDY0X3QgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg4KSkp
Cj4gIAo+ICAjaWZuZGVmIF9fQVNTRU1CTFlfXwo+IEBAIC0xNzIsNyArMTczLDcgQEAKPiAgICAg
IHR5cGVkZWYgdW5pb24geyB0eXBlICpwOyB1bnNpZ25lZCBsb25nIHE7IH0gICAgICAgICAgICAg
ICAgIFwKPiAgICAgICAgICBfX2d1ZXN0X2hhbmRsZV8gIyMgbmFtZTsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKPiAgICAgIHR5cGVkZWYgdW5pb24geyB0eXBlICpwOyB1aW50NjRf
YWxpZ25lZF90IHE7IH0gICAgICAgICAgICAgIFwKPiAtICAgICAgICBfX2d1ZXN0X2hhbmRsZV82
NF8gIyMgbmFtZTsKPiArICAgICAgICBfX2d1ZXN0X2hhbmRsZV82NF8gIyMgbmFtZQo+ICAKPiAg
LyoKPiAgICogWEVOX0dVRVNUX0hBTkRMRSByZXByZXNlbnRzIGEgZ3Vlc3QgcG9pbnRlciwgd2hl
biBwYXNzZWQgYXMgYSBmaWVsZAo+IEBAIC0xOTQsOSArMTk1LDYgQEAKPiAgICAgICAgICBfc3hn
aHJfdG1wLT5xID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICAgICAg
ICAgIF9zeGdocl90bXAtPnAgPSB2YWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Cj4gICAgICB9IHdoaWxlICggMCApCj4gLSNpZmRlZiBfX1hFTl9UT09MU19fCj4gLSNkZWZpbmUg
Z2V0X3hlbl9ndWVzdF9oYW5kbGUodmFsLCBobmQpICBkbyB7IHZhbCA9IChobmQpLnA7IH0gd2hp
bGUgKDApCj4gLSNlbmRpZgo+ICAjZGVmaW5lIHNldF94ZW5fZ3Vlc3RfaGFuZGxlKGhuZCwgdmFs
KSBzZXRfeGVuX2d1ZXN0X2hhbmRsZV9yYXcoaG5kLCB2YWwpCj4gIAo+ICAjaWYgZGVmaW5lZChf
X0dOVUNfXykgJiYgIWRlZmluZWQoX19TVFJJQ1RfQU5TSV9fKQo+IEBAIC0yOTcsNyArMjk1LDM1
IEBAIHN0cnVjdCB2Y3B1X2d1ZXN0X2NvbnRleHQgewo+ICB9Owo+ICB0eXBlZGVmIHN0cnVjdCB2
Y3B1X2d1ZXN0X2NvbnRleHQgdmNwdV9ndWVzdF9jb250ZXh0X3Q7Cj4gIERFRklORV9YRU5fR1VF
U1RfSEFORExFKHZjcHVfZ3Vlc3RfY29udGV4dF90KTsKPiAtI2VuZGlmCj4gKwo+ICsvKgo+ICsg
KiBzdHJ1Y3QgeGVuX2FyY2hfZG9tYWluY29uZmlnJ3MgQUJJIGlzIGNvdmVyZWQgYnkKPiArICog
WEVOX0RPTUNUTF9JTlRFUkZBQ0VfVkVSU0lPTi4KPiArICovCj4gKyNkZWZpbmUgWEVOX0RPTUNU
TF9DT05GSUdfR0lDX05BVElWRSAgICAwCj4gKyNkZWZpbmUgWEVOX0RPTUNUTF9DT05GSUdfR0lD
X1YyICAgICAgICAxCj4gKyNkZWZpbmUgWEVOX0RPTUNUTF9DT05GSUdfR0lDX1YzICAgICAgICAy
Cj4gK3N0cnVjdCB4ZW5fYXJjaF9kb21haW5jb25maWcgewo+ICsgICAgLyogSU4vT1VUICovCj4g
KyAgICB1aW50OF90IGdpY192ZXJzaW9uOwo+ICsgICAgLyogSU4gKi8KPiArICAgIHVpbnQzMl90
IG5yX3NwaXM7Cj4gKyAgICAvKgo+ICsgICAgICogT1VUCj4gKyAgICAgKiBCYXNlZCBvbiB0aGUg
cHJvcGVydHkgY2xvY2stZnJlcXVlbmN5IGluIHRoZSBEVCB0aW1lciBub2RlLgo+ICsgICAgICog
VGhlIHByb3BlcnR5IG1heSBiZSBwcmVzZW50IHdoZW4gdGhlIGJvb3Rsb2FkZXIvZmlybXdhcmUg
ZG9lc24ndAo+ICsgICAgICogc2V0IGNvcnJlY3RseSBDTlRGUlEgd2hpY2ggaG9sZCB0aGUgdGlt
ZXIgZnJlcXVlbmN5Lgo+ICsgICAgICoKPiArICAgICAqIEFzIGl0J3Mgbm90IHBvc3NpYmxlIHRv
IHRyYXAgdGhpcyByZWdpc3Rlciwgd2UgaGF2ZSB0byByZXBsaWNhdGUKPiArICAgICAqIHRoZSB2
YWx1ZSBpbiB0aGUgZ3Vlc3QgRFQuCj4gKyAgICAgKgo+ICsgICAgICogPSAwID0+IHByb3BlcnR5
IG5vdCBwcmVzZW50Cj4gKyAgICAgKiA+IDAgPT4gVmFsdWUgb2YgdGhlIHByb3BlcnR5Cj4gKyAg
ICAgKgo+ICsgICAgICovCj4gKyAgICB1aW50MzJfdCBjbG9ja19mcmVxdWVuY3k7Cj4gK307Cj4g
KyNlbmRpZiAvKiBfX1hFTl9fIHx8IF9fWEVOX1RPT0xTX18gKi8KPiAgCj4gIHN0cnVjdCBhcmNo
X3ZjcHVfaW5mbyB7Cj4gIH07Cj4gQEAgLTM2NSwzOCArMzkxLDQ2IEBAIHR5cGVkZWYgdWludDY0
X3QgeGVuX2NhbGxiYWNrX3Q7Cj4gICAqLwo+ICAKPiAgLyogdkdJQyB2MiBtYXBwaW5ncyAqLwo+
IC0jZGVmaW5lIEdVRVNUX0dJQ0RfQkFTRSAgIDB4MDMwMDEwMDBVTEwKPiAtI2RlZmluZSBHVUVT
VF9HSUNEX1NJWkUgICAweDAwMDAxMDAwVUxMCj4gLSNkZWZpbmUgR1VFU1RfR0lDQ19CQVNFICAg
MHgwMzAwMjAwMFVMTAo+IC0jZGVmaW5lIEdVRVNUX0dJQ0NfU0laRSAgIDB4MDAwMDAxMDBVTEwK
PiArI2RlZmluZSBHVUVTVF9HSUNEX0JBU0UgICB4ZW5fbWtfdWxsb25nKDB4MDMwMDEwMDApCj4g
KyNkZWZpbmUgR1VFU1RfR0lDRF9TSVpFICAgeGVuX21rX3VsbG9uZygweDAwMDAxMDAwKQo+ICsj
ZGVmaW5lIEdVRVNUX0dJQ0NfQkFTRSAgIHhlbl9ta191bGxvbmcoMHgwMzAwMjAwMCkKPiArI2Rl
ZmluZSBHVUVTVF9HSUNDX1NJWkUgICB4ZW5fbWtfdWxsb25nKDB4MDAwMDIwMDApCj4gIAo+ICAv
KiB2R0lDIHYzIG1hcHBpbmdzICovCj4gLSNkZWZpbmUgR1VFU1RfR0lDVjNfR0lDRF9CQVNFICAg
ICAgMHgwMzAwMTAwMFVMTAo+IC0jZGVmaW5lIEdVRVNUX0dJQ1YzX0dJQ0RfU0laRSAgICAgIDB4
MDAwMTAwMDBVTEwKPiArI2RlZmluZSBHVUVTVF9HSUNWM19HSUNEX0JBU0UgICAgICB4ZW5fbWtf
dWxsb25nKDB4MDMwMDEwMDApCj4gKyNkZWZpbmUgR1VFU1RfR0lDVjNfR0lDRF9TSVpFICAgICAg
eGVuX21rX3VsbG9uZygweDAwMDEwMDAwKQo+ICAKPiAtI2RlZmluZSBHVUVTVF9HSUNWM19SRElT
VF9TVFJJREUgICAweDIwMDAwVUxMCj4gKyNkZWZpbmUgR1VFU1RfR0lDVjNfUkRJU1RfU1RSSURF
ICAgeGVuX21rX3VsbG9uZygweDAwMDIwMDAwKQo+ICAjZGVmaW5lIEdVRVNUX0dJQ1YzX1JESVNU
X1JFR0lPTlMgIDEKPiAgCj4gLSNkZWZpbmUgR1VFU1RfR0lDVjNfR0lDUjBfQkFTRSAgICAgMHgw
MzAyMDAwMFVMTCAgICAvKiB2Q1BVMCAtIHZDUFU3ICovCj4gLSNkZWZpbmUgR1VFU1RfR0lDVjNf
R0lDUjBfU0laRSAgICAgMHgwMDEwMDAwMFVMTAo+ICsjZGVmaW5lIEdVRVNUX0dJQ1YzX0dJQ1Iw
X0JBU0UgICAgIHhlbl9ta191bGxvbmcoMHgwMzAyMDAwMCkgLyogdkNQVTAuLjEyNyAqLwo+ICsj
ZGVmaW5lIEdVRVNUX0dJQ1YzX0dJQ1IwX1NJWkUgICAgIHhlbl9ta191bGxvbmcoMHgwMTAwMDAw
MCkKPiArCj4gKy8qIEFDUEkgdGFibGVzIHBoeXNpY2FsIGFkZHJlc3MgKi8KPiArI2RlZmluZSBH
VUVTVF9BQ1BJX0JBU0UgMHgyMDAwMDAwMFVMTAo+ICsjZGVmaW5lIEdVRVNUX0FDUElfU0laRSAw
eDAyMDAwMDAwVUxMCj4gKwo+ICsvKiBQTDAxMSBtYXBwaW5ncyAqLwo+ICsjZGVmaW5lIEdVRVNU
X1BMMDExX0JBU0UgICAgMHgyMjAwMDAwMFVMTAo+ICsjZGVmaW5lIEdVRVNUX1BMMDExX1NJWkUg
ICAgMHgwMDAwMTAwMFVMTAo+ICAKPiAgLyoKPiAgICogMTZNQiA9PSA0MDk2IHBhZ2VzIHJlc2Vy
dmVkIGZvciBndWVzdCB0byB1c2UgYXMgYSByZWdpb24gdG8gbWFwIGl0cwo+ICAgKiBncmFudCB0
YWJsZSBpbi4KPiAgICovCj4gLSNkZWZpbmUgR1VFU1RfR05UVEFCX0JBU0UgMHgzODAwMDAwMFVM
TAo+IC0jZGVmaW5lIEdVRVNUX0dOVFRBQl9TSVpFIDB4MDEwMDAwMDBVTEwKPiArI2RlZmluZSBH
VUVTVF9HTlRUQUJfQkFTRSB4ZW5fbWtfdWxsb25nKDB4MzgwMDAwMDApCj4gKyNkZWZpbmUgR1VF
U1RfR05UVEFCX1NJWkUgeGVuX21rX3VsbG9uZygweDAxMDAwMDAwKQo+ICAKPiAtI2RlZmluZSBH
VUVTVF9NQUdJQ19CQVNFICAweDM5MDAwMDAwVUxMCj4gLSNkZWZpbmUgR1VFU1RfTUFHSUNfU0la
RSAgMHgwMTAwMDAwMFVMTAo+ICsjZGVmaW5lIEdVRVNUX01BR0lDX0JBU0UgIHhlbl9ta191bGxv
bmcoMHgzOTAwMDAwMCkKPiArI2RlZmluZSBHVUVTVF9NQUdJQ19TSVpFICB4ZW5fbWtfdWxsb25n
KDB4MDEwMDAwMDApCj4gIAo+ICAjZGVmaW5lIEdVRVNUX1JBTV9CQU5LUyAgIDIKPiAgCj4gLSNk
ZWZpbmUgR1VFU1RfUkFNMF9CQVNFICAgMHg0MDAwMDAwMFVMTCAvKiAzR0Igb2YgbG93IFJBTSBA
IDFHQiAqLwo+IC0jZGVmaW5lIEdVRVNUX1JBTTBfU0laRSAgIDB4YzAwMDAwMDBVTEwKPiArI2Rl
ZmluZSBHVUVTVF9SQU0wX0JBU0UgICB4ZW5fbWtfdWxsb25nKDB4NDAwMDAwMDApIC8qIDNHQiBv
ZiBsb3cgUkFNIEAgMUdCICovCj4gKyNkZWZpbmUgR1VFU1RfUkFNMF9TSVpFICAgeGVuX21rX3Vs
bG9uZygweGMwMDAwMDAwKQo+ICAKPiAtI2RlZmluZSBHVUVTVF9SQU0xX0JBU0UgICAweDAyMDAw
MDAwMDBVTEwgLyogMTAxNkdCIG9mIFJBTSBAIDhHQiAqLwo+IC0jZGVmaW5lIEdVRVNUX1JBTTFf
U0laRSAgIDB4ZmUwMDAwMDAwMFVMTAo+ICsjZGVmaW5lIEdVRVNUX1JBTTFfQkFTRSAgIHhlbl9t
a191bGxvbmcoMHgwMjAwMDAwMDAwKSAvKiAxMDE2R0Igb2YgUkFNIEAgOEdCICovCj4gKyNkZWZp
bmUgR1VFU1RfUkFNMV9TSVpFICAgeGVuX21rX3VsbG9uZygweGZlMDAwMDAwMDApCj4gIAo+ICAj
ZGVmaW5lIEdVRVNUX1JBTV9CQVNFICAgIEdVRVNUX1JBTTBfQkFTRSAvKiBMb3dlc3QgUkFNIGFk
ZHJlc3MgKi8KPiAgLyogTGFyZ2VzdCBhbW91bnQgb2YgYWN0dWFsIFJBTSwgbm90IGluY2x1ZGlu
ZyBob2xlcyAqLwo+IEBAIC00MDUsMTIgKzQzOSwxNyBAQCB0eXBlZGVmIHVpbnQ2NF90IHhlbl9j
YWxsYmFja190Owo+ICAjZGVmaW5lIEdVRVNUX1JBTV9CQU5LX0JBU0VTICAgeyBHVUVTVF9SQU0w
X0JBU0UsIEdVRVNUX1JBTTFfQkFTRSB9Cj4gICNkZWZpbmUgR1VFU1RfUkFNX0JBTktfU0laRVMg
ICB7IEdVRVNUX1JBTTBfU0laRSwgR1VFU1RfUkFNMV9TSVpFIH0KPiAgCj4gKy8qIEN1cnJlbnQg
c3VwcG9ydGVkIGd1ZXN0IFZDUFVzICovCj4gKyNkZWZpbmUgR1VFU1RfTUFYX1ZDUFVTIDEyOAo+
ICsKPiAgLyogSW50ZXJydXB0cyAqLwo+ICAjZGVmaW5lIEdVRVNUX1RJTUVSX1ZJUlRfUFBJICAg
IDI3Cj4gICNkZWZpbmUgR1VFU1RfVElNRVJfUEhZU19TX1BQSSAgMjkKPiAgI2RlZmluZSBHVUVT
VF9USU1FUl9QSFlTX05TX1BQSSAzMAo+ICAjZGVmaW5lIEdVRVNUX0VWVENITl9QUEkgICAgICAg
IDMxCj4gIAo+ICsjZGVmaW5lIEdVRVNUX1ZQTDAxMV9TUEkgICAgICAgIDMyCj4gKwo+ICAvKiBQ
U0NJIGZ1bmN0aW9ucyAqLwo+ICAjZGVmaW5lIFBTQ0lfY3B1X3N1c3BlbmQgMAo+ICAjZGVmaW5l
IFBTQ0lfY3B1X29mZiAgICAgMQo+IEBAIC00MTksNiArNDU4LDExIEBAIHR5cGVkZWYgdWludDY0
X3QgeGVuX2NhbGxiYWNrX3Q7Cj4gIAo+ICAjZW5kaWYKPiAgCj4gKyNpZm5kZWYgX19BU1NFTUJM
WV9fCj4gKy8qIFN0dWIgZGVmaW5pdGlvbiBvZiBQTVUgc3RydWN0dXJlICovCj4gK3R5cGVkZWYg
c3RydWN0IHhlbl9wbXVfYXJjaCB7IHVpbnQ4X3QgZHVtbXk7IH0geGVuX3BtdV9hcmNoX3Q7Cj4g
KyNlbmRpZgo+ICsKPiAgI2VuZGlmIC8qICBfX1hFTl9QVUJMSUNfQVJDSF9BUk1fSF9fICovCj4g
IAo+ICAvKgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0
LmggYi9pbmNsdWRlL3hlbi9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0LmgKPiBuZXcgZmlsZSBtb2Rl
IDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjBlZTNlYTMKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIv
aW5jbHVkZS94ZW4vYXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCj4gQEAgLTAsMCArMSwyNjMgQEAK
PiArLyoKPiArICogYXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCj4gKyAqCj4gKyAqIENQVSBmZWF0
dXJlc2V0IGRlZmluaXRpb25zCj4gKyAqCj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50
ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKPiArICog
b2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUg
IlNvZnR3YXJlIiksIHRvCj4gKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJp
Y3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCj4gKyAqIHJpZ2h0cyB0byB1
c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2Us
IGFuZC9vcgo+ICsgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQg
cGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwo+ICsgKiBmdXJuaXNoZWQgdG8gZG8gc28s
IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+ICsgKgo+ICsgKiBUaGUgYWJv
dmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBp
bmNsdWRlZCBpbgo+ICsgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRo
ZSBTb2Z0d2FyZS4KPiArICoKPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIs
IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiArICogSU1QTElFRCwg
SU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFksCj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS
SU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQo+ICsgKiBBVVRIT1JTIE9SIENPUFlSSUdI
VCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4gKyAq
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI
RVJXSVNFLCBBUklTSU5HCj4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEgg
VEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKPiArICogREVBTElOR1MgSU4gVEhFIFNP
RlRXQVJFLgo+ICsgKgo+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMTUsIDIwMTYgQ2l0cml4IFN5c3Rl
bXMsIEluYy4KPiArICovCj4gKwo+ICsvKgo+ICsgKiBUaGVyZSBhcmUgdHdvIGV4cGVjdGVkIHdh
eXMgb2YgaW5jbHVkaW5nIHRoaXMgaGVhZGVyLgo+ICsgKgo+ICsgKiAxKSBUaGUgImRlZmF1bHQi
IGNhc2UgKGV4cGVjdGVkIGZyb20gdG9vbHMgZXRjKS4KPiArICoKPiArICogU2ltcGx5ICNpbmNs
dWRlIDxwdWJsaWMvYXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oPgo+ICsgKgo+ICsgKiBJbiB0aGlz
IGNpcmN1bXN0YW5jZSwgbm9ybWFsIGhlYWRlciBndWFyZHMgYXBwbHkgYW5kIHRoZSBpbmNsdWRl
ciBzaGFsbCBnZXQKPiArICogYW4gZW51bWVyYXRpb24gaW4gdGhlIFhFTl9YODZfRkVBVFVSRV94
eHggbmFtZXNwYWNlLgo+ICsgKgo+ICsgKiAyKSBUaGUgc3BlY2lhbCBjYXNlIHdoZXJlIHRoZSBp
bmNsdWRlciBwcm92aWRlcyBYRU5fQ1BVRkVBVFVSRSgpIGluIHNjb3BlLgo+ICsgKgo+ICsgKiBJ
biB0aGlzIGNhc2UsIG5vIGluY2x1c2lvbiBndWFyZHMgYXBwbHkgYW5kIHRoZSBjYWxsZXIgaXMg
cmVzcG9uc2libGUgZm9yCj4gKyAqIHRoZWlyIFhFTl9DUFVGRUFUVVJFKCkgYmVpbmcgYXBwcm9w
cmlhdGUgaW4gdGhlIGluY2x1ZGVkIGNvbnRleHQuCj4gKyAqLwo+ICsKPiArI2lmbmRlZiBYRU5f
Q1BVRkVBVFVSRQo+ICsKPiArLyoKPiArICogSW5jbHVkZXIgaGFzIG5vdCBwcm92aWRlZCBhIGN1
c3RvbSBYRU5fQ1BVRkVBVFVSRSgpLiAgQXJyYW5nZSBmb3Igbm9ybWFsCj4gKyAqIGhlYWRlciBn
dWFyZHMsIGFuIGVudW0gYW5kIGNvbnN0YW50cyBpbiB0aGUgWEVOX1g4Nl9GRUFUVVJFX3h4eCBu
YW1lc3BhY2UuCj4gKyAqLwo+ICsjaWZuZGVmIF9fWEVOX1BVQkxJQ19BUkNIX1g4Nl9DUFVGRUFU
VVJFU0VUX0hfXwo+ICsjZGVmaW5lIF9fWEVOX1BVQkxJQ19BUkNIX1g4Nl9DUFVGRUFUVVJFU0VU
X0hfXwo+ICsKPiArI2RlZmluZSBYRU5fQ1BVRkVBVFVSRVNFVF9ERUZBVUxUX0lOQ0xVREUKPiAr
Cj4gKyNkZWZpbmUgWEVOX0NQVUZFQVRVUkUobmFtZSwgdmFsdWUpIFhFTl9YODZfRkVBVFVSRV8j
I25hbWUgPSB2YWx1ZSwKPiArZW51bSB7Cj4gKwo+ICsjZW5kaWYgLyogX19YRU5fUFVCTElDX0FS
Q0hfWDg2X0NQVUZFQVRVUkVTRVRfSF9fICovCj4gKyNlbmRpZiAvKiAhWEVOX0NQVUZFQVRVUkUg
Ki8KPiArCj4gKwo+ICsjaWZkZWYgWEVOX0NQVUZFQVRVUkUKPiArLyoKPiArICogQSBmZWF0dXJl
c2V0IGlzIGEgYml0bWFwIG9mIHg4NiBmZWF0dXJlcywgcmVwcmVzZW50ZWQgYXMgYSBjb2xsZWN0
aW9uIG9mCj4gKyAqIDMyYml0IHdvcmRzLgo+ICsgKgo+ICsgKiBXb3JkcyBhcmUgYXMgc3BlY2lm
aWVkIGluIHZlbmRvcnMgcHJvZ3JhbW1pbmcgbWFudWFscywgYW5kIHNoYWxsIG5vdAo+ICsgKiBj
b250YWluIGFueSBzeW50aGVzaWVkIHZhbHVlcy4gIE5ldyB3b3JkcyBtYXkgYmUgYWRkZWQgdG8g
dGhlIGVuZCBvZgo+ICsgKiBmZWF0dXJlc2V0Lgo+ICsgKgo+ICsgKiBBbGwgZmVhdHVyZXNldCB3
b3JkcyBjdXJyZW50bHkgb3JpZ2luYXRlIGZyb20gbGVhdmVzIHNwZWNpZmllZCBmb3IgdGhlCj4g
KyAqIENQVUlEIGluc3RydWN0aW9uLCBidXQgdGhpcyBpcyBub3QgcHJlY2x1ZGUgb3RoZXIgc291
cmNlcyBvZiBpbmZvcm1hdGlvbi4KPiArICovCj4gKwo+ICsvKgo+ICsgKiBBdHRyaWJ1dGUgc3lu
dGF4Ogo+ICsgKgo+ICsgKiBBdHRyaWJ1dGVzIGZvciBhIHBhcnRpY3VsYXIgZmVhdHVyZSBhcmUg
cHJvdmlkZWQgYXMgY2hhcmFjdGVycyBiZWZvcmUgdGhlCj4gKyAqIGZpcnN0IHNwYWNlIGluIHRo
ZSBjb21tZW50IGltbWVkaWF0ZWx5IGZvbGxvd2luZyB0aGUgZmVhdHVyZSB2YWx1ZS4gIE5vdGUg
LQo+ICsgKiBub25lIG9mIHRoZXNlIGF0dHJpYnV0ZXMgZm9ybSBwYXJ0IG9mIHRoZSBYZW4gcHVi
bGljIEFCSS4KPiArICoKPiArICogU3BlY2lhbDogJyEnCj4gKyAqICAgVGhpcyBiaXQgaGFzIHNw
ZWNpYWwgcHJvcGVydGllcyBhbmQgaXMgbm90IGEgc3RyYWlnaHQgaW5kaWNhdGlvbiBvZiBhCj4g
KyAqICAgcGllY2Ugb2YgbmV3IGZ1bmN0aW9uYWxpdHkuICBYZW4gd2lsbCBoYW5kbGUgdGhlc2Ug
ZGlmZmVyZW50bHksCj4gKyAqICAgYW5kIG1heSBvdmVycmlkZSB0b29sc3RhY2sgc2V0dGluZ3Mg
Y29tcGxldGVseS4KPiArICoKPiArICogQXBwbGljYWJpbGl0eSB0byBndWVzdHM6ICdBJywgJ1Mn
IG9yICdIJwo+ICsgKiAgICdBJyA9IEFsbCBndWVzdHMuCj4gKyAqICAgJ1MnID0gQWxsIEhWTSBn
dWVzdHMgKG5vdCBQViBndWVzdHMpLgo+ICsgKiAgICdIJyA9IEhWTSBIQVAgZ3Vlc3RzIChub3Qg
UFYgb3IgSFZNIFNoYWRvdyBndWVzdHMpLgo+ICsgKi8KPiArCj4gKy8qIEludGVsLWRlZmluZWQg
Q1BVIGZlYXR1cmVzLCBDUFVJRCBsZXZlbCAweDAwMDAwMDAxLmVkeCwgd29yZCAwICovCj4gK1hF
Tl9DUFVGRUFUVVJFKEZQVSwgICAgICAgICAgIDAqMzIrIDApIC8qQSAgT25ib2FyZCBGUFUgKi8K
PiArWEVOX0NQVUZFQVRVUkUoVk1FLCAgICAgICAgICAgMCozMisgMSkgLypTICBWaXJ0dWFsIE1v
ZGUgRXh0ZW5zaW9ucyAqLwo+ICtYRU5fQ1BVRkVBVFVSRShERSwgICAgICAgICAgICAwKjMyKyAy
KSAvKkEgIERlYnVnZ2luZyBFeHRlbnNpb25zICovCj4gK1hFTl9DUFVGRUFUVVJFKFBTRSwgICAg
ICAgICAgIDAqMzIrIDMpIC8qUyAgUGFnZSBTaXplIEV4dGVuc2lvbnMgKi8KPiArWEVOX0NQVUZF
QVRVUkUoVFNDLCAgICAgICAgICAgMCozMisgNCkgLypBICBUaW1lIFN0YW1wIENvdW50ZXIgKi8K
PiArWEVOX0NQVUZFQVRVUkUoTVNSLCAgICAgICAgICAgMCozMisgNSkgLypBICBNb2RlbC1TcGVj
aWZpYyBSZWdpc3RlcnMsIFJETVNSLCBXUk1TUiAqLwo+ICtYRU5fQ1BVRkVBVFVSRShQQUUsICAg
ICAgICAgICAwKjMyKyA2KSAvKkEgIFBoeXNpY2FsIEFkZHJlc3MgRXh0ZW5zaW9ucyAqLwo+ICtY
RU5fQ1BVRkVBVFVSRShNQ0UsICAgICAgICAgICAwKjMyKyA3KSAvKkEgIE1hY2hpbmUgQ2hlY2sg
QXJjaGl0ZWN0dXJlICovCj4gK1hFTl9DUFVGRUFUVVJFKENYOCwgICAgICAgICAgIDAqMzIrIDgp
IC8qQSAgQ01QWENIRzggaW5zdHJ1Y3Rpb24gKi8KPiArWEVOX0NQVUZFQVRVUkUoQVBJQywgICAg
ICAgICAgMCozMisgOSkgLyohQSBPbmJvYXJkIEFQSUMgKi8KPiArWEVOX0NQVUZFQVRVUkUoU0VQ
LCAgICAgICAgICAgMCozMisxMSkgLypBICBTWVNFTlRFUi9TWVNFWElUICovCj4gK1hFTl9DUFVG
RUFUVVJFKE1UUlIsICAgICAgICAgIDAqMzIrMTIpIC8qUyAgTWVtb3J5IFR5cGUgUmFuZ2UgUmVn
aXN0ZXJzICovCj4gK1hFTl9DUFVGRUFUVVJFKFBHRSwgICAgICAgICAgIDAqMzIrMTMpIC8qUyAg
UGFnZSBHbG9iYWwgRW5hYmxlICovCj4gK1hFTl9DUFVGRUFUVVJFKE1DQSwgICAgICAgICAgIDAq
MzIrMTQpIC8qQSAgTWFjaGluZSBDaGVjayBBcmNoaXRlY3R1cmUgKi8KPiArWEVOX0NQVUZFQVRV
UkUoQ01PViwgICAgICAgICAgMCozMisxNSkgLypBICBDTU9WIGluc3RydWN0aW9uIChGQ01PVkND
IGFuZCBGQ09NSSB0b28gaWYgRlBVIHByZXNlbnQpICovCj4gK1hFTl9DUFVGRUFUVVJFKFBBVCwg
ICAgICAgICAgIDAqMzIrMTYpIC8qQSAgUGFnZSBBdHRyaWJ1dGUgVGFibGUgKi8KPiArWEVOX0NQ
VUZFQVRVUkUoUFNFMzYsICAgICAgICAgMCozMisxNykgLypTICAzNi1iaXQgUFNFcyAqLwo+ICtY
RU5fQ1BVRkVBVFVSRShDTEZMVVNILCAgICAgICAwKjMyKzE5KSAvKkEgIENMRkxVU0ggaW5zdHJ1
Y3Rpb24gKi8KPiArWEVOX0NQVUZFQVRVUkUoRFMsICAgICAgICAgICAgMCozMisyMSkgLyogICBE
ZWJ1ZyBTdG9yZSAqLwo+ICtYRU5fQ1BVRkVBVFVSRShBQ1BJLCAgICAgICAgICAwKjMyKzIyKSAv
KkEgIEFDUEkgdmlhIE1TUiAqLwo+ICtYRU5fQ1BVRkVBVFVSRShNTVgsICAgICAgICAgICAwKjMy
KzIzKSAvKkEgIE11bHRpbWVkaWEgRXh0ZW5zaW9ucyAqLwo+ICtYRU5fQ1BVRkVBVFVSRShGWFNS
LCAgICAgICAgICAwKjMyKzI0KSAvKkEgIEZYU0FWRSBhbmQgRlhSU1RPUiBpbnN0cnVjdGlvbnMg
Ki8KPiArWEVOX0NQVUZFQVRVUkUoU1NFLCAgICAgICAgICAgMCozMisyNSkgLypBICBTdHJlYW1p
bmcgU0lNRCBFeHRlbnNpb25zICovCj4gK1hFTl9DUFVGRUFUVVJFKFNTRTIsICAgICAgICAgIDAq
MzIrMjYpIC8qQSAgU3RyZWFtaW5nIFNJTUQgRXh0ZW5zaW9ucy0yICovCj4gK1hFTl9DUFVGRUFU
VVJFKFNTLCAgICAgICAgICAgIDAqMzIrMjcpIC8qQSAgQ1BVIHNlbGYgc25vb3AgKi8KPiArWEVO
X0NQVUZFQVRVUkUoSFRULCAgICAgICAgICAgMCozMisyOCkgLyohQSBIeXBlci1UaHJlYWRpbmcg
VGVjaG5vbG9neSAqLwo+ICtYRU5fQ1BVRkVBVFVSRShUTTEsICAgICAgICAgICAwKjMyKzI5KSAv
KiAgIFRoZXJtYWwgTW9uaXRvciAxICovCj4gK1hFTl9DUFVGRUFUVVJFKFBCRSwgICAgICAgICAg
IDAqMzIrMzEpIC8qICAgUGVuZGluZyBCcmVhayBFbmFibGUgKi8KPiArCj4gKy8qIEludGVsLWRl
ZmluZWQgQ1BVIGZlYXR1cmVzLCBDUFVJRCBsZXZlbCAweDAwMDAwMDAxLmVjeCwgd29yZCAxICov
Cj4gK1hFTl9DUFVGRUFUVVJFKFNTRTMsICAgICAgICAgIDEqMzIrIDApIC8qQSAgU3RyZWFtaW5n
IFNJTUQgRXh0ZW5zaW9ucy0zICovCj4gK1hFTl9DUFVGRUFUVVJFKFBDTE1VTFFEUSwgICAgIDEq
MzIrIDEpIC8qQSAgQ2FycnktbGVzcyBtdWxpdHBsaWNhdGlvbiAqLwo+ICtYRU5fQ1BVRkVBVFVS
RShEVEVTNjQsICAgICAgICAxKjMyKyAyKSAvKiAgIDY0LWJpdCBEZWJ1ZyBTdG9yZSAqLwo+ICtY
RU5fQ1BVRkVBVFVSRShNT05JVE9SLCAgICAgICAxKjMyKyAzKSAvKiAgIE1vbml0b3IvTXdhaXQg
c3VwcG9ydCAqLwo+ICtYRU5fQ1BVRkVBVFVSRShEU0NQTCwgICAgICAgICAxKjMyKyA0KSAvKiAg
IENQTCBRdWFsaWZpZWQgRGVidWcgU3RvcmUgKi8KPiArWEVOX0NQVUZFQVRVUkUoVk1YLCAgICAg
ICAgICAgMSozMisgNSkgLypTICBWaXJ0dWFsIE1hY2hpbmUgRXh0ZW5zaW9ucyAqLwo+ICtYRU5f
Q1BVRkVBVFVSRShTTVgsICAgICAgICAgICAxKjMyKyA2KSAvKiAgIFNhZmVyIE1vZGUgRXh0ZW5z
aW9ucyAqLwo+ICtYRU5fQ1BVRkVBVFVSRShFSVNULCAgICAgICAgICAxKjMyKyA3KSAvKiAgIEVu
aGFuY2VkIFNwZWVkU3RlcCAqLwo+ICtYRU5fQ1BVRkVBVFVSRShUTTIsICAgICAgICAgICAxKjMy
KyA4KSAvKiAgIFRoZXJtYWwgTW9uaXRvciAyICovCj4gK1hFTl9DUFVGRUFUVVJFKFNTU0UzLCAg
ICAgICAgIDEqMzIrIDkpIC8qQSAgU3VwcGxlbWVudGFsIFN0cmVhbWluZyBTSU1EIEV4dGVuc2lv
bnMtMyAqLwo+ICtYRU5fQ1BVRkVBVFVSRShGTUEsICAgICAgICAgICAxKjMyKzEyKSAvKkEgIEZ1
c2VkIE11bHRpcGx5IEFkZCAqLwo+ICtYRU5fQ1BVRkVBVFVSRShDWDE2LCAgICAgICAgICAxKjMy
KzEzKSAvKkEgIENNUFhDSEcxNkIgKi8KPiArWEVOX0NQVUZFQVRVUkUoWFRQUiwgICAgICAgICAg
MSozMisxNCkgLyogICBTZW5kIFRhc2sgUHJpb3JpdHkgTWVzc2FnZXMgKi8KPiArWEVOX0NQVUZF
QVRVUkUoUERDTSwgICAgICAgICAgMSozMisxNSkgLyogICBQZXJmL0RlYnVnIENhcGFiaWxpdHkg
TVNSICovCj4gK1hFTl9DUFVGRUFUVVJFKFBDSUQsICAgICAgICAgIDEqMzIrMTcpIC8qSCAgUHJv
Y2VzcyBDb250ZXh0IElEICovCj4gK1hFTl9DUFVGRUFUVVJFKERDQSwgICAgICAgICAgIDEqMzIr
MTgpIC8qICAgRGlyZWN0IENhY2hlIEFjY2VzcyAqLwo+ICtYRU5fQ1BVRkVBVFVSRShTU0U0XzEs
ICAgICAgICAxKjMyKzE5KSAvKkEgIFN0cmVhbWluZyBTSU1EIEV4dGVuc2lvbnMgNC4xICovCj4g
K1hFTl9DUFVGRUFUVVJFKFNTRTRfMiwgICAgICAgIDEqMzIrMjApIC8qQSAgU3RyZWFtaW5nIFNJ
TUQgRXh0ZW5zaW9ucyA0LjIgKi8KPiArWEVOX0NQVUZFQVRVUkUoWDJBUElDLCAgICAgICAgMSoz
MisyMSkgLyohQSBFeHRlbmRlZCB4QVBJQyAqLwo+ICtYRU5fQ1BVRkVBVFVSRShNT1ZCRSwgICAg
ICAgICAxKjMyKzIyKSAvKkEgIG1vdmJlIGluc3RydWN0aW9uICovCj4gK1hFTl9DUFVGRUFUVVJF
KFBPUENOVCwgICAgICAgIDEqMzIrMjMpIC8qQSAgUE9QQ05UIGluc3RydWN0aW9uICovCj4gK1hF
Tl9DUFVGRUFUVVJFKFRTQ19ERUFETElORSwgIDEqMzIrMjQpIC8qUyAgVFNDIERlYWRsaW5lIFRp
bWVyICovCj4gK1hFTl9DUFVGRUFUVVJFKEFFU05JLCAgICAgICAgIDEqMzIrMjUpIC8qQSAgQUVT
IGluc3RydWN0aW9ucyAqLwo+ICtYRU5fQ1BVRkVBVFVSRShYU0FWRSwgICAgICAgICAxKjMyKzI2
KSAvKkEgIFhTQVZFL1hSU1RPUi9YU0VUQlYvWEdFVEJWICovCj4gK1hFTl9DUFVGRUFUVVJFKE9T
WFNBVkUsICAgICAgIDEqMzIrMjcpIC8qISAgT1NYU0FWRSAqLwo+ICtYRU5fQ1BVRkVBVFVSRShB
VlgsICAgICAgICAgICAxKjMyKzI4KSAvKkEgIEFkdmFuY2VkIFZlY3RvciBFeHRlbnNpb25zICov
Cj4gK1hFTl9DUFVGRUFUVVJFKEYxNkMsICAgICAgICAgIDEqMzIrMjkpIC8qQSAgSGFsZi1wcmVj
aXNpb24gY29udmVydCBpbnN0cnVjdGlvbiAqLwo+ICtYRU5fQ1BVRkVBVFVSRShSRFJBTkQsICAg
ICAgICAxKjMyKzMwKSAvKkEgIERpZ2l0YWwgUmFuZG9tIE51bWJlciBHZW5lcmF0b3IgKi8KPiAr
WEVOX0NQVUZFQVRVUkUoSFlQRVJWSVNPUiwgICAgMSozMiszMSkgLyohQSBSdW5uaW5nIHVuZGVy
IHNvbWUgaHlwZXJ2aXNvciAqLwo+ICsKPiArLyogQU1ELWRlZmluZWQgQ1BVIGZlYXR1cmVzLCBD
UFVJRCBsZXZlbCAweDgwMDAwMDAxLmVkeCwgd29yZCAyICovCj4gK1hFTl9DUFVGRUFUVVJFKFNZ
U0NBTEwsICAgICAgIDIqMzIrMTEpIC8qQSAgU1lTQ0FMTC9TWVNSRVQgKi8KPiArWEVOX0NQVUZF
QVRVUkUoTlgsICAgICAgICAgICAgMiozMisyMCkgLypBICBFeGVjdXRlIERpc2FibGUgKi8KPiAr
WEVOX0NQVUZFQVRVUkUoTU1YRVhULCAgICAgICAgMiozMisyMikgLypBICBBTUQgTU1YIGV4dGVu
c2lvbnMgKi8KPiArWEVOX0NQVUZFQVRVUkUoRkZYU1IsICAgICAgICAgMiozMisyNSkgLypBICBG
RlhTUiBpbnN0cnVjdGlvbiBvcHRpbWl6YXRpb25zICovCj4gK1hFTl9DUFVGRUFUVVJFKFBBR0Ux
R0IsICAgICAgIDIqMzIrMjYpIC8qSCAgMUdiIGxhcmdlIHBhZ2Ugc3VwcG9ydCAqLwo+ICtYRU5f
Q1BVRkVBVFVSRShSRFRTQ1AsICAgICAgICAyKjMyKzI3KSAvKlMgIFJEVFNDUCAqLwo+ICtYRU5f
Q1BVRkVBVFVSRShMTSwgICAgICAgICAgICAyKjMyKzI5KSAvKkEgIExvbmcgTW9kZSAoeDg2LTY0
KSAqLwo+ICtYRU5fQ1BVRkVBVFVSRSgzRE5PV0VYVCwgICAgICAyKjMyKzMwKSAvKkEgIEFNRCAz
RE5vdyEgZXh0ZW5zaW9ucyAqLwo+ICtYRU5fQ1BVRkVBVFVSRSgzRE5PVywgICAgICAgICAyKjMy
KzMxKSAvKkEgIDNETm93ISAqLwo+ICsKPiArLyogQU1ELWRlZmluZWQgQ1BVIGZlYXR1cmVzLCBD
UFVJRCBsZXZlbCAweDgwMDAwMDAxLmVjeCwgd29yZCAzICovCj4gK1hFTl9DUFVGRUFUVVJFKExB
SEZfTE0sICAgICAgIDMqMzIrIDApIC8qQSAgTEFIRi9TQUhGIGluIGxvbmcgbW9kZSAqLwo+ICtY
RU5fQ1BVRkVBVFVSRShDTVBfTEVHQUNZLCAgICAzKjMyKyAxKSAvKiFBIElmIHllcyBIeXBlclRo
cmVhZGluZyBub3QgdmFsaWQgKi8KPiArWEVOX0NQVUZFQVRVUkUoU1ZNLCAgICAgICAgICAgMyoz
MisgMikgLypTICBTZWN1cmUgdmlydHVhbCBtYWNoaW5lICovCj4gK1hFTl9DUFVGRUFUVVJFKEVY
VEFQSUMsICAgICAgIDMqMzIrIDMpIC8qICAgRXh0ZW5kZWQgQVBJQyBzcGFjZSAqLwo+ICtYRU5f
Q1BVRkVBVFVSRShDUjhfTEVHQUNZLCAgICAzKjMyKyA0KSAvKlMgIENSOCBpbiAzMi1iaXQgbW9k
ZSAqLwo+ICtYRU5fQ1BVRkVBVFVSRShBQk0sICAgICAgICAgICAzKjMyKyA1KSAvKkEgIEFkdmFu
Y2VkIGJpdCBtYW5pcHVsYXRpb24gKi8KPiArWEVOX0NQVUZFQVRVUkUoU1NFNEEsICAgICAgICAg
MyozMisgNikgLypBICBTU0UtNEEgKi8KPiArWEVOX0NQVUZFQVRVUkUoTUlTQUxJR05TU0UsICAg
MyozMisgNykgLypBICBNaXNhbGlnbmVkIFNTRSBtb2RlICovCj4gK1hFTl9DUFVGRUFUVVJFKDNE
Tk9XUFJFRkVUQ0gsIDMqMzIrIDgpIC8qQSAgM0ROb3cgcHJlZmV0Y2ggaW5zdHJ1Y3Rpb25zICov
Cj4gK1hFTl9DUFVGRUFUVVJFKE9TVlcsICAgICAgICAgIDMqMzIrIDkpIC8qICAgT1MgVmlzaWJs
ZSBXb3JrYXJvdW5kICovCj4gK1hFTl9DUFVGRUFUVVJFKElCUywgICAgICAgICAgIDMqMzIrMTAp
IC8qICAgSW5zdHJ1Y3Rpb24gQmFzZWQgU2FtcGxpbmcgKi8KPiArWEVOX0NQVUZFQVRVUkUoWE9Q
LCAgICAgICAgICAgMyozMisxMSkgLypBICBleHRlbmRlZCBBVlggaW5zdHJ1Y3Rpb25zICovCj4g
K1hFTl9DUFVGRUFUVVJFKFNLSU5JVCwgICAgICAgIDMqMzIrMTIpIC8qICAgU0tJTklUL1NUR0kg
aW5zdHJ1Y3Rpb25zICovCj4gK1hFTl9DUFVGRUFUVVJFKFdEVCwgICAgICAgICAgIDMqMzIrMTMp
IC8qICAgV2F0Y2hkb2cgdGltZXIgKi8KPiArWEVOX0NQVUZFQVRVUkUoTFdQLCAgICAgICAgICAg
MyozMisxNSkgLypTICBMaWdodCBXZWlnaHQgUHJvZmlsaW5nICovCj4gK1hFTl9DUFVGRUFUVVJF
KEZNQTQsICAgICAgICAgIDMqMzIrMTYpIC8qQSAgNCBvcGVyYW5kcyBNQUMgaW5zdHJ1Y3Rpb25z
ICovCj4gK1hFTl9DUFVGRUFUVVJFKE5PREVJRF9NU1IsICAgIDMqMzIrMTkpIC8qICAgTm9kZUlk
IE1TUiAqLwo+ICtYRU5fQ1BVRkVBVFVSRShUQk0sICAgICAgICAgICAzKjMyKzIxKSAvKkEgIHRy
YWlsaW5nIGJpdCBtYW5pcHVsYXRpb25zICovCj4gK1hFTl9DUFVGRUFUVVJFKFRPUE9FWFQsICAg
ICAgIDMqMzIrMjIpIC8qICAgdG9wb2xvZ3kgZXh0ZW5zaW9ucyBDUFVJRCBsZWFmcyAqLwo+ICtY
RU5fQ1BVRkVBVFVSRShEQkVYVCwgICAgICAgICAzKjMyKzI2KSAvKkEgIGRhdGEgYnJlYWtwb2lu
dCBleHRlbnNpb24gKi8KPiArWEVOX0NQVUZFQVRVUkUoTU9OSVRPUlgsICAgICAgMyozMisyOSkg
LyogICBNT05JVE9SIGV4dGVuc2lvbiAoTU9OSVRPUlgvTVdBSVRYKSAqLwo+ICsKPiArLyogSW50
ZWwtZGVmaW5lZCBDUFUgZmVhdHVyZXMsIENQVUlEIGxldmVsIDB4MDAwMDAwMEQ6MS5lYXgsIHdv
cmQgNCAqLwo+ICtYRU5fQ1BVRkVBVFVSRShYU0FWRU9QVCwgICAgICA0KjMyKyAwKSAvKkEgIFhT
QVZFT1BUIGluc3RydWN0aW9uICovCj4gK1hFTl9DUFVGRUFUVVJFKFhTQVZFQywgICAgICAgIDQq
MzIrIDEpIC8qQSAgWFNBVkVDL1hSU1RPUkMgaW5zdHJ1Y3Rpb25zICovCj4gK1hFTl9DUFVGRUFU
VVJFKFhHRVRCVjEsICAgICAgIDQqMzIrIDIpIC8qQSAgWEdFVEJWIHdpdGggJWVjeD0xICovCj4g
K1hFTl9DUFVGRUFUVVJFKFhTQVZFUywgICAgICAgIDQqMzIrIDMpIC8qUyAgWFNBVkVTL1hSU1RP
UlMgaW5zdHJ1Y3Rpb25zICovCj4gKwo+ICsvKiBJbnRlbC1kZWZpbmVkIENQVSBmZWF0dXJlcywg
Q1BVSUQgbGV2ZWwgMHgwMDAwMDAwNzowLmVieCwgd29yZCA1ICovCj4gK1hFTl9DUFVGRUFUVVJF
KEZTR1NCQVNFLCAgICAgIDUqMzIrIDApIC8qQSAge1JELFdSfXtGUyxHU31CQVNFIGluc3RydWN0
aW9ucyAqLwo+ICtYRU5fQ1BVRkVBVFVSRShUU0NfQURKVVNULCAgICA1KjMyKyAxKSAvKlMgIFRT
Q19BREpVU1QgTVNSIGF2YWlsYWJsZSAqLwo+ICtYRU5fQ1BVRkVBVFVSRShTR1gsICAgICAgICAg
ICA1KjMyKyAyKSAvKiAgIFNvZnR3YXJlIEd1YXJkIGV4dGVuc2lvbnMgKi8KPiArWEVOX0NQVUZF
QVRVUkUoQk1JMSwgICAgICAgICAgNSozMisgMykgLypBICAxc3QgYml0IG1hbmlwdWxhdGlvbiBl
eHRlbnNpb25zICovCj4gK1hFTl9DUFVGRUFUVVJFKEhMRSwgICAgICAgICAgIDUqMzIrIDQpIC8q
QSAgSGFyZHdhcmUgTG9jayBFbGlzaW9uICovCj4gK1hFTl9DUFVGRUFUVVJFKEFWWDIsICAgICAg
ICAgIDUqMzIrIDUpIC8qQSAgQVZYMiBpbnN0cnVjdGlvbnMgKi8KPiArWEVOX0NQVUZFQVRVUkUo
RkRQX0VYQ1BfT05MWSwgNSozMisgNikgLyohICB4ODcgRkRQIG9ubHkgdXBkYXRlZCBvbiBleGNl
cHRpb24uICovCj4gK1hFTl9DUFVGRUFUVVJFKFNNRVAsICAgICAgICAgIDUqMzIrIDcpIC8qUyAg
U3VwZXJ2aXNvciBNb2RlIEV4ZWN1dGlvbiBQcm90ZWN0aW9uICovCj4gK1hFTl9DUFVGRUFUVVJF
KEJNSTIsICAgICAgICAgIDUqMzIrIDgpIC8qQSAgMm5kIGJpdCBtYW5pcHVsYXRpb24gZXh0ZW5z
aW9ucyAqLwo+ICtYRU5fQ1BVRkVBVFVSRShFUk1TLCAgICAgICAgICA1KjMyKyA5KSAvKkEgIEVu
aGFuY2VkIFJFUCBNT1ZTQi9TVE9TQiAqLwo+ICtYRU5fQ1BVRkVBVFVSRShJTlZQQ0lELCAgICAg
ICA1KjMyKzEwKSAvKkggIEludmFsaWRhdGUgUHJvY2VzcyBDb250ZXh0IElEICovCj4gK1hFTl9D
UFVGRUFUVVJFKFJUTSwgICAgICAgICAgIDUqMzIrMTEpIC8qQSAgUmVzdHJpY3RlZCBUcmFuc2Fj
dGlvbmFsIE1lbW9yeSAqLwo+ICtYRU5fQ1BVRkVBVFVSRShQUU0sICAgICAgICAgICA1KjMyKzEy
KSAvKiAgIFBsYXRmb3JtIFFvUyBNb25pdG9yaW5nICovCj4gK1hFTl9DUFVGRUFUVVJFKE5PX0ZQ
VV9TRUwsICAgIDUqMzIrMTMpIC8qISAgRlBVIENTL0RTIHN0b3JlZCBhcyB6ZXJvICovCj4gK1hF
Tl9DUFVGRUFUVVJFKE1QWCwgICAgICAgICAgIDUqMzIrMTQpIC8qUyAgTWVtb3J5IFByb3RlY3Rp
b24gRXh0ZW5zaW9ucyAqLwo+ICtYRU5fQ1BVRkVBVFVSRShQUUUsICAgICAgICAgICA1KjMyKzE1
KSAvKiAgIFBsYXRmb3JtIFFvUyBFbmZvcmNlbWVudCAqLwo+ICtYRU5fQ1BVRkVBVFVSRShBVlg1
MTJGLCAgICAgICA1KjMyKzE2KSAvKkEgIEFWWC01MTIgRm91bmRhdGlvbiBJbnN0cnVjdGlvbnMg
Ki8KPiArWEVOX0NQVUZFQVRVUkUoQVZYNTEyRFEsICAgICAgNSozMisxNykgLypBICBBVlgtNTEy
IERvdWJsZXdvcmQgJiBRdWFkd29yZCBJbnN0cnMgKi8KPiArWEVOX0NQVUZFQVRVUkUoUkRTRUVE
LCAgICAgICAgNSozMisxOCkgLypBICBSRFNFRUQgaW5zdHJ1Y3Rpb24gKi8KPiArWEVOX0NQVUZF
QVRVUkUoQURYLCAgICAgICAgICAgNSozMisxOSkgLypBICBBRENYLCBBRE9YIGluc3RydWN0aW9u
cyAqLwo+ICtYRU5fQ1BVRkVBVFVSRShTTUFQLCAgICAgICAgICA1KjMyKzIwKSAvKlMgIFN1cGVy
dmlzb3IgTW9kZSBBY2Nlc3MgUHJldmVudGlvbiAqLwo+ICtYRU5fQ1BVRkVBVFVSRShBVlg1MTJJ
Rk1BLCAgICA1KjMyKzIxKSAvKkEgIEFWWC01MTIgSW50ZWdlciBGdXNlZCBNdWx0aXBseSBBZGQg
Ki8KPiArWEVOX0NQVUZFQVRVUkUoQ0xGTFVTSE9QVCwgICAgNSozMisyMykgLypBICBDTEZMVVNI
T1BUIGluc3RydWN0aW9uICovCj4gK1hFTl9DUFVGRUFUVVJFKENMV0IsICAgICAgICAgIDUqMzIr
MjQpIC8qQSAgQ0xXQiBpbnN0cnVjdGlvbiAqLwo+ICtYRU5fQ1BVRkVBVFVSRShBVlg1MTJQRiwg
ICAgICA1KjMyKzI2KSAvKkEgIEFWWC01MTIgUHJlZmV0Y2ggSW5zdHJ1Y3Rpb25zICovCj4gK1hF
Tl9DUFVGRUFUVVJFKEFWWDUxMkVSLCAgICAgIDUqMzIrMjcpIC8qQSAgQVZYLTUxMiBFeHBvbmVu
dCAmIFJlY2lwcm9jYWwgSW5zdHJzICovCj4gK1hFTl9DUFVGRUFUVVJFKEFWWDUxMkNELCAgICAg
IDUqMzIrMjgpIC8qQSAgQVZYLTUxMiBDb25mbGljdCBEZXRlY3Rpb24gSW5zdHJzICovCj4gK1hF
Tl9DUFVGRUFUVVJFKFNIQSwgICAgICAgICAgIDUqMzIrMjkpIC8qQSAgU0hBMSAmIFNIQTI1NiBp
bnN0cnVjdGlvbnMgKi8KPiArWEVOX0NQVUZFQVRVUkUoQVZYNTEyQlcsICAgICAgNSozMiszMCkg
LypBICBBVlgtNTEyIEJ5dGUgYW5kIFdvcmQgSW5zdHJ1Y3Rpb25zICovCj4gK1hFTl9DUFVGRUFU
VVJFKEFWWDUxMlZMLCAgICAgIDUqMzIrMzEpIC8qQSAgQVZYLTUxMiBWZWN0b3IgTGVuZ3RoIEV4
dGVuc2lvbnMgKi8KPiArCj4gKy8qIEludGVsLWRlZmluZWQgQ1BVIGZlYXR1cmVzLCBDUFVJRCBs
ZXZlbCAweDAwMDAwMDA3OjAuZWN4LCB3b3JkIDYgKi8KPiArWEVOX0NQVUZFQVRVUkUoUFJFRkVU
Q0hXVDEsICAgNiozMisgMCkgLypBICBQUkVGRVRDSFdUMSBpbnN0cnVjdGlvbiAqLwo+ICtYRU5f
Q1BVRkVBVFVSRShBVlg1MTJWQk1JLCAgICA2KjMyKyAxKSAvKkEgIEFWWC01MTIgVmVjdG9yIEJ5
dGUgTWFuaXB1bGF0aW9uIEluc3RycyAqLwo+ICtYRU5fQ1BVRkVBVFVSRShVTUlQLCAgICAgICAg
ICA2KjMyKyAyKSAvKlMgIFVzZXIgTW9kZSBJbnN0cnVjdGlvbiBQcmV2ZW50aW9uICovCj4gK1hF
Tl9DUFVGRUFUVVJFKFBLVSwgICAgICAgICAgIDYqMzIrIDMpIC8qSCAgUHJvdGVjdGlvbiBLZXlz
IGZvciBVc2Vyc3BhY2UgKi8KPiArWEVOX0NQVUZFQVRVUkUoT1NQS0UsICAgICAgICAgNiozMisg
NCkgLyohICBPUyBQcm90ZWN0aW9uIEtleXMgRW5hYmxlICovCj4gK1hFTl9DUFVGRUFUVVJFKEFW
WDUxMl9WUE9QQ05URFEsIDYqMzIrMTQpIC8qQSAgUE9QQ05UIGZvciB2ZWN0b3JzIG9mIERXL1FX
ICovCj4gK1hFTl9DUFVGRUFUVVJFKFJEUElELCAgICAgICAgIDYqMzIrMjIpIC8qQSAgUkRQSUQg
aW5zdHJ1Y3Rpb24gKi8KPiArCj4gKy8qIEFNRC1kZWZpbmVkIENQVSBmZWF0dXJlcywgQ1BVSUQg
bGV2ZWwgMHg4MDAwMDAwNy5lZHgsIHdvcmQgNyAqLwo+ICtYRU5fQ1BVRkVBVFVSRShJVFNDLCAg
ICAgICAgICA3KjMyKyA4KSAvKiAgIEludmFyaWFudCBUU0MgKi8KPiArWEVOX0NQVUZFQVRVUkUo
RUZSTywgICAgICAgICAgNyozMisxMCkgLyogICBBUEVSRi9NUEVSRiBSZWFkIE9ubHkgaW50ZXJm
YWNlICovCj4gKwo+ICsvKiBBTUQtZGVmaW5lZCBDUFUgZmVhdHVyZXMsIENQVUlEIGxldmVsIDB4
ODAwMDAwMDguZWJ4LCB3b3JkIDggKi8KPiArWEVOX0NQVUZFQVRVUkUoQ0xaRVJPLCAgICAgICAg
OCozMisgMCkgLypBICBDTFpFUk8gaW5zdHJ1Y3Rpb24gKi8KPiArCj4gKy8qIEludGVsLWRlZmlu
ZWQgQ1BVIGZlYXR1cmVzLCBDUFVJRCBsZXZlbCAweDAwMDAwMDA3OjAuZWR4LCB3b3JkIDkgKi8K
PiArWEVOX0NQVUZFQVRVUkUoQVZYNTEyXzRWTk5JVywgOSozMisgMikgLypBIEFWWDUxMiBOZXVy
YWwgTmV0d29yayBJbnN0cnVjdGlvbnMgKi8KPiArWEVOX0NQVUZFQVRVUkUoQVZYNTEyXzRGTUFQ
UywgOSozMisgMykgLypBIEFWWDUxMiBNdWx0aXBseSBBY2N1bXVsYXRpb24gU2luZ2xlIFByZWNp
c2lvbiAqLwo+ICsKPiArI2VuZGlmIC8qIFhFTl9DUFVGRUFUVVJFICovCj4gKwo+ICsvKiBDbGVh
biB1cCBmcm9tIGEgZGVmYXVsdCBpbmNsdWRlLiAgQ2xvc2UgdGhlIGVudW0gKGZvciBDKS4gKi8K
PiArI2lmZGVmIFhFTl9DUFVGRUFUVVJFU0VUX0RFRkFVTFRfSU5DTFVERQo+ICsjdW5kZWYgWEVO
X0NQVUZFQVRVUkVTRVRfREVGQVVMVF9JTkNMVURFCj4gKyN1bmRlZiBYRU5fQ1BVRkVBVFVSRQo+
ICt9Owo+ICsKPiArI2VuZGlmIC8qIFhFTl9DUFVGRUFUVVJFU0VUX0RFRkFVTFRfSU5DTFVERSAq
Lwo+ICsKPiArLyoKPiArICogTG9jYWwgdmFyaWFibGVzOgo+ICsgKiBtb2RlOiBDCj4gKyAqIGMt
ZmlsZS1zdHlsZTogIkJTRCIKPiArICogYy1iYXNpYy1vZmZzZXQ6IDQKPiArICogdGFiLXdpZHRo
OiA0Cj4gKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAo+ICsgKiBFbmQ6Cj4gKyAqLwo+IGRpZmYg
LS1naXQgYS9pbmNsdWRlL3hlbi9hcmNoLXg4Ni9jcHVpZC5oIGIvaW5jbHVkZS94ZW4vYXJjaC14
ODYvY3B1aWQuaAo+IGluZGV4IGQ3MDkzNDAuLmViNzY4NzUgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVk
ZS94ZW4vYXJjaC14ODYvY3B1aWQuaAo+ICsrKyBiL2luY2x1ZGUveGVuL2FyY2gteDg2L2NwdWlk
LmgKPiBAQCAtNzMsMTEgKzczLDI3IEBACj4gICNkZWZpbmUgX1hFTl9DUFVJRF9GRUFUMV9NTVVf
UFRfVVBEQVRFX1BSRVNFUlZFX0FEIDAKPiAgI2RlZmluZSBYRU5fQ1BVSURfRkVBVDFfTU1VX1BU
X1VQREFURV9QUkVTRVJWRV9BRCAgKDF1PDwwKQo+ICAKPiArLyoKPiArICogTGVhZiA0ICgweDQw
MDAweDAzKQo+ICsgKiBTdWItbGVhZiAwOiBFQVg6IGJpdCAwOiBlbXVsYXRlZCB0c2MKPiArICog
ICAgICAgICAgICAgICAgICBiaXQgMTogaG9zdCB0c2MgaXMga25vd24gdG8gYmUgcmVsaWFibGUK
PiArICogICAgICAgICAgICAgICAgICBiaXQgMjogUkRUU0NQIGluc3RydWN0aW9uIGF2YWlsYWJs
ZQo+ICsgKiAgICAgICAgICAgICBFQlg6IHRzY19tb2RlOiAwPWRlZmF1bHQgKGVtdWxhdGUgaWYg
bmVjZXNzYXJ5KSwgMT1lbXVsYXRlLAo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
PW5vIGVtdWxhdGlvbiwgMz1ubyBlbXVsYXRpb24gKyBUU0NfQVVYIHN1cHBvcnQKPiArICogICAg
ICAgICAgICAgRUNYOiBndWVzdCB0c2MgZnJlcXVlbmN5IGluIGtIego+ICsgKiAgICAgICAgICAg
ICBFRFg6IGd1ZXN0IHRzYyBpbmNhcm5hdGlvbiAobWlncmF0aW9uIGNvdW50KQo+ICsgKiBTdWIt
bGVhZiAxOiBFQVg6IHRzYyBvZmZzZXQgbG93IHBhcnQKPiArICogICAgICAgICAgICAgRUJYOiB0
c2Mgb2Zmc2V0IGhpZ2ggcGFydAo+ICsgKiAgICAgICAgICAgICBFQ1g6IG11bHRpcGxpY2F0b3Ig
Zm9yIHRzYy0+bnMgY29udmVyc2lvbgo+ICsgKiAgICAgICAgICAgICBFRFg6IHNoaWZ0IGFtb3Vu
dCBmb3IgdHNjLT5ucyBjb252ZXJzaW9uCj4gKyAqIFN1Yi1sZWFmIDI6IEVBWDogaG9zdCB0c2Mg
ZnJlcXVlbmN5IGluIGtIego+ICsgKi8KPiArCj4gIC8qCj4gICAqIExlYWYgNSAoMHg0MDAwMHgw
NCkKPiAgICogSFZNLXNwZWNpZmljIGZlYXR1cmVzCj4gLSAqIEVBWDogRmVhdHVyZXMKPiAtICog
RUJYOiB2Y3B1IGlkIChpZmYgRUFYIGhhcyBYRU5fSFZNX0NQVUlEX1ZDUFVfSURfUFJFU0VOVCBm
bGFnKQo+ICsgKiBTdWItbGVhZiAwOiBFQVg6IEZlYXR1cmVzCj4gKyAqIFN1Yi1sZWFmIDA6IEVC
WDogdmNwdSBpZCAoaWZmIEVBWCBoYXMgWEVOX0hWTV9DUFVJRF9WQ1BVX0lEX1BSRVNFTlQgZmxh
ZykKPiAgICovCj4gICNkZWZpbmUgWEVOX0hWTV9DUFVJRF9BUElDX0FDQ0VTU19WSVJUICgxdSA8
PCAwKSAvKiBWaXJ0dWFsaXplZCBBUElDIHJlZ2lzdGVycyAqLwo+ICAjZGVmaW5lIFhFTl9IVk1f
Q1BVSURfWDJBUElDX1ZJUlQgICAgICAoMXUgPDwgMSkgLyogVmlydHVhbGl6ZWQgeDJBUElDIGFj
Y2Vzc2VzICovCj4gQEAgLTg1LDYgKzEwMSwxNiBAQAo+ICAjZGVmaW5lIFhFTl9IVk1fQ1BVSURf
SU9NTVVfTUFQUElOR1MgICAoMXUgPDwgMikKPiAgI2RlZmluZSBYRU5fSFZNX0NQVUlEX1ZDUFVf
SURfUFJFU0VOVCAgKDF1IDw8IDMpIC8qIHZjcHUgaWQgaXMgcHJlc2VudCBpbiBFQlggKi8KPiAg
Cj4gLSNkZWZpbmUgWEVOX0NQVUlEX01BWF9OVU1fTEVBVkVTIDQKPiArLyoKPiArICogTGVhZiA2
ICgweDQwMDAweDA1KQo+ICsgKiBQVi1zcGVjaWZpYyBwYXJhbWV0ZXJzCj4gKyAqIFN1Yi1sZWFm
IDA6IEVBWDogbWF4IGF2YWlsYWJsZSBzdWItbGVhZgo+ICsgKiBTdWItbGVhZiAwOiBFQlg6IGJp
dHMgMC03OiBtYXggbWFjaGluZSBhZGRyZXNzIHdpZHRoCj4gKyAqLwo+ICsKPiArLyogTWF4LiBh
ZGRyZXNzIHdpZHRoIGluIGJpdHMgdGFraW5nIG1lbW9yeSBob3RwbHVnIGludG8gYWNjb3VudC4g
Ki8KPiArI2RlZmluZSBYRU5fQ1BVSURfTUFDSElORV9BRERSRVNTX1dJRFRIX01BU0sgKDB4ZmZ1
IDw8IDApCj4gKwo+ICsjZGVmaW5lIFhFTl9DUFVJRF9NQVhfTlVNX0xFQVZFUyA1Cj4gIAo+ICAj
ZW5kaWYgLyogX19YRU5fUFVCTElDX0FSQ0hfWDg2X0NQVUlEX0hfXyAqLwo+IGRpZmYgLS1naXQg
YS9pbmNsdWRlL3hlbi9hcmNoLXg4Ni9odm0vc2F2ZS5oIGIvaW5jbHVkZS94ZW4vYXJjaC14ODYv
aHZtL3NhdmUuaAo+IGluZGV4IGVmYjBiNjIuLmZkN2JmM2YgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVk
ZS94ZW4vYXJjaC14ODYvaHZtL3NhdmUuaAo+ICsrKyBiL2luY2x1ZGUveGVuL2FyY2gteDg2L2h2
bS9zYXZlLmgKPiBAQCAtNDcsNyArNDcsOSBAQCBERUNMQVJFX0hWTV9TQVZFX1RZUEUoSEVBREVS
LCAxLCBzdHJ1Y3QgaHZtX3NhdmVfaGVhZGVyKTsKPiAgLyoKPiAgICogUHJvY2Vzc29yCj4gICAq
Cj4gLSAqIENvbXBhdDogUHJlLTMuNCBkaWRuJ3QgaGF2ZSBtc3JfdHNjX2F1eAo+ICsgKiBDb21w
YXQ6Cj4gKyAqICAgICAtIFByZS0zLjQgZGlkbid0IGhhdmUgbXNyX3RzY19hdXgKPiArICogICAg
IC0gUHJlLTQuNyBkaWRuJ3QgaGF2ZSBmcHVfaW5pdGlhbGlzZWQKPiAgICovCj4gIAo+ICBzdHJ1
Y3QgaHZtX2h3X2NwdSB7Cj4gQEAgLTEzMyw3ICsxMzUsNyBAQCBzdHJ1Y3QgaHZtX2h3X2NwdSB7
Cj4gICAgICB1aW50NjRfdCBzaGFkb3dfZ3M7Cj4gIAo+ICAgICAgLyogbXNyIGNvbnRlbnQgc2F2
ZWQvcmVzdG9yZWQuICovCj4gLSAgICB1aW50NjRfdCBtc3JfZmxhZ3M7Cj4gKyAgICB1aW50NjRf
dCBtc3JfZmxhZ3M7IC8qIE9ic29sZXRlLCBpZ25vcmVkLiAqLwo+ICAgICAgdWludDY0X3QgbXNy
X2xzdGFyOwo+ICAgICAgdWludDY0X3QgbXNyX3N0YXI7Cj4gICAgICB1aW50NjRfdCBtc3JfY3N0
YXI7Cj4gQEAgLTE1Nyw2ICsxNTksMTEgQEAgc3RydWN0IGh2bV9od19jcHUgewo+ICAgICAgfTsK
PiAgICAgIC8qIGVycm9yIGNvZGUgZm9yIHBlbmRpbmcgZXZlbnQgKi8KPiAgICAgIHVpbnQzMl90
IGVycm9yX2NvZGU7Cj4gKwo+ICsjZGVmaW5lIF9YRU5fWDg2X0ZQVV9JTklUSUFMSVNFRCAgICAg
ICAgMAo+ICsjZGVmaW5lIFhFTl9YODZfRlBVX0lOSVRJQUxJU0VEICAgICAgICAgKDFVPDxfWEVO
X1g4Nl9GUFVfSU5JVElBTElTRUQpCj4gKyAgICB1aW50MzJfdCBmbGFnczsKPiArICAgIHVpbnQz
Ml90IHBhZDA7Cj4gIH07Cj4gIAo+ICBzdHJ1Y3QgaHZtX2h3X2NwdV9jb21wYXQgewo+IEBAIC0y
NDIsNyArMjQ5LDcgQEAgc3RydWN0IGh2bV9od19jcHVfY29tcGF0IHsKPiAgICAgIHVpbnQ2NF90
IHNoYWRvd19nczsKPiAgCj4gICAgICAvKiBtc3IgY29udGVudCBzYXZlZC9yZXN0b3JlZC4gKi8K
PiAtICAgIHVpbnQ2NF90IG1zcl9mbGFnczsKPiArICAgIHVpbnQ2NF90IG1zcl9mbGFnczsgLyog
T2Jzb2xldGUsIGlnbm9yZWQuICovCj4gICAgICB1aW50NjRfdCBtc3JfbHN0YXI7Cj4gICAgICB1
aW50NjRfdCBtc3Jfc3RhcjsKPiAgICAgIHVpbnQ2NF90IG1zcl9jc3RhcjsKPiBAQCAtMjY4LDE5
ICsyNzUsMjYgQEAgc3RydWN0IGh2bV9od19jcHVfY29tcGF0IHsKPiAgICAgIHVpbnQzMl90IGVy
cm9yX2NvZGU7Cj4gIH07Cj4gIAo+IC1zdGF0aWMgaW5saW5lIGludCBfaHZtX2h3X2ZpeF9jcHUo
dm9pZCAqaCkgewo+ICtzdGF0aWMgaW5saW5lIGludCBfaHZtX2h3X2ZpeF9jcHUodm9pZCAqaCwg
dWludDMyX3Qgc2l6ZSkgewo+ICAKPiAgICAgIHVuaW9uIGh2bV9od19jcHVfdW5pb24gewo+ICAg
ICAgICAgIHN0cnVjdCBodm1faHdfY3B1IG5hdDsKPiAgICAgICAgICBzdHJ1Y3QgaHZtX2h3X2Nw
dV9jb21wYXQgY21wOwo+ICAgICAgfSAqdWNwdSA9ICh1bmlvbiBodm1faHdfY3B1X3VuaW9uICop
aDsKPiAgCj4gLSAgICAvKiBJZiB3ZSBjb3B5IGZyb20gdGhlIGVuZCBiYWNrd2FyZHMsIHdlIHNo
b3VsZAo+IC0gICAgICogYmUgYWJsZSB0byBkbyB0aGUgbW9kaWZpY2F0aW9uIGluLXBsYWNlICov
Cj4gLSAgICB1Y3B1LT5uYXQuZXJyb3JfY29kZSA9IHVjcHUtPmNtcC5lcnJvcl9jb2RlOwo+IC0g
ICAgdWNwdS0+bmF0LnBlbmRpbmdfZXZlbnQgPSB1Y3B1LT5jbXAucGVuZGluZ19ldmVudDsKPiAt
ICAgIHVjcHUtPm5hdC50c2MgPSB1Y3B1LT5jbXAudHNjOwo+IC0gICAgdWNwdS0+bmF0Lm1zcl90
c2NfYXV4ID0gMDsKPiArICAgIGlmICggc2l6ZSA9PSBzaXplb2Yoc3RydWN0IGh2bV9od19jcHVf
Y29tcGF0KSApCj4gKyAgICB7Cj4gKyAgICAgICAgLyoKPiArICAgICAgICAgKiBJZiB3ZSBjb3B5
IGZyb20gdGhlIGVuZCBiYWNrd2FyZHMsIHdlIHNob3VsZAo+ICsgICAgICAgICAqIGJlIGFibGUg
dG8gZG8gdGhlIG1vZGlmaWNhdGlvbiBpbi1wbGFjZS4KPiArICAgICAgICAgKi8KPiArICAgICAg
ICB1Y3B1LT5uYXQuZXJyb3JfY29kZSA9IHVjcHUtPmNtcC5lcnJvcl9jb2RlOwo+ICsgICAgICAg
IHVjcHUtPm5hdC5wZW5kaW5nX2V2ZW50ID0gdWNwdS0+Y21wLnBlbmRpbmdfZXZlbnQ7Cj4gKyAg
ICAgICAgdWNwdS0+bmF0LnRzYyA9IHVjcHUtPmNtcC50c2M7Cj4gKyAgICAgICAgdWNwdS0+bmF0
Lm1zcl90c2NfYXV4ID0gMDsKPiArICAgIH0KPiArICAgIC8qIE1pbWljIHRoZSBvbGQgYmVoYXZp
b3VyIGJ5IHVuY29uZGl0aW9uYWxseSBzZXR0aW5nIGZwdV9pbml0aWFsaXNlZC4gKi8KPiArICAg
IHVjcHUtPm5hdC5mbGFncyA9IFhFTl9YODZfRlBVX0lOSVRJQUxJU0VEOwo+ICAKPiAgICAgIHJl
dHVybiAwOwo+ICB9Cj4gQEAgLTM0NywzMCArMzYxLDQxIEBAIERFQ0xBUkVfSFZNX1NBVkVfVFlQ
RShQSUMsIDMsIHN0cnVjdCBodm1faHdfdnBpYyk7Cj4gICAqIElPLUFQSUMKPiAgICovCj4gIAo+
ICt1bmlvbiB2aW9hcGljX3JlZGlyX2VudHJ5Cj4gK3sKPiArICAgIHVpbnQ2NF90IGJpdHM7Cj4g
KyAgICBzdHJ1Y3Qgewo+ICsgICAgICAgIHVpbnQ4X3QgdmVjdG9yOwo+ICsgICAgICAgIHVpbnQ4
X3QgZGVsaXZlcnlfbW9kZTozOwo+ICsgICAgICAgIHVpbnQ4X3QgZGVzdF9tb2RlOjE7Cj4gKyAg
ICAgICAgdWludDhfdCBkZWxpdmVyeV9zdGF0dXM6MTsKPiArICAgICAgICB1aW50OF90IHBvbGFy
aXR5OjE7Cj4gKyAgICAgICAgdWludDhfdCByZW1vdGVfaXJyOjE7Cj4gKyAgICAgICAgdWludDhf
dCB0cmlnX21vZGU6MTsKPiArICAgICAgICB1aW50OF90IG1hc2s6MTsKPiArICAgICAgICB1aW50
OF90IHJlc2VydmU6NzsKPiArICAgICAgICB1aW50OF90IHJlc2VydmVkWzRdOwo+ICsgICAgICAg
IHVpbnQ4X3QgZGVzdF9pZDsKPiArICAgIH0gZmllbGRzOwo+ICt9Owo+ICsKPiAgI2RlZmluZSBW
SU9BUElDX05VTV9QSU5TICA0OCAvKiAxNiBJU0EgSVJRcywgMzIgbm9uLWxlZ2FjeSBQQ0kgSVJR
Uy4gKi8KPiAgCj4gLXN0cnVjdCBodm1faHdfdmlvYXBpYyB7Cj4gLSAgICB1aW50NjRfdCBiYXNl
X2FkZHJlc3M7Cj4gLSAgICB1aW50MzJfdCBpb3JlZ3NlbDsKPiAtICAgIHVpbnQzMl90IGlkOwo+
IC0gICAgdW5pb24gdmlvYXBpY19yZWRpcl9lbnRyeQo+IC0gICAgewo+IC0gICAgICAgIHVpbnQ2
NF90IGJpdHM7Cj4gLSAgICAgICAgc3RydWN0IHsKPiAtICAgICAgICAgICAgdWludDhfdCB2ZWN0
b3I7Cj4gLSAgICAgICAgICAgIHVpbnQ4X3QgZGVsaXZlcnlfbW9kZTozOwo+IC0gICAgICAgICAg
ICB1aW50OF90IGRlc3RfbW9kZToxOwo+IC0gICAgICAgICAgICB1aW50OF90IGRlbGl2ZXJ5X3N0
YXR1czoxOwo+IC0gICAgICAgICAgICB1aW50OF90IHBvbGFyaXR5OjE7Cj4gLSAgICAgICAgICAg
IHVpbnQ4X3QgcmVtb3RlX2lycjoxOwo+IC0gICAgICAgICAgICB1aW50OF90IHRyaWdfbW9kZTox
Owo+IC0gICAgICAgICAgICB1aW50OF90IG1hc2s6MTsKPiAtICAgICAgICAgICAgdWludDhfdCBy
ZXNlcnZlOjc7Cj4gLSAgICAgICAgICAgIHVpbnQ4X3QgcmVzZXJ2ZWRbNF07Cj4gLSAgICAgICAg
ICAgIHVpbnQ4X3QgZGVzdF9pZDsKPiAtICAgICAgICB9IGZpZWxkczsKPiAtICAgIH0gcmVkaXJ0
YmxbVklPQVBJQ19OVU1fUElOU107Cj4gLX07Cj4gKyNkZWZpbmUgWEVOX0hWTV9WSU9BUElDKG5h
bWUsIGNudCkgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgc3RydWN0IG5hbWUgeyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgICAgICB1aW50NjRfdCBi
YXNlX2FkZHJlc3M7ICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAgICAgdWludDMy
X3QgaW9yZWdzZWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgICAgIHVp
bnQzMl90IGlkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgICAg
ICB1bmlvbiB2aW9hcGljX3JlZGlyX2VudHJ5IHJlZGlydGJsW2NudF07ICAgICAgICBcCj4gKyAg
ICB9Cj4gKwo+ICtYRU5fSFZNX1ZJT0FQSUMoaHZtX2h3X3Zpb2FwaWMsIFZJT0FQSUNfTlVNX1BJ
TlMpOwo+ICsKPiArI2lmbmRlZiBfX1hFTl9fCj4gKyN1bmRlZiBYRU5fSFZNX1ZJT0FQSUMKPiAr
I2Vsc2UKPiArI3VuZGVmIFZJT0FQSUNfTlVNX1BJTlMKPiArI2VuZGlmCj4gIAo+ICBERUNMQVJF
X0hWTV9TQVZFX1RZUEUoSU9BUElDLCA0LCBzdHJ1Y3QgaHZtX2h3X3Zpb2FwaWMpOwo+ICAKPiBA
QCAtNTUwLDEyICs1NzUsMTEgQEAgc3RydWN0IGh2bV9od19jcHVfeHNhdmUgewo+ICAgICAgc3Ry
dWN0IHsKPiAgICAgICAgICBzdHJ1Y3QgeyBjaGFyIHhbNTEyXTsgfSBmcHVfc3NlOwo+ICAKPiAt
ICAgICAgICBzdHJ1Y3Qgewo+ICsgICAgICAgIHN0cnVjdCBodm1faHdfY3B1X3hzYXZlX2hkciB7
Cj4gICAgICAgICAgICAgIHVpbnQ2NF90IHhzdGF0ZV9idjsgICAgICAgICAvKiBVcGRhdGVkIGJ5
IFhSU1RPUiAqLwo+IC0gICAgICAgICAgICB1aW50NjRfdCByZXNlcnZlZFs3XTsKPiArICAgICAg
ICAgICAgdWludDY0X3QgeGNvbXBfYnY7ICAgICAgICAgIC8qIFVwZGF0ZWQgYnkgWFJTVE9Se0Ms
U30gKi8KPiArICAgICAgICAgICAgdWludDY0X3QgcmVzZXJ2ZWRbNl07Cj4gICAgICAgICAgfSB4
c2F2ZV9oZHI7ICAgICAgICAgICAgICAgICAgICAvKiBUaGUgNjQtYnl0ZSBoZWFkZXIgKi8KPiAt
Cj4gLSAgICAgICAgc3RydWN0IHsgY2hhciB4WzBdOyB9IHltbTsgICAgLyogWU1NICovCj4gICAg
ICB9IHNhdmVfYXJlYTsKPiAgfTsKPiAgCj4gQEAgLTU3NSw3ICs1OTksOSBAQCBzdHJ1Y3QgaHZt
X3ZpcmlkaWFuX2RvbWFpbl9jb250ZXh0IHsKPiAgREVDTEFSRV9IVk1fU0FWRV9UWVBFKFZJUklE
SUFOX0RPTUFJTiwgMTUsIHN0cnVjdCBodm1fdmlyaWRpYW5fZG9tYWluX2NvbnRleHQpOwo+ICAK
PiAgc3RydWN0IGh2bV92aXJpZGlhbl92Y3B1X2NvbnRleHQgewo+IC0gICAgdWludDY0X3QgYXBp
Y19hc3Npc3Q7Cj4gKyAgICB1aW50NjRfdCB2cF9hc3Npc3RfbXNyOwo+ICsgICAgdWludDhfdCAg
dnBfYXNzaXN0X3ZlY3RvcjsKPiArICAgIHVpbnQ4X3QgIF9wYWRbN107Cj4gIH07Cj4gIAo+ICBE
RUNMQVJFX0hWTV9TQVZFX1RZUEUoVklSSURJQU5fVkNQVSwgMTcsIHN0cnVjdCBodm1fdmlyaWRp
YW5fdmNwdV9jb250ZXh0KTsKPiBAQCAtNTg0LDYgKzYxMCw3IEBAIHN0cnVjdCBodm1fdm1jZV92
Y3B1IHsKPiAgICAgIHVpbnQ2NF90IGNhcHM7Cj4gICAgICB1aW50NjRfdCBtY2lfY3RsMl9iYW5r
MDsKPiAgICAgIHVpbnQ2NF90IG1jaV9jdGwyX2JhbmsxOwo+ICsgICAgdWludDY0X3QgbWNnX2V4
dF9jdGw7Cj4gIH07Cj4gIAo+ICBERUNMQVJFX0hWTV9TQVZFX1RZUEUoVk1DRV9WQ1BVLCAxOCwg
c3RydWN0IGh2bV92bWNlX3ZjcHUpOwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9hcmNoLXg4
Ni9wbXUuaCBiL2luY2x1ZGUveGVuL2FyY2gteDg2L3BtdS5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2
NDQKPiBpbmRleCAwMDAwMDAwLi42OGViZjEyCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2luY2x1
ZGUveGVuL2FyY2gteDg2L3BtdS5oCj4gQEAgLTAsMCArMSwxNjcgQEAKPiArLyoKPiArICogUGVy
bWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24g
b2J0YWluaW5nIGEgY29weQo+ICsgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRv
Y3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KPiArICogZGVhbCBpbiB0aGUg
U29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlv
biB0aGUKPiArICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwg
ZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCj4gKyAqIHNlbGwgY29waWVzIG9mIHRoZSBT
b2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCj4g
KyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnM6Cj4gKyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p
c3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCj4gKyAqIGFsbCBjb3BpZXMgb3Igc3Vi
c3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdB
UkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQ
UkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCj4g
KyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0s
IERBTUFHRVMgT1IgT1RIRVIKPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBP
RiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiArICogRlJPTSwgT1VUIE9G
IE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgo+
ICsgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4gKyAqCj4gKyAqIENvcHlyaWdodCAoYykg
MjAxNSBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgo+
ICsgKi8KPiArCj4gKyNpZm5kZWYgX19YRU5fUFVCTElDX0FSQ0hfWDg2X1BNVV9IX18KPiArI2Rl
ZmluZSBfX1hFTl9QVUJMSUNfQVJDSF9YODZfUE1VX0hfXwo+ICsKPiArLyogeDg2LXNwZWNpZmlj
IFBNVSBkZWZpbml0aW9ucyAqLwo+ICsKPiArLyogQU1EIFBNVSByZWdpc3RlcnMgYW5kIHN0cnVj
dHVyZXMgKi8KPiArc3RydWN0IHhlbl9wbXVfYW1kX2N0eHQgewo+ICsgICAgLyoKPiArICAgICAq
IE9mZnNldHMgdG8gY291bnRlciBhbmQgY29udHJvbCBNU1JzIChyZWxhdGl2ZSB0byB4ZW5fcG11
X2FyY2guYy5hbWQpLgo+ICsgICAgICogRm9yIFBWKEgpIGd1ZXN0cyB0aGVzZSBmaWVsZHMgYXJl
IFJPLgo+ICsgICAgICovCj4gKyAgICB1aW50MzJfdCBjb3VudGVyczsKPiArICAgIHVpbnQzMl90
IGN0cmxzOwo+ICsKPiArICAgIC8qIENvdW50ZXIgTVNScyAqLwo+ICsjaWYgZGVmaW5lZChfX1NU
RENfVkVSU0lPTl9fKSAmJiBfX1NURENfVkVSU0lPTl9fID49IDE5OTkwMUwKPiArICAgIHVpbnQ2
NF90IHJlZ3NbXTsKPiArI2VsaWYgZGVmaW5lZChfX0dOVUNfXykKPiArICAgIHVpbnQ2NF90IHJl
Z3NbMF07Cj4gKyNlbmRpZgo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCB4ZW5fcG11X2FtZF9jdHh0
IHhlbl9wbXVfYW1kX2N0eHRfdDsKPiArREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3BtdV9h
bWRfY3R4dF90KTsKPiArCj4gKy8qIEludGVsIFBNVSByZWdpc3RlcnMgYW5kIHN0cnVjdHVyZXMg
Ki8KPiArc3RydWN0IHhlbl9wbXVfY250cl9wYWlyIHsKPiArICAgIHVpbnQ2NF90IGNvdW50ZXI7
Cj4gKyAgICB1aW50NjRfdCBjb250cm9sOwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCB4ZW5fcG11
X2NudHJfcGFpciB4ZW5fcG11X2NudHJfcGFpcl90Owo+ICtERUZJTkVfWEVOX0dVRVNUX0hBTkRM
RSh4ZW5fcG11X2NudHJfcGFpcl90KTsKPiArCj4gK3N0cnVjdCB4ZW5fcG11X2ludGVsX2N0eHQg
ewo+ICsgICAvKgo+ICsgICAgKiBPZmZzZXRzIHRvIGZpeGVkIGFuZCBhcmNoaXRlY3R1cmFsIGNv
dW50ZXIgTVNScyAocmVsYXRpdmUgdG8KPiArICAgICogeGVuX3BtdV9hcmNoLmMuaW50ZWwpLgo+
ICsgICAgKiBGb3IgUFYoSCkgZ3Vlc3RzIHRoZXNlIGZpZWxkcyBhcmUgUk8uCj4gKyAgICAqLwo+
ICsgICAgdWludDMyX3QgZml4ZWRfY291bnRlcnM7Cj4gKyAgICB1aW50MzJfdCBhcmNoX2NvdW50
ZXJzOwo+ICsKPiArICAgIC8qIFBNVSByZWdpc3RlcnMgKi8KPiArICAgIHVpbnQ2NF90IGdsb2Jh
bF9jdHJsOwo+ICsgICAgdWludDY0X3QgZ2xvYmFsX292Zl9jdHJsOwo+ICsgICAgdWludDY0X3Qg
Z2xvYmFsX3N0YXR1czsKPiArICAgIHVpbnQ2NF90IGZpeGVkX2N0cmw7Cj4gKyAgICB1aW50NjRf
dCBkc19hcmVhOwo+ICsgICAgdWludDY0X3QgcGVic19lbmFibGU7Cj4gKyAgICB1aW50NjRfdCBk
ZWJ1Z2N0bDsKPiArCj4gKyAgICAvKiBGaXhlZCBhbmQgYXJjaGl0ZWN0dXJhbCBjb3VudGVyIE1T
UnMgKi8KPiArI2lmIGRlZmluZWQoX19TVERDX1ZFUlNJT05fXykgJiYgX19TVERDX1ZFUlNJT05f
XyA+PSAxOTk5MDFMCj4gKyAgICB1aW50NjRfdCByZWdzW107Cj4gKyNlbGlmIGRlZmluZWQoX19H
TlVDX18pCj4gKyAgICB1aW50NjRfdCByZWdzWzBdOwo+ICsjZW5kaWYKPiArfTsKPiArdHlwZWRl
ZiBzdHJ1Y3QgeGVuX3BtdV9pbnRlbF9jdHh0IHhlbl9wbXVfaW50ZWxfY3R4dF90Owo+ICtERUZJ
TkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fcG11X2ludGVsX2N0eHRfdCk7Cj4gKwo+ICsvKiBTYW1w
bGVkIGRvbWFpbidzIHJlZ2lzdGVycyAqLwo+ICtzdHJ1Y3QgeGVuX3BtdV9yZWdzIHsKPiArICAg
IHVpbnQ2NF90IGlwOwo+ICsgICAgdWludDY0X3Qgc3A7Cj4gKyAgICB1aW50NjRfdCBmbGFnczsK
PiArICAgIHVpbnQxNl90IGNzOwo+ICsgICAgdWludDE2X3Qgc3M7Cj4gKyAgICB1aW50OF90IGNw
bDsKPiArICAgIHVpbnQ4X3QgcGFkWzNdOwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCB4ZW5fcG11
X3JlZ3MgeGVuX3BtdV9yZWdzX3Q7Cj4gK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9wbXVf
cmVnc190KTsKPiArCj4gKy8qIFBNVSBmbGFncyAqLwo+ICsjZGVmaW5lIFBNVV9DQUNIRUQgICAg
ICAgICAoMTw8MCkgLyogUE1VIE1TUnMgYXJlIGNhY2hlZCBpbiB0aGUgY29udGV4dCAqLwo+ICsj
ZGVmaW5lIFBNVV9TQU1QTEVfVVNFUiAgICAoMTw8MSkgLyogU2FtcGxlIGlzIGZyb20gdXNlciBv
ciBrZXJuZWwgbW9kZSAqLwo+ICsjZGVmaW5lIFBNVV9TQU1QTEVfUkVBTCAgICAoMTw8MikgLyog
U2FtcGxlIGlzIGZyb20gcmVhbG1vZGUgKi8KPiArI2RlZmluZSBQTVVfU0FNUExFX1BWICAgICAg
KDE8PDMpIC8qIFNhbXBsZSBmcm9tIGEgUFYgZ3Vlc3QgKi8KPiArCj4gKy8qCj4gKyAqIEFyY2hp
dGVjdHVyZS1zcGVjaWZpYyBpbmZvcm1hdGlvbiBkZXNjcmliaW5nIHN0YXRlIG9mIHRoZSBwcm9j
ZXNzb3IgYXQKPiArICogdGhlIHRpbWUgb2YgUE1VIGludGVycnVwdC4KPiArICogRmllbGRzIG9m
IHRoaXMgc3RydWN0dXJlIG1hcmtlZCBhcyBSVyBmb3IgZ3Vlc3Qgc2hvdWxkIG9ubHkgYmUgd3Jp
dHRlbiBieQo+ICsgKiB0aGUgZ3Vlc3Qgd2hlbiBQTVVfQ0FDSEVEIGJpdCBpbiBwbXVfZmxhZ3Mg
aXMgc2V0ICh3aGljaCBpcyBkb25lIGJ5IHRoZQo+ICsgKiBoeXBlcnZpc29yIGR1cmluZyBQTVUg
aW50ZXJydXB0KS4gSHlwZXJ2aXNvciB3aWxsIHJlYWQgdXBkYXRlZCBkYXRhIGluCj4gKyAqIFhF
TlBNVV9mbHVzaCBoeXBlcmNhbGwgYW5kIGNsZWFyIFBNVV9DQUNIRUQgYml0Lgo+ICsgKi8KPiAr
c3RydWN0IHhlbl9wbXVfYXJjaCB7Cj4gKyAgICB1bmlvbiB7Cj4gKyAgICAgICAgLyoKPiArICAg
ICAgICAgKiBQcm9jZXNzb3IncyByZWdpc3RlcnMgYXQgdGhlIHRpbWUgb2YgaW50ZXJydXB0Lgo+
ICsgICAgICAgICAqIFdPIGZvciBoeXBlcnZpc29yLCBSTyBmb3IgZ3Vlc3RzLgo+ICsgICAgICAg
ICAqLwo+ICsgICAgICAgIHN0cnVjdCB4ZW5fcG11X3JlZ3MgcmVnczsKPiArICAgICAgICAvKiBQ
YWRkaW5nIGZvciBhZGRpbmcgbmV3IHJlZ2lzdGVycyB0byB4ZW5fcG11X3JlZ3MgaW4gdGhlIGZ1
dHVyZSAqLwo+ICsjZGVmaW5lIFhFTlBNVV9SRUdTX1BBRF9TWiAgNjQKPiArICAgICAgICB1aW50
OF90IHBhZFtYRU5QTVVfUkVHU19QQURfU1pdOwo+ICsgICAgfSByOwo+ICsKPiArICAgIC8qIFdP
IGZvciBoeXBlcnZpc29yLCBSTyBmb3IgZ3Vlc3QgKi8KPiArICAgIHVpbnQ2NF90IHBtdV9mbGFn
czsKPiArCj4gKyAgICAvKgo+ICsgICAgICogQVBJQyBMVlRQQyByZWdpc3Rlci4KPiArICAgICAq
IFJXIGZvciBib3RoIGh5cGVydmlzb3IgYW5kIGd1ZXN0Lgo+ICsgICAgICogT25seSBBUElDX0xW
VF9NQVNLRUQgYml0IGlzIGxvYWRlZCBieSB0aGUgaHlwZXJ2aXNvciBpbnRvIGhhcmR3YXJlCj4g
KyAgICAgKiBkdXJpbmcgWEVOUE1VX2ZsdXNoIG9yIFhFTlBNVV9sdnRwY19zZXQuCj4gKyAgICAg
Ki8KPiArICAgIHVuaW9uIHsKPiArICAgICAgICB1aW50MzJfdCBsYXBpY19sdnRwYzsKPiArICAg
ICAgICB1aW50NjRfdCBwYWQ7Cj4gKyAgICB9IGw7Cj4gKwo+ICsgICAgLyoKPiArICAgICAqIFZl
bmRvci1zcGVjaWZpYyBQTVUgcmVnaXN0ZXJzLgo+ICsgICAgICogUlcgZm9yIGJvdGggaHlwZXJ2
aXNvciBhbmQgZ3Vlc3QgKHNlZSBleGNlcHRpb25zIGFib3ZlKS4KPiArICAgICAqIEd1ZXN0J3Mg
dXBkYXRlcyB0byB0aGlzIGZpZWxkIGFyZSB2ZXJpZmllZCBhbmQgdGhlbiBsb2FkZWQgYnkgdGhl
Cj4gKyAgICAgKiBoeXBlcnZpc29yIGludG8gaGFyZHdhcmUgZHVyaW5nIFhFTlBNVV9mbHVzaAo+
ICsgICAgICovCj4gKyAgICB1bmlvbiB7Cj4gKyAgICAgICAgc3RydWN0IHhlbl9wbXVfYW1kX2N0
eHQgYW1kOwo+ICsgICAgICAgIHN0cnVjdCB4ZW5fcG11X2ludGVsX2N0eHQgaW50ZWw7Cj4gKwo+
ICsgICAgICAgIC8qCj4gKyAgICAgICAgICogUGFkZGluZyBmb3IgY29udGV4dHMgKGZpeGVkIHBh
cnRzIG9ubHksIGRvZXMgbm90IGluY2x1ZGUgTVNSIGJhbmtzCj4gKyAgICAgICAgICogdGhhdCBh
cmUgc3BlY2lmaWVkIGJ5IG9mZnNldHMpCj4gKyAgICAgICAgICovCj4gKyNkZWZpbmUgWEVOUE1V
X0NUWFRfUEFEX1NaICAxMjgKPiArICAgICAgICB1aW50OF90IHBhZFtYRU5QTVVfQ1RYVF9QQURf
U1pdOwo+ICsgICAgfSBjOwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCB4ZW5fcG11X2FyY2ggeGVu
X3BtdV9hcmNoX3Q7Cj4gK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9wbXVfYXJjaF90KTsK
PiArCj4gKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfQVJDSF9YODZfUE1VX0hfXyAqLwo+ICsvKgo+
ICsgKiBMb2NhbCB2YXJpYWJsZXM6Cj4gKyAqIG1vZGU6IEMKPiArICogYy1maWxlLXN0eWxlOiAi
QlNEIgo+ICsgKiBjLWJhc2ljLW9mZnNldDogNAo+ICsgKiB0YWItd2lkdGg6IDQKPiArICogaW5k
ZW50LXRhYnMtbW9kZTogbmlsCj4gKyAqIEVuZDoKPiArICovCj4gKwo+IGRpZmYgLS1naXQgYS9p
bmNsdWRlL3hlbi9hcmNoLXg4Ni94ZW4tbWNhLmggYi9pbmNsdWRlL3hlbi9hcmNoLXg4Ni94ZW4t
bWNhLmgKPiBpbmRleCAwNDM4MmVkLi5kYzM1MjY3IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUveGVu
L2FyY2gteDg2L3hlbi1tY2EuaAo+ICsrKyBiL2luY2x1ZGUveGVuL2FyY2gteDg2L3hlbi1tY2Eu
aAo+IEBAIC0xLDExICsxLDExIEBACj4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiAgICogYXJj
aC14ODYvbWNhLmgKPiAtICogCj4gKyAqCj4gICAqIENvbnRyaWJ1dGVkIGJ5IEFkdmFuY2VkIE1p
Y3JvIERldmljZXMsIEluYy4KPiAgICogQXV0aG9yOiBDaHJpc3RvcGggRWdnZXIgPENocmlzdG9w
aC5FZ2dlckBhbWQuY29tPgo+ICAgKgo+ICAgKiBHdWVzdCBPUyBtYWNoaW5lIGNoZWNrIGludGVy
ZmFjZSB0byB4ODYgWGVuLgo+IC0gKiAKPiArICoKPiAgICogUGVybWlzc2lvbiBpcyBoZXJlYnkg
Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQo+
ICAgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMg
KHRoZSAiU29mdHdhcmUiKSwgdG8KPiAgICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCBy
ZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKPiBAQCAtODgsNiAr
ODgsOCBAQAo+ICAjZGVmaW5lIFhFTl9NQ19OT1RERUxJVkVSRUQgMHgxMAo+ICAvKiBOb3RlLCBY
RU5fTUNfQ0FOTk9USEFORExFIGFuZCBYRU5fTUNfTk9UREVMSVZFUkVEIGFyZSBtdXR1YWxseSBl
eGNsdXNpdmUuICovCj4gIAo+ICsvKiBBcHBsaWNhYmxlIHRvIGFsbCBtY192Y3B1aWQgZmllbGRz
IGJlbG93LiAqLwo+ICsjZGVmaW5lIFhFTl9NQ19WQ1BVSURfSU5WQUxJRCAweGZmZmYKPiAgCj4g
ICNpZm5kZWYgX19BU1NFTUJMWV9fCj4gIAo+IEBAIC0xNTYsNyArMTU4LDcgQEAgc3RydWN0IG1j
aW5mb19tc3Igewo+ICB9Owo+ICAKPiAgLyogY29udGFpbnMgbWMgaW5mb3JtYXRpb24gZnJvbSBv
dGhlcgo+IC0gKiBvciBhZGRpdGlvbmFsIG1jIE1TUnMgKi8gCj4gKyAqIG9yIGFkZGl0aW9uYWwg
bWMgTVNScyAqLwo+ICBzdHJ1Y3QgbWNpbmZvX2V4dGVuZGVkIHsKPiAgICAgIHN0cnVjdCBtY2lu
Zm9fY29tbW9uIGNvbW1vbjsKPiAgCj4gQEAgLTE5MywxMCArMTk1LDEwIEBAIHN0cnVjdCBtY2lu
Zm9fZXh0ZW5kZWQgewo+ICAvKiBMMyBjYWNoZSBkaXNhYmxlIEFjdGlvbiAqLwo+ICAjZGVmaW5l
IE1DX0FDVElPTl9DQUNIRV9TSFJJTksgKDB4MSA8PCAyKQo+ICAKPiAtLyogQmVsb3cgaW50ZXJm
YWNlIHVzZWQgYmV0d2VlbiBYRU4vRE9NMCBmb3IgcGFzc2luZyBYRU4ncyByZWNvdmVyeSBhY3Rp
b24gCj4gLSAqIGluZm9ybWF0aW9uIHRvIERPTTAuIAo+ICsvKiBCZWxvdyBpbnRlcmZhY2UgdXNl
ZCBiZXR3ZWVuIFhFTi9ET00wIGZvciBwYXNzaW5nIFhFTidzIHJlY292ZXJ5IGFjdGlvbgo+ICsg
KiBpbmZvcm1hdGlvbiB0byBET00wLgo+ICAgKiB1c2FnZSBTZW5hcmlvOiBBZnRlciBvZmZsaW5p
bmcgYnJva2VuIHBhZ2UsIFhFTiBtaWdodCBwYXNzIGl0cyBwYWdlIG9mZmxpbmUKPiAtICogcmVj
b3ZlcnkgYWN0aW9uIHJlc3VsdCB0byBET00wLiBET00wIHdpbGwgc2F2ZSB0aGUgaW5mb3JtYXRp
b24gaW4gCj4gKyAqIHJlY292ZXJ5IGFjdGlvbiByZXN1bHQgdG8gRE9NMC4gRE9NMCB3aWxsIHNh
dmUgdGhlIGluZm9ybWF0aW9uIGluCj4gICAqIG5vbi12b2xhdGlsZSBtZW1vcnkgZm9yIGZ1cnRo
ZXIgcHJvYWN0aXZlIGFjdGlvbnMsIHN1Y2ggYXMgb2ZmbGluaW5nIHRoZQo+ICAgKiBlYXN5IGJy
b2tlbiBwYWdlIGVhcmxpZXIgd2hlbiBkb2luZyBuZXh0IHJlYm9vdC4KPiAgKi8KPiBAQCAtMjU1
LDggKzI1Nyw4IEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKG1jX2luZm9fdCk7Cj4gICNkZWZp
bmUgTUNfQ0FQU19BTURfRUNYCTYJLyogY3B1aWQgbGV2ZWwgMHg4MDAwMDAwMSAoJWVjeCkgKi8K
PiAgCj4gIHN0cnVjdCBtY2luZm9fbG9naWNhbF9jcHUgewo+IC0gICAgdWludDMyX3QgbWNfY3B1
bnI7ICAgICAgICAgIAo+IC0gICAgdWludDMyX3QgbWNfY2hpcGlkOyAKPiArICAgIHVpbnQzMl90
IG1jX2NwdW5yOwo+ICsgICAgdWludDMyX3QgbWNfY2hpcGlkOwo+ICAgICAgdWludDE2X3QgbWNf
Y29yZWlkOwo+ICAgICAgdWludDE2X3QgbWNfdGhyZWFkaWQ7Cj4gICAgICB1aW50MzJfdCBtY19h
cGljaWQ7Cj4gQEAgLTI4MSw3ICsyODMsNyBAQCB0eXBlZGVmIHN0cnVjdCBtY2luZm9fbG9naWNh
bF9jcHUgeGVuX21jX2xvZ2ljYWxfY3B1X3Q7Cj4gIERFRklORV9YRU5fR1VFU1RfSEFORExFKHhl
bl9tY19sb2dpY2FsX2NwdV90KTsKPiAgCj4gIAo+IC0vKiAKPiArLyoKPiAgICogT1MncyBzaG91
bGQgdXNlIHRoZXNlIGluc3RlYWQgb2Ygd3JpdGluZyB0aGVpciBvd24gbG9va3VwIGZ1bmN0aW9u
Cj4gICAqIGVhY2ggd2l0aCBpdHMgb3duIGJ1Z3MgYW5kIGRyYXdiYWNrcy4KPiAgICogV2UgdXNl
IG1hY3JvcyBpbnN0ZWFkIG9mIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb25zIHRvIGFsbG93IGd1ZXN0
cwo+IEBAIC0zMTIsOCArMzE0LDggQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX21jX2xv
Z2ljYWxfY3B1X3QpOwo+ICAgICAgICAgIHN0cnVjdCBtY2luZm9fY29tbW9uICpfbWljOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICAgICAgICAgIGZvdW5kID0g
MDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+IC0JKF9y
ZXQpID0gTlVMTDsJCQkJCQlcCj4gLQlpZiAoX21pID09IE5VTEwpIGJyZWFrOwkJCQkJXAo+ICsg
ICAgICAgIChfcmV0KSA9IE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAo+ICsgICAgICAgIGlmIChfbWkgPT0gTlVMTCkgYnJlYWs7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAo+ICAgICAgICAgIF9taWMgPSB4ODZfbWNpbmZvX2ZpcnN0KF9t
aSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICAgICAgICAgIGZvciAoaSA9IDA7IGkg
PCB4ODZfbWNpbmZvX25lbnRyaWVzKF9taSk7IGkrKykgeyAgICAgICAgXAo+ICAgICAgICAgICAg
ICBpZiAoX21pYy0+dHlwZSA9PSAoX3R5cGUpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgXAo+
IEBAIC0zNDUsOCArMzQ3LDggQEAgc3RydWN0IHhlbl9tY19mZXRjaCB7Cj4gICAgICAvKiBJTi9P
VVQgdmFyaWFibGVzLiAqLwo+ICAgICAgdWludDMyX3QgZmxhZ3M7CS8qIElOOiBYRU5fTUNfTk9O
VVJHRU5ULCBYRU5fTUNfVVJHRU5ULAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5f
TUNfQUNLIGlmIGFjaydpbmcgYW4gZWFybGllciBmZXRjaCAqLwo+IC0JCQkvKiBPVVQ6IFhFTl9N
Q19PSywgWEVOX01DX0ZFVENIRkFJTEVELAo+IC0JCQkgICBYRU5fTUNfTk9EQVRBLCBYRU5fTUNf
Tk9NQVRDSCAqLwo+ICsgICAgICAgICAgICAgICAgICAgICAgIC8qIE9VVDogWEVOX01DX09LLCBY
RU5fTUNfRkVUQ0hGQUlMRUQsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX01DX05P
REFUQSwgWEVOX01DX05PTUFUQ0ggKi8KPiAgICAgIHVpbnQzMl90IF9wYWQwOwo+ICAgICAgdWlu
dDY0X3QgZmV0Y2hfaWQ7CS8qIE9VVDogaWQgZm9yIGFjaywgSU46IGlkIHdlIGFyZSBhY2snaW5n
ICovCj4gIAo+IEBAIC0zNzgsMzAgKzM4MCwzMyBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4
ZW5fbWNfbm90aWZ5ZG9tYWluX3QpOwo+ICAKPiAgI2RlZmluZSBYRU5fTUNfcGh5c2NwdWluZm8g
Mwo+ICBzdHJ1Y3QgeGVuX21jX3BoeXNjcHVpbmZvIHsKPiAtCS8qIElOL09VVCAqLwo+IC0JdWlu
dDMyX3QgbmNwdXM7Cj4gLQl1aW50MzJfdCBfcGFkMDsKPiAtCS8qIE9VVCAqLwo+IC0JWEVOX0dV
RVNUX0hBTkRMRSh4ZW5fbWNfbG9naWNhbF9jcHVfdCkgaW5mbzsKPiArICAgIC8qIElOL09VVCAq
Lwo+ICsgICAgdWludDMyX3QgbmNwdXM7Cj4gKyAgICB1aW50MzJfdCBfcGFkMDsKPiArICAgIC8q
IE9VVCAqLwo+ICsgICAgWEVOX0dVRVNUX0hBTkRMRSh4ZW5fbWNfbG9naWNhbF9jcHVfdCkgaW5m
bzsKPiAgfTsKPiAgCj4gICNkZWZpbmUgWEVOX01DX21zcmluamVjdCAgICA0Cj4gICNkZWZpbmUg
TUNfTVNSSU5KX01BWE1TUlMgICAgICAgOAo+ICBzdHJ1Y3QgeGVuX21jX21zcmluamVjdCB7Cj4g
LSAgICAgICAvKiBJTiAqLwo+IC0JdWludDMyX3QgbWNpbmpfY3B1bnI7ICAgICAgICAgICAvKiB0
YXJnZXQgcHJvY2Vzc29yIGlkICovCj4gLQl1aW50MzJfdCBtY2lual9mbGFnczsgICAgICAgICAg
IC8qIHNlZSBNQ19NU1JJTkpfRl8qIGJlbG93ICovCj4gLQl1aW50MzJfdCBtY2lual9jb3VudDsg
ICAgICAgICAgIC8qIDAgLi4gY291bnQtMSBpbiBhcnJheSBhcmUgdmFsaWQgKi8KPiAtCXVpbnQz
Ml90IF9wYWQwOwo+IC0Jc3RydWN0IG1jaW5mb19tc3IgbWNpbmpfbXNyW01DX01TUklOSl9NQVhN
U1JTXTsKPiArICAgIC8qIElOICovCj4gKyAgICB1aW50MzJfdCBtY2lual9jcHVucjsgICAgICAg
ICAgIC8qIHRhcmdldCBwcm9jZXNzb3IgaWQgKi8KPiArICAgIHVpbnQzMl90IG1jaW5qX2ZsYWdz
OyAgICAgICAgICAgLyogc2VlIE1DX01TUklOSl9GXyogYmVsb3cgKi8KPiArICAgIHVpbnQzMl90
IG1jaW5qX2NvdW50OyAgICAgICAgICAgLyogMCAuLiBjb3VudC0xIGluIGFycmF5IGFyZSB2YWxp
ZCAqLwo+ICsgICAgZG9taWRfdCAgbWNpbmpfZG9taWQ7ICAgICAgICAgICAvKiB2YWxpZCBvbmx5
IGlmIE1DX01TUklOSl9GX0dQQUREUiBpcwo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwcmVzZW50IGluIG1jaW5qX2ZsYWdzICovCj4gKyAgICB1aW50MTZfdCBfcGFk
MDsKPiArICAgIHN0cnVjdCBtY2luZm9fbXNyIG1jaW5qX21zcltNQ19NU1JJTkpfTUFYTVNSU107
Cj4gIH07Cj4gIAo+ICAvKiBGbGFncyBmb3IgbWNpbmpfZmxhZ3MgYWJvdmU7IGJpdHMgMTYtMzEg
YXJlIHJlc2VydmVkICovCj4gICNkZWZpbmUgTUNfTVNSSU5KX0ZfSU5URVJQT1NFICAgMHgxCj4g
KyNkZWZpbmUgTUNfTVNSSU5KX0ZfR1BBRERSICAgICAgMHgyCj4gIAo+ICAjZGVmaW5lIFhFTl9N
Q19tY2VpbmplY3QgICAgNQo+ICBzdHJ1Y3QgeGVuX21jX21jZWluamVjdCB7Cj4gLQl1bnNpZ25l
ZCBpbnQgbWNlaW5qX2NwdW5yOyAgICAgIC8qIHRhcmdldCBwcm9jZXNzb3IgaWQgKi8KPiArICAg
IHVuc2lnbmVkIGludCBtY2VpbmpfY3B1bnI7ICAgICAgLyogdGFyZ2V0IHByb2Nlc3NvciBpZCAq
Lwo+ICB9Owo+ICAKPiAgI2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09M
U19fKQo+IEBAIC00MDksMTIgKzQxNCwxMyBAQCBzdHJ1Y3QgeGVuX21jX21jZWluamVjdCB7Cj4g
ICNkZWZpbmUgWEVOX01DX0lOSkVDVF9UWVBFX01BU0sgICAgIDB4Nwo+ICAjZGVmaW5lIFhFTl9N
Q19JTkpFQ1RfVFlQRV9NQ0UgICAgICAweDAKPiAgI2RlZmluZSBYRU5fTUNfSU5KRUNUX1RZUEVf
Q01DSSAgICAgMHgxCj4gKyNkZWZpbmUgWEVOX01DX0lOSkVDVF9UWVBFX0xNQ0UgICAgIDB4Mgo+
ICAKPiAgI2RlZmluZSBYRU5fTUNfSU5KRUNUX0NQVV9CUk9BRENBU1QgMHg4Cj4gIAo+ICBzdHJ1
Y3QgeGVuX21jX2luamVjdF92MiB7Cj4gLQl1aW50MzJfdCBmbGFnczsKPiAtCXN0cnVjdCB4ZW5j
dGxfYml0bWFwIGNwdW1hcDsKPiArICAgIHVpbnQzMl90IGZsYWdzOwo+ICsgICAgc3RydWN0IHhl
bmN0bF9iaXRtYXAgY3B1bWFwOwo+ICB9Owo+ICAjZW5kaWYKPiAgCj4gZGlmZiAtLWdpdCBhL2lu
Y2x1ZGUveGVuL2FyY2gteDg2L3hlbi14ODZfMzIuaCBiL2luY2x1ZGUveGVuL2FyY2gteDg2L3hl
bi14ODZfMzIuaAo+IGluZGV4IDYzMzk3MjcuLmFhMzg4YjcgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVk
ZS94ZW4vYXJjaC14ODYveGVuLXg4Nl8zMi5oCj4gKysrIGIvaW5jbHVkZS94ZW4vYXJjaC14ODYv
eGVuLXg4Nl8zMi5oCj4gQEAgLTU1LDQzICs1NSwzOCBAQAo+ICAjZGVmaW5lIEZMQVRfVVNFUl9E
UyAgICBGTEFUX1JJTkczX0RTCj4gICNkZWZpbmUgRkxBVF9VU0VSX1NTICAgIEZMQVRfUklORzNf
U1MKPiAgCj4gLSNpZmRlZiBDT05GSUdfUEFSQVZJUlQKPiAgI2RlZmluZSBfX0hZUEVSVklTT1Jf
VklSVF9TVEFSVF9QQUUgICAgMHhGNTgwMDAwMAo+ICAjZGVmaW5lIF9fTUFDSDJQSFlTX1ZJUlRf
U1RBUlRfUEFFICAgICAweEY1ODAwMDAwCj4gICNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9FTkRf
UEFFICAgICAgIDB4RjY4MDAwMDAKPiAtI2RlZmluZSBIWVBFUlZJU09SX1ZJUlRfU1RBUlRfUEFF
ICAgICAgXAo+IC0gICAgbWtfdW5zaWduZWRfbG9uZyhfX0hZUEVSVklTT1JfVklSVF9TVEFSVF9Q
QUUpCj4gLSNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRfU1RBUlRfUEFFICAgICAgIFwKPiAtICAgIG1r
X3Vuc2lnbmVkX2xvbmcoX19NQUNIMlBIWVNfVklSVF9TVEFSVF9QQUUpCj4gLSNkZWZpbmUgTUFD
SDJQSFlTX1ZJUlRfRU5EX1BBRSAgICAgICAgIFwKPiAtICAgIG1rX3Vuc2lnbmVkX2xvbmcoX19N
QUNIMlBIWVNfVklSVF9FTkRfUEFFKQo+ICsjZGVmaW5lIEhZUEVSVklTT1JfVklSVF9TVEFSVF9Q
QUUgICAgICB4ZW5fbWtfdWxvbmcoX19IWVBFUlZJU09SX1ZJUlRfU1RBUlRfUEFFKQo+ICsjZGVm
aW5lIE1BQ0gyUEhZU19WSVJUX1NUQVJUX1BBRSAgICAgICB4ZW5fbWtfdWxvbmcoX19NQUNIMlBI
WVNfVklSVF9TVEFSVF9QQUUpCj4gKyNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRfRU5EX1BBRSAgICAg
ICAgIHhlbl9ta191bG9uZyhfX01BQ0gyUEhZU19WSVJUX0VORF9QQUUpCj4gIAo+ICAvKiBOb24t
UEFFIGJvdW5kcyBhcmUgb2Jzb2xldGUuICovCj4gICNkZWZpbmUgX19IWVBFUlZJU09SX1ZJUlRf
U1RBUlRfTk9OUEFFIDB4RkMwMDAwMDAKPiAgI2RlZmluZSBfX01BQ0gyUEhZU19WSVJUX1NUQVJU
X05PTlBBRSAgMHhGQzAwMDAwMAo+ICAjZGVmaW5lIF9fTUFDSDJQSFlTX1ZJUlRfRU5EX05PTlBB
RSAgICAweEZDNDAwMDAwCj4gICNkZWZpbmUgSFlQRVJWSVNPUl9WSVJUX1NUQVJUX05PTlBBRSAg
IFwKPiAtICAgIG1rX3Vuc2lnbmVkX2xvbmcoX19IWVBFUlZJU09SX1ZJUlRfU1RBUlRfTk9OUEFF
KQo+ICsgICAgeGVuX21rX3Vsb25nKF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUX05PTlBBRSkKPiAg
I2RlZmluZSBNQUNIMlBIWVNfVklSVF9TVEFSVF9OT05QQUUgICAgXAo+IC0gICAgbWtfdW5zaWdu
ZWRfbG9uZyhfX01BQ0gyUEhZU19WSVJUX1NUQVJUX05PTlBBRSkKPiArICAgIHhlbl9ta191bG9u
ZyhfX01BQ0gyUEhZU19WSVJUX1NUQVJUX05PTlBBRSkKPiAgI2RlZmluZSBNQUNIMlBIWVNfVklS
VF9FTkRfTk9OUEFFICAgICAgXAo+IC0gICAgbWtfdW5zaWduZWRfbG9uZyhfX01BQ0gyUEhZU19W
SVJUX0VORF9OT05QQUUpCj4gKyAgICB4ZW5fbWtfdWxvbmcoX19NQUNIMlBIWVNfVklSVF9FTkRf
Tk9OUEFFKQo+ICAKPiAgI2RlZmluZSBfX0hZUEVSVklTT1JfVklSVF9TVEFSVCBfX0hZUEVSVklT
T1JfVklSVF9TVEFSVF9QQUUKPiAgI2RlZmluZSBfX01BQ0gyUEhZU19WSVJUX1NUQVJUICBfX01B
Q0gyUEhZU19WSVJUX1NUQVJUX1BBRQo+ICAjZGVmaW5lIF9fTUFDSDJQSFlTX1ZJUlRfRU5EICAg
IF9fTUFDSDJQSFlTX1ZJUlRfRU5EX1BBRQo+ICAKPiAgI2lmbmRlZiBIWVBFUlZJU09SX1ZJUlRf
U1RBUlQKPiAtI2RlZmluZSBIWVBFUlZJU09SX1ZJUlRfU1RBUlQgbWtfdW5zaWduZWRfbG9uZyhf
X0hZUEVSVklTT1JfVklSVF9TVEFSVCkKPiArI2RlZmluZSBIWVBFUlZJU09SX1ZJUlRfU1RBUlQg
eGVuX21rX3Vsb25nKF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUKQo+ICAjZW5kaWYKPiAgCj4gLSNk
ZWZpbmUgTUFDSDJQSFlTX1ZJUlRfU1RBUlQgIG1rX3Vuc2lnbmVkX2xvbmcoX19NQUNIMlBIWVNf
VklSVF9TVEFSVCkKPiAtI2RlZmluZSBNQUNIMlBIWVNfVklSVF9FTkQgICAgbWtfdW5zaWduZWRf
bG9uZyhfX01BQ0gyUEhZU19WSVJUX0VORCkKPiArI2RlZmluZSBNQUNIMlBIWVNfVklSVF9TVEFS
VCAgeGVuX21rX3Vsb25nKF9fTUFDSDJQSFlTX1ZJUlRfU1RBUlQpCj4gKyNkZWZpbmUgTUFDSDJQ
SFlTX1ZJUlRfRU5EICAgIHhlbl9ta191bG9uZyhfX01BQ0gyUEhZU19WSVJUX0VORCkKPiAgI2Rl
ZmluZSBNQUNIMlBIWVNfTlJfRU5UUklFUyAgKChNQUNIMlBIWVNfVklSVF9FTkQtTUFDSDJQSFlT
X1ZJUlRfU1RBUlQpPj4yKQo+ICAjaWZuZGVmIG1hY2hpbmVfdG9fcGh5c19tYXBwaW5nCj4gICNk
ZWZpbmUgbWFjaGluZV90b19waHlzX21hcHBpbmcgKCh1bnNpZ25lZCBsb25nICopTUFDSDJQSFlT
X1ZJUlRfU1RBUlQpCj4gICNlbmRpZgo+IC0jZW5kaWYKPiAgCj4gIC8qIDMyLS82NC1iaXQgaW52
YXJpYWJpbGl0eSBmb3IgY29udHJvbCBpbnRlcmZhY2VzIChkb21jdGwvc3lzY3RsKS4gKi8KPiAg
I2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKQo+IEBAIC0xMDYs
NiArMTAxLDcgQEAKPiAgICAgIGRvIHsgaWYgKCBzaXplb2YoaG5kKSA9PSA4ICkgKih1aW50NjRf
dCAqKSYoaG5kKSA9IDA7ICAgXAo+ICAgICAgICAgICAoaG5kKS5wID0gdmFsOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gICAgICB9IHdoaWxlICggMCApCj4gKyNkZWZp
bmUgIGludDY0X2FsaWduZWRfdCAgaW50NjRfdCBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDgpKSkK
PiAgI2RlZmluZSB1aW50NjRfYWxpZ25lZF90IHVpbnQ2NF90IF9fYXR0cmlidXRlX18oKGFsaWdu
ZWQoOCkpKQo+ICAjZGVmaW5lIF9fWEVOX0dVRVNUX0hBTkRMRV82NChuYW1lKSBfX2d1ZXN0X2hh
bmRsZV82NF8gIyMgbmFtZQo+ICAjZGVmaW5lIFhFTl9HVUVTVF9IQU5ETEVfNjQobmFtZSkgX19Y
RU5fR1VFU1RfSEFORExFXzY0KG5hbWUpCj4gQEAgLTExMywyMiArMTA5LDQ0IEBACj4gIAo+ICAj
aWZuZGVmIF9fQVNTRU1CTFlfXwo+ICAKPiArI2lmIGRlZmluZWQoWEVOX0dFTkVSQVRJTkdfQ09N
UEFUX0hFQURFUlMpCj4gKy8qIG5vdGhpbmcgKi8KPiArI2VsaWYgZGVmaW5lZChfX1hFTl9fKSB8
fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCj4gKy8qIEFub255bW91cyB1bmlvbnMgaW5jbHVkZSBh
bGwgcGVybWlzc2libGUgbmFtZXMgKGUuZy4sIGFsL2FoL2F4L2VheCkuICovCj4gKyNkZWZpbmUg
X19ERUNMX1JFR19MTzgod2hpY2gpIHVuaW9uIHsgXAo+ICsgICAgdWludDMyX3QgZSAjIyB3aGlj
aCAjIyB4OyBcCj4gKyAgICB1aW50MTZfdCB3aGljaCAjIyB4OyBcCj4gKyAgICBzdHJ1Y3QgeyBc
Cj4gKyAgICAgICAgdWludDhfdCB3aGljaCAjIyBsOyBcCj4gKyAgICAgICAgdWludDhfdCB3aGlj
aCAjIyBoOyBcCj4gKyAgICB9OyBcCj4gK30KPiArI2RlZmluZSBfX0RFQ0xfUkVHX0xPMTYobmFt
ZSkgdW5pb24geyBcCj4gKyAgICB1aW50MzJfdCBlICMjIG5hbWUsIF9lICMjIG5hbWU7IFwKPiAr
ICAgIHVpbnQxNl90IG5hbWU7IFwKPiArfQo+ICsjZWxzZQo+ICsvKiBPdGhlciBzb3VyY2VzIG11
c3QgYWx3YXlzIHVzZSB0aGUgcHJvcGVyIDMyLWJpdCBuYW1lIChlLmcuLCBlYXgpLiAqLwo+ICsj
ZGVmaW5lIF9fREVDTF9SRUdfTE84KHdoaWNoKSB1aW50MzJfdCBlICMjIHdoaWNoICMjIHgKPiAr
I2RlZmluZSBfX0RFQ0xfUkVHX0xPMTYobmFtZSkgdWludDMyX3QgZSAjIyBuYW1lCj4gKyNlbmRp
Zgo+ICsKPiAgc3RydWN0IGNwdV91c2VyX3JlZ3Mgewo+IC0gICAgdWludDMyX3QgZWJ4Owo+IC0g
ICAgdWludDMyX3QgZWN4Owo+IC0gICAgdWludDMyX3QgZWR4Owo+IC0gICAgdWludDMyX3QgZXNp
Owo+IC0gICAgdWludDMyX3QgZWRpOwo+IC0gICAgdWludDMyX3QgZWJwOwo+IC0gICAgdWludDMy
X3QgZWF4Owo+ICsgICAgX19ERUNMX1JFR19MTzgoYik7Cj4gKyAgICBfX0RFQ0xfUkVHX0xPOChj
KTsKPiArICAgIF9fREVDTF9SRUdfTE84KGQpOwo+ICsgICAgX19ERUNMX1JFR19MTzE2KHNpKTsK
PiArICAgIF9fREVDTF9SRUdfTE8xNihkaSk7Cj4gKyAgICBfX0RFQ0xfUkVHX0xPMTYoYnApOwo+
ICsgICAgX19ERUNMX1JFR19MTzgoYSk7Cj4gICAgICB1aW50MTZfdCBlcnJvcl9jb2RlOyAgICAv
KiBwcml2YXRlICovCj4gICAgICB1aW50MTZfdCBlbnRyeV92ZWN0b3I7ICAvKiBwcml2YXRlICov
Cj4gLSAgICB1aW50MzJfdCBlaXA7Cj4gKyAgICBfX0RFQ0xfUkVHX0xPMTYoaXApOwo+ICAgICAg
dWludDE2X3QgY3M7Cj4gICAgICB1aW50OF90ICBzYXZlZF91cGNhbGxfbWFzazsKPiAgICAgIHVp
bnQ4X3QgIF9wYWQwOwo+IC0gICAgdWludDMyX3QgZWZsYWdzOyAgICAgICAgLyogZWZsYWdzLklG
ID09ICFzYXZlZF91cGNhbGxfbWFzayAqLwo+IC0gICAgdWludDMyX3QgZXNwOwo+ICsgICAgX19E
RUNMX1JFR19MTzE2KGZsYWdzKTsgLyogZWZsYWdzLklGID09ICFzYXZlZF91cGNhbGxfbWFzayAq
Lwo+ICsgICAgX19ERUNMX1JFR19MTzE2KHNwKTsKPiAgICAgIHVpbnQxNl90IHNzLCBfcGFkMTsK
PiAgICAgIHVpbnQxNl90IGVzLCBfcGFkMjsKPiAgICAgIHVpbnQxNl90IGRzLCBfcGFkMzsKPiBA
QCAtMTM4LDYgKzE1Niw5IEBAIHN0cnVjdCBjcHVfdXNlcl9yZWdzIHsKPiAgdHlwZWRlZiBzdHJ1
Y3QgY3B1X3VzZXJfcmVncyBjcHVfdXNlcl9yZWdzX3Q7Cj4gIERFRklORV9YRU5fR1VFU1RfSEFO
RExFKGNwdV91c2VyX3JlZ3NfdCk7Cj4gIAo+ICsjdW5kZWYgX19ERUNMX1JFR19MTzgKPiArI3Vu
ZGVmIF9fREVDTF9SRUdfTE8xNgo+ICsKPiAgLyoKPiAgICogUGFnZS1kaXJlY3RvcnkgYWRkcmVz
c2VzIGFib3ZlIDRHQiBkbyBub3QgZml0IGludG8gYXJjaGl0ZWN0dXJhbCAlY3IzLgo+ICAgKiBX
aGVuIGFjY2Vzc2luZyAlY3IzLCBvciBlcXVpdmFsZW50IGZpZWxkIGluIHZjcHVfZ3Vlc3RfY29u
dGV4dCwgZ3Vlc3RzCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2FyY2gteDg2L3hlbi14ODZf
NjQuaCBiL2luY2x1ZGUveGVuL2FyY2gteDg2L3hlbi14ODZfNjQuaAo+IGluZGV4IDJjMDAxMTEu
Ljk3OGY4Y2IgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS94ZW4vYXJjaC14ODYveGVuLXg4Nl82NC5o
Cj4gKysrIGIvaW5jbHVkZS94ZW4vYXJjaC14ODYveGVuLXg4Nl82NC5oCj4gQEAgLTcwLDI0ICs3
MCwyMiBAQAo+ICAjZGVmaW5lIEZMQVRfVVNFUl9TUzMyIEZMQVRfUklORzNfU1MzMgo+ICAjZGVm
aW5lIEZMQVRfVVNFUl9TUyAgIEZMQVRfVVNFUl9TUzY0Cj4gIAo+IC0jaWZkZWYgQ09ORklHX1BB
UkFWSVJUCj4gICNkZWZpbmUgX19IWVBFUlZJU09SX1ZJUlRfU1RBUlQgMHhGRkZGODAwMDAwMDAw
MDAwCj4gICNkZWZpbmUgX19IWVBFUlZJU09SX1ZJUlRfRU5EICAgMHhGRkZGODgwMDAwMDAwMDAw
Cj4gICNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9TVEFSVCAgMHhGRkZGODAwMDAwMDAwMDAwCj4g
ICNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9FTkQgICAgMHhGRkZGODA0MDAwMDAwMDAwCj4gIAo+
ICAjaWZuZGVmIEhZUEVSVklTT1JfVklSVF9TVEFSVAo+IC0jZGVmaW5lIEhZUEVSVklTT1JfVklS
VF9TVEFSVCBta191bnNpZ25lZF9sb25nKF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUKQo+IC0jZGVm
aW5lIEhZUEVSVklTT1JfVklSVF9FTkQgICBta191bnNpZ25lZF9sb25nKF9fSFlQRVJWSVNPUl9W
SVJUX0VORCkKPiArI2RlZmluZSBIWVBFUlZJU09SX1ZJUlRfU1RBUlQgeGVuX21rX3Vsb25nKF9f
SFlQRVJWSVNPUl9WSVJUX1NUQVJUKQo+ICsjZGVmaW5lIEhZUEVSVklTT1JfVklSVF9FTkQgICB4
ZW5fbWtfdWxvbmcoX19IWVBFUlZJU09SX1ZJUlRfRU5EKQo+ICAjZW5kaWYKPiAgCj4gLSNkZWZp
bmUgTUFDSDJQSFlTX1ZJUlRfU1RBUlQgIG1rX3Vuc2lnbmVkX2xvbmcoX19NQUNIMlBIWVNfVklS
VF9TVEFSVCkKPiAtI2RlZmluZSBNQUNIMlBIWVNfVklSVF9FTkQgICAgbWtfdW5zaWduZWRfbG9u
ZyhfX01BQ0gyUEhZU19WSVJUX0VORCkKPiArI2RlZmluZSBNQUNIMlBIWVNfVklSVF9TVEFSVCAg
eGVuX21rX3Vsb25nKF9fTUFDSDJQSFlTX1ZJUlRfU1RBUlQpCj4gKyNkZWZpbmUgTUFDSDJQSFlT
X1ZJUlRfRU5EICAgIHhlbl9ta191bG9uZyhfX01BQ0gyUEhZU19WSVJUX0VORCkKPiAgI2RlZmlu
ZSBNQUNIMlBIWVNfTlJfRU5UUklFUyAgKChNQUNIMlBIWVNfVklSVF9FTkQtTUFDSDJQSFlTX1ZJ
UlRfU1RBUlQpPj4zKQo+ICAjaWZuZGVmIG1hY2hpbmVfdG9fcGh5c19tYXBwaW5nCj4gICNkZWZp
bmUgbWFjaGluZV90b19waHlzX21hcHBpbmcgKCh1bnNpZ25lZCBsb25nICopSFlQRVJWSVNPUl9W
SVJUX1NUQVJUKQo+ICAjZW5kaWYKPiAtI2VuZGlmCj4gIAo+ICAvKgo+ICAgKiBpbnQgSFlQRVJW
SVNPUl9zZXRfc2VnbWVudF9iYXNlKHVuc2lnbmVkIGludCB3aGljaCwgdW5zaWduZWQgbG9uZyBi
YXNlKQo+IEBAIC0xMzIsNyArMTMwLDM1IEBAIHN0cnVjdCBpcmV0X2NvbnRleHQgewo+ICAgICAg
LyogQm90dG9tIG9mIGlyZXQgc3RhY2sgZnJhbWUuICovCj4gIH07Cj4gIAo+IC0jaWYgZGVmaW5l
ZChfX0dOVUNfXykgJiYgIWRlZmluZWQoX19TVFJJQ1RfQU5TSV9fKQo+ICsjaWYgZGVmaW5lZChf
X1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCj4gKy8qIEFub255bW91cyB1bmlvbnMg
aW5jbHVkZSBhbGwgcGVybWlzc2libGUgbmFtZXMgKGUuZy4sIGFsL2FoL2F4L2VheC9yYXgpLiAq
Lwo+ICsjZGVmaW5lIF9fREVDTF9SRUdfTE9ISSh3aGljaCkgdW5pb24geyBcCj4gKyAgICB1aW50
NjRfdCByICMjIHdoaWNoICMjIHg7IFwKPiArICAgIHVpbnQzMl90IGUgIyMgd2hpY2ggIyMgeDsg
XAo+ICsgICAgdWludDE2X3Qgd2hpY2ggIyMgeDsgXAo+ICsgICAgc3RydWN0IHsgXAo+ICsgICAg
ICAgIHVpbnQ4X3Qgd2hpY2ggIyMgbDsgXAo+ICsgICAgICAgIHVpbnQ4X3Qgd2hpY2ggIyMgaDsg
XAo+ICsgICAgfTsgXAo+ICt9Cj4gKyNkZWZpbmUgX19ERUNMX1JFR19MTzgobmFtZSkgdW5pb24g
eyBcCj4gKyAgICB1aW50NjRfdCByICMjIG5hbWU7IFwKPiArICAgIHVpbnQzMl90IGUgIyMgbmFt
ZTsgXAo+ICsgICAgdWludDE2X3QgbmFtZTsgXAo+ICsgICAgdWludDhfdCBuYW1lICMjIGw7IFwK
PiArfQo+ICsjZGVmaW5lIF9fREVDTF9SRUdfTE8xNihuYW1lKSB1bmlvbiB7IFwKPiArICAgIHVp
bnQ2NF90IHIgIyMgbmFtZTsgXAo+ICsgICAgdWludDMyX3QgZSAjIyBuYW1lOyBcCj4gKyAgICB1
aW50MTZfdCBuYW1lOyBcCj4gK30KPiArI2RlZmluZSBfX0RFQ0xfUkVHX0hJKG51bSkgdW5pb24g
eyBcCj4gKyAgICB1aW50NjRfdCByICMjIG51bTsgXAo+ICsgICAgdWludDMyX3QgciAjIyBudW0g
IyMgZDsgXAo+ICsgICAgdWludDE2X3QgciAjIyBudW0gIyMgdzsgXAo+ICsgICAgdWludDhfdCBy
ICMjIG51bSAjIyBiOyBcCj4gK30KPiArI2VsaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgIWRlZmlu
ZWQoX19TVFJJQ1RfQU5TSV9fKQo+ICAvKiBBbm9ueW1vdXMgdW5pb24gaW5jbHVkZXMgYm90aCAz
Mi0gYW5kIDY0LWJpdCBuYW1lcyAoZS5nLiwgZWF4L3JheCkuICovCj4gICNkZWZpbmUgX19ERUNM
X1JFRyhuYW1lKSB1bmlvbiB7IFwKPiAgICAgIHVpbnQ2NF90IHIgIyMgbmFtZSwgZSAjIyBuYW1l
OyBcCj4gQEAgLTE0MywzMCArMTY5LDM3IEBAIHN0cnVjdCBpcmV0X2NvbnRleHQgewo+ICAjZGVm
aW5lIF9fREVDTF9SRUcobmFtZSkgdWludDY0X3QgciAjIyBuYW1lCj4gICNlbmRpZgo+ICAKPiAr
I2lmbmRlZiBfX0RFQ0xfUkVHX0xPSEkKPiArI2RlZmluZSBfX0RFQ0xfUkVHX0xPSEkobmFtZSkg
X19ERUNMX1JFRyhuYW1lICMjIHgpCj4gKyNkZWZpbmUgX19ERUNMX1JFR19MTzggICAgICAgIF9f
REVDTF9SRUcKPiArI2RlZmluZSBfX0RFQ0xfUkVHX0xPMTYgICAgICAgX19ERUNMX1JFRwo+ICsj
ZGVmaW5lIF9fREVDTF9SRUdfSEkobnVtKSAgICB1aW50NjRfdCByICMjIG51bQo+ICsjZW5kaWYK
PiArCj4gIHN0cnVjdCBjcHVfdXNlcl9yZWdzIHsKPiAtICAgIHVpbnQ2NF90IHIxNTsKPiAtICAg
IHVpbnQ2NF90IHIxNDsKPiAtICAgIHVpbnQ2NF90IHIxMzsKPiAtICAgIHVpbnQ2NF90IHIxMjsK
PiAtICAgIF9fREVDTF9SRUcoYnApOwo+IC0gICAgX19ERUNMX1JFRyhieCk7Cj4gLSAgICB1aW50
NjRfdCByMTE7Cj4gLSAgICB1aW50NjRfdCByMTA7Cj4gLSAgICB1aW50NjRfdCByOTsKPiAtICAg
IHVpbnQ2NF90IHI4Owo+IC0gICAgX19ERUNMX1JFRyhheCk7Cj4gLSAgICBfX0RFQ0xfUkVHKGN4
KTsKPiAtICAgIF9fREVDTF9SRUcoZHgpOwo+IC0gICAgX19ERUNMX1JFRyhzaSk7Cj4gLSAgICBf
X0RFQ0xfUkVHKGRpKTsKPiArICAgIF9fREVDTF9SRUdfSEkoMTUpOwo+ICsgICAgX19ERUNMX1JF
R19ISSgxNCk7Cj4gKyAgICBfX0RFQ0xfUkVHX0hJKDEzKTsKPiArICAgIF9fREVDTF9SRUdfSEko
MTIpOwo+ICsgICAgX19ERUNMX1JFR19MTzgoYnApOwo+ICsgICAgX19ERUNMX1JFR19MT0hJKGIp
Owo+ICsgICAgX19ERUNMX1JFR19ISSgxMSk7Cj4gKyAgICBfX0RFQ0xfUkVHX0hJKDEwKTsKPiAr
ICAgIF9fREVDTF9SRUdfSEkoOSk7Cj4gKyAgICBfX0RFQ0xfUkVHX0hJKDgpOwo+ICsgICAgX19E
RUNMX1JFR19MT0hJKGEpOwo+ICsgICAgX19ERUNMX1JFR19MT0hJKGMpOwo+ICsgICAgX19ERUNM
X1JFR19MT0hJKGQpOwo+ICsgICAgX19ERUNMX1JFR19MTzgoc2kpOwo+ICsgICAgX19ERUNMX1JF
R19MTzgoZGkpOwo+ICAgICAgdWludDMyX3QgZXJyb3JfY29kZTsgICAgLyogcHJpdmF0ZSAqLwo+
ICAgICAgdWludDMyX3QgZW50cnlfdmVjdG9yOyAgLyogcHJpdmF0ZSAqLwo+IC0gICAgX19ERUNM
X1JFRyhpcCk7Cj4gKyAgICBfX0RFQ0xfUkVHX0xPMTYoaXApOwo+ICAgICAgdWludDE2X3QgY3Ms
IF9wYWQwWzFdOwo+ICAgICAgdWludDhfdCAgc2F2ZWRfdXBjYWxsX21hc2s7Cj4gICAgICB1aW50
OF90ICBfcGFkMVszXTsKPiAtICAgIF9fREVDTF9SRUcoZmxhZ3MpOyAgICAgIC8qIHJmbGFncy5J
RiA9PSAhc2F2ZWRfdXBjYWxsX21hc2sgKi8KPiAtICAgIF9fREVDTF9SRUcoc3ApOwo+ICsgICAg
X19ERUNMX1JFR19MTzE2KGZsYWdzKTsgLyogcmZsYWdzLklGID09ICFzYXZlZF91cGNhbGxfbWFz
ayAqLwo+ICsgICAgX19ERUNMX1JFR19MTzgoc3ApOwo+ICAgICAgdWludDE2X3Qgc3MsIF9wYWQy
WzNdOwo+ICAgICAgdWludDE2X3QgZXMsIF9wYWQzWzNdOwo+ICAgICAgdWludDE2X3QgZHMsIF9w
YWQ0WzNdOwo+IEBAIC0xNzcsNiArMjEwLDEwIEBAIHR5cGVkZWYgc3RydWN0IGNwdV91c2VyX3Jl
Z3MgY3B1X3VzZXJfcmVnc190Owo+ICBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShjcHVfdXNlcl9y
ZWdzX3QpOwo+ICAKPiAgI3VuZGVmIF9fREVDTF9SRUcKPiArI3VuZGVmIF9fREVDTF9SRUdfTE9I
SQo+ICsjdW5kZWYgX19ERUNMX1JFR19MTzgKPiArI3VuZGVmIF9fREVDTF9SRUdfTE8xNgo+ICsj
dW5kZWYgX19ERUNMX1JFR19ISQo+ICAKPiAgI2RlZmluZSB4ZW5fcGZuX3RvX2NyMyhwZm4pICgo
dW5zaWduZWQgbG9uZykocGZuKSA8PCAxMikKPiAgI2RlZmluZSB4ZW5fY3IzX3RvX3BmbihjcjMp
ICgodW5zaWduZWQgbG9uZykoY3IzKSA+PiAxMikKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4v
YXJjaC14ODYveGVuLmggYi9pbmNsdWRlL3hlbi9hcmNoLXg4Ni94ZW4uaAo+IGluZGV4IGM1ZTg4
MGIuLmZmOTE4MzEgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS94ZW4vYXJjaC14ODYveGVuLmgKPiAr
KysgYi9pbmNsdWRlL3hlbi9hcmNoLXg4Ni94ZW4uaAo+IEBAIC01NCwxMyArNTQsMjAgQEAKPiAg
I2RlZmluZSBYRU5fR1VFU1RfSEFORExFKG5hbWUpICAgICAgICAgIF9fWEVOX0dVRVNUX0hBTkRM
RShuYW1lKQo+ICAjZGVmaW5lIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0obmFtZSkgICAgWEVOX0dV
RVNUX0hBTkRMRShuYW1lKQo+ICAjZGVmaW5lIHNldF94ZW5fZ3Vlc3RfaGFuZGxlX3JhdyhobmQs
IHZhbCkgIGRvIHsgKGhuZCkucCA9IHZhbDsgfSB3aGlsZSAoMCkKPiAtI2lmZGVmIF9fWEVOX1RP
T0xTX18KPiAtI2RlZmluZSBnZXRfeGVuX2d1ZXN0X2hhbmRsZSh2YWwsIGhuZCkgIGRvIHsgdmFs
ID0gKGhuZCkucDsgfSB3aGlsZSAoMCkKPiAtI2VuZGlmCj4gICNkZWZpbmUgc2V0X3hlbl9ndWVz
dF9oYW5kbGUoaG5kLCB2YWwpIHNldF94ZW5fZ3Vlc3RfaGFuZGxlX3JhdyhobmQsIHZhbCkKPiAg
Cj4gICNpZiBkZWZpbmVkKF9faTM4Nl9fKQo+ICsjIGlmZGVmIF9fWEVOX18KPiArX19EZUZpTmVf
XyBfX0RFQ0xfUkVHX0xPOCh3aGljaCkgdWludDMyX3QgZSAjIyB3aGljaCAjIyB4Cj4gK19fRGVG
aU5lX18gX19ERUNMX1JFR19MTzE2KG5hbWUpIHVuaW9uIHsgdWludDMyX3QgZSAjIyBuYW1lOyB9
Cj4gKyMgZW5kaWYKPiAgI2luY2x1ZGUgInhlbi14ODZfMzIuaCIKPiArIyBpZmRlZiBfX1hFTl9f
Cj4gK19fVW5EZUZfXyBfX0RFQ0xfUkVHX0xPOAo+ICtfX1VuRGVGX18gX19ERUNMX1JFR19MTzE2
Cj4gK19fRGVGaU5lX18gX19ERUNMX1JFR19MTzgod2hpY2gpIGUgIyMgd2hpY2ggIyMgeAo+ICtf
X0RlRmlOZV9fIF9fREVDTF9SRUdfTE8xNihuYW1lKSBlICMjIG5hbWUKPiArIyBlbmRpZgo+ICAj
ZWxpZiBkZWZpbmVkKF9feDg2XzY0X18pCj4gICNpbmNsdWRlICJ4ZW4teDg2XzY0LmgiCj4gICNl
bmRpZgo+IEBAIC0xNTIsMTcgKzE1OSwxNSBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh0cmFw
X2luZm9fdCk7Cj4gIHR5cGVkZWYgdWludDY0X3QgdHNjX3RpbWVzdGFtcF90OyAvKiBSRFRTQyB0
aW1lc3RhbXAgKi8KPiAgCj4gIC8qCj4gLSAqIFRoZSBmb2xsb3dpbmcgaXMgYWxsIENQVSBjb250
ZXh0LiBOb3RlIHRoYXQgdGhlIGZwdV9jdHh0IGJsb2NrIGlzIGZpbGxlZCAKPiArICogVGhlIGZv
bGxvd2luZyBpcyBhbGwgQ1BVIGNvbnRleHQuIE5vdGUgdGhhdCB0aGUgZnB1X2N0eHQgYmxvY2sg
aXMgZmlsbGVkCj4gICAqIGluIGJ5IEZYU0FWRSBpZiB0aGUgQ1BVIGhhcyBmZWF0dXJlIEZYU1I7
IG90aGVyd2lzZSBGU0FWRSBpcyB1c2VkLgo+ICAgKgo+IC0gKiBBbHNvIG5vdGUgdGhhdCB3aGVu
IGNhbGxpbmcgRE9NQ1RMX3NldHZjcHVjb250ZXh0IGFuZCBWQ1BVX2luaXRpYWxpc2UKPiAtICog
Zm9yIEhWTSBhbmQgUFZIIGd1ZXN0cywgbm90IGFsbCBpbmZvcm1hdGlvbiBpbiB0aGlzIHN0cnVj
dHVyZSBpcyB1cGRhdGVkOgo+IC0gKgo+IC0gKiAtIEZvciBIVk0gZ3Vlc3RzLCB0aGUgc3RydWN0
dXJlcyByZWFkIGluY2x1ZGU6IGZwdV9jdHh0IChpZgo+IC0gKiBWR0NUX0kzODdfVkFMSUQgaXMg
c2V0KSwgZmxhZ3MsIHVzZXJfcmVncywgZGVidWdyZWdbKl0KPiArICogQWxzbyBub3RlIHRoYXQg
d2hlbiBjYWxsaW5nIERPTUNUTF9zZXR2Y3B1Y29udGV4dCBmb3IgSFZNIGd1ZXN0cywgbm90IGFs
bAo+ICsgKiBpbmZvcm1hdGlvbiBpbiB0aGlzIHN0cnVjdHVyZSBpcyB1cGRhdGVkLCB0aGUgZmll
bGRzIHJlYWQgaW5jbHVkZTogZnB1X2N0eHQKPiArICogKGlmIFZHQ1RfSTM4N19WQUxJRCBpcyBz
ZXQpLCBmbGFncywgdXNlcl9yZWdzIGFuZCBkZWJ1Z3JlZ1sqXS4KPiAgICoKPiAtICogLSBQVkgg
Z3Vlc3RzIGFyZSB0aGUgc2FtZSBhcyBIVk0gZ3Vlc3RzLCBidXQgYWRkaXRpb25hbGx5IHVzZSBj
dHJscmVnWzNdIHRvCj4gLSAqIHNldCBjcjMuIEFsbCBvdGhlciBmaWVsZHMgbm90IHVzZWQgc2hv
dWxkIGJlIHNldCB0byAwLgo+ICsgKiBOb3RlOiBWQ1BVT1BfaW5pdGlhbGlzZSBmb3IgSFZNIGd1
ZXN0cyBpcyBub24tc3ltZXRyaWMgd2l0aAo+ICsgKiBET01DVExfc2V0dmNwdWNvbnRleHQsIGFu
ZCB1c2VzIHN0cnVjdCB2Y3B1X2h2bV9jb250ZXh0IGZyb20gaHZtL2h2bV92Y3B1LmgKPiAgICov
Cj4gIHN0cnVjdCB2Y3B1X2d1ZXN0X2NvbnRleHQgewo+ICAgICAgLyogRlBVIHJlZ2lzdGVycyBj
b21lIGZpcnN0IHNvIHRoZXkgY2FuIGJlIGFsaWduZWQgZm9yIEZYU0FWRS9GWFJTVE9SLiAqLwo+
IEBAIC0yNTUsOSArMjYwLDU2IEBAIHN0cnVjdCBhcmNoX3NoYXJlZF9pbmZvIHsKPiAgICAgIHVu
c2lnbmVkIGxvbmcgcDJtX2NyMzsgICAgICAgICAvKiBjcjMgdmFsdWUgb2YgdGhlIHAybSBhZGRy
ZXNzIHNwYWNlICovCj4gICAgICB1bnNpZ25lZCBsb25nIHAybV92YWRkcjsgICAgICAgLyogdmly
dHVhbCBhZGRyZXNzIG9mIHRoZSBwMm0gbGlzdCAqLwo+ICAgICAgdW5zaWduZWQgbG9uZyBwMm1f
Z2VuZXJhdGlvbjsgIC8qIGdlbmVyYXRpb24gY291bnQgb2YgcDJtIG1hcHBpbmcgKi8KPiArI2lm
ZGVmIF9faTM4Nl9fCj4gKyAgICAvKiBUaGVyZSdzIG5vIHJvb20gZm9yIHRoaXMgZmllbGQgaW4g
dGhlIGdlbmVyaWMgc3RydWN0dXJlLiAqLwo+ICsgICAgdWludDMyX3Qgd2Nfc2VjX2hpOwo+ICsj
ZW5kaWYKPiAgfTsKPiAgdHlwZWRlZiBzdHJ1Y3QgYXJjaF9zaGFyZWRfaW5mbyBhcmNoX3NoYXJl
ZF9pbmZvX3Q7Cj4gIAo+ICsjaWYgZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RP
T0xTX18pCj4gKy8qCj4gKyAqIHN0cnVjdCB4ZW5fYXJjaF9kb21haW5jb25maWcncyBBQkkgaXMg
Y292ZXJlZCBieQo+ICsgKiBYRU5fRE9NQ1RMX0lOVEVSRkFDRV9WRVJTSU9OLgo+ICsgKi8KPiAr
c3RydWN0IHhlbl9hcmNoX2RvbWFpbmNvbmZpZyB7Cj4gKyNkZWZpbmUgX1hFTl9YODZfRU1VX0xB
UElDICAgICAgICAgIDAKPiArI2RlZmluZSBYRU5fWDg2X0VNVV9MQVBJQyAgICAgICAgICAgKDFV
PDxfWEVOX1g4Nl9FTVVfTEFQSUMpCj4gKyNkZWZpbmUgX1hFTl9YODZfRU1VX0hQRVQgICAgICAg
ICAgIDEKPiArI2RlZmluZSBYRU5fWDg2X0VNVV9IUEVUICAgICAgICAgICAgKDFVPDxfWEVOX1g4
Nl9FTVVfSFBFVCkKPiArI2RlZmluZSBfWEVOX1g4Nl9FTVVfUE0gICAgICAgICAgICAgMgo+ICsj
ZGVmaW5lIFhFTl9YODZfRU1VX1BNICAgICAgICAgICAgICAoMVU8PF9YRU5fWDg2X0VNVV9QTSkK
PiArI2RlZmluZSBfWEVOX1g4Nl9FTVVfUlRDICAgICAgICAgICAgMwo+ICsjZGVmaW5lIFhFTl9Y
ODZfRU1VX1JUQyAgICAgICAgICAgICAoMVU8PF9YRU5fWDg2X0VNVV9SVEMpCj4gKyNkZWZpbmUg
X1hFTl9YODZfRU1VX0lPQVBJQyAgICAgICAgIDQKPiArI2RlZmluZSBYRU5fWDg2X0VNVV9JT0FQ
SUMgICAgICAgICAgKDFVPDxfWEVOX1g4Nl9FTVVfSU9BUElDKQo+ICsjZGVmaW5lIF9YRU5fWDg2
X0VNVV9QSUMgICAgICAgICAgICA1Cj4gKyNkZWZpbmUgWEVOX1g4Nl9FTVVfUElDICAgICAgICAg
ICAgICgxVTw8X1hFTl9YODZfRU1VX1BJQykKPiArI2RlZmluZSBfWEVOX1g4Nl9FTVVfVkdBICAg
ICAgICAgICAgNgo+ICsjZGVmaW5lIFhFTl9YODZfRU1VX1ZHQSAgICAgICAgICAgICAoMVU8PF9Y
RU5fWDg2X0VNVV9WR0EpCj4gKyNkZWZpbmUgX1hFTl9YODZfRU1VX0lPTU1VICAgICAgICAgIDcK
PiArI2RlZmluZSBYRU5fWDg2X0VNVV9JT01NVSAgICAgICAgICAgKDFVPDxfWEVOX1g4Nl9FTVVf
SU9NTVUpCj4gKyNkZWZpbmUgX1hFTl9YODZfRU1VX1BJVCAgICAgICAgICAgIDgKPiArI2RlZmlu
ZSBYRU5fWDg2X0VNVV9QSVQgICAgICAgICAgICAgKDFVPDxfWEVOX1g4Nl9FTVVfUElUKQo+ICsj
ZGVmaW5lIF9YRU5fWDg2X0VNVV9VU0VfUElSUSAgICAgICA5Cj4gKyNkZWZpbmUgWEVOX1g4Nl9F
TVVfVVNFX1BJUlEgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX1VTRV9QSVJRKQo+ICsKPiArI2Rl
ZmluZSBYRU5fWDg2X0VNVV9BTEwgICAgICAgICAgICAgKFhFTl9YODZfRU1VX0xBUElDIHwgWEVO
X1g4Nl9FTVVfSFBFVCB8ICBcCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBYRU5fWDg2X0VNVV9QTSB8IFhFTl9YODZfRU1VX1JUQyB8ICAgICAgXAo+ICsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX1g4Nl9FTVVfSU9BUElDIHwgWEVOX1g4Nl9F
TVVfUElDIHwgIFwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9Y
ODZfRU1VX1ZHQSB8IFhFTl9YODZfRU1VX0lPTU1VIHwgICBcCj4gKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBYRU5fWDg2X0VNVV9QSVQgfCBYRU5fWDg2X0VNVV9VU0VfUElS
USkKPiArICAgIHVpbnQzMl90IGVtdWxhdGlvbl9mbGFnczsKPiArfTsKPiArCj4gKy8qIExvY2F0
aW9uIG9mIG9ubGluZSBWQ1BVIGJpdG1hcC4gKi8KPiArI2RlZmluZSBYRU5fQUNQSV9DUFVfTUFQ
ICAgICAgICAgICAgIDB4YWYwMAo+ICsjZGVmaW5lIFhFTl9BQ1BJX0NQVV9NQVBfTEVOICAgICAg
ICAgKChIVk1fTUFYX1ZDUFVTICsgNykgLyA4KQo+ICsKPiArLyogR1BFMCBiaXQgc2V0IGR1cmlu
ZyBDUFUgaG90cGx1ZyAqLwo+ICsjZGVmaW5lIFhFTl9BQ1BJX0dQRTBfQ1BVSFBfQklUICAgICAg
Mgo+ICsjZW5kaWYKPiArCj4gICNlbmRpZiAvKiAhX19BU1NFTUJMWV9fICovCj4gIAo+ICAvKgo+
IGRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9kb21jdGwuaCBiL2luY2x1ZGUveGVuL2RvbWN0bC5o
Cj4gaW5kZXggNTdlMmVkNy4uODg1MzQ0NSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3hlbi9kb21j
dGwuaAo+ICsrKyBiL2luY2x1ZGUveGVuL2RvbWN0bC5oCj4gQEAgLTMzLDExICszMywxMiBAQAo+
ICAjZW5kaWYKPiAgCj4gICNpbmNsdWRlICJ4ZW4uaCIKPiArI2luY2x1ZGUgImV2ZW50X2NoYW5u
ZWwuaCIKPiAgI2luY2x1ZGUgImdyYW50X3RhYmxlLmgiCj4gICNpbmNsdWRlICJodm0vc2F2ZS5o
Igo+ICAjaW5jbHVkZSAibWVtb3J5LmgiCj4gIAo+IC0jZGVmaW5lIFhFTl9ET01DVExfSU5URVJG
QUNFX1ZFUlNJT04gMHgwMDAwMDAwYQo+ICsjZGVmaW5lIFhFTl9ET01DVExfSU5URVJGQUNFX1ZF
UlNJT04gMHgwMDAwMDAwZQo+ICAKPiAgLyoKPiAgICogTkIuIHhlbl9kb21jdGwuZG9tYWluIGlz
IGFuIElOL09VVCBwYXJhbWV0ZXIgZm9yIHRoaXMgb3BlcmF0aW9uLgo+IEBAIC02MCwyNiArNjEs
MTIgQEAgc3RydWN0IHhlbl9kb21jdGxfY3JlYXRlZG9tYWluIHsKPiAgIC8qIERpc2FibGUgb3V0
LW9mLXN5bmMgc2hhZG93IHBhZ2UgdGFibGVzPyAqLwo+ICAjZGVmaW5lIF9YRU5fRE9NQ1RMX0NE
Rl9vb3Nfb2ZmICAgICAgIDMKPiAgI2RlZmluZSBYRU5fRE9NQ1RMX0NERl9vb3Nfb2ZmICAgICAg
ICAoMVU8PF9YRU5fRE9NQ1RMX0NERl9vb3Nfb2ZmKQo+IC0gLyogSXMgdGhpcyBhIFBWSCBndWVz
dCAoYXMgb3Bwb3NlZCB0byBhbiBIVk0gb3IgUFYgZ3Vlc3QpPyAqLwo+IC0jZGVmaW5lIF9YRU5f
RE9NQ1RMX0NERl9wdmhfZ3Vlc3QgICAgIDQKPiAtI2RlZmluZSBYRU5fRE9NQ1RMX0NERl9wdmhf
Z3Vlc3QgICAgICAoMVU8PF9YRU5fRE9NQ1RMX0NERl9wdmhfZ3Vlc3QpCj4gKyAvKiBJcyB0aGlz
IGEgeGVuc3RvcmUgZG9tYWluPyAqLwo+ICsjZGVmaW5lIF9YRU5fRE9NQ1RMX0NERl94c19kb21h
aW4gICAgIDQKPiArI2RlZmluZSBYRU5fRE9NQ1RMX0NERl94c19kb21haW4gICAgICAoMVU8PF9Y
RU5fRE9NQ1RMX0NERl94c19kb21haW4pCj4gICAgICB1aW50MzJfdCBmbGFnczsKPiArICAgIHN0
cnVjdCB4ZW5fYXJjaF9kb21haW5jb25maWcgY29uZmlnOwo+ICB9Owo+IC10eXBlZGVmIHN0cnVj
dCB4ZW5fZG9tY3RsX2NyZWF0ZWRvbWFpbiB4ZW5fZG9tY3RsX2NyZWF0ZWRvbWFpbl90Owo+IC1E
RUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9tY3RsX2NyZWF0ZWRvbWFpbl90KTsKPiAtCj4g
LSNpZiBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pCj4gLSNkZWZpbmUg
WEVOX0RPTUNUTF9DT05GSUdfR0lDX0RFRkFVTFQgICAwCj4gLSNkZWZpbmUgWEVOX0RPTUNUTF9D
T05GSUdfR0lDX1YyICAgICAgICAxCj4gLSNkZWZpbmUgWEVOX0RPTUNUTF9DT05GSUdfR0lDX1Yz
ICAgICAgICAyCj4gLS8qIFhFTl9ET01DVExfY29uZmlndXJlX2RvbWFpbiAqLwo+IC1zdHJ1Y3Qg
eGVuX2RvbWN0bF9hcm1fY29uZmlndXJlZG9tYWluIHsKPiAtICAgIC8qIElOL09VVCBwYXJhbWV0
ZXJzICovCj4gLSAgICB1aW50OF90IGdpY192ZXJzaW9uOwo+IC19Owo+IC10eXBlZGVmIHN0cnVj
dCB4ZW5fZG9tY3RsX2FybV9jb25maWd1cmVkb21haW4geGVuX2RvbWN0bF9hcm1fY29uZmlndXJl
ZG9tYWluX3Q7Cj4gLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9kb21jdGxfYXJtX2NvbmZp
Z3VyZWRvbWFpbl90KTsKPiAtI2VuZGlmCj4gIAo+ICAvKiBYRU5fRE9NQ1RMX2dldGRvbWFpbmlu
Zm8gKi8KPiAgc3RydWN0IHhlbl9kb21jdGxfZ2V0ZG9tYWluaW5mbyB7Cj4gQEAgLTEwNiw5ICs5
MywxMiBAQCBzdHJ1Y3QgeGVuX2RvbWN0bF9nZXRkb21haW5pbmZvIHsKPiAgIC8qIEJlaW5nIGRl
YnVnZ2VkLiAgKi8KPiAgI2RlZmluZSBfWEVOX0RPTUlORl9kZWJ1Z2dlZCAgNgo+ICAjZGVmaW5l
IFhFTl9ET01JTkZfZGVidWdnZWQgICAoMVU8PF9YRU5fRE9NSU5GX2RlYnVnZ2VkKQo+IC0vKiBk
b21haW4gaXMgUFZIICovCj4gLSNkZWZpbmUgX1hFTl9ET01JTkZfcHZoX2d1ZXN0IDcKPiAtI2Rl
ZmluZSBYRU5fRE9NSU5GX3B2aF9ndWVzdCAgKDFVPDxfWEVOX0RPTUlORl9wdmhfZ3Vlc3QpCj4g
Ky8qIGRvbWFpbiBpcyBhIHhlbnN0b3JlIGRvbWFpbiAqLwo+ICsjZGVmaW5lIF9YRU5fRE9NSU5G
X3hzX2RvbWFpbiA3Cj4gKyNkZWZpbmUgWEVOX0RPTUlORl94c19kb21haW4gICgxVTw8X1hFTl9E
T01JTkZfeHNfZG9tYWluKQo+ICsvKiBkb21haW4gaGFzIGhhcmR3YXJlIGFzc2lzdGVkIHBhZ2lu
ZyAqLwo+ICsjZGVmaW5lIF9YRU5fRE9NSU5GX2hhcCAgICAgICA4Cj4gKyNkZWZpbmUgWEVOX0RP
TUlORl9oYXAgICAgICAgICgxVTw8X1hFTl9ET01JTkZfaGFwKQo+ICAgLyogWEVOX0RPTUlORl9z
aHV0ZG93biBndWVzdC1zdXBwbGllZCBjb2RlLiAgKi8KPiAgI2RlZmluZSBYRU5fRE9NSU5GX3No
dXRkb3dubWFzayAyNTUKPiAgI2RlZmluZSBYRU5fRE9NSU5GX3NodXRkb3duc2hpZnQgMTYKPiBA
QCAtMTQyLDggKzEzMiw2IEBAIHN0cnVjdCB4ZW5fZG9tY3RsX2dldG1lbWxpc3Qgewo+ICAgICAg
LyogT1VUIHZhcmlhYmxlcy4gKi8KPiAgICAgIHVpbnQ2NF9hbGlnbmVkX3QgbnVtX3BmbnM7Cj4g
IH07Cj4gLXR5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxfZ2V0bWVtbGlzdCB4ZW5fZG9tY3RsX2dl
dG1lbWxpc3RfdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9nZXRtZW1s
aXN0X3QpOwo+ICAKPiAgCj4gIC8qIFhFTl9ET01DVExfZ2V0cGFnZWZyYW1laW5mbyAqLwo+IEBA
IC0xNjEsMjcgKzE0OSw2IEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9kb21jdGxfZ2V0
bWVtbGlzdF90KTsKPiAgI2RlZmluZSBYRU5fRE9NQ1RMX1BGSU5GT19CUk9LRU4gICgweGRVPDwy
OCkgLyogYnJva2VuIHBhZ2UgKi8KPiAgI2RlZmluZSBYRU5fRE9NQ1RMX1BGSU5GT19MVEFCX01B
U0sgKDB4ZlU8PDI4KQo+ICAKPiAtc3RydWN0IHhlbl9kb21jdGxfZ2V0cGFnZWZyYW1laW5mbyB7
Cj4gLSAgICAvKiBJTiB2YXJpYWJsZXMuICovCj4gLSAgICB1aW50NjRfYWxpZ25lZF90IGdtZm47
IC8qIEdNRk4gdG8gcXVlcnkgKi8KPiAtICAgIC8qIE9VVCB2YXJpYWJsZXMuICovCj4gLSAgICAv
KiBJcyB0aGUgcGFnZSBQSU5ORUQgdG8gYSB0eXBlPyAqLwo+IC0gICAgdWludDMyX3QgdHlwZTsg
ICAgICAgICAvKiBzZWUgYWJvdmUgdHlwZSBkZWZzICovCj4gLX07Cj4gLXR5cGVkZWYgc3RydWN0
IHhlbl9kb21jdGxfZ2V0cGFnZWZyYW1laW5mbyB4ZW5fZG9tY3RsX2dldHBhZ2VmcmFtZWluZm9f
dDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9nZXRwYWdlZnJhbWVpbmZv
X3QpOwo+IC0KPiAtCj4gLS8qIFhFTl9ET01DVExfZ2V0cGFnZWZyYW1laW5mbzIgKi8KPiAtc3Ry
dWN0IHhlbl9kb21jdGxfZ2V0cGFnZWZyYW1laW5mbzIgewo+IC0gICAgLyogSU4gdmFyaWFibGVz
LiAqLwo+IC0gICAgdWludDY0X2FsaWduZWRfdCBudW07Cj4gLSAgICAvKiBJTi9PVVQgdmFyaWFi
bGVzLiAqLwo+IC0gICAgWEVOX0dVRVNUX0hBTkRMRV82NCh1aW50MzIpIGFycmF5Owo+IC19Owo+
IC10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX2dldHBhZ2VmcmFtZWluZm8yIHhlbl9kb21jdGxf
Z2V0cGFnZWZyYW1laW5mbzJfdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0
bF9nZXRwYWdlZnJhbWVpbmZvMl90KTsKPiAtCj4gIC8qIFhFTl9ET01DVExfZ2V0cGFnZWZyYW1l
aW5mbzMgKi8KPiAgc3RydWN0IHhlbl9kb21jdGxfZ2V0cGFnZWZyYW1laW5mbzMgewo+ICAgICAg
LyogSU4gdmFyaWFibGVzLiAqLwo+IEBAIC0yMTcsOCArMTg0LDExIEBAIHN0cnVjdCB4ZW5fZG9t
Y3RsX2dldHBhZ2VmcmFtZWluZm8zIHsKPiAgI2RlZmluZSBYRU5fRE9NQ1RMX1NIQURPV19PUF9F
TkFCTEVfVEVTVCAgICAgICAxCj4gICAvKiBFcXVpdi4gdG8gRU5BQkxFIHdpdGggbW9kZSBmbGFn
IEVOQUJMRV9MT0dfRElSVFkuICovCj4gICNkZWZpbmUgWEVOX0RPTUNUTF9TSEFET1dfT1BfRU5B
QkxFX0xPR0RJUlRZICAgMgo+IC0gLyogRXF1aXYuIHRvIEVOQUJMRSB3aXRoIG1vZGUgZmxhZ3Mg
RU5BQkxFX1JFRkNPVU5UIGFuZCBFTkFCTEVfVFJBTlNMQVRFLiAqLwo+ICsgLyoKPiArICAqIE5v
IGxvbmdlciBzdXBwb3J0ZWQsIHdhcyBlcXVpdi4gdG8gRU5BQkxFIHdpdGggbW9kZSBmbGFncwo+
ICsgICogRU5BQkxFX1JFRkNPVU5UIGFuZCBFTkFCTEVfVFJBTlNMQVRFOgo+ICAjZGVmaW5lIFhF
Tl9ET01DVExfU0hBRE9XX09QX0VOQUJMRV9UUkFOU0xBVEUgIDMKPiArICAqLwo+ICAKPiAgLyog
TW9kZSBmbGFncyBmb3IgWEVOX0RPTUNUTF9TSEFET1dfT1BfRU5BQkxFLiAqLwo+ICAgLyoKPiBA
QCAtMjQxLDE5ICsyMTEsMjUgQEAgc3RydWN0IHhlbl9kb21jdGxfZ2V0cGFnZWZyYW1laW5mbzMg
ewo+ICAgICovCj4gICNkZWZpbmUgWEVOX0RPTUNUTF9TSEFET1dfRU5BQkxFX0VYVEVSTkFMICAo
MSA8PCA0KQo+ICAKPiArLyogTW9kZSBmbGFncyBmb3IgWEVOX0RPTUNUTF9TSEFET1dfT1Bfe0NM
RUFOLFBFRUt9LiAqLwo+ICsgLyoKPiArICAqIFRoaXMgaXMgdGhlIGZpbmFsIGl0ZXJhdGlvbjog
UmVxdWVzdGluZyB0byBpbmNsdWRlIHBhZ2VzIG1hcHBlZAo+ICsgICogd3JpdGFibHkgYnkgdGhl
IGh5cGVydmlzb3IgaW4gdGhlIGRpcnR5IGJpdG1hcC4KPiArICAqLwo+ICsjZGVmaW5lIFhFTl9E
T01DVExfU0hBRE9XX0xPR0RJUlRZX0ZJTkFMICAgKDEgPDwgMCkKPiArCj4gIHN0cnVjdCB4ZW5f
ZG9tY3RsX3NoYWRvd19vcF9zdGF0cyB7Cj4gICAgICB1aW50MzJfdCBmYXVsdF9jb3VudDsKPiAg
ICAgIHVpbnQzMl90IGRpcnR5X2NvdW50Owo+ICB9Owo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fZG9t
Y3RsX3NoYWRvd19vcF9zdGF0cyB4ZW5fZG9tY3RsX3NoYWRvd19vcF9zdGF0c190Owo+IC1ERUZJ
TkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9tY3RsX3NoYWRvd19vcF9zdGF0c190KTsKPiAgCj4g
IHN0cnVjdCB4ZW5fZG9tY3RsX3NoYWRvd19vcCB7Cj4gICAgICAvKiBJTiB2YXJpYWJsZXMuICov
Cj4gICAgICB1aW50MzJfdCAgICAgICBvcDsgICAgICAgLyogWEVOX0RPTUNUTF9TSEFET1dfT1Bf
KiAqLwo+ICAKPiAtICAgIC8qIE9QX0VOQUJMRSAqLwo+IC0gICAgdWludDMyX3QgICAgICAgbW9k
ZTsgICAgIC8qIFhFTl9ET01DVExfU0hBRE9XX0VOQUJMRV8qICovCj4gKyAgICAvKiBPUF9FTkFC
TEU6IFhFTl9ET01DVExfU0hBRE9XX0VOQUJMRV8qICovCj4gKyAgICAvKiBPUF9QRUFLIC8gT1Bf
Q0xFQU46IFhFTl9ET01DVExfU0hBRE9XX0xPR0RJUlRZXyogKi8KPiArICAgIHVpbnQzMl90ICAg
ICAgIG1vZGU7Cj4gIAo+ICAgICAgLyogT1BfR0VUX0FMTE9DQVRJT04gLyBPUF9TRVRfQUxMT0NB
VElPTiAqLwo+ICAgICAgdWludDMyX3QgICAgICAgbWI7ICAgICAgIC8qIFNoYWRvdyBtZW1vcnkg
YWxsb2NhdGlvbiBpbiBNQiAqLwo+IEBAIC0yNjMsOCArMjM5LDYgQEAgc3RydWN0IHhlbl9kb21j
dGxfc2hhZG93X29wIHsKPiAgICAgIHVpbnQ2NF9hbGlnbmVkX3QgcGFnZXM7IC8qIFNpemUgb2Yg
YnVmZmVyLiBVcGRhdGVkIHdpdGggYWN0dWFsIHNpemUuICovCj4gICAgICBzdHJ1Y3QgeGVuX2Rv
bWN0bF9zaGFkb3dfb3Bfc3RhdHMgc3RhdHM7Cj4gIH07Cj4gLXR5cGVkZWYgc3RydWN0IHhlbl9k
b21jdGxfc2hhZG93X29wIHhlbl9kb21jdGxfc2hhZG93X29wX3Q7Cj4gLURFRklORV9YRU5fR1VF
U1RfSEFORExFKHhlbl9kb21jdGxfc2hhZG93X29wX3QpOwo+ICAKPiAgCj4gIC8qIFhFTl9ET01D
VExfbWF4X21lbSAqLwo+IEBAIC0yNzIsOCArMjQ2LDYgQEAgc3RydWN0IHhlbl9kb21jdGxfbWF4
X21lbSB7Cj4gICAgICAvKiBJTiB2YXJpYWJsZXMuICovCj4gICAgICB1aW50NjRfYWxpZ25lZF90
IG1heF9tZW1rYjsKPiAgfTsKPiAtdHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF9tYXhfbWVtIHhl
bl9kb21jdGxfbWF4X21lbV90Owo+IC1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9tY3Rs
X21heF9tZW1fdCk7Cj4gIAo+ICAKPiAgLyogWEVOX0RPTUNUTF9zZXR2Y3B1Y29udGV4dCAqLwo+
IEBAIC0yODIsOCArMjU0LDYgQEAgc3RydWN0IHhlbl9kb21jdGxfdmNwdWNvbnRleHQgewo+ICAg
ICAgdWludDMyX3QgICAgICAgICAgICAgIHZjcHU7ICAgICAgICAgICAgICAgICAgLyogSU4gKi8K
PiAgICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQodmNwdV9ndWVzdF9jb250ZXh0X3QpIGN0eHQ7IC8q
IElOL09VVCAqLwo+ICB9Owo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX3ZjcHVjb250ZXh0
IHhlbl9kb21jdGxfdmNwdWNvbnRleHRfdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVu
X2RvbWN0bF92Y3B1Y29udGV4dF90KTsKPiAgCj4gIAo+ICAvKiBYRU5fRE9NQ1RMX2dldHZjcHVp
bmZvICovCj4gQEAgLTI5Nyw4ICsyNjcsNiBAQCBzdHJ1Y3QgeGVuX2RvbWN0bF9nZXR2Y3B1aW5m
byB7Cj4gICAgICB1aW50NjRfYWxpZ25lZF90IGNwdV90aW1lOyAgICAgICAgLyogdG90YWwgY3B1
IHRpbWUgY29uc3VtZWQgKG5zKSAqLwo+ICAgICAgdWludDMyX3QgY3B1OyAgICAgICAgICAgICAg
ICAgICAgIC8qIGN1cnJlbnQgbWFwcGluZyAgICovCj4gIH07Cj4gLXR5cGVkZWYgc3RydWN0IHhl
bl9kb21jdGxfZ2V0dmNwdWluZm8geGVuX2RvbWN0bF9nZXR2Y3B1aW5mb190Owo+IC1ERUZJTkVf
WEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9tY3RsX2dldHZjcHVpbmZvX3QpOwo+ICAKPiAgCj4gIC8q
IEdldC9zZXQgdGhlIE5VTUEgbm9kZShzKSB3aXRoIHdoaWNoIHRoZSBndWVzdCBoYXMgYWZmaW5p
dHkgd2l0aC4gKi8KPiBAQCAtMzA3LDggKzI3NSw2IEBAIERFRklORV9YRU5fR1VFU1RfSEFORExF
KHhlbl9kb21jdGxfZ2V0dmNwdWluZm9fdCk7Cj4gIHN0cnVjdCB4ZW5fZG9tY3RsX25vZGVhZmZp
bml0eSB7Cj4gICAgICBzdHJ1Y3QgeGVuY3RsX2JpdG1hcCBub2RlbWFwOy8qIElOICovCj4gIH07
Cj4gLXR5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxfbm9kZWFmZmluaXR5IHhlbl9kb21jdGxfbm9k
ZWFmZmluaXR5X3Q7Cj4gLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9kb21jdGxfbm9kZWFm
ZmluaXR5X3QpOwo+ICAKPiAgCj4gIC8qIEdldC9zZXQgd2hpY2ggcGh5c2ljYWwgY3B1cyBhIHZj
cHUgY2FuIGV4ZWN1dGUgb24uICovCj4gQEAgLTMyMyw2ICsyODksOSBAQCBzdHJ1Y3QgeGVuX2Rv
bWN0bF92Y3B1YWZmaW5pdHkgewo+ICAgLyogU2V0L2dldCB0aGUgc29mdCBhZmZpbml0eSBmb3Ig
dmNwdSAqLwo+ICAjZGVmaW5lIF9YRU5fVkNQVUFGRklOSVRZX1NPRlQgIDEKPiAgI2RlZmluZSBY
RU5fVkNQVUFGRklOSVRZX1NPRlQgICAoMVU8PF9YRU5fVkNQVUFGRklOSVRZX1NPRlQpCj4gKyAv
KiBVbmRvIFNDSEVET1BfcGluX292ZXJyaWRlICovCj4gKyNkZWZpbmUgX1hFTl9WQ1BVQUZGSU5J
VFlfRk9SQ0UgMgo+ICsjZGVmaW5lIFhFTl9WQ1BVQUZGSU5JVFlfRk9SQ0UgICgxVTw8X1hFTl9W
Q1BVQUZGSU5JVFlfRk9SQ0UpCj4gICAgICB1aW50MzJfdCBmbGFnczsKPiAgICAgIC8qCj4gICAg
ICAgKiBJTi9PVVQgdmFyaWFibGVzLgo+IEBAIC0zNDMsNzEgKzMxMiw5NSBAQCBzdHJ1Y3QgeGVu
X2RvbWN0bF92Y3B1YWZmaW5pdHkgewo+ICAgICAgc3RydWN0IHhlbmN0bF9iaXRtYXAgY3B1bWFw
X2hhcmQ7Cj4gICAgICBzdHJ1Y3QgeGVuY3RsX2JpdG1hcCBjcHVtYXBfc29mdDsKPiAgfTsKPiAt
dHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF92Y3B1YWZmaW5pdHkgeGVuX2RvbWN0bF92Y3B1YWZm
aW5pdHlfdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF92Y3B1YWZmaW5p
dHlfdCk7Cj4gIAo+ICAKPiAgLyogWEVOX0RPTUNUTF9tYXhfdmNwdXMgKi8KPiAgc3RydWN0IHhl
bl9kb21jdGxfbWF4X3ZjcHVzIHsKPiAgICAgIHVpbnQzMl90IG1heDsgICAgICAgICAgIC8qIG1h
eGltdW0gbnVtYmVyIG9mIHZjcHVzICovCj4gIH07Cj4gLXR5cGVkZWYgc3RydWN0IHhlbl9kb21j
dGxfbWF4X3ZjcHVzIHhlbl9kb21jdGxfbWF4X3ZjcHVzX3Q7Cj4gLURFRklORV9YRU5fR1VFU1Rf
SEFORExFKHhlbl9kb21jdGxfbWF4X3ZjcHVzX3QpOwo+ICAKPiAgCj4gIC8qIFhFTl9ET01DVExf
c2NoZWR1bGVyX29wICovCj4gIC8qIFNjaGVkdWxlciB0eXBlcy4gKi8KPiAtI2RlZmluZSBYRU5f
U0NIRURVTEVSX1NFREYgICAgIDQKPiArLyogI2RlZmluZSBYRU5fU0NIRURVTEVSX1NFREYgIDQg
KFJlbW92ZWQpICovCj4gICNkZWZpbmUgWEVOX1NDSEVEVUxFUl9DUkVESVQgICA1Cj4gICNkZWZp
bmUgWEVOX1NDSEVEVUxFUl9DUkVESVQyICA2Cj4gICNkZWZpbmUgWEVOX1NDSEVEVUxFUl9BUklO
QzY1MyA3Cj4gICNkZWZpbmUgWEVOX1NDSEVEVUxFUl9SVERTICAgICA4Cj4gKyNkZWZpbmUgWEVO
X1NDSEVEVUxFUl9OVUxMICAgICA5Cj4gKwo+ICtzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZF9jcmVk
aXQgewo+ICsgICAgdWludDE2X3Qgd2VpZ2h0Owo+ICsgICAgdWludDE2X3QgY2FwOwo+ICt9Owo+
ICsKPiArc3RydWN0IHhlbl9kb21jdGxfc2NoZWRfY3JlZGl0MiB7Cj4gKyAgICB1aW50MTZfdCB3
ZWlnaHQ7Cj4gKyAgICB1aW50MTZfdCBjYXA7Cj4gK307Cj4gKwo+ICtzdHJ1Y3QgeGVuX2RvbWN0
bF9zY2hlZF9ydGRzIHsKPiArICAgIHVpbnQzMl90IHBlcmlvZDsKPiArICAgIHVpbnQzMl90IGJ1
ZGdldDsKPiArfTsKPiArCj4gK3R5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxfc2NoZWRwYXJhbV92
Y3B1IHsKPiArICAgIHVuaW9uIHsKPiArICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZF9j
cmVkaXQgY3JlZGl0Owo+ICsgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVkX2NyZWRpdDIg
Y3JlZGl0MjsKPiArICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZF9ydGRzIHJ0ZHM7Cj4g
KyAgICB9IHU7Cj4gKyAgICB1aW50MzJfdCB2Y3B1aWQ7Cj4gK30geGVuX2RvbWN0bF9zY2hlZHBh
cmFtX3ZjcHVfdDsKPiArREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9zY2hlZHBh
cmFtX3ZjcHVfdCk7Cj4gIAo+IC0vKiBTZXQgb3IgZ2V0IGluZm8/ICovCj4gKy8qCj4gKyAqIFNl
dCBvciBnZXQgaW5mbz8KPiArICogRm9yIHNjaGVkdWxlcnMgc3VwcG9ydGluZyBwZXItdmNwdSBz
ZXR0aW5ncyAoZS5nLiwgUlREUyk6Cj4gKyAqICBYRU5fRE9NQ1RMX1NDSEVET1BfcHV0aW5mbyBz
ZXRzIHBhcmFtcyBmb3IgYWxsIHZjcHVzOwo+ICsgKiAgWEVOX0RPTUNUTF9TQ0hFRE9QX2dldGlu
Zm8gZ2V0cyBkZWZhdWx0IHBhcmFtczsKPiArICogIFhFTl9ET01DVExfU0NIRURPUF9wdXQoZ2V0
KXZjcHVpbmZvIHNldHMgKGdldHMpIHBhcmFtcyBvZiB2Y3B1czsKPiArICoKPiArICogRm9yIHNj
aGVkdWxlcnMgbm90IHN1cHBvcnRpbmcgcGVyLXZjcHUgc2V0dGluZ3M6Cj4gKyAqICBYRU5fRE9N
Q1RMX1NDSEVET1BfcHV0aW5mbyBzZXRzIHBhcmFtcyBmb3IgYWxsIHZjcHVzOwo+ICsgKiAgWEVO
X0RPTUNUTF9TQ0hFRE9QX2dldGluZm8gZ2V0cyBkb21haW4td2lzZSBwYXJhbXM7Cj4gKyAqICBY
RU5fRE9NQ1RMX1NDSEVET1BfcHV0KGdldCl2Y3B1aW5mbyByZXR1cm5zIGVycm9yOwo+ICsgKi8K
PiAgI2RlZmluZSBYRU5fRE9NQ1RMX1NDSEVET1BfcHV0aW5mbyAwCj4gICNkZWZpbmUgWEVOX0RP
TUNUTF9TQ0hFRE9QX2dldGluZm8gMQo+ICsjZGVmaW5lIFhFTl9ET01DVExfU0NIRURPUF9wdXR2
Y3B1aW5mbyAyCj4gKyNkZWZpbmUgWEVOX0RPTUNUTF9TQ0hFRE9QX2dldHZjcHVpbmZvIDMKPiAg
c3RydWN0IHhlbl9kb21jdGxfc2NoZWR1bGVyX29wIHsKPiAgICAgIHVpbnQzMl90IHNjaGVkX2lk
OyAgLyogWEVOX1NDSEVEVUxFUl8qICovCj4gICAgICB1aW50MzJfdCBjbWQ7ICAgICAgIC8qIFhF
Tl9ET01DVExfU0NIRURPUF8qICovCj4gKyAgICAvKiBJTi9PVVQgKi8KPiAgICAgIHVuaW9uIHsK
PiAtICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZF9zZWRmIHsKPiAtICAgICAgICAgICAg
dWludDY0X2FsaWduZWRfdCBwZXJpb2Q7Cj4gLSAgICAgICAgICAgIHVpbnQ2NF9hbGlnbmVkX3Qg
c2xpY2U7Cj4gLSAgICAgICAgICAgIHVpbnQ2NF9hbGlnbmVkX3QgbGF0ZW5jeTsKPiAtICAgICAg
ICAgICAgdWludDMyX3QgZXh0cmF0aW1lOwo+IC0gICAgICAgICAgICB1aW50MzJfdCB3ZWlnaHQ7
Cj4gLSAgICAgICAgfSBzZWRmOwo+IC0gICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVkX2Ny
ZWRpdCB7Cj4gLSAgICAgICAgICAgIHVpbnQxNl90IHdlaWdodDsKPiAtICAgICAgICAgICAgdWlu
dDE2X3QgY2FwOwo+IC0gICAgICAgIH0gY3JlZGl0Owo+IC0gICAgICAgIHN0cnVjdCB4ZW5fZG9t
Y3RsX3NjaGVkX2NyZWRpdDIgewo+IC0gICAgICAgICAgICB1aW50MTZfdCB3ZWlnaHQ7Cj4gLSAg
ICAgICAgfSBjcmVkaXQyOwo+IC0gICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVkX3J0ZHMg
ewo+IC0gICAgICAgICAgICB1aW50MzJfdCBwZXJpb2Q7Cj4gLSAgICAgICAgICAgIHVpbnQzMl90
IGJ1ZGdldDsKPiAtICAgICAgICB9IHJ0ZHM7Cj4gKyAgICAgICAgc3RydWN0IHhlbl9kb21jdGxf
c2NoZWRfY3JlZGl0IGNyZWRpdDsKPiArICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZF9j
cmVkaXQyIGNyZWRpdDI7Cj4gKyAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfc2NoZWRfcnRkcyBy
dGRzOwo+ICsgICAgICAgIHN0cnVjdCB7Cj4gKyAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVf
NjQoeGVuX2RvbWN0bF9zY2hlZHBhcmFtX3ZjcHVfdCkgdmNwdXM7Cj4gKyAgICAgICAgICAgIC8q
Cj4gKyAgICAgICAgICAgICAqIElOOiBOdW1iZXIgb2YgZWxlbWVudHMgaW4gdmNwdXMgYXJyYXku
Cj4gKyAgICAgICAgICAgICAqIE9VVDogTnVtYmVyIG9mIHByb2Nlc3NlZCBlbGVtZW50cyBvZiB2
Y3B1cyBhcnJheS4KPiArICAgICAgICAgICAgICovCj4gKyAgICAgICAgICAgIHVpbnQzMl90IG5y
X3ZjcHVzOwo+ICsgICAgICAgICAgICB1aW50MzJfdCBwYWRkaW5nOwo+ICsgICAgICAgIH0gdjsK
PiAgICAgIH0gdTsKPiAgfTsKPiAtdHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZHVsZXJf
b3AgeGVuX2RvbWN0bF9zY2hlZHVsZXJfb3BfdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo
eGVuX2RvbWN0bF9zY2hlZHVsZXJfb3BfdCk7Cj4gIAo+ICAKPiAgLyogWEVOX0RPTUNUTF9zZXRk
b21haW5oYW5kbGUgKi8KPiAgc3RydWN0IHhlbl9kb21jdGxfc2V0ZG9tYWluaGFuZGxlIHsKPiAg
ICAgIHhlbl9kb21haW5faGFuZGxlX3QgaGFuZGxlOwo+ICB9Owo+IC10eXBlZGVmIHN0cnVjdCB4
ZW5fZG9tY3RsX3NldGRvbWFpbmhhbmRsZSB4ZW5fZG9tY3RsX3NldGRvbWFpbmhhbmRsZV90Owo+
IC1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9tY3RsX3NldGRvbWFpbmhhbmRsZV90KTsK
PiAgCj4gIAo+ICAvKiBYRU5fRE9NQ1RMX3NldGRlYnVnZ2luZyAqLwo+ICBzdHJ1Y3QgeGVuX2Rv
bWN0bF9zZXRkZWJ1Z2dpbmcgewo+ICAgICAgdWludDhfdCBlbmFibGU7Cj4gIH07Cj4gLXR5cGVk
ZWYgc3RydWN0IHhlbl9kb21jdGxfc2V0ZGVidWdnaW5nIHhlbl9kb21jdGxfc2V0ZGVidWdnaW5n
X3Q7Cj4gLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9kb21jdGxfc2V0ZGVidWdnaW5nX3Qp
Owo+ICAKPiAgCj4gIC8qIFhFTl9ET01DVExfaXJxX3Blcm1pc3Npb24gKi8KPiBAQCAtNDE1LDgg
KzQwOCw2IEBAIHN0cnVjdCB4ZW5fZG9tY3RsX2lycV9wZXJtaXNzaW9uIHsKPiAgICAgIHVpbnQ4
X3QgcGlycTsKPiAgICAgIHVpbnQ4X3QgYWxsb3dfYWNjZXNzOyAgICAvKiBmbGFnIHRvIHNwZWNp
ZnkgZW5hYmxlL2Rpc2FibGUgb2YgSVJRIGFjY2VzcyAqLwo+ICB9Owo+IC10eXBlZGVmIHN0cnVj
dCB4ZW5fZG9tY3RsX2lycV9wZXJtaXNzaW9uIHhlbl9kb21jdGxfaXJxX3Blcm1pc3Npb25fdDsK
PiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9pcnFfcGVybWlzc2lvbl90KTsK
PiAgCj4gIAo+ICAvKiBYRU5fRE9NQ1RMX2lvbWVtX3Blcm1pc3Npb24gKi8KPiBAQCAtNDI1LDgg
KzQxNiw2IEBAIHN0cnVjdCB4ZW5fZG9tY3RsX2lvbWVtX3Blcm1pc3Npb24gewo+ICAgICAgdWlu
dDY0X2FsaWduZWRfdCBucl9tZm5zOyAgLyogbnVtYmVyIG9mIHBhZ2VzIGluIHJhbmdlICg+MCkg
Ki8KPiAgICAgIHVpbnQ4X3QgIGFsbG93X2FjY2VzczsgICAgIC8qIGFsbG93ICghMCkgb3IgZGVu
eSAoMCkgYWNjZXNzIHRvIHJhbmdlPyAqLwo+ICB9Owo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fZG9t
Y3RsX2lvbWVtX3Blcm1pc3Npb24geGVuX2RvbWN0bF9pb21lbV9wZXJtaXNzaW9uX3Q7Cj4gLURF
RklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9kb21jdGxfaW9tZW1fcGVybWlzc2lvbl90KTsKPiAg
Cj4gIAo+ICAvKiBYRU5fRE9NQ1RMX2lvcG9ydF9wZXJtaXNzaW9uICovCj4gQEAgLTQzNSw0MiAr
NDI0LDM0IEBAIHN0cnVjdCB4ZW5fZG9tY3RsX2lvcG9ydF9wZXJtaXNzaW9uIHsKPiAgICAgIHVp
bnQzMl90IG5yX3BvcnRzOyAgICAgICAgICAgICAgICAvKiBzaXplIG9mIHBvcnQgcmFuZ2UgKi8K
PiAgICAgIHVpbnQ4X3QgIGFsbG93X2FjY2VzczsgICAgICAgICAgICAvKiBhbGxvdyBvciBkZW55
IGFjY2VzcyB0byByYW5nZT8gKi8KPiAgfTsKPiAtdHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF9p
b3BvcnRfcGVybWlzc2lvbiB4ZW5fZG9tY3RsX2lvcG9ydF9wZXJtaXNzaW9uX3Q7Cj4gLURFRklO
RV9YRU5fR1VFU1RfSEFORExFKHhlbl9kb21jdGxfaW9wb3J0X3Blcm1pc3Npb25fdCk7Cj4gIAo+
ICAKPiAgLyogWEVOX0RPTUNUTF9oeXBlcmNhbGxfaW5pdCAqLwo+ICBzdHJ1Y3QgeGVuX2RvbWN0
bF9oeXBlcmNhbGxfaW5pdCB7Cj4gICAgICB1aW50NjRfYWxpZ25lZF90ICBnbWZuOyAgICAgICAg
ICAgLyogR01GTiB0byBiZSBpbml0aWFsaXNlZCAqLwo+ICB9Owo+IC10eXBlZGVmIHN0cnVjdCB4
ZW5fZG9tY3RsX2h5cGVyY2FsbF9pbml0IHhlbl9kb21jdGxfaHlwZXJjYWxsX2luaXRfdDsKPiAt
REVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9oeXBlcmNhbGxfaW5pdF90KTsKPiAg
Cj4gIAo+ICAvKiBYRU5fRE9NQ1RMX3NldHRpbWVvZmZzZXQgKi8KPiAgc3RydWN0IHhlbl9kb21j
dGxfc2V0dGltZW9mZnNldCB7Cj4gLSAgICBpbnQzMl90ICB0aW1lX29mZnNldF9zZWNvbmRzOyAv
KiBhcHBsaWVkIHRvIGRvbWFpbiB3YWxsY2xvY2sgdGltZSAqLwo+ICsgICAgaW50NjRfYWxpZ25l
ZF90IHRpbWVfb2Zmc2V0X3NlY29uZHM7IC8qIGFwcGxpZWQgdG8gZG9tYWluIHdhbGxjbG9jayB0
aW1lICovCj4gIH07Cj4gLXR5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxfc2V0dGltZW9mZnNldCB4
ZW5fZG9tY3RsX3NldHRpbWVvZmZzZXRfdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVu
X2RvbWN0bF9zZXR0aW1lb2Zmc2V0X3QpOwo+ICAKPiAgLyogWEVOX0RPTUNUTF9nZXRodm1jb250
ZXh0ICovCj4gIC8qIFhFTl9ET01DVExfc2V0aHZtY29udGV4dCAqLwo+IC10eXBlZGVmIHN0cnVj
dCB4ZW5fZG9tY3RsX2h2bWNvbnRleHQgewo+ICtzdHJ1Y3QgeGVuX2RvbWN0bF9odm1jb250ZXh0
IHsKPiAgICAgIHVpbnQzMl90IHNpemU7IC8qIElOL09VVDogc2l6ZSBvZiBidWZmZXIgLyBieXRl
cyBmaWxsZWQgKi8KPiAgICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQodWludDgpIGJ1ZmZlcjsgLyog
SU4vT1VUOiBkYXRhLCBvciBjYWxsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqIGdldGh2bWNvbnRleHQgd2l0aCBOVUxMCj4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqIGJ1ZmZlciB0byBnZXQgc2l6ZSByZXEnZCAqLwo+IC19IHhl
bl9kb21jdGxfaHZtY29udGV4dF90Owo+IC1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9t
Y3RsX2h2bWNvbnRleHRfdCk7Cj4gK307Cj4gIAo+ICAKPiAgLyogWEVOX0RPTUNUTF9zZXRfYWRk
cmVzc19zaXplICovCj4gIC8qIFhFTl9ET01DVExfZ2V0X2FkZHJlc3Nfc2l6ZSAqLwo+IC10eXBl
ZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX2FkZHJlc3Nfc2l6ZSB7Cj4gK3N0cnVjdCB4ZW5fZG9tY3Rs
X2FkZHJlc3Nfc2l6ZSB7Cj4gICAgICB1aW50MzJfdCBzaXplOwo+IC19IHhlbl9kb21jdGxfYWRk
cmVzc19zaXplX3Q7Cj4gLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9kb21jdGxfYWRkcmVz
c19zaXplX3QpOwo+ICt9Owo+ICAKPiAgCj4gIC8qIFhFTl9ET01DVExfc2VuZHRyaWdnZXIgKi8K
PiBAQCAtNDgzLDE5ICs0NjQsNDAgQEAgc3RydWN0IHhlbl9kb21jdGxfc2VuZHRyaWdnZXIgewo+
ICAgICAgdWludDMyX3QgIHRyaWdnZXI7ICAvKiBJTiAqLwo+ICAgICAgdWludDMyX3QgIHZjcHU7
ICAgICAvKiBJTiAqLwo+ICB9Owo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX3NlbmR0cmln
Z2VyIHhlbl9kb21jdGxfc2VuZHRyaWdnZXJfdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo
eGVuX2RvbWN0bF9zZW5kdHJpZ2dlcl90KTsKPiAgCj4gIAo+IC0vKiBBc3NpZ24gUENJIGRldmlj
ZSB0byBIVk0gZ3Vlc3QuIFNldHMgdXAgSU9NTVUgc3RydWN0dXJlcy4gKi8KPiArLyogQXNzaWdu
IGEgZGV2aWNlIHRvIGEgZ3Vlc3QuIFNldHMgdXAgSU9NTVUgc3RydWN0dXJlcy4gKi8KPiAgLyog
WEVOX0RPTUNUTF9hc3NpZ25fZGV2aWNlICovCj4gLS8qIFhFTl9ET01DVExfdGVzdF9hc3NpZ25f
ZGV2aWNlICovCj4gLS8qIFhFTl9ET01DVExfZGVhc3NpZ25fZGV2aWNlICovCj4gKy8qCj4gKyAq
IFhFTl9ET01DVExfdGVzdF9hc3NpZ25fZGV2aWNlOiBQYXNzIERPTUlEX0lOVkFMSUQgdG8gZmlu
ZCBvdXQgd2hldGhlciB0aGUKPiArICogZ2l2ZW4gZGV2aWNlIGlzIGFzc2lnbmVkIHRvIGFueSBE
b21VIGF0IGFsbC4gUGFzcyBhIHNwZWNpZmljIGRvbWFpbiBJRCB0bwo+ICsgKiBmaW5kIG91dCB3
aGV0aGVyIHRoZSBnaXZlbiBkZXZpY2UgY2FuIGJlIGFzc2lnbmVkIHRvIHRoYXQgZG9tYWluLgo+
ICsgKi8KPiArLyoKPiArICogWEVOX0RPTUNUTF9kZWFzc2lnbl9kZXZpY2U6IFRoZSBiZWhhdmlv
ciBvZiB0aGlzIERPTUNUTCBkaWZmZXJzCj4gKyAqIGJldHdlZW4gdGhlIGRpZmZlcmVudCB0eXBl
IG9mIGRldmljZToKPiArICogIC0gUENJIGRldmljZSAoWEVOX0RPTUNUTF9ERVZfUENJKSB3aWxs
IGJlIHJlYXNzaWduZWQgdG8gRE9NMAo+ICsgKiAgLSBEVCBkZXZpY2UgKFhFTl9ET01DVExfREVW
X0RUKSB3aWxsIGxlZnQgdW5hc3NpZ25lZC4gRE9NMAo+ICsgKiAgd2lsbCBoYXZlIHRvIGNhbGwg
WEVOX0RPTUNUTF9hc3NpZ25fZGV2aWNlIGluIG9yZGVyIHRvIHVzZSB0aGUKPiArICogIGRldmlj
ZS4KPiArICovCj4gKyNkZWZpbmUgWEVOX0RPTUNUTF9ERVZfUENJICAgICAgMAo+ICsjZGVmaW5l
IFhFTl9ET01DVExfREVWX0RUICAgICAgIDEKPiAgc3RydWN0IHhlbl9kb21jdGxfYXNzaWduX2Rl
dmljZSB7Cj4gLSAgICB1aW50MzJfdCAgbWFjaGluZV9zYmRmOyAgIC8qIG1hY2hpbmUgUENJIElE
IG9mIGFzc2lnbmVkIGRldmljZSAqLwo+ICsgICAgLyogSU4gKi8KPiArICAgIHVpbnQzMl90IGRl
djsgICAvKiBYRU5fRE9NQ1RMX0RFVl8qICovCj4gKyAgICB1aW50MzJfdCBmbGFnczsKPiArI2Rl
ZmluZSBYRU5fRE9NQ1RMX0RFVl9SRE1fUkVMQVhFRCAgICAgIDEgLyogYXNzaWduIG9ubHkgKi8K
PiArICAgIHVuaW9uIHsKPiArICAgICAgICBzdHJ1Y3Qgewo+ICsgICAgICAgICAgICB1aW50MzJf
dCBtYWNoaW5lX3NiZGY7ICAgLyogbWFjaGluZSBQQ0kgSUQgb2YgYXNzaWduZWQgZGV2aWNlICov
Cj4gKyAgICAgICAgfSBwY2k7Cj4gKyAgICAgICAgc3RydWN0IHsKPiArICAgICAgICAgICAgdWlu
dDMyX3Qgc2l6ZTsgLyogTGVuZ3RoIG9mIHRoZSBwYXRoICovCj4gKyAgICAgICAgICAgIFhFTl9H
VUVTVF9IQU5ETEVfNjQoY2hhcikgcGF0aDsgLyogcGF0aCB0byB0aGUgZGV2aWNlIHRyZWUgbm9k
ZSAqLwo+ICsgICAgICAgIH0gZHQ7Cj4gKyAgICB9IHU7Cj4gIH07Cj4gLXR5cGVkZWYgc3RydWN0
IHhlbl9kb21jdGxfYXNzaWduX2RldmljZSB4ZW5fZG9tY3RsX2Fzc2lnbl9kZXZpY2VfdDsKPiAt
REVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9hc3NpZ25fZGV2aWNlX3QpOwo+ICAK
PiAgLyogUmV0cmlldmUgc2libGluZyBkZXZpY2VzIGluZm9tYXRpb24gb2YgbWFjaGluZV9zYmRm
ICovCj4gIC8qIFhFTl9ET01DVExfZ2V0X2RldmljZV9ncm91cCAqLwo+IEBAIC01MDUsMjIgKzUw
NywyMCBAQCBzdHJ1Y3QgeGVuX2RvbWN0bF9nZXRfZGV2aWNlX2dyb3VwIHsKPiAgICAgIHVpbnQz
Ml90ICBudW1fc2RldnM7ICAgICAgICAvKiBPVVQgKi8KPiAgICAgIFhFTl9HVUVTVF9IQU5ETEVf
NjQodWludDMyKSAgc2Rldl9hcnJheTsgICAvKiBPVVQgKi8KPiAgfTsKPiAtdHlwZWRlZiBzdHJ1
Y3QgeGVuX2RvbWN0bF9nZXRfZGV2aWNlX2dyb3VwIHhlbl9kb21jdGxfZ2V0X2RldmljZV9ncm91
cF90Owo+IC1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9tY3RsX2dldF9kZXZpY2VfZ3Jv
dXBfdCk7Cj4gIAo+ICAvKiBQYXNzLXRocm91Z2ggaW50ZXJydXB0czogYmluZCByZWFsIGlycSAt
PiBodm0gZGV2Zm4uICovCj4gIC8qIFhFTl9ET01DVExfYmluZF9wdF9pcnEgKi8KPiAgLyogWEVO
X0RPTUNUTF91bmJpbmRfcHRfaXJxICovCj4gLXR5cGVkZWYgZW51bSBwdF9pcnFfdHlwZV9lIHsK
PiArZW51bSBwdF9pcnFfdHlwZSB7Cj4gICAgICBQVF9JUlFfVFlQRV9QQ0ksCj4gICAgICBQVF9J
UlFfVFlQRV9JU0EsCj4gICAgICBQVF9JUlFfVFlQRV9NU0ksCj4gICAgICBQVF9JUlFfVFlQRV9N
U0lfVFJBTlNMQVRFLAo+IC19IHB0X2lycV90eXBlX3Q7Cj4gKyAgICBQVF9JUlFfVFlQRV9TUEks
ICAgIC8qIEFSTTogdmFsaWQgcmFuZ2UgMzItMTAxOSAqLwo+ICt9Owo+ICBzdHJ1Y3QgeGVuX2Rv
bWN0bF9iaW5kX3B0X2lycSB7Cj4gICAgICB1aW50MzJfdCBtYWNoaW5lX2lycTsKPiAtICAgIHB0
X2lycV90eXBlX3QgaXJxX3R5cGU7Cj4gLSAgICB1aW50MzJfdCBodm1fZG9taWQ7Cj4gKyAgICB1
aW50MzJfdCBpcnFfdHlwZTsgLyogZW51bSBwdF9pcnFfdHlwZSAqLwo+ICAKPiAgICAgIHVuaW9u
IHsKPiAgICAgICAgICBzdHJ1Y3Qgewo+IEBAIC01MzQsMTYgKzUzNCwzMiBAQCBzdHJ1Y3QgeGVu
X2RvbWN0bF9iaW5kX3B0X2lycSB7Cj4gICAgICAgICAgc3RydWN0IHsKPiAgICAgICAgICAgICAg
dWludDhfdCBndmVjOwo+ICAgICAgICAgICAgICB1aW50MzJfdCBnZmxhZ3M7Cj4gKyNkZWZpbmUg
WEVOX0RPTUNUTF9WTVNJX1g4Nl9ERVNUX0lEX01BU0sgMHgwMDAwZmYKPiArI2RlZmluZSBYRU5f
RE9NQ1RMX1ZNU0lfWDg2X1JIX01BU0sgICAgICAweDAwMDEwMAo+ICsjZGVmaW5lIFhFTl9ET01D
VExfVk1TSV9YODZfRE1fTUFTSyAgICAgIDB4MDAwMjAwCj4gKyNkZWZpbmUgWEVOX0RPTUNUTF9W
TVNJX1g4Nl9ERUxJVl9NQVNLICAgMHgwMDcwMDAKPiArI2RlZmluZSBYRU5fRE9NQ1RMX1ZNU0lf
WDg2X1RSSUdfTUFTSyAgICAweDAwODAwMAo+ICsjZGVmaW5lIFhFTl9ET01DVExfVk1TSV9YODZf
VU5NQVNLRUQgICAgIDB4MDEwMDAwCj4gKwo+ICAgICAgICAgICAgICB1aW50NjRfYWxpZ25lZF90
IGd0YWJsZTsKPiAgICAgICAgICB9IG1zaTsKPiArICAgICAgICBzdHJ1Y3Qgewo+ICsgICAgICAg
ICAgICB1aW50MTZfdCBzcGk7Cj4gKyAgICAgICAgfSBzcGk7Cj4gICAgICB9IHU7Cj4gIH07Cj4g
LXR5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxfYmluZF9wdF9pcnEgeGVuX2RvbWN0bF9iaW5kX3B0
X2lycV90Owo+IC1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9tY3RsX2JpbmRfcHRfaXJx
X3QpOwo+ICAKPiAgCj4gIC8qIEJpbmQgbWFjaGluZSBJL08gYWRkcmVzcyByYW5nZSAtPiBIVk0g
YWRkcmVzcyByYW5nZS4gKi8KPiAgLyogWEVOX0RPTUNUTF9tZW1vcnlfbWFwcGluZyAqLwo+ICsv
KiBSZXR1cm5zCj4gKyAgIC0gemVybyAgICAgc3VjY2VzcywgZXZlcnl0aGluZyBkb25lCj4gKyAg
IC0gLUUyQklHICAgcGFzc2VkIGluIG5yX21mbnMgdmFsdWUgdG9vIGxhcmdlIGZvciB0aGUgaW1w
bGVtZW50YXRpb24KPiArICAgLSBwb3NpdGl2ZSBwYXJ0aWFsIHN1Y2Nlc3MgZm9yIHRoZSBmaXJz
dCA8cmVzdWx0PiBwYWdlIGZyYW1lcyAod2l0aAo+ICsgICAgICAgICAgICAgIDxyZXN1bHQ+IGxl
c3MgdGhhbiBucl9tZm5zKSwgcmVxdWlyaW5nIHJlLWludm9jYXRpb24gYnkgdGhlCj4gKyAgICAg
ICAgICAgICAgY2FsbGVyIGFmdGVyIHVwZGF0aW5nIGlucHV0cwo+ICsgICAtIG5lZ2F0aXZlIGVy
cm9yOyBvdGhlciB0aGFuIC1FMkJJRwo+ICsqLwo+ICAjZGVmaW5lIERQQ0lfQUREX01BUFBJTkcg
ICAgICAgICAxCj4gICNkZWZpbmUgRFBDSV9SRU1PVkVfTUFQUElORyAgICAgIDAKPiAgc3RydWN0
IHhlbl9kb21jdGxfbWVtb3J5X21hcHBpbmcgewo+IEBAIC01NTMsOCArNTY5LDYgQEAgc3RydWN0
IHhlbl9kb21jdGxfbWVtb3J5X21hcHBpbmcgewo+ICAgICAgdWludDMyX3QgYWRkX21hcHBpbmc7
ICAgICAgIC8qIGFkZCBvciByZW1vdmUgbWFwcGluZyAqLwo+ICAgICAgdWludDMyX3QgcGFkZGlu
ZzsgICAgICAgICAgIC8qIHBhZGRpbmcgZm9yIDY0LWJpdCBhbGlnbmVkIHN0cnVjdHVyZSAqLwo+
ICB9Owo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX21lbW9yeV9tYXBwaW5nIHhlbl9kb21j
dGxfbWVtb3J5X21hcHBpbmdfdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0
bF9tZW1vcnlfbWFwcGluZ190KTsKPiAgCj4gIAo+ICAvKiBCaW5kIG1hY2hpbmUgSS9PIHBvcnQg
cmFuZ2UgLT4gSFZNIEkvTyBwb3J0IHJhbmdlLiAqLwo+IEBAIC01NjUsOCArNTc5LDYgQEAgc3Ry
dWN0IHhlbl9kb21jdGxfaW9wb3J0X21hcHBpbmcgewo+ICAgICAgdWludDMyX3QgbnJfcG9ydHM7
ICAgICAgICAvKiBzaXplIG9mIHBvcnQgcmFuZ2UgKi8KPiAgICAgIHVpbnQzMl90IGFkZF9tYXBw
aW5nOyAgICAgLyogYWRkIG9yIHJlbW92ZSBtYXBwaW5nICovCj4gIH07Cj4gLXR5cGVkZWYgc3Ry
dWN0IHhlbl9kb21jdGxfaW9wb3J0X21hcHBpbmcgeGVuX2RvbWN0bF9pb3BvcnRfbWFwcGluZ190
Owo+IC1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9tY3RsX2lvcG9ydF9tYXBwaW5nX3Qp
Owo+ICAKPiAgCj4gIC8qCj4gQEAgLTU4NSw4ICs1OTcsNiBAQCBzdHJ1Y3QgeGVuX2RvbWN0bF9w
aW5fbWVtX2NhY2hlYXR0ciB7Cj4gICAgICB1aW50NjRfYWxpZ25lZF90IHN0YXJ0LCBlbmQ7Cj4g
ICAgICB1aW50MzJfdCB0eXBlOyAvKiBYRU5fRE9NQ1RMX01FTV9DQUNIRUFUVFJfKiAqLwo+ICB9
Owo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX3Bpbl9tZW1fY2FjaGVhdHRyIHhlbl9kb21j
dGxfcGluX21lbV9jYWNoZWF0dHJfdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2Rv
bWN0bF9waW5fbWVtX2NhY2hlYXR0cl90KTsKPiAgCj4gIAo+ICAvKiBYRU5fRE9NQ1RMX3NldF9l
eHRfdmNwdWNvbnRleHQgKi8KPiBAQCAtNjE4LDggKzYyOCw2IEBAIHN0cnVjdCB4ZW5fZG9tY3Rs
X2V4dF92Y3B1Y29udGV4dCB7Cj4gICNlbmRpZgo+ICAjZW5kaWYKPiAgfTsKPiAtdHlwZWRlZiBz
dHJ1Y3QgeGVuX2RvbWN0bF9leHRfdmNwdWNvbnRleHQgeGVuX2RvbWN0bF9leHRfdmNwdWNvbnRl
eHRfdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9leHRfdmNwdWNvbnRl
eHRfdCk7Cj4gIAo+ICAvKgo+ICAgKiBTZXQgdGhlIHRhcmdldCBkb21haW4gZm9yIGEgZG9tYWlu
Cj4gQEAgLTYyOCw4ICs2MzYsNiBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9tY3Rs
X2V4dF92Y3B1Y29udGV4dF90KTsKPiAgc3RydWN0IHhlbl9kb21jdGxfc2V0X3RhcmdldCB7Cj4g
ICAgICBkb21pZF90IHRhcmdldDsKPiAgfTsKPiAtdHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF9z
ZXRfdGFyZ2V0IHhlbl9kb21jdGxfc2V0X3RhcmdldF90Owo+IC1ERUZJTkVfWEVOX0dVRVNUX0hB
TkRMRSh4ZW5fZG9tY3RsX3NldF90YXJnZXRfdCk7Cj4gIAo+ICAjaWYgZGVmaW5lZChfX2kzODZf
XykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQo+ICAjIGRlZmluZSBYRU5fQ1BVSURfSU5QVVRfVU5V
U0VEICAweEZGRkZGRkZGCj4gQEAgLTY0MSw4ICs2NDcsNiBAQCBzdHJ1Y3QgeGVuX2RvbWN0bF9j
cHVpZCB7Cj4gICAgdWludDMyX3QgZWN4Owo+ICAgIHVpbnQzMl90IGVkeDsKPiAgfTsKPiAtdHlw
ZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF9jcHVpZCB4ZW5fZG9tY3RsX2NwdWlkX3Q7Cj4gLURFRklO
RV9YRU5fR1VFU1RfSEFORExFKHhlbl9kb21jdGxfY3B1aWRfdCk7Cj4gICNlbmRpZgo+ICAKPiAg
LyoKPiBAQCAtNjY1LDggKzY2OSw2IEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9kb21j
dGxfY3B1aWRfdCk7Cj4gIHN0cnVjdCB4ZW5fZG9tY3RsX3N1YnNjcmliZSB7Cj4gICAgICB1aW50
MzJfdCBwb3J0OyAvKiBJTiAqLwo+ICB9Owo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX3N1
YnNjcmliZSB4ZW5fZG9tY3RsX3N1YnNjcmliZV90Owo+IC1ERUZJTkVfWEVOX0dVRVNUX0hBTkRM
RSh4ZW5fZG9tY3RsX3N1YnNjcmliZV90KTsKPiAgCj4gIC8qCj4gICAqIERlZmluZSB0aGUgbWF4
aW11bSBtYWNoaW5lIGFkZHJlc3Mgc2l6ZSB3aGljaCBzaG91bGQgYmUgYWxsb2NhdGVkCj4gQEAg
LTY4Nyw0MSArNjg5LDM0IEBAIHN0cnVjdCB4ZW5fZG9tY3RsX2RlYnVnX29wIHsKPiAgICAgIHVp
bnQzMl90IG9wOyAgIC8qIElOICovCj4gICAgICB1aW50MzJfdCB2Y3B1OyAvKiBJTiAqLwo+ICB9
Owo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX2RlYnVnX29wIHhlbl9kb21jdGxfZGVidWdf
b3BfdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9kZWJ1Z19vcF90KTsK
PiAgCj4gIC8qCj4gICAqIFJlcXVlc3QgYSBwYXJ0aWN1bGFyIHJlY29yZCBmcm9tIHRoZSBIVk0g
Y29udGV4dAo+ICAgKi8KPiAgLyogWEVOX0RPTUNUTF9nZXRodm1jb250ZXh0X3BhcnRpYWwgKi8K
PiAtdHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF9odm1jb250ZXh0X3BhcnRpYWwgewo+ICtzdHJ1
Y3QgeGVuX2RvbWN0bF9odm1jb250ZXh0X3BhcnRpYWwgewo+ICAgICAgdWludDMyX3QgdHlwZTsg
ICAgICAgICAgICAgICAgICAgICAgLyogSU46IFR5cGUgb2YgcmVjb3JkIHJlcXVpcmVkICovCj4g
ICAgICB1aW50MzJfdCBpbnN0YW5jZTsgICAgICAgICAgICAgICAgICAvKiBJTjogSW5zdGFuY2Ug
b2YgdGhhdCB0eXBlICovCj4gKyAgICB1aW50NjRfYWxpZ25lZF90IGJ1ZnN6OyAgICAgICAgICAg
ICAvKiBJTjogc2l6ZSBvZiBidWZmZXIgKi8KPiAgICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQodWlu
dDgpIGJ1ZmZlcjsgIC8qIE9VVDogYnVmZmVyIHRvIHdyaXRlIHJlY29yZCBpbnRvICovCj4gLX0g
eGVuX2RvbWN0bF9odm1jb250ZXh0X3BhcnRpYWxfdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5E
TEUoeGVuX2RvbWN0bF9odm1jb250ZXh0X3BhcnRpYWxfdCk7Cj4gK307Cj4gIAo+ICAvKiBYRU5f
RE9NQ1RMX2Rpc2FibGVfbWlncmF0ZSAqLwo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX2Rp
c2FibGVfbWlncmF0ZSB7Cj4gK3N0cnVjdCB4ZW5fZG9tY3RsX2Rpc2FibGVfbWlncmF0ZSB7Cj4g
ICAgICB1aW50MzJfdCBkaXNhYmxlOyAvKiBJTjogMTogZGlzYWJsZSBtaWdyYXRpb24gYW5kIHJl
c3RvcmUgKi8KPiAtfSB4ZW5fZG9tY3RsX2Rpc2FibGVfbWlncmF0ZV90Owo+ICt9Owo+ICAKPiAg
Cj4gIC8qIFhFTl9ET01DVExfZ2V0dHNjaW5mbyAqLwo+ICAvKiBYRU5fRE9NQ1RMX3NldHRzY2lu
Zm8gKi8KPiAtc3RydWN0IHhlbl9ndWVzdF90c2NfaW5mbyB7Cj4gK3N0cnVjdCB4ZW5fZG9tY3Rs
X3RzY19pbmZvIHsKPiArICAgIC8qIElOL09VVCAqLwo+ICAgICAgdWludDMyX3QgdHNjX21vZGU7
Cj4gICAgICB1aW50MzJfdCBndHNjX2toejsKPiAgICAgIHVpbnQzMl90IGluY2FybmF0aW9uOwo+
ICAgICAgdWludDMyX3QgcGFkOwo+ICAgICAgdWludDY0X2FsaWduZWRfdCBlbGFwc2VkX25zZWM7
Cj4gIH07Cj4gLXR5cGVkZWYgc3RydWN0IHhlbl9ndWVzdF90c2NfaW5mbyB4ZW5fZ3Vlc3RfdHNj
X2luZm9fdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2d1ZXN0X3RzY19pbmZvX3Qp
Owo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX3RzY19pbmZvIHsKPiAtICAgIFhFTl9HVUVT
VF9IQU5ETEVfNjQoeGVuX2d1ZXN0X3RzY19pbmZvX3QpIG91dF9pbmZvOyAvKiBPVVQgKi8KPiAt
ICAgIHhlbl9ndWVzdF90c2NfaW5mb190IGluZm87IC8qIElOICovCj4gLX0geGVuX2RvbWN0bF90
c2NfaW5mb190Owo+ICAKPiAgLyogWEVOX0RPTUNUTF9nZGJzeF9ndWVzdG1lbWlvICAgICAgZ3Vl
c3QgbWVtIGlvICovCj4gIHN0cnVjdCB4ZW5fZG9tY3RsX2dkYnN4X21lbWlvIHsKPiBAQCAtNzUw
LDEwICs3NDUsMjEgQEAgc3RydWN0IHhlbl9kb21jdGxfZ2Ric3hfZG9tc3RhdHVzIHsKPiAgfTsK
PiAgCj4gIC8qCj4gLSAqIE1lbW9yeSBldmVudCBvcGVyYXRpb25zCj4gKyAqIFZNIGV2ZW50IG9w
ZXJhdGlvbnMKPiAgICovCj4gIAo+IC0vKiBYRU5fRE9NQ1RMX21lbV9ldmVudF9vcCAqLwo+ICsv
KiBYRU5fRE9NQ1RMX3ZtX2V2ZW50X29wICovCj4gKwo+ICsvKgo+ICsgKiBUaGVyZSBhcmUgY3Vy
cmVudGx5IHRocmVlIHJpbmdzIGF2YWlsYWJsZSBmb3IgVk0gZXZlbnRzOgo+ICsgKiBzaGFyaW5n
LCBtb25pdG9yIGFuZCBwYWdpbmcuIFRoaXMgaHlwZXJjYWxsIGFsbG93cyBvbmUgdG8KPiArICog
Y29udHJvbCB0aGVzZSByaW5ncyAoZW5hYmxlL2Rpc2FibGUpLCBhcyB3ZWxsIGFzIHRvIHNpZ25h
bAo+ICsgKiB0byB0aGUgaHlwZXJ2aXNvciB0byBwdWxsIHJlc3BvbnNlcyAocmVzdW1lKSBmcm9t
IHRoZSBnaXZlbgo+ICsgKiByaW5nLgo+ICsgKi8KPiArI2RlZmluZSBYRU5fVk1fRVZFTlRfRU5B
QkxFICAgICAgICAgICAgICAgMAo+ICsjZGVmaW5lIFhFTl9WTV9FVkVOVF9ESVNBQkxFICAgICAg
ICAgICAgICAxCj4gKyNkZWZpbmUgWEVOX1ZNX0VWRU5UX1JFU1VNRSAgICAgICAgICAgICAgIDIK
PiAgCj4gIC8qCj4gICAqIERvbWFpbiBtZW1vcnkgcGFnaW5nCj4gQEAgLTc2Miw0MiArNzY4LDM4
IEBAIHN0cnVjdCB4ZW5fZG9tY3RsX2dkYnN4X2RvbXN0YXR1cyB7Cj4gICAqIHBhZ2VyPC0+aHlw
ZXJ2aXNvciBpbnRlcmZhY2UuIFVzZSBYRU5NRU1fcGFnaW5nX29wKgo+ICAgKiB0byBwZXJmb3Jt
IHBlci1wYWdlIG9wZXJhdGlvbnMuCj4gICAqCj4gLSAqIFRoZSBYRU5fRE9NQ1RMX01FTV9FVkVO
VF9PUF9QQUdJTkdfRU5BQkxFIGRvbWN0bCByZXR1cm5zIHNldmVyYWwKPiArICogVGhlIFhFTl9W
TV9FVkVOVF9QQUdJTkdfRU5BQkxFIGRvbWN0bCByZXR1cm5zIHNldmVyYWwKPiAgICogbm9uLXN0
YW5kYXJkIGVycm9yIGNvZGVzIHRvIGluZGljYXRlIHdoeSBwYWdpbmcgY291bGQgbm90IGJlIGVu
YWJsZWQ6Cj4gICAqIEVOT0RFViAtIGhvc3QgbGFja3MgSEFQIHN1cHBvcnQgKEVQVC9OUFQpIG9y
IEhBUCBpcyBkaXNhYmxlZCBpbiBndWVzdAo+ICAgKiBFTUxJTksgLSBndWVzdCBoYXMgaW9tbXUg
cGFzc3Rocm91Z2ggZW5hYmxlZAo+ICAgKiBFWERFViAgLSBndWVzdCBoYXMgUG9EIGVuYWJsZWQK
PiAgICogRUJVU1kgIC0gZ3Vlc3QgaGFzIG9yIGhhZCBwYWdpbmcgZW5hYmxlZCwgcmluZyBidWZm
ZXIgc3RpbGwgYWN0aXZlCj4gICAqLwo+IC0jZGVmaW5lIFhFTl9ET01DVExfTUVNX0VWRU5UX09Q
X1BBR0lORyAgICAgICAgICAgIDEKPiAtCj4gLSNkZWZpbmUgWEVOX0RPTUNUTF9NRU1fRVZFTlRf
T1BfUEFHSU5HX0VOQUJMRSAgICAgMAo+IC0jZGVmaW5lIFhFTl9ET01DVExfTUVNX0VWRU5UX09Q
X1BBR0lOR19ESVNBQkxFICAgIDEKPiArI2RlZmluZSBYRU5fRE9NQ1RMX1ZNX0VWRU5UX09QX1BB
R0lORyAgICAgICAgICAgIDEKPiAgCj4gIC8qCj4gLSAqIEFjY2VzcyBwZXJtaXNzaW9ucy4KPiAr
ICogTW9uaXRvciBoZWxwZXIuCj4gICAqCj4gICAqIEFzIHdpdGggcGFnaW5nLCB1c2UgdGhlIGRv
bWN0bCBmb3IgdGVhcmRvd24vc2V0dXAgb2YgdGhlCj4gICAqIGhlbHBlcjwtPmh5cGVydmlzb3Ig
aW50ZXJmYWNlLgo+ICAgKgo+IC0gKiBUaGVyZSBhcmUgSFZNIGh5cGVyY2FsbHMgdG8gc2V0IHRo
ZSBwZXItcGFnZSBhY2Nlc3MgcGVybWlzc2lvbnMgb2YgZXZlcnkKPiAtICogcGFnZSBpbiBhIGRv
bWFpbi4gIFdoZW4gb25lIG9mIHRoZXNlIHBlcm1pc3Npb25zLS1pbmRlcGVuZGVudCwgcmVhZCwg
Cj4gLSAqIHdyaXRlLCBhbmQgZXhlY3V0ZS0taXMgdmlvbGF0ZWQsIHRoZSBWQ1BVIGlzIHBhdXNl
ZCBhbmQgYSBtZW1vcnkgZXZlbnQgCj4gLSAqIGlzIHNlbnQgd2l0aCB3aGF0IGhhcHBlbmVkLiAg
KFNlZSBwdWJsaWMvbWVtX2V2ZW50LmgpIC4KPiArICogVGhlIG1vbml0b3IgaW50ZXJmYWNlIGNh
biBiZSB1c2VkIHRvIHJlZ2lzdGVyIGZvciB2YXJpb3VzIFZNIGV2ZW50cy4gRm9yCj4gKyAqIGV4
YW1wbGUsIHRoZXJlIGFyZSBIVk0gaHlwZXJjYWxscyB0byBzZXQgdGhlIHBlci1wYWdlIGFjY2Vz
cyBwZXJtaXNzaW9ucwo+ICsgKiBvZiBldmVyeSBwYWdlIGluIGEgZG9tYWluLiAgV2hlbiBvbmUg
b2YgdGhlc2UgcGVybWlzc2lvbnMtLWluZGVwZW5kZW50LAo+ICsgKiByZWFkLCB3cml0ZSwgYW5k
IGV4ZWN1dGUtLWlzIHZpb2xhdGVkLCB0aGUgVkNQVSBpcyBwYXVzZWQgYW5kIGEgbWVtb3J5IGV2
ZW50Cj4gKyAqIGlzIHNlbnQgd2l0aCB3aGF0IGhhcHBlbmVkLiBUaGUgbWVtb3J5IGV2ZW50IGhh
bmRsZXIgY2FuIHRoZW4gcmVzdW1lIHRoZQo+ICsgKiBWQ1BVIGFuZCByZWRvIHRoZSBhY2Nlc3Mg
d2l0aCBhIFhFTl9WTV9FVkVOVF9SRVNVTUUgb3B0aW9uLgo+ICAgKgo+IC0gKiBUaGUgbWVtb3J5
IGV2ZW50IGhhbmRsZXIgY2FuIHRoZW4gcmVzdW1lIHRoZSBWQ1BVIGFuZCByZWRvIHRoZSBhY2Nl
c3MgCj4gLSAqIHdpdGggYSBYRU5NRU1fYWNjZXNzX29wX3Jlc3VtZSBoeXBlcmNhbGwuCj4gKyAq
IFNlZSBwdWJsaWMvdm1fZXZlbnQuaCBmb3IgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIGV2ZW50cyB0
aGF0IGNhbiBiZQo+ICsgKiBzdWJzY3JpYmVkIHRvIHZpYSB0aGUgbW9uaXRvciBpbnRlcmZhY2Uu
Cj4gICAqCj4gLSAqIFRoZSBYRU5fRE9NQ1RMX01FTV9FVkVOVF9PUF9BQ0NFU1NfRU5BQkxFIGRv
bWN0bCByZXR1cm5zIHNldmVyYWwKPiArICogVGhlIFhFTl9WTV9FVkVOVF9NT05JVE9SXyogZG9t
Y3RscyByZXR1cm5zCj4gICAqIG5vbi1zdGFuZGFyZCBlcnJvciBjb2RlcyB0byBpbmRpY2F0ZSB3
aHkgYWNjZXNzIGNvdWxkIG5vdCBiZSBlbmFibGVkOgo+ICAgKiBFTk9ERVYgLSBob3N0IGxhY2tz
IEhBUCBzdXBwb3J0IChFUFQvTlBUKSBvciBIQVAgaXMgZGlzYWJsZWQgaW4gZ3Vlc3QKPiAgICog
RUJVU1kgIC0gZ3Vlc3QgaGFzIG9yIGhhZCBhY2Nlc3MgZW5hYmxlZCwgcmluZyBidWZmZXIgc3Rp
bGwgYWN0aXZlCj4gKyAqCj4gICAqLwo+IC0jZGVmaW5lIFhFTl9ET01DVExfTUVNX0VWRU5UX09Q
X0FDQ0VTUyAgICAgICAgICAgICAgICAgICAgICAgIDIKPiAtCj4gLSNkZWZpbmUgWEVOX0RPTUNU
TF9NRU1fRVZFTlRfT1BfQUNDRVNTX0VOQUJMRSAgICAgICAgICAgICAgICAgMAo+IC0jZGVmaW5l
IFhFTl9ET01DVExfTUVNX0VWRU5UX09QX0FDQ0VTU19ESVNBQkxFICAgICAgICAgICAgICAgIDEK
PiAtI2RlZmluZSBYRU5fRE9NQ1RMX01FTV9FVkVOVF9PUF9BQ0NFU1NfRU5BQkxFX0lOVFJPU1BF
Q1RJT04gICAyCj4gKyNkZWZpbmUgWEVOX0RPTUNUTF9WTV9FVkVOVF9PUF9NT05JVE9SICAgICAg
ICAgICAyCj4gIAo+ICAvKgo+ICAgKiBTaGFyaW5nIEVOT01FTSBoZWxwZXIuCj4gQEAgLTgxMiwy
MSArODE0LDE2IEBAIHN0cnVjdCB4ZW5fZG9tY3RsX2dkYnN4X2RvbXN0YXR1cyB7Cj4gICAqIE5v
dGUgdGhhdCBzaHJpbmcgY2FuIGJlIHR1cm5lZCBvbiAoYXMgcGVyIHRoZSBkb21jdGwgYmVsb3cp
Cj4gICAqICp3aXRob3V0KiB0aGlzIHJpbmcgYmVpbmcgc2V0dXAuCj4gICAqLwo+IC0jZGVmaW5l
IFhFTl9ET01DVExfTUVNX0VWRU5UX09QX1NIQVJJTkcgICAgICAgICAgIDMKPiAtCj4gLSNkZWZp
bmUgWEVOX0RPTUNUTF9NRU1fRVZFTlRfT1BfU0hBUklOR19FTkFCTEUgICAgMAo+IC0jZGVmaW5l
IFhFTl9ET01DVExfTUVNX0VWRU5UX09QX1NIQVJJTkdfRElTQUJMRSAgIDEKPiArI2RlZmluZSBY
RU5fRE9NQ1RMX1ZNX0VWRU5UX09QX1NIQVJJTkcgICAgICAgICAgIDMKPiAgCj4gIC8qIFVzZSBm
b3IgdGVhcmRvd24vc2V0dXAgb2YgaGVscGVyPC0+aHlwZXJ2aXNvciBpbnRlcmZhY2UgZm9yIHBh
Z2luZywgCj4gICAqIGFjY2VzcyBhbmQgc2hhcmluZy4qLwo+IC1zdHJ1Y3QgeGVuX2RvbWN0bF9t
ZW1fZXZlbnRfb3Agewo+IC0gICAgdWludDMyX3QgICAgICAgb3A7ICAgICAgICAgICAvKiBYRU5f
RE9NQ1RMX01FTV9FVkVOVF9PUF8qXyogKi8KPiAtICAgIHVpbnQzMl90ICAgICAgIG1vZGU7ICAg
ICAgICAgLyogWEVOX0RPTUNUTF9NRU1fRVZFTlRfT1BfKiAqLwo+ICtzdHJ1Y3QgeGVuX2RvbWN0
bF92bV9ldmVudF9vcCB7Cj4gKyAgICB1aW50MzJfdCAgICAgICBvcDsgICAgICAgICAgIC8qIFhF
Tl9WTV9FVkVOVF8qICovCj4gKyAgICB1aW50MzJfdCAgICAgICBtb2RlOyAgICAgICAgIC8qIFhF
Tl9ET01DVExfVk1fRVZFTlRfT1BfKiAqLwo+ICAKPiAgICAgIHVpbnQzMl90IHBvcnQ7ICAgICAg
ICAgICAgICAvKiBPVVQ6IGV2ZW50IGNoYW5uZWwgZm9yIHJpbmcgKi8KPiAgfTsKPiAtdHlwZWRl
ZiBzdHJ1Y3QgeGVuX2RvbWN0bF9tZW1fZXZlbnRfb3AgeGVuX2RvbWN0bF9tZW1fZXZlbnRfb3Bf
dDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9tZW1fZXZlbnRfb3BfdCk7
Cj4gIAo+ICAvKgo+ICAgKiBNZW1vcnkgc2hhcmluZyBvcGVyYXRpb25zCj4gQEAgLTg0Miw4ICs4
MzksNiBAQCBzdHJ1Y3QgeGVuX2RvbWN0bF9tZW1fc2hhcmluZ19vcCB7Cj4gICAgICAgICAgdWlu
dDhfdCBlbmFibGU7ICAgICAgICAgICAgICAgICAgIC8qIENPTlRST0wgKi8KPiAgICAgIH0gdTsK
PiAgfTsKPiAtdHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF9tZW1fc2hhcmluZ19vcCB4ZW5fZG9t
Y3RsX21lbV9zaGFyaW5nX29wX3Q7Cj4gLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9kb21j
dGxfbWVtX3NoYXJpbmdfb3BfdCk7Cj4gIAo+ICBzdHJ1Y3QgeGVuX2RvbWN0bF9hdWRpdF9wMm0g
ewo+ICAgICAgLyogT1VUIGVycm9yIGNvdW50cyAqLwo+IEBAIC04NTEsMTQgKzg0NiwxMCBAQCBz
dHJ1Y3QgeGVuX2RvbWN0bF9hdWRpdF9wMm0gewo+ICAgICAgdWludDY0X3QgbTJwX2JhZDsKPiAg
ICAgIHVpbnQ2NF90IHAybV9iYWQ7Cj4gIH07Cj4gLXR5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxf
YXVkaXRfcDJtIHhlbl9kb21jdGxfYXVkaXRfcDJtX3Q7Cj4gLURFRklORV9YRU5fR1VFU1RfSEFO
RExFKHhlbl9kb21jdGxfYXVkaXRfcDJtX3QpOwo+ICAKPiAgc3RydWN0IHhlbl9kb21jdGxfc2V0
X3ZpcnFfaGFuZGxlciB7Cj4gICAgICB1aW50MzJfdCB2aXJxOyAvKiBJTiAqLwo+ICB9Owo+IC10
eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX3NldF92aXJxX2hhbmRsZXIgeGVuX2RvbWN0bF9zZXRf
dmlycV9oYW5kbGVyX3Q7Cj4gLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9kb21jdGxfc2V0
X3ZpcnFfaGFuZGxlcl90KTsKPiAgCj4gICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk
KF9feDg2XzY0X18pCj4gIC8qIFhFTl9ET01DVExfc2V0dmNwdWV4dHN0YXRlICovCj4gQEAgLTg4
MSw4ICs4NzIsNiBAQCBzdHJ1Y3QgeGVuX2RvbWN0bF92Y3B1ZXh0c3RhdGUgewo+ICAgICAgdWlu
dDY0X2FsaWduZWRfdCAgICAgICAgIHNpemU7Cj4gICAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVp
bnQ2NCkgYnVmZmVyOwo+ICB9Owo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX3ZjcHVleHRz
dGF0ZSB4ZW5fZG9tY3RsX3ZjcHVleHRzdGF0ZV90Owo+IC1ERUZJTkVfWEVOX0dVRVNUX0hBTkRM
RSh4ZW5fZG9tY3RsX3ZjcHVleHRzdGF0ZV90KTsKPiAgI2VuZGlmCj4gIAo+ICAvKiBYRU5fRE9N
Q1RMX3NldF9hY2Nlc3NfcmVxdWlyZWQ6IHNldHMgd2hldGhlciBhIG1lbW9yeSBldmVudCBsaXN0
ZW5lcgo+IEBAIC04OTIsMTQgKzg4MSwxMCBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5f
ZG9tY3RsX3ZjcHVleHRzdGF0ZV90KTsKPiAgc3RydWN0IHhlbl9kb21jdGxfc2V0X2FjY2Vzc19y
ZXF1aXJlZCB7Cj4gICAgICB1aW50OF90IGFjY2Vzc19yZXF1aXJlZDsKPiAgfTsKPiAtdHlwZWRl
ZiBzdHJ1Y3QgeGVuX2RvbWN0bF9zZXRfYWNjZXNzX3JlcXVpcmVkIHhlbl9kb21jdGxfc2V0X2Fj
Y2Vzc19yZXF1aXJlZF90Owo+IC1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9tY3RsX3Nl
dF9hY2Nlc3NfcmVxdWlyZWRfdCk7Cj4gIAo+ICBzdHJ1Y3QgeGVuX2RvbWN0bF9zZXRfYnJva2Vu
X3BhZ2VfcDJtIHsKPiAgICAgIHVpbnQ2NF9hbGlnbmVkX3QgcGZuOwo+ICB9Owo+IC10eXBlZGVm
IHN0cnVjdCB4ZW5fZG9tY3RsX3NldF9icm9rZW5fcGFnZV9wMm0geGVuX2RvbWN0bF9zZXRfYnJv
a2VuX3BhZ2VfcDJtX3Q7Cj4gLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9kb21jdGxfc2V0
X2Jyb2tlbl9wYWdlX3AybV90KTsKPiAgCj4gIC8qCj4gICAqIFhFTl9ET01DVExfc2V0X21heF9l
dnRjaG46IHNldHMgdGhlIG1heGltdW0gZXZlbnQgY2hhbm5lbCBwb3J0Cj4gQEAgLTkwOSw4ICs4
OTQsNiBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9tY3RsX3NldF9icm9rZW5fcGFn
ZV9wMm1fdCk7Cj4gIHN0cnVjdCB4ZW5fZG9tY3RsX3NldF9tYXhfZXZ0Y2huIHsKPiAgICAgIHVp
bnQzMl90IG1heF9wb3J0Owo+ICB9Owo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX3NldF9t
YXhfZXZ0Y2huIHhlbl9kb21jdGxfc2V0X21heF9ldnRjaG5fdDsKPiAtREVGSU5FX1hFTl9HVUVT
VF9IQU5ETEUoeGVuX2RvbWN0bF9zZXRfbWF4X2V2dGNobl90KTsKPiAgCj4gIC8qCj4gICAqIEFS
TTogQ2xlYW4gYW5kIGludmFsaWRhdGUgY2FjaGVzIGFzc29jaWF0ZWQgd2l0aCBnaXZlbiByZWdp
b24gb2YKPiBAQCAtOTIwLDggKzkwMyw2IEBAIHN0cnVjdCB4ZW5fZG9tY3RsX2NhY2hlZmx1c2gg
ewo+ICAgICAgLyogSU46IHBhZ2UgcmFuZ2UgdG8gZmx1c2guICovCj4gICAgICB4ZW5fcGZuX3Qg
c3RhcnRfcGZuLCBucl9wZm5zOwo+ICB9Owo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX2Nh
Y2hlZmx1c2ggeGVuX2RvbWN0bF9jYWNoZWZsdXNoX3Q7Cj4gLURFRklORV9YRU5fR1VFU1RfSEFO
RExFKHhlbl9kb21jdGxfY2FjaGVmbHVzaF90KTsKPiAgCj4gICNpZiBkZWZpbmVkKF9faTM4Nl9f
KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCj4gIHN0cnVjdCB4ZW5fZG9tY3RsX3ZjcHVfbXNyIHsK
PiBAQCAtOTU0LDM2ICs5MzUsNDIgQEAgc3RydWN0IHhlbl9kb21jdGxfdmNwdV9tc3JzIHsKPiAg
ICAgIHVpbnQzMl90IG1zcl9jb3VudDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJ
Ti9PVVQgKi8KPiAgICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQoeGVuX2RvbWN0bF92Y3B1X21zcl90
KSBtc3JzOyAvKiBJTi9PVVQgKi8KPiAgfTsKPiAtdHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF92
Y3B1X21zcnMgeGVuX2RvbWN0bF92Y3B1X21zcnNfdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5E
TEUoeGVuX2RvbWN0bF92Y3B1X21zcnNfdCk7Cj4gICNlbmRpZgo+ICAKPiAtLyoKPiAtICogVXNl
IGluIFhFTl9ET01DVExfc2V0dm51bWFpbmZvIHRvIHNldAo+IC0gKiB2TlVNQSBkb21haW4gdG9w
b2xvZ3kuCj4gLSAqLwo+ICsvKiBYRU5fRE9NQ1RMX3NldHZudW1haW5mbzogc3BlY2lmaWVzIGEg
dmlydHVhbCBOVU1BIHRvcG9sb2d5IGZvciB0aGUgZ3Vlc3QgKi8KPiAgc3RydWN0IHhlbl9kb21j
dGxfdm51bWEgewo+ICsgICAgLyogSU46IG51bWJlciBvZiB2TlVNQSBub2RlcyB0byBzZXR1cC4g
U2hhbGwgYmUgZ3JlYXRlciB0aGFuIDAgKi8KPiAgICAgIHVpbnQzMl90IG5yX3Zub2RlczsKPiAr
ICAgIC8qIElOOiBudW1iZXIgb2YgbWVtb3J5IHJhbmdlcyB0byBzZXR1cCAqLwo+ICAgICAgdWlu
dDMyX3QgbnJfdm1lbXJhbmdlczsKPiArICAgIC8qCj4gKyAgICAgKiBJTjogbnVtYmVyIG9mIHZD
UFVzIG9mIHRoZSBkb21haW4gKHVzZWQgYXMgc2l6ZSBvZiB0aGUgdmNwdV90b192bm9kZQo+ICsg
ICAgICogYXJyYXkgZGVjbGFyZWQgYmVsb3cpLiBTaGFsbCBiZSBlcXVhbCB0byB0aGUgZG9tYWlu
J3MgbWF4X3ZjcHVzLgo+ICsgICAgICovCj4gICAgICB1aW50MzJfdCBucl92Y3B1czsKPiAtICAg
IHVpbnQzMl90IHBhZDsKPiArICAgIHVpbnQzMl90IHBhZDsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLyogbXVzdCBiZSB6ZXJvICovCj4gKwo+ICsgICAgLyoKPiArICAgICAqIElO
OiBhcnJheSBmb3Igc3BlY2lmeWluZyB0aGUgZGlzdGFuY2VzIG9mIHRoZSB2TlVNQSBub2Rlcwo+
ICsgICAgICogYmV0d2VlbiBlYWNoIG90aGVycy4gU2hhbGwgaGF2ZSBucl92bm9kZXMqbnJfdm5v
ZGVzIGVsZW1lbnRzLgo+ICsgICAgICovCj4gICAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQp
IHZkaXN0YW5jZTsKPiArICAgIC8qCj4gKyAgICAgKiBJTjogYXJyYXkgZm9yIHNwZWNpZnlpbmcg
dG8gd2hhdCB2TlVNQSBub2RlIGVhY2ggdkNQVSBiZWxvbmdzLgo+ICsgICAgICogU2hhbGwgaGF2
ZSBucl92Y3B1cyBlbGVtZW50cy4KPiArICAgICAqLwo+ICAgICAgWEVOX0dVRVNUX0hBTkRMRV82
NCh1aW50KSB2Y3B1X3RvX3Zub2RlOwo+IC0KPiAgICAgIC8qCj4gLSAgICAgKiB2bm9kZXMgdG8g
cGh5c2ljYWwgTlVNQSBub2RlcyBtYXNrLgo+IC0gICAgICogVGhpcyBrZXB0IG9uIHBlci1kb21h
aW4gYmFzaXMgZm9yCj4gLSAgICAgKiBpbnRlcmVzdGVkIGNvbnN1bWVycywgc3VjaCBhcyBudW1h
IGF3YXJlIGJhbGxvb25pbmcuCj4gKyAgICAgKiBJTjogYXJyYXkgZm9yIHNwZWNpZnlpbmcgb24g
d2hhdCBwaHlzaWNhbCBOVU1BIG5vZGUgZWFjaCB2TlVNQQo+ICsgICAgICogbm9kZSBpcyBwbGFj
ZWQuIFNoYWxsIGhhdmUgbnJfdm5vZGVzIGVsZW1lbnRzLgo+ICAgICAgICovCj4gICAgICBYRU5f
R1VFU1RfSEFORExFXzY0KHVpbnQpIHZub2RlX3RvX3Bub2RlOwo+IC0KPiAgICAgIC8qCj4gLSAg
ICAgKiBtZW1vcnkgcmFnZXMgZm9yIGVhY2ggdk5VTUEgbm9kZQo+ICsgICAgICogSU46IGFycmF5
IGZvciBzcGVjaWZ5aW5nIHRoZSBtZW1vcnkgcmFuZ2VzLiBTaGFsbCBoYXZlCj4gKyAgICAgKiBu
cl92bWVtcmFuZ2VzIGVsZW1lbnRzLgo+ICAgICAgICovCj4gICAgICBYRU5fR1VFU1RfSEFORExF
XzY0KHhlbl92bWVtcmFuZ2VfdCkgdm1lbXJhbmdlOwo+ICB9Owo+IC10eXBlZGVmIHN0cnVjdCB4
ZW5fZG9tY3RsX3ZudW1hIHhlbl9kb21jdGxfdm51bWFfdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9I
QU5ETEUoeGVuX2RvbWN0bF92bnVtYV90KTsKPiAgCj4gIHN0cnVjdCB4ZW5fZG9tY3RsX3Bzcl9j
bXRfb3Agewo+ICAjZGVmaW5lIFhFTl9ET01DVExfUFNSX0NNVF9PUF9ERVRBQ0ggICAgICAgICAw
Cj4gQEAgLTk5Miw4ICs5NzksMTI3IEBAIHN0cnVjdCB4ZW5fZG9tY3RsX3Bzcl9jbXRfb3Agewo+
ICAgICAgdWludDMyX3QgY21kOwo+ICAgICAgdWludDMyX3QgZGF0YTsKPiAgfTsKPiAtdHlwZWRl
ZiBzdHJ1Y3QgeGVuX2RvbWN0bF9wc3JfY210X29wIHhlbl9kb21jdGxfcHNyX2NtdF9vcF90Owo+
IC1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9tY3RsX3Bzcl9jbXRfb3BfdCk7Cj4gKwo+
ICsvKiAgWEVOX0RPTUNUTF9NT05JVE9SXyoKPiArICoKPiArICogRW5hYmxlL2Rpc2FibGUgbW9u
aXRvcmluZyB2YXJpb3VzIFZNIGV2ZW50cy4KPiArICogVGhpcyBkb21jdGwgY29uZmlndXJlcyB3
aGF0IGV2ZW50cyB3aWxsIGJlIHJlcG9ydGVkIHRvIGhlbHBlciBhcHBzCj4gKyAqIHZpYSB0aGUg
cmluZyBidWZmZXIgIk1PTklUT1IiLiBUaGUgcmluZyBoYXMgdG8gYmUgZmlyc3QgZW5hYmxlZAo+
ICsgKiB3aXRoIHRoZSBkb21jdGwgWEVOX0RPTUNUTF9WTV9FVkVOVF9PUF9NT05JVE9SLgo+ICsg
Kgo+ICsgKiBHRVRfQ0FQQUJJTElUSUVTIGNhbiBiZSB1c2VkIHRvIGRldGVybWluZSB3aGljaCBv
ZiB0aGVzZSBmZWF0dXJlcyBpcwo+ICsgKiBhdmFpbGFibGUgb24gYSBnaXZlbiBwbGF0Zm9ybS4K
PiArICoKPiArICogTk9USUNFOiBtZW1fYWNjZXNzIGV2ZW50cyBhcmUgYWxzbyBkZWxpdmVyZWQg
dmlhIHRoZSAiTU9OSVRPUiIgcmluZyBidWZmZXI7Cj4gKyAqIGhvd2V2ZXIsIGVuYWJsaW5nL2Rp
c2FibGluZyB0aG9zZSBldmVudHMgaXMgcGVyZm9ybWVkIHdpdGggdGhlIHVzZSBvZgo+ICsgKiBt
ZW1vcnlfb3AgaHlwZXJjYWxscyEKPiArICovCj4gKyNkZWZpbmUgWEVOX0RPTUNUTF9NT05JVE9S
X09QX0VOQUJMRSAgICAgICAgICAgIDAKPiArI2RlZmluZSBYRU5fRE9NQ1RMX01PTklUT1JfT1Bf
RElTQUJMRSAgICAgICAgICAgMQo+ICsjZGVmaW5lIFhFTl9ET01DVExfTU9OSVRPUl9PUF9HRVRf
Q0FQQUJJTElUSUVTICAyCj4gKyNkZWZpbmUgWEVOX0RPTUNUTF9NT05JVE9SX09QX0VNVUxBVEVf
RUFDSF9SRVAgIDMKPiArCj4gKyNkZWZpbmUgWEVOX0RPTUNUTF9NT05JVE9SX0VWRU5UX1dSSVRF
X0NUUkxSRUcgICAgICAgICAwCj4gKyNkZWZpbmUgWEVOX0RPTUNUTF9NT05JVE9SX0VWRU5UX01P
Vl9UT19NU1IgICAgICAgICAgICAxCj4gKyNkZWZpbmUgWEVOX0RPTUNUTF9NT05JVE9SX0VWRU5U
X1NJTkdMRVNURVAgICAgICAgICAgICAyCj4gKyNkZWZpbmUgWEVOX0RPTUNUTF9NT05JVE9SX0VW
RU5UX1NPRlRXQVJFX0JSRUFLUE9JTlQgICAzCj4gKyNkZWZpbmUgWEVOX0RPTUNUTF9NT05JVE9S
X0VWRU5UX0dVRVNUX1JFUVVFU1QgICAgICAgICA0Cj4gKyNkZWZpbmUgWEVOX0RPTUNUTF9NT05J
VE9SX0VWRU5UX0RFQlVHX0VYQ0VQVElPTiAgICAgICA1Cj4gKyNkZWZpbmUgWEVOX0RPTUNUTF9N
T05JVE9SX0VWRU5UX0NQVUlEICAgICAgICAgICAgICAgICA2Cj4gKyNkZWZpbmUgWEVOX0RPTUNU
TF9NT05JVE9SX0VWRU5UX1BSSVZJTEVHRURfQ0FMTCAgICAgICA3Cj4gKyNkZWZpbmUgWEVOX0RP
TUNUTF9NT05JVE9SX0VWRU5UX0lOVEVSUlVQVCAgICAgICAgICAgICA4Cj4gKyNkZWZpbmUgWEVO
X0RPTUNUTF9NT05JVE9SX0VWRU5UX0RFU0NfQUNDRVNTICAgICAgICAgICA5Cj4gKyNkZWZpbmUg
WEVOX0RPTUNUTF9NT05JVE9SX0VWRU5UX0VNVUxfVU5JTVBMRU1FTlRFRCAgICAxMAo+ICsKPiAr
c3RydWN0IHhlbl9kb21jdGxfbW9uaXRvcl9vcCB7Cj4gKyAgICB1aW50MzJfdCBvcDsgLyogWEVO
X0RPTUNUTF9NT05JVE9SX09QXyogKi8KPiArCj4gKyAgICAvKgo+ICsgICAgICogV2hlbiB1c2Vk
IHdpdGggRU5BQkxFL0RJU0FCTEUgdGhpcyBoYXMgdG8gYmUgc2V0IHRvCj4gKyAgICAgKiB0aGUg
cmVxdWVzdGVkIFhFTl9ET01DVExfTU9OSVRPUl9FVkVOVF8qIHZhbHVlLgo+ICsgICAgICogV2l0
aCBHRVRfQ0FQQUJJTElUSUVTIHRoaXMgZmllbGQgcmV0dXJucyBhIGJpdG1hcCBvZgo+ICsgICAg
ICogZXZlbnRzIHN1cHBvcnRlZCBieSB0aGUgcGxhdGZvcm0sIGluIHRoZSBmb3JtYXQKPiArICAg
ICAqICgxIDw8IFhFTl9ET01DVExfTU9OSVRPUl9FVkVOVF8qKS4KPiArICAgICAqLwo+ICsgICAg
dWludDMyX3QgZXZlbnQ7Cj4gKwo+ICsgICAgLyoKPiArICAgICAqIEZ1cnRoZXIgb3B0aW9ucyB3
aGVuIGlzc3VpbmcgWEVOX0RPTUNUTF9NT05JVE9SX09QX0VOQUJMRS4KPiArICAgICAqLwo+ICsg
ICAgdW5pb24gewo+ICsgICAgICAgIHN0cnVjdCB7Cj4gKyAgICAgICAgICAgIC8qIFdoaWNoIGNv
bnRyb2wgcmVnaXN0ZXIgKi8KPiArICAgICAgICAgICAgdWludDhfdCBpbmRleDsKPiArICAgICAg
ICAgICAgLyogUGF1c2UgdkNQVSB1bnRpbCByZXNwb25zZSAqLwo+ICsgICAgICAgICAgICB1aW50
OF90IHN5bmM7Cj4gKyAgICAgICAgICAgIC8qIFNlbmQgZXZlbnQgb25seSBvbiBhIGNoYW5nZSBv
ZiB2YWx1ZSAqLwo+ICsgICAgICAgICAgICB1aW50OF90IG9uY2hhbmdlb25seTsKPiArICAgICAg
ICAgICAgLyogQWxsaWdubWVudCBwYWRkaW5nICovCj4gKyAgICAgICAgICAgIHVpbnQ4X3QgcGFk
MTsKPiArICAgICAgICAgICAgdWludDMyX3QgcGFkMjsKPiArICAgICAgICAgICAgLyoKPiArICAg
ICAgICAgICAgICogU2VuZCBldmVudCBvbmx5IGlmIHRoZSBjaGFuZ2VkIGJpdCBpbiB0aGUgY29u
dHJvbCByZWdpc3Rlcgo+ICsgICAgICAgICAgICAgKiBpcyBub3QgbWFza2VkLgo+ICsgICAgICAg
ICAgICAgKi8KPiArICAgICAgICAgICAgdWludDY0X2FsaWduZWRfdCBiaXRtYXNrOwo+ICsgICAg
ICAgIH0gbW92X3RvX2NyOwo+ICsKPiArICAgICAgICBzdHJ1Y3Qgewo+ICsgICAgICAgICAgICB1
aW50MzJfdCBtc3I7Cj4gKyAgICAgICAgfSBtb3ZfdG9fbXNyOwo+ICsKPiArICAgICAgICBzdHJ1
Y3Qgewo+ICsgICAgICAgICAgICAvKiBQYXVzZSB2Q1BVIHVudGlsIHJlc3BvbnNlICovCj4gKyAg
ICAgICAgICAgIHVpbnQ4X3Qgc3luYzsKPiArICAgICAgICAgICAgdWludDhfdCBhbGxvd191c2Vy
c3BhY2U7Cj4gKyAgICAgICAgfSBndWVzdF9yZXF1ZXN0Owo+ICsKPiArICAgICAgICBzdHJ1Y3Qg
ewo+ICsgICAgICAgICAgICAvKiBQYXVzZSB2Q1BVIHVudGlsIHJlc3BvbnNlICovCj4gKyAgICAg
ICAgICAgIHVpbnQ4X3Qgc3luYzsKPiArICAgICAgICB9IGRlYnVnX2V4Y2VwdGlvbjsKPiArICAg
IH0gdTsKPiArfTsKPiArCj4gK3N0cnVjdCB4ZW5fZG9tY3RsX3Bzcl9jYXRfb3Agewo+ICsjZGVm
aW5lIFhFTl9ET01DVExfUFNSX0NBVF9PUF9TRVRfTDNfQ0JNICAgICAwCj4gKyNkZWZpbmUgWEVO
X0RPTUNUTF9QU1JfQ0FUX09QX0dFVF9MM19DQk0gICAgIDEKPiArI2RlZmluZSBYRU5fRE9NQ1RM
X1BTUl9DQVRfT1BfU0VUX0wzX0NPREUgICAgMgo+ICsjZGVmaW5lIFhFTl9ET01DVExfUFNSX0NB
VF9PUF9TRVRfTDNfREFUQSAgICAzCj4gKyNkZWZpbmUgWEVOX0RPTUNUTF9QU1JfQ0FUX09QX0dF
VF9MM19DT0RFICAgIDQKPiArI2RlZmluZSBYRU5fRE9NQ1RMX1BTUl9DQVRfT1BfR0VUX0wzX0RB
VEEgICAgNQo+ICsjZGVmaW5lIFhFTl9ET01DVExfUFNSX0NBVF9PUF9TRVRfTDJfQ0JNICAgICA2
Cj4gKyNkZWZpbmUgWEVOX0RPTUNUTF9QU1JfQ0FUX09QX0dFVF9MMl9DQk0gICAgIDcKPiArICAg
IHVpbnQzMl90IGNtZDsgICAgICAgLyogSU46IFhFTl9ET01DVExfUFNSX0NBVF9PUF8qICovCj4g
KyAgICB1aW50MzJfdCB0YXJnZXQ7ICAgIC8qIElOICovCj4gKyAgICB1aW50NjRfdCBkYXRhOyAg
ICAgIC8qIElOL09VVCAqLwo+ICt9Owo+ICsKPiArc3RydWN0IHhlbl9kb21jdGxfc2V0X2dudHRh
Yl9saW1pdHMgewo+ICsgICAgdWludDMyX3QgZ3JhbnRfZnJhbWVzOyAgICAgLyogSU4gKi8KPiAr
ICAgIHVpbnQzMl90IG1hcHRyYWNrX2ZyYW1lczsgIC8qIElOICovCj4gK307Cj4gKwo+ICsvKiBY
RU5fRE9NQ1RMX3Z1YXJ0X29wICovCj4gK3N0cnVjdCB4ZW5fZG9tY3RsX3Z1YXJ0X29wIHsKPiAr
I2RlZmluZSBYRU5fRE9NQ1RMX1ZVQVJUX09QX0lOSVQgIDAKPiArICAgICAgICB1aW50MzJfdCBj
bWQ7ICAgICAgICAgICAvKiBYRU5fRE9NQ1RMX1ZVQVJUX09QXyogKi8KPiArI2RlZmluZSBYRU5f
RE9NQ1RMX1ZVQVJUX1RZUEVfVlBMMDExIDAKPiArICAgICAgICB1aW50MzJfdCB0eXBlOyAgICAg
ICAgICAvKiBJTiAtIHR5cGUgb2YgdnVhcnQuCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICogICAgICBDdXJyZW50bHkgb25seSB2cGwwMTEgc3VwcG9ydGVkLgo+ICsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqLwo+ICsgICAgICAgIHVpbnQ2NF9hbGlnbmVkX3Qg
IGdmbjsgIC8qIElOIC0gZ3Vlc3QgZ2ZuIHRvIGJlIHVzZWQgYXMgYQo+ICsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqICAgICAgcmluZyBidWZmZXIuCj4gKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICovCj4gKyAgICAgICAgZG9taWRfdCBjb25zb2xlX2RvbWlkOyAg
LyogSU4gLSBkb21pZCBvZiBkb21haW4gcnVubmluZyB0aGUKPiArICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKiAgICAgIGJhY2tlbmQgY29uc29sZS4KPiArICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKi8KPiArICAgICAgICB1aW50OF90IHBhZFsyXTsKPiArICAgICAg
ICBldnRjaG5fcG9ydF90IGV2dGNobjsgICAvKiBPVVQgLSByZW1vdGUgcG9ydCBvZiB0aGUgZXZl
bnQKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICBjaGFubmVsIHVz
ZWQgZm9yIHNlbmRpbmcKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAg
ICByaW5nIGJ1ZmZlciBldmVudHMuCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICovCj4gK307Cj4gIAo+ICBzdHJ1Y3QgeGVuX2RvbWN0bCB7Cj4gICAgICB1aW50MzJfdCBjbWQ7
Cj4gQEAgLTEwMDMsOCArMTEwOSw4IEBAIHN0cnVjdCB4ZW5fZG9tY3RsIHsKPiAgI2RlZmluZSBY
RU5fRE9NQ1RMX3VucGF1c2Vkb21haW4gICAgICAgICAgICAgICAgICA0Cj4gICNkZWZpbmUgWEVO
X0RPTUNUTF9nZXRkb21haW5pbmZvICAgICAgICAgICAgICAgICAgNQo+ICAjZGVmaW5lIFhFTl9E
T01DVExfZ2V0bWVtbGlzdCAgICAgICAgICAgICAgICAgICAgIDYKPiAtI2RlZmluZSBYRU5fRE9N
Q1RMX2dldHBhZ2VmcmFtZWluZm8gICAgICAgICAgICAgICA3Cj4gLSNkZWZpbmUgWEVOX0RPTUNU
TF9nZXRwYWdlZnJhbWVpbmZvMiAgICAgICAgICAgICAgOAo+ICsvKiAjZGVmaW5lIFhFTl9ET01D
VExfZ2V0cGFnZWZyYW1laW5mbyAgICAgICAgICAgIDcgT2Jzb2xldGUgLSB1c2UgZ2V0cGFnZWZy
YW1laW5mbzMgKi8KPiArLyogI2RlZmluZSBYRU5fRE9NQ1RMX2dldHBhZ2VmcmFtZWluZm8yICAg
ICAgICAgICA4IE9ic29sZXRlIC0gdXNlIGdldHBhZ2VmcmFtZWluZm8zICovCj4gICNkZWZpbmUg
WEVOX0RPTUNUTF9zZXR2Y3B1YWZmaW5pdHkgICAgICAgICAgICAgICAgOQo+ICAjZGVmaW5lIFhF
Tl9ET01DVExfc2hhZG93X29wICAgICAgICAgICAgICAgICAgICAgMTAKPiAgI2RlZmluZSBYRU5f
RE9NQ1RMX21heF9tZW0gICAgICAgICAgICAgICAgICAgICAgIDExCj4gQEAgLTEwNDksNyArMTE1
NSw3IEBAIHN0cnVjdCB4ZW5fZG9tY3RsIHsKPiAgI2RlZmluZSBYRU5fRE9NQ1RMX3N1cHByZXNz
X3NwdXJpb3VzX3BhZ2VfZmF1bHRzIDUzCj4gICNkZWZpbmUgWEVOX0RPTUNUTF9kZWJ1Z19vcCAg
ICAgICAgICAgICAgICAgICAgICA1NAo+ICAjZGVmaW5lIFhFTl9ET01DVExfZ2V0aHZtY29udGV4
dF9wYXJ0aWFsICAgICAgICAgNTUKPiAtI2RlZmluZSBYRU5fRE9NQ1RMX21lbV9ldmVudF9vcCAg
ICAgICAgICAgICAgICAgIDU2Cj4gKyNkZWZpbmUgWEVOX0RPTUNUTF92bV9ldmVudF9vcCAgICAg
ICAgICAgICAgICAgICA1Ngo+ICAjZGVmaW5lIFhFTl9ET01DVExfbWVtX3NoYXJpbmdfb3AgICAg
ICAgICAgICAgICAgNTcKPiAgI2RlZmluZSBYRU5fRE9NQ1RMX2Rpc2FibGVfbWlncmF0ZSAgICAg
ICAgICAgICAgIDU4Cj4gICNkZWZpbmUgWEVOX0RPTUNUTF9nZXR0c2NpbmZvICAgICAgICAgICAg
ICAgICAgICA1OQo+IEBAIC0xMDY5LDcgKzExNzUsMTEgQEAgc3RydWN0IHhlbl9kb21jdGwgewo+
ICAjZGVmaW5lIFhFTl9ET01DVExfc2V0X3ZjcHVfbXNycyAgICAgICAgICAgICAgICAgNzMKPiAg
I2RlZmluZSBYRU5fRE9NQ1RMX3NldHZudW1haW5mbyAgICAgICAgICAgICAgICAgIDc0Cj4gICNk
ZWZpbmUgWEVOX0RPTUNUTF9wc3JfY210X29wICAgICAgICAgICAgICAgICAgICA3NQo+IC0jZGVm
aW5lIFhFTl9ET01DVExfYXJtX2NvbmZpZ3VyZV9kb21haW4gICAgICAgICAgNzYKPiArI2RlZmlu
ZSBYRU5fRE9NQ1RMX21vbml0b3Jfb3AgICAgICAgICAgICAgICAgICAgIDc3Cj4gKyNkZWZpbmUg
WEVOX0RPTUNUTF9wc3JfY2F0X29wICAgICAgICAgICAgICAgICAgICA3OAo+ICsjZGVmaW5lIFhF
Tl9ET01DVExfc29mdF9yZXNldCAgICAgICAgICAgICAgICAgICAgNzkKPiArI2RlZmluZSBYRU5f
RE9NQ1RMX3NldF9nbnR0YWJfbGltaXRzICAgICAgICAgICAgIDgwCj4gKyNkZWZpbmUgWEVOX0RP
TUNUTF92dWFydF9vcCAgICAgICAgICAgICAgICAgICAgICA4MQo+ICAjZGVmaW5lIFhFTl9ET01D
VExfZ2Ric3hfZ3Vlc3RtZW1pbyAgICAgICAgICAgIDEwMDAKPiAgI2RlZmluZSBYRU5fRE9NQ1RM
X2dkYnN4X3BhdXNldmNwdSAgICAgICAgICAgICAxMDAxCj4gICNkZWZpbmUgWEVOX0RPTUNUTF9n
ZGJzeF91bnBhdXNldmNwdSAgICAgICAgICAgMTAwMgo+IEBAIC0xMDc4LDEzICsxMTg4LDggQEAg
c3RydWN0IHhlbl9kb21jdGwgewo+ICAgICAgZG9taWRfdCAgZG9tYWluOwo+ICAgICAgdW5pb24g
ewo+ICAgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX2NyZWF0ZWRvbWFpbiAgICAgIGNyZWF0ZWRv
bWFpbjsKPiAtI2lmIGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKPiAt
ICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9hcm1fY29uZmlndXJlZG9tYWluIGNvbmZpZ3VyZWRv
bWFpbjsKPiAtI2VuZGlmCj4gICAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfZ2V0ZG9tYWluaW5m
byAgICAgZ2V0ZG9tYWluaW5mbzsKPiAgICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9nZXRtZW1s
aXN0ICAgICAgICBnZXRtZW1saXN0Owo+IC0gICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX2dldHBh
Z2VmcmFtZWluZm8gIGdldHBhZ2VmcmFtZWluZm87Cj4gLSAgICAgICAgc3RydWN0IHhlbl9kb21j
dGxfZ2V0cGFnZWZyYW1laW5mbzIgZ2V0cGFnZWZyYW1laW5mbzI7Cj4gICAgICAgICAgc3RydWN0
IHhlbl9kb21jdGxfZ2V0cGFnZWZyYW1laW5mbzMgZ2V0cGFnZWZyYW1laW5mbzM7Cj4gICAgICAg
ICAgc3RydWN0IHhlbl9kb21jdGxfbm9kZWFmZmluaXR5ICAgICAgbm9kZWFmZmluaXR5Owo+ICAg
ICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX3ZjcHVhZmZpbml0eSAgICAgIHZjcHVhZmZpbml0eTsK
PiBAQCAtMTExNyw3ICsxMjIyLDcgQEAgc3RydWN0IHhlbl9kb21jdGwgewo+ICAgICAgICAgIHN0
cnVjdCB4ZW5fZG9tY3RsX3NldF90YXJnZXQgICAgICAgIHNldF90YXJnZXQ7Cj4gICAgICAgICAg
c3RydWN0IHhlbl9kb21jdGxfc3Vic2NyaWJlICAgICAgICAgc3Vic2NyaWJlOwo+ICAgICAgICAg
IHN0cnVjdCB4ZW5fZG9tY3RsX2RlYnVnX29wICAgICAgICAgIGRlYnVnX29wOwo+IC0gICAgICAg
IHN0cnVjdCB4ZW5fZG9tY3RsX21lbV9ldmVudF9vcCAgICAgIG1lbV9ldmVudF9vcDsKPiArICAg
ICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF92bV9ldmVudF9vcCAgICAgICB2bV9ldmVudF9vcDsKPiAg
ICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9tZW1fc2hhcmluZ19vcCAgICBtZW1fc2hhcmluZ19v
cDsKPiAgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKPiAgICAg
ICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9jcHVpZCAgICAgICAgICAgICBjcHVpZDsKPiBAQCAtMTEz
NSw2ICsxMjQwLDEwIEBAIHN0cnVjdCB4ZW5fZG9tY3RsIHsKPiAgICAgICAgICBzdHJ1Y3QgeGVu
X2RvbWN0bF9nZGJzeF9kb21zdGF0dXMgICBnZGJzeF9kb21zdGF0dXM7Cj4gICAgICAgICAgc3Ry
dWN0IHhlbl9kb21jdGxfdm51bWEgICAgICAgICAgICAgdm51bWE7Cj4gICAgICAgICAgc3RydWN0
IHhlbl9kb21jdGxfcHNyX2NtdF9vcCAgICAgICAgcHNyX2NtdF9vcDsKPiArICAgICAgICBzdHJ1
Y3QgeGVuX2RvbWN0bF9tb25pdG9yX29wICAgICAgICBtb25pdG9yX29wOwo+ICsgICAgICAgIHN0
cnVjdCB4ZW5fZG9tY3RsX3Bzcl9jYXRfb3AgICAgICAgIHBzcl9jYXRfb3A7Cj4gKyAgICAgICAg
c3RydWN0IHhlbl9kb21jdGxfc2V0X2dudHRhYl9saW1pdHMgc2V0X2dudHRhYl9saW1pdHM7Cj4g
KyAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfdnVhcnRfb3AgICAgICAgICAgdnVhcnRfb3A7Cj4g
ICAgICAgICAgdWludDhfdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkWzEyOF07Cj4g
ICAgICB9IHU7Cj4gIH07Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2VsZm5vdGUuaCBiL2lu
Y2x1ZGUveGVuL2VsZm5vdGUuaAo+IGluZGV4IDM1Mzk4NWYuLjkzNmFhNjUgMTAwNjQ0Cj4gLS0t
IGEvaW5jbHVkZS94ZW4vZWxmbm90ZS5oCj4gKysrIGIvaW5jbHVkZS94ZW4vZWxmbm90ZS5oCj4g
QEAgLTE3Myw3ICsxNzMsOSBAQAo+ICAgKiBUaGUgKG5vbi1kZWZhdWx0KSBsb2NhdGlvbiB0aGUg
aW5pdGlhbCBwaHlzLXRvLW1hY2hpbmUgbWFwIHNob3VsZCBiZQo+ICAgKiBwbGFjZWQgYXQgYnkg
dGhlIGh5cGVydmlzb3IgKERvbTApIG9yIHRoZSB0b29scyAoRG9tVSkuCj4gICAqIFRoZSBrZXJu
ZWwgbXVzdCBiZSBwcmVwYXJlZCBmb3IgdGhpcyBtYXBwaW5nIHRvIGJlIGVzdGFibGlzaGVkIHVz
aW5nCj4gLSAqIGxhcmdlIHBhZ2VzLCBkZXNwaXRlIHN1Y2ggb3RoZXJ3aXNlIG5vdCBiZWluZyBh
dmFpbGFibGUgdG8gZ3Vlc3RzLgo+ICsgKiBsYXJnZSBwYWdlcywgZGVzcGl0ZSBzdWNoIG90aGVy
d2lzZSBub3QgYmVpbmcgYXZhaWxhYmxlIHRvIGd1ZXN0cy4gTm90ZQo+ICsgKiB0aGF0IHRoZXNl
IGxhcmdlIHBhZ2VzIG1heSBiZSBtaXNhbGlnbmVkIGluIFBGTiBzcGFjZSAodGhleSdsbCBvYnZp
b3VzbHkKPiArICogYmUgYWxpZ25lZCBpbiBNRk4gYW5kIHZpcnR1YWwgYWRkcmVzcyBzcGFjZXMp
Lgo+ICAgKiBUaGUga2VybmVsIG11c3QgYWxzbyBiZSBhYmxlIHRvIGhhbmRsZSB0aGUgcGFnZSB0
YWJsZSBwYWdlcyB1c2VkIGZvcgo+ICAgKiB0aGlzIG1hcHBpbmcgbm90IGJlaW5nIGFjY2Vzc2li
bGUgdGhyb3VnaCB0aGUgaW5pdGlhbCBtYXBwaW5nLgo+ICAgKiAoT25seSB4ODYtNjQgc3VwcG9y
dHMgdGhpcyBhdCBwcmVzZW50LikKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vZXJybm8uaCBi
L2luY2x1ZGUveGVuL2Vycm5vLmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAw
MDAuLjMwNWMxMTIKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvaW5jbHVkZS94ZW4vZXJybm8uaAo+
IEBAIC0wLDAgKzEsMTI0IEBACj4gKy8qCj4gKyAqIFRoZXJlIGFyZSB0d28gZXhwZWN0ZWQgd2F5
cyBvZiBpbmNsdWRpbmcgdGhpcyBoZWFkZXIuCj4gKyAqCj4gKyAqIDEpIFRoZSAiZGVmYXVsdCIg
Y2FzZSAoZXhwZWN0ZWQgZnJvbSB0b29scyBldGMpLgo+ICsgKgo+ICsgKiBTaW1wbHkgI2luY2x1
ZGUgPHB1YmxpYy9lcnJuby5oPgo+ICsgKgo+ICsgKiBJbiB0aGlzIGNpcmN1bXN0YW5jZSwgbm9y
bWFsIGhlYWRlciBndWFyZHMgYXBwbHkgYW5kIHRoZSBpbmNsdWRlciBzaGFsbCBnZXQKPiArICog
YW4gZW51bWVyYXRpb24gaW4gdGhlIFhFTl94eHggbmFtZXNwYWNlLCBhcHByb3ByaWF0ZSBmb3Ig
QyBvciBhc3NlbWJseS4KPiArICoKPiArICogMikgVGhlIHNwZWNpYWwgY2FzZSB3aGVyZSB0aGUg
aW5jbHVkZXIgcHJvdmlkZXMgYSBYRU5fRVJSTk8oKSBpbiBzY29wZS4KPiArICoKPiArICogSW4g
dGhpcyBjYXNlLCBubyBpbmNsdXNpb24gZ3VhcmRzIGFwcGx5IGFuZCB0aGUgY2FsbGVyIGlzIHJl
c3BvbnNpYmxlIGZvcgo+ICsgKiB0aGVpciBYRU5fRVJSTk8oKSBiZWluZyBhcHByb3ByaWF0ZSBp
biB0aGUgaW5jbHVkZWQgY29udGV4dC4gIFRoZSBoZWFkZXIKPiArICogd2lsbCB1bmlsYXRlcmFs
bHkgI3VuZGVmIFhFTl9FUlJOTygpLgo+ICsgKi8KPiArCj4gKyNpZm5kZWYgWEVOX0VSUk5PCj4g
Kwo+ICsvKgo+ICsgKiBJbmNsdWRlciBoYXMgbm90IHByb3ZpZGVkIGEgY3VzdG9tIFhFTl9FUlJO
TygpLiAgQXJyYW5nZSBmb3Igbm9ybWFsIGhlYWRlcgo+ICsgKiBndWFyZHMsIGFuIGF1dG9tYXRp
YyBlbnVtIChmb3IgQyBjb2RlKSBhbmQgY29uc3RhbnRzIGluIHRoZSBYRU5feHh4Cj4gKyAqIG5h
bWVzcGFjZS4KPiArICovCj4gKyNpZm5kZWYgX19YRU5fUFVCTElDX0VSUk5PX0hfXwo+ICsjZGVm
aW5lIF9fWEVOX1BVQkxJQ19FUlJOT19IX18KPiArCj4gKyNkZWZpbmUgWEVOX0VSUk5PX0RFRkFV
TFRfSU5DTFVERQo+ICsKPiArI2lmbmRlZiBfX0FTU0VNQkxZX18KPiArCj4gKyNkZWZpbmUgWEVO
X0VSUk5PKG5hbWUsIHZhbHVlKSBYRU5fIyNuYW1lID0gdmFsdWUsCj4gK2VudW0geGVuX2Vycm5v
IHsKPiArCj4gKyNlbGlmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPCAweDAwMDQwNzAwCj4g
Kwo+ICsjZGVmaW5lIFhFTl9FUlJOTyhuYW1lLCB2YWx1ZSkgLmVxdSBYRU5fIyNuYW1lLCB2YWx1
ZQo+ICsKPiArI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLwo+ICsKPiArI2VuZGlmIC8qIF9fWEVO
X1BVQkxJQ19FUlJOT19IX18gKi8KPiArI2VuZGlmIC8qICFYRU5fRVJSTk8gKi8KPiArCj4gKy8q
IGAgZW51bSBuZWdfZXJybm92YWwgeyAgWyAtRWZvbyBmb3IgZWFjaCBFZm9vIGluIHRoZSBsaXN0
IGJlbG93IF0gIH0gKi8KPiArLyogYCBlbnVtIGVycm5vdmFsIHsgKi8KPiArCj4gKyNpZmRlZiBY
RU5fRVJSTk8KPiArCj4gKy8qCj4gKyAqIFZhbHVlcyBvcmlnaW5hdGluZyBmcm9tIHg4NiBMaW51
eC4gUGxlYXNlIGNvbnNpZGVyIHVzaW5nIHJlc3BlY3RpdmUKPiArICogdmFsdWVzIHdoZW4gYWRk
aW5nIG5ldyBkZWZpbml0aW9ucyBoZXJlLgo+ICsgKgo+ICsgKiBUaGUgc2V0IG9mIGlkZW50aWZp
ZXJzIHRvIGJlIGFkZGVkIGhlcmUgc2hvdWxkbid0IGV4dGVuZCBiZXlvbmQgd2hhdAo+ICsgKiBQ
T1NJWCBtYW5kYXRlcyAoc2VlIGUuZy4KPiArICogaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9v
bmxpbmVwdWJzLzk2OTk5MTk3OTkvYmFzZWRlZnMvZXJybm8uaC5odG1sKQo+ICsgKiB3aXRoIHRo
ZSBleGNlcHRpb24gdGhhdCB3ZSBzdXBwb3J0IHNvbWUgb3B0aW9uYWwgKFhTUikgdmFsdWVzCj4g
KyAqIHNwZWNpZmllZCB0aGVyZSAoYnV0IG5vIG5ldyBvbmVzIHNob3VsZCBiZSBhZGRlZCkuCj4g
KyAqLwo+ICsKPiArWEVOX0VSUk5PKEVQRVJNLAkgMSkJLyogT3BlcmF0aW9uIG5vdCBwZXJtaXR0
ZWQgKi8KPiArWEVOX0VSUk5PKEVOT0VOVCwJIDIpCS8qIE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rv
cnkgKi8KPiArWEVOX0VSUk5PKEVTUkNILAkgMykJLyogTm8gc3VjaCBwcm9jZXNzICovCj4gKyNp
ZmRlZiBfX1hFTl9fIC8qIEludGVybmFsIG9ubHksIHNob3VsZCBuZXZlciBiZSBleHBvc2VkIHRv
IHRoZSBndWVzdC4gKi8KPiArWEVOX0VSUk5PKEVJTlRSLAkgNCkJLyogSW50ZXJydXB0ZWQgc3lz
dGVtIGNhbGwgKi8KPiArI2VuZGlmCj4gK1hFTl9FUlJOTyhFSU8sCQkgNSkJLyogSS9PIGVycm9y
ICovCj4gK1hFTl9FUlJOTyhFTlhJTywJIDYpCS8qIE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3Mg
Ki8KPiArWEVOX0VSUk5PKEUyQklHLAkgNykJLyogQXJnIGxpc3QgdG9vIGxvbmcgKi8KPiArWEVO
X0VSUk5PKEVOT0VYRUMsCSA4KQkvKiBFeGVjIGZvcm1hdCBlcnJvciAqLwo+ICtYRU5fRVJSTk8o
RUJBREYsCSA5KQkvKiBCYWQgZmlsZSBudW1iZXIgKi8KPiArWEVOX0VSUk5PKEVDSElMRCwJMTAp
CS8qIE5vIGNoaWxkIHByb2Nlc3NlcyAqLwo+ICtYRU5fRVJSTk8oRUFHQUlOLAkxMSkJLyogVHJ5
IGFnYWluICovCj4gK1hFTl9FUlJOTyhFV09VTERCTE9DSywJMTEpCS8qIE9wZXJhdGlvbiB3b3Vs
ZCBibG9jay4gIEFsaWFzZXMgRUFHQUlOICovCj4gK1hFTl9FUlJOTyhFTk9NRU0sCTEyKQkvKiBP
dXQgb2YgbWVtb3J5ICovCj4gK1hFTl9FUlJOTyhFQUNDRVMsCTEzKQkvKiBQZXJtaXNzaW9uIGRl
bmllZCAqLwo+ICtYRU5fRVJSTk8oRUZBVUxULAkxNCkJLyogQmFkIGFkZHJlc3MgKi8KPiArWEVO
X0VSUk5PKEVCVVNZLAkxNikJLyogRGV2aWNlIG9yIHJlc291cmNlIGJ1c3kgKi8KPiArWEVOX0VS
Uk5PKEVFWElTVCwJMTcpCS8qIEZpbGUgZXhpc3RzICovCj4gK1hFTl9FUlJOTyhFWERFViwJMTgp
CS8qIENyb3NzLWRldmljZSBsaW5rICovCj4gK1hFTl9FUlJOTyhFTk9ERVYsCTE5KQkvKiBObyBz
dWNoIGRldmljZSAqLwo+ICtYRU5fRVJSTk8oRUlTRElSLAkyMSkJLyogSXMgYSBkaXJlY3Rvcnkg
Ki8KPiArWEVOX0VSUk5PKEVJTlZBTCwJMjIpCS8qIEludmFsaWQgYXJndW1lbnQgKi8KPiArWEVO
X0VSUk5PKEVORklMRSwJMjMpCS8qIEZpbGUgdGFibGUgb3ZlcmZsb3cgKi8KPiArWEVOX0VSUk5P
KEVNRklMRSwJMjQpCS8qIFRvbyBtYW55IG9wZW4gZmlsZXMgKi8KPiArWEVOX0VSUk5PKEVOT1NQ
QywJMjgpCS8qIE5vIHNwYWNlIGxlZnQgb24gZGV2aWNlICovCj4gK1hFTl9FUlJOTyhFUk9GUywJ
MzApCS8qIFJlYWQtb25seSBmaWxlIHN5c3RlbSAqLwo+ICtYRU5fRVJSTk8oRU1MSU5LLAkzMSkJ
LyogVG9vIG1hbnkgbGlua3MgKi8KPiArWEVOX0VSUk5PKEVET00sCQkzMykJLyogTWF0aCBhcmd1
bWVudCBvdXQgb2YgZG9tYWluIG9mIGZ1bmMgKi8KPiArWEVOX0VSUk5PKEVSQU5HRSwJMzQpCS8q
IE1hdGggcmVzdWx0IG5vdCByZXByZXNlbnRhYmxlICovCj4gK1hFTl9FUlJOTyhFREVBRExLLAkz
NSkJLyogUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIgKi8KPiArWEVOX0VSUk5PKEVERUFE
TE9DSywJMzUpCS8qIFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyLiBBbGlhc2VzIEVERUFE
TEsgKi8KPiArWEVOX0VSUk5PKEVOQU1FVE9PTE9ORywJMzYpCS8qIEZpbGUgbmFtZSB0b28gbG9u
ZyAqLwo+ICtYRU5fRVJSTk8oRU5PTENLLAkzNykJLyogTm8gcmVjb3JkIGxvY2tzIGF2YWlsYWJs
ZSAqLwo+ICtYRU5fRVJSTk8oRU5PU1lTLAkzOCkJLyogRnVuY3Rpb24gbm90IGltcGxlbWVudGVk
ICovCj4gK1hFTl9FUlJOTyhFTk9URU1QVFksCTM5KQkvKiBEaXJlY3Rvcnkgbm90IGVtcHR5ICov
Cj4gK1hFTl9FUlJOTyhFTk9EQVRBLAk2MSkJLyogTm8gZGF0YSBhdmFpbGFibGUgKi8KPiArWEVO
X0VSUk5PKEVUSU1FLAk2MikJLyogVGltZXIgZXhwaXJlZCAqLwo+ICtYRU5fRVJSTk8oRUJBRE1T
RywJNzQpCS8qIE5vdCBhIGRhdGEgbWVzc2FnZSAqLwo+ICtYRU5fRVJSTk8oRU9WRVJGTE9XLAk3
NSkJLyogVmFsdWUgdG9vIGxhcmdlIGZvciBkZWZpbmVkIGRhdGEgdHlwZSAqLwo+ICtYRU5fRVJS
Tk8oRUlMU0VRLAk4NCkJLyogSWxsZWdhbCBieXRlIHNlcXVlbmNlICovCj4gKyNpZmRlZiBfX1hF
Tl9fIC8qIEludGVybmFsIG9ubHksIHNob3VsZCBuZXZlciBiZSBleHBvc2VkIHRvIHRoZSBndWVz
dC4gKi8KPiArWEVOX0VSUk5PKEVSRVNUQVJULAk4NSkJLyogSW50ZXJydXB0ZWQgc3lzdGVtIGNh
bGwgc2hvdWxkIGJlIHJlc3RhcnRlZCAqLwo+ICsjZW5kaWYKPiArWEVOX0VSUk5PKEVOT1RTT0NL
LAk4OCkJLyogU29ja2V0IG9wZXJhdGlvbiBvbiBub24tc29ja2V0ICovCj4gK1hFTl9FUlJOTyhF
T1BOT1RTVVBQLAk5NSkJLyogT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gdHJhbnNwb3J0IGVu
ZHBvaW50ICovCj4gK1hFTl9FUlJOTyhFQUREUklOVVNFLAk5OCkJLyogQWRkcmVzcyBhbHJlYWR5
IGluIHVzZSAqLwo+ICtYRU5fRVJSTk8oRUFERFJOT1RBVkFJTCwgOTkpCS8qIENhbm5vdCBhc3Np
Z24gcmVxdWVzdGVkIGFkZHJlc3MgKi8KPiArWEVOX0VSUk5PKEVOT0JVRlMsCTEwNSkJLyogTm8g
YnVmZmVyIHNwYWNlIGF2YWlsYWJsZSAqLwo+ICtYRU5fRVJSTk8oRUlTQ09OTiwJMTA2KQkvKiBU
cmFuc3BvcnQgZW5kcG9pbnQgaXMgYWxyZWFkeSBjb25uZWN0ZWQgKi8KPiArWEVOX0VSUk5PKEVO
T1RDT05OLAkxMDcpCS8qIFRyYW5zcG9ydCBlbmRwb2ludCBpcyBub3QgY29ubmVjdGVkICovCj4g
K1hFTl9FUlJOTyhFVElNRURPVVQsCTExMCkJLyogQ29ubmVjdGlvbiB0aW1lZCBvdXQgKi8KPiAr
Cj4gKyN1bmRlZiBYRU5fRVJSTk8KPiArI2VuZGlmIC8qIFhFTl9FUlJOTyAqLwo+ICsvKiBgIH0g
Ki8KPiArCj4gKy8qIENsZWFuIHVwIGZyb20gYSBkZWZhdWx0IGluY2x1ZGUuICBDbG9zZSB0aGUg
ZW51bSAoZm9yIEMpLiAqLwo+ICsjaWZkZWYgWEVOX0VSUk5PX0RFRkFVTFRfSU5DTFVERQo+ICsj
dW5kZWYgWEVOX0VSUk5PX0RFRkFVTFRfSU5DTFVERQo+ICsjaWZuZGVmIF9fQVNTRU1CTFlfXwo+
ICt9Owo+ICsjZW5kaWYKPiArCj4gKyNlbmRpZiAvKiBYRU5fRVJSTk9fREVGQVVMVF9JTkNMVURF
ICovCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2V2ZW50X2NoYW5uZWwuaCBiL2luY2x1ZGUv
eGVuL2V2ZW50X2NoYW5uZWwuaAo+IGluZGV4IDA1ZTUzMWQuLjQ0YzU0OWQgMTAwNjQ0Cj4gLS0t
IGEvaW5jbHVkZS94ZW4vZXZlbnRfY2hhbm5lbC5oCj4gKysrIGIvaW5jbHVkZS94ZW4vZXZlbnRf
Y2hhbm5lbC5oCj4gQEAgLTg1LDcgKzg1LDcgQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoZXZ0
Y2huX3BvcnRfdCk7Cj4gICAqIGlzIGFsbG9jYXRlZCBpbiA8ZG9tPiBhbmQgcmV0dXJuZWQgYXMg
PHBvcnQ+Lgo+ICAgKiBOT1RFUzoKPiAgICogIDEuIElmIHRoZSBjYWxsZXIgaXMgdW5wcml2aWxl
Z2VkIHRoZW4gPGRvbT4gbXVzdCBiZSBET01JRF9TRUxGLgo+IC0gKiAgMi4gPHJkb20+IG1heSBi
ZSBET01JRF9TRUxGLCBhbGxvd2luZyBsb29wYmFjayBjb25uZWN0aW9ucy4KPiArICogIDIuIDxy
ZW1vdGVfZG9tPiBtYXkgYmUgRE9NSURfU0VMRiwgYWxsb3dpbmcgbG9vcGJhY2sgY29ubmVjdGlv
bnMuCj4gICAqLwo+ICBzdHJ1Y3QgZXZ0Y2huX2FsbG9jX3VuYm91bmQgewo+ICAgICAgLyogSU4g
cGFyYW1ldGVycyAqLwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9mZWF0dXJlcy5oIGIvaW5j
bHVkZS94ZW4vZmVhdHVyZXMuaAo+IGluZGV4IDE2ZDkyYWEuLjIxMTBiMDQgMTAwNjQ0Cj4gLS0t
IGEvaW5jbHVkZS94ZW4vZmVhdHVyZXMuaAo+ICsrKyBiL2luY2x1ZGUveGVuL2ZlYXR1cmVzLmgK
PiBAQCAtOTksNiArOTksOSBAQAo+ICAjZGVmaW5lIFhFTkZFQVRfZ3JhbnRfbWFwX2lkZW50aXR5
ICAgICAgICAxMgo+ICAgKi8KPiAgCj4gKy8qIEd1ZXN0IGNhbiB1c2UgWEVOTUVNRl92bm9kZSB0
byBzcGVjaWZ5IHZpcnR1YWwgbm9kZSBmb3IgbWVtb3J5IG9wLiAqLwo+ICsjZGVmaW5lIFhFTkZF
QVRfbWVtb3J5X29wX3Zub2RlX3N1cHBvcnRlZCAxMwo+ICsKPiAgI2RlZmluZSBYRU5GRUFUX05S
X1NVQk1BUFMgMQo+ICAKPiAgI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19GRUFUVVJFU19IX18gKi8K
PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vZ2Nvdi5oIGIvaW5jbHVkZS94ZW4vZ2Nvdi5oCj4g
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMWIyOWI0OC4uMDAwMDAwMAo+IC0tLSBh
L2luY2x1ZGUveGVuL2djb3YuaAo+ICsrKyAvZGV2L251bGwKPiBAQCAtMSwxMTUgKzAsMCBAQAo+
IC0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCj4gLSAqIGdjb3YuaAo+IC0gKgo+IC0gKiBDb3ZlcmFn
ZSBzdHJ1Y3R1cmVzIGV4cG9ydGVkIGJ5IFhlbi4KPiAtICogU3RydWN0dXJlIGlzIGRpZmZlcmVu
dCBmcm9tIEdjYyBvbmUuCj4gLSAqCj4gLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs
IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKPiAtICogb2Yg
dGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNv
ZnR3YXJlIiksIHRvCj4gLSAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rp
b24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCj4gLSAqIHJpZ2h0cyB0byB1c2Us
IGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFu
ZC9vcgo+IC0gKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy
c29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwo+IC0gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1
YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+IC0gKgo+IC0gKiBUaGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNs
dWRlZCBpbgo+IC0gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBT
b2Z0d2FyZS4KPiAtICoKPiAtICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJ
VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiAtICogSU1QTElFRCwgSU5D
TFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFksCj4gLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5H
RU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQo+IC0gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBI
T0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4gLSAqIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJX
SVNFLCBBUklTSU5HCj4gLSAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhF
IFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKPiAtICogREVBTElOR1MgSU4gVEhFIFNPRlRX
QVJFLgo+IC0gKgo+IC0gKiBDb3B5cmlnaHQgKGMpIDIwMTMsIENpdHJpeCBTeXN0ZW1zIFImRCBM
dGQuCj4gLSAqLwo+IC0KPiAtI2lmbmRlZiBfX1hFTl9QVUJMSUNfR0NPVl9IX18KPiAtI2RlZmlu
ZSBfX1hFTl9QVUJMSUNfR0NPVl9IX18gX19YRU5fUFVCTElDX0dDT1ZfSF9fCj4gLQo+IC0jZGVm
aW5lIFhFTkNPVl9DT1VOVEVSUyAgICAgICAgIDUKPiAtI2RlZmluZSBYRU5DT1ZfVEFHX0JBU0Ug
ICAgICAgICAweDU4NTQ0MzAwdQo+IC0jZGVmaW5lIFhFTkNPVl9UQUdfRklMRSAgICAgICAgIChY
RU5DT1ZfVEFHX0JBU0UrMHg0NnUpCj4gLSNkZWZpbmUgWEVOQ09WX1RBR19GVU5DICAgICAgICAg
KFhFTkNPVl9UQUdfQkFTRSsweDY2dSkKPiAtI2RlZmluZSBYRU5DT1ZfVEFHX0NPVU5URVIobikg
ICAoWEVOQ09WX1RBR19CQVNFKzB4MzB1KygobikmMHhmdSkpCj4gLSNkZWZpbmUgWEVOQ09WX1RB
R19FTkQgICAgICAgICAgKFhFTkNPVl9UQUdfQkFTRSsweDJldSkKPiAtI2RlZmluZSBYRU5DT1Zf
SVNfVEFHX0NPVU5URVIobikgXAo+IC0gICAgKChuKSA+PSBYRU5DT1ZfVEFHX0NPVU5URVIoMCkg
JiYgKG4pIDwgWEVOQ09WX1RBR19DT1VOVEVSKFhFTkNPVl9DT1VOVEVSUykpCj4gLSNkZWZpbmUg
WEVOQ09WX0NPVU5URVJfTlVNKG4pICgobiktWEVOQ09WX1RBR19DT1VOVEVSKDApKQo+IC0KPiAt
LyoKPiAtICogVGhlIG1haW4gc3RydWN0dXJlIGZvciB0aGUgYmxvYiBpcwo+IC0gKiBCTE9CIDo9
IEZJTEUuLiBFTkQKPiAtICogRklMRSA6PSBUQUdfRklMRSBWRVJTSU9OIFNUQU1QIEZJTEVOQU1F
IENPVU5URVJTIEZVTkNUSU9OUwo+IC0gKiBGSUxFTkFNRSA6PSBMRU4gY2hhcmFjdGVycwo+IC0g
KiAgIGNoYXJhY3RlcnMgYXJlIHBhZGRlZCB0byAzMiBiaXQKPiAtICogTEVOIDo9IDMyIGJpdCB2
YWx1ZQo+IC0gKiBDT1VOVEVSUyA6PSBUQUdfQ09VTlRFUihuKSBOVU0gQ09VTlRFUi4uCj4gLSAq
IE5VTSA6PSAzMiBiaXQgdmFsaWUKPiAtICogQ09VTlRFUiA6PSA2NCBiaXQgdmFsdWUKPiAtICog
RlVOQ1RJT05TIDo9IFRBR19GVU5DIE5VTSBGVU5DVElPTi4uCj4gLSAqIEZVTkNUSU9OIDo9IElE
RU5UIENIRUNLU1VNIE5VTV9DT1VOVEVSUwo+IC0gKgo+IC0gKiBBbGwgdGFnZ2VkIHN0cnVjdHVy
ZXMgYXJlIGFsaWduZWQgdG8gOCBieXRlcwo+IC0gKi8KPiAtCj4gLS8qKgo+IC0gKiBGaWxlIGlu
Zm9ybWF0aW9uCj4gLSAqIFByZWZpeGVkIHdpdGggWEVOQ09WX1RBR19GSUxFIGFuZCBhIHN0cmlu
ZyB3aXRoIGZpbGVuYW1lCj4gLSAqIEFsaWduZWQgdG8gOCBieXRlcwo+IC0gKi8KPiAtc3RydWN0
IHhlbmNvdl9maWxlCj4gLXsKPiAtICAgIHVpbnQzMl90IHRhZzsgLyogWEVOQ09WX1RBR19GSUxF
ICovCj4gLSAgICB1aW50MzJfdCB2ZXJzaW9uOwo+IC0gICAgdWludDMyX3Qgc3RhbXA7Cj4gLSAg
ICB1aW50MzJfdCBmbl9sZW47Cj4gLSAgICBjaGFyIGZpbGVuYW1lWzFdOwo+IC19Owo+IC0KPiAt
Cj4gLS8qKgo+IC0gKiBDb3VudGVycyBpbmZvcm1hdGlvbgo+IC0gKiBQcmVmaXhlZCB3aXRoIFhF
TkNPVl9UQUdfQ09VTlRFUihuKSB3aGVyZSBuIGlzIDAuLihYRU5DT1ZfQ09VTlRFUlMtMSkKPiAt
ICogQWxpZ25lZCB0byA4IGJ5dGVzCj4gLSAqLwo+IC1zdHJ1Y3QgeGVuY292X2NvdW50ZXIKPiAt
ewo+IC0gICAgdWludDMyX3QgdGFnOyAvKiBYRU5DT1ZfVEFHX0NPVU5URVIobikgKi8KPiAtICAg
IHVpbnQzMl90IG51bTsKPiAtICAgIHVpbnQ2NF90IHZhbHVlc1sxXTsKPiAtfTsKPiAtCj4gLS8q
Kgo+IC0gKiBJbmZvcm1hdGlvbiBmb3IgZWFjaCBmdW5jdGlvbgo+IC0gKiBOdW1iZXIgb2YgY291
bnRlciBpcyBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIGNvdW50ZXIgc3RydWN0dXJlcyBnb3QgYmVm
b3JlCj4gLSAqLwo+IC1zdHJ1Y3QgeGVuY292X2Z1bmN0aW9uCj4gLXsKPiAtICAgIHVpbnQzMl90
IGlkZW50Owo+IC0gICAgdWludDMyX3QgY2hlY2tzdW07Cj4gLSAgICB1aW50MzJfdCBudW1fY291
bnRlcnNbMV07Cj4gLX07Cj4gLQo+IC0vKioKPiAtICogSW5mb3JtYXRpb24gZm9yIGFsbCBmdW5j
dGlvbnMKPiAtICogQWxpZ25lZCB0byA4IGJ5dGVzCj4gLSAqLwo+IC1zdHJ1Y3QgeGVuY292X2Z1
bmN0aW9ucwo+IC17Cj4gLSAgICB1aW50MzJfdCB0YWc7IC8qIFhFTkNPVl9UQUdfRlVOQyAqLwo+
IC0gICAgdWludDMyX3QgbnVtOwo+IC0gICAgc3RydWN0IHhlbmNvdl9mdW5jdGlvbiB4ZW5jb3Zf
ZnVuY3Rpb25bMV07Cj4gLX07Cj4gLQo+IC0vKioKPiAtICogVGVybWluYXRvcgo+IC0gKi8KPiAt
c3RydWN0IHhlbmNvdl9lbmQKPiAtewo+IC0gICAgdWludDMyX3QgdGFnOyAvKiBYRU5DT1ZfVEFH
X0VORCAqLwo+IC19Owo+IC0KPiAtI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19HQ09WX0hfXyAqLwo+
IC0KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vZ3JhbnRfdGFibGUuaCBiL2luY2x1ZGUveGVu
L2dyYW50X3RhYmxlLmgKPiBpbmRleCAyMGQ0ZTc3Li4wMTgwMzZlIDEwMDY0NAo+IC0tLSBhL2lu
Y2x1ZGUveGVuL2dyYW50X3RhYmxlLmgKPiArKysgYi9pbmNsdWRlL3hlbi9ncmFudF90YWJsZS5o
Cj4gQEAgLTQzLDcgKzQzLDcgQEAKPiAgICogdGFibGUgYXJlIGlkZW50aWZpZWQgYnkgZ3JhbnQg
cmVmZXJlbmNlcy4gQSBncmFudCByZWZlcmVuY2UgaXMgYW4KPiAgICogaW50ZWdlciwgd2hpY2gg
aW5kZXhlcyBpbnRvIHRoZSBncmFudCB0YWJsZS4gSXQgYWN0cyBhcyBhCj4gICAqIGNhcGFiaWxp
dHkgd2hpY2ggdGhlIGdyYW50ZWUgY2FuIHVzZSB0byBwZXJmb3JtIG9wZXJhdGlvbnMgb24gdGhl
Cj4gLSAqIGdyYW50ZXLigJlzIG1lbW9yeS4KPiArICogZ3JhbnRlcidzIG1lbW9yeS4KPiAgICoK
PiAgICogVGhpcyBjYXBhYmlsaXR5LWJhc2VkIHN5c3RlbSBhbGxvd3Mgc2hhcmVkLW1lbW9yeSBj
b21tdW5pY2F0aW9ucwo+ICAgKiBiZXR3ZWVuIHVucHJpdmlsZWdlZCBkb21haW5zLiBBIGdyYW50
IHJlZmVyZW5jZSBhbHNvIGVuY2Fwc3VsYXRlcwo+IEBAIC0xMzQsOCArMTM0LDEwIEBAIHN0cnVj
dCBncmFudF9lbnRyeV92MSB7Cj4gICAgICAvKiBUaGUgZG9tYWluIGJlaW5nIGdyYW50ZWQgZm9y
ZWlnbiBwcml2aWxlZ2VzLiBbR1NUXSAqLwo+ICAgICAgZG9taWRfdCAgZG9taWQ7Cj4gICAgICAv
Kgo+IC0gICAgICogR1RGX3Blcm1pdF9hY2Nlc3M6IEZyYW1lIHRoYXQgQGRvbWlkIGlzIGFsbG93
ZWQgdG8gbWFwIGFuZCBhY2Nlc3MuIFtHU1RdCj4gLSAgICAgKiBHVEZfYWNjZXB0X3RyYW5zZmVy
OiBGcmFtZSB3aG9zZSBvd25lcnNoaXAgdHJhbnNmZXJyZWQgYnkgQGRvbWlkLiBbWEVOXQo+ICsg
ICAgICogR1RGX3Blcm1pdF9hY2Nlc3M6IEdGTiB0aGF0IEBkb21pZCBpcyBhbGxvd2VkIHRvIG1h
cCBhbmQgYWNjZXNzLiBbR1NUXQo+ICsgICAgICogR1RGX2FjY2VwdF90cmFuc2ZlcjogR0ZOIHRo
YXQgQGRvbWlkIGlzIGFsbG93ZWQgdG8gdHJhbnNmZXIgaW50by4gW0dTVF0KPiArICAgICAqIEdU
Rl90cmFuc2Zlcl9jb21wbGV0ZWQ6IE1GTiB3aG9zZSBvd25lcnNoaXAgdHJhbnNmZXJyZWQgYnkg
QGRvbWlkCj4gKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAobm9uLXRyYW5zbGF0ZWQg
Z3Vlc3RzIG9ubHkpLiBbWEVOXQo+ICAgICAgICovCj4gICAgICB1aW50MzJfdCBmcmFtZTsKPiAg
fTsKPiBAQCAtMzIxLDcgKzMyMyw3IEBAIHR5cGVkZWYgdWludDMyX3QgZ3JhbnRfaGFuZGxlX3Q7
Cj4gIC8qCj4gICAqIEdOVFRBQk9QX21hcF9ncmFudF9yZWY6IE1hcCB0aGUgZ3JhbnQgZW50cnkg
KDxkb20+LDxyZWY+KSBmb3IgYWNjZXNzCj4gICAqIGJ5IGRldmljZXMgYW5kL29yIGhvc3QgQ1BV
cy4gSWYgc3VjY2Vzc2Z1bCwgPGhhbmRsZT4gaXMgYSB0cmFja2luZyBudW1iZXIKPiAtICogdGhh
dCBtdXN0IGJlIHByZXNlbnRlZCBsYXRlciB0byBkZXN0cm95IHRoZSBtYXBwaW5nKHMpLiBPbiBl
cnJvciwgPGhhbmRsZT4KPiArICogdGhhdCBtdXN0IGJlIHByZXNlbnRlZCBsYXRlciB0byBkZXN0
cm95IHRoZSBtYXBwaW5nKHMpLiBPbiBlcnJvciwgPHN0YXR1cz4KPiAgICogaXMgYSBuZWdhdGl2
ZSBzdGF0dXMgY29kZS4KPiAgICogTk9URVM6Cj4gICAqICAxLiBJZiBHTlRNQVBfZGV2aWNlX21h
cCBpcyBzcGVjaWZpZWQgdGhlbiA8ZGV2X2J1c19hZGRyPiBpcyB0aGUgYWRkcmVzcwo+IEBAIC00
MDksMTIgKzQxMSwxMyBAQCB0eXBlZGVmIHN0cnVjdCBnbnR0YWJfZHVtcF90YWJsZSBnbnR0YWJf
ZHVtcF90YWJsZV90Owo+ICBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShnbnR0YWJfZHVtcF90YWJs
ZV90KTsKPiAgCj4gIC8qCj4gLSAqIEdOVFRBQk9QX3RyYW5zZmVyX2dyYW50X3JlZjogVHJhbnNm
ZXIgPGZyYW1lPiB0byBhIGZvcmVpZ24gZG9tYWluLiBUaGUKPiAtICogZm9yZWlnbiBkb21haW4g
aGFzIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBpdHMgaW50ZXJlc3QgaW4gdGhlIHRyYW5zZmVyIHZp
YQo+IC0gKiA8ZG9taWQsIHJlZj4uCj4gKyAqIEdOVFRBQk9QX3RyYW5zZmVyOiBUcmFuc2ZlciA8
ZnJhbWU+IHRvIGEgZm9yZWlnbiBkb21haW4uIFRoZSBmb3JlaWduIGRvbWFpbgo+ICsgKiBoYXMg
cHJldmlvdXNseSByZWdpc3RlcmVkIGl0cyBpbnRlcmVzdCBpbiB0aGUgdHJhbnNmZXIgdmlhIDxk
b21pZCwgcmVmPi4KPiAgICoKPiAgICogTm90ZSB0aGF0LCBldmVuIGlmIHRoZSB0cmFuc2ZlciBm
YWlscywgdGhlIHNwZWNpZmllZCBwYWdlIG5vIGxvbmdlciBiZWxvbmdzCj4gICAqIHRvIHRoZSBj
YWxsaW5nIGRvbWFpbiAqdW5sZXNzKiB0aGUgZXJyb3IgaXMgR05UU1RfYmFkX3BhZ2UuCj4gKyAq
Cj4gKyAqIE5vdGUgZnVydGhlciB0aGF0IG9ubHkgUFYgZ3Vlc3RzIGNhbiB1c2UgdGhpcyBvcGVy
YXRpb24uCj4gICAqLwo+ICBzdHJ1Y3QgZ250dGFiX3RyYW5zZmVyIHsKPiAgICAgIC8qIElOIHBh
cmFtZXRlcnMuICovCj4gQEAgLTQ1Myw3ICs0NTYsNyBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRM
RShnbnR0YWJfdHJhbnNmZXJfdCk7Cj4gIAo+ICBzdHJ1Y3QgZ250dGFiX2NvcHkgewo+ICAgICAg
LyogSU4gcGFyYW1ldGVycy4gKi8KPiAtICAgIHN0cnVjdCB7Cj4gKyAgICBzdHJ1Y3QgZ250dGFi
X2NvcHlfcHRyIHsKPiAgICAgICAgICB1bmlvbiB7Cj4gICAgICAgICAgICAgIGdyYW50X3JlZl90
IHJlZjsKPiAgICAgICAgICAgICAgeGVuX3Bmbl90ICAgZ21mbjsKPiBkaWZmIC0tZ2l0IGEvaW5j
bHVkZS94ZW4vaHZtL2RtX29wLmggYi9pbmNsdWRlL3hlbi9odm0vZG1fb3AuaAo+IG5ldyBmaWxl
IG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uNmJiYWI1Zgo+IC0tLSAvZGV2L251bGwKPiAr
KysgYi9pbmNsdWRlL3hlbi9odm0vZG1fb3AuaAo+IEBAIC0wLDAgKzEsNDE3IEBACj4gKy8qCj4g
KyAqIENvcHlyaWdodCAoYykgMjAxNiwgQ2l0cml4IFN5c3RlbXMgSW5jCj4gKyAqCj4gKyAqIFBl
cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u
IG9idGFpbmluZyBhIGNvcHkKPiArICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBk
b2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCj4gKyAqIGRlYWwgaW4gdGhl
IFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRp
b24gdGhlCj4gKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs
IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgo+ICsgKiBzZWxsIGNvcGllcyBvZiB0aGUg
U29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwo+
ICsgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zOgo+ICsgKgo+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJt
aXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgo+ICsgKiBhbGwgY29waWVzIG9yIHN1
YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KPiArICoKPiArICogVEhFIFNPRlRX
QVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVY
UFJFU1MgT1IKPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQo+
ICsgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlN
LCBEQU1BR0VTIE9SIE9USEVSCj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04g
T0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4gKyAqIEZST00sIE9VVCBP
RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIK
PiArICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+ICsgKgo+ICsgKi8KPiArCj4gKyNpZm5k
ZWYgX19YRU5fUFVCTElDX0hWTV9ETV9PUF9IX18KPiArI2RlZmluZSBfX1hFTl9QVUJMSUNfSFZN
X0RNX09QX0hfXwo+ICsKPiArI2luY2x1ZGUgIi4uL3hlbi5oIgo+ICsKPiArI2lmIGRlZmluZWQo
X19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKQo+ICsKPiArI2luY2x1ZGUgIi4uL2V2
ZW50X2NoYW5uZWwuaCIKPiArCj4gKyNpZm5kZWYgdWludDY0X2FsaWduZWRfdAo+ICsjZGVmaW5l
IHVpbnQ2NF9hbGlnbmVkX3QgdWludDY0X3QKPiArI2VuZGlmCj4gKwo+ICsvKgo+ICsgKiBJT1JF
USBTZXJ2ZXJzCj4gKyAqCj4gKyAqIFRoZSBpbnRlcmZhY2UgYmV0d2VlbiBhbiBJL08gZW11bGF0
b3IgYW4gWGVuIGlzIGNhbGxlZCBhbiBJT1JFUSBTZXJ2ZXIuCj4gKyAqIEEgZG9tYWluIHN1cHBv
cnRzIGEgc2luZ2xlICdsZWdhY3knIElPUkVRIFNlcnZlciB3aGljaCBpcyBpbnN0YW50aWF0ZWQg
aWYKPiArICogcGFyYW1ldGVyLi4uCj4gKyAqCj4gKyAqIEhWTV9QQVJBTV9JT1JFUV9QRk4gaXMg
cmVhZCAodG8gZ2V0IHRoZSBnZm4gY29udGFpbmluZyB0aGUgc3luY2hyb25vdXMKPiArICogaW9y
ZXEgc3RydWN0dXJlcyksIG9yLi4uCj4gKyAqIEhWTV9QQVJBTV9CVUZJT1JFUV9QRk4gaXMgcmVh
ZCAodG8gZ2V0IHRoZSBnZm4gY29udGFpbmluZyB0aGUgYnVmZmVyZWQKPiArICogaW9yZXEgcmlu
ZyksIG9yLi4uCj4gKyAqIEhWTV9QQVJBTV9CVUZJT1JFUV9FVlRDSE4gaXMgcmVhZCAodG8gZ2V0
IHRoZSBldmVudCBjaGFubmVsIHRoYXQgWGVuIHVzZXMKPiArICogdG8gcmVxdWVzdCBidWZmZXJl
ZCBJL08gZW11bGF0aW9uKS4KPiArICoKPiArICogVGhlIGZvbGxvd2luZyBoeXBlcmNhbGxzIGZh
Y2lsaXRhdGUgdGhlIGNyZWF0aW9uIG9mIElPUkVRIFNlcnZlcnMgZm9yCj4gKyAqICdzZWNvbmRh
cnknIGVtdWxhdG9ycyB3aGljaCBhcmUgaW52b2tlZCB0byBpbXBsZW1lbnQgcG9ydCBJL08sIG1l
bW9yeSwgb3IKPiArICogUENJIGNvbmZpZyBzcGFjZSByYW5nZXMgd2hpY2ggdGhleSBleHBsaWNp
dGx5IHJlZ2lzdGVyLgo+ICsgKi8KPiArCj4gK3R5cGVkZWYgdWludDE2X3QgaW9zZXJ2aWRfdDsK
PiArCj4gKy8qCj4gKyAqIFhFTl9ETU9QX2NyZWF0ZV9pb3JlcV9zZXJ2ZXI6IEluc3RhbnRpYXRl
IGEgbmV3IElPUkVRIFNlcnZlciBmb3IgYQo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWNvbmRhcnkgZW11bGF0b3IuCj4gKyAqCj4gKyAqIFRoZSA8aWQ+IGhhbmRlZCBiYWNr
IGlzIHVuaXF1ZSBmb3IgdGFyZ2V0IGRvbWFpbi4gVGhlIHZhbHVyIG9mCj4gKyAqIDxoYW5kbGVf
YnVmaW9yZXE+IHNob3VsZCBiZSBvbmUgb2YgSFZNX0lPUkVRU1JWX0JVRklPUkVRXyogZGVmaW5l
ZCBpbgo+ICsgKiBodm1fb3AuaC4gSWYgdGhlIHZhbHVlIGlzIEhWTV9JT1JFUVNSVl9CVUZJT1JF
UV9PRkYgdGhlbiAgdGhlIGJ1ZmZlcmVkCj4gKyAqIGlvcmVxIHJpbmcgd2lsbCBub3QgYmUgYWxs
b2NhdGVkIGFuZCBoZW5jZSBhbGwgZW11bGF0aW9uIHJlcXVlc3RzIHRvCj4gKyAqIHRoaXMgc2Vy
dmVyIHdpbGwgYmUgc3luY2hyb25vdXMuCj4gKyAqLwo+ICsjZGVmaW5lIFhFTl9ETU9QX2NyZWF0
ZV9pb3JlcV9zZXJ2ZXIgMQo+ICsKPiArc3RydWN0IHhlbl9kbV9vcF9jcmVhdGVfaW9yZXFfc2Vy
dmVyIHsKPiArICAgIC8qIElOIC0gc2hvdWxkIHNlcnZlciBoYW5kbGUgYnVmZmVyZWQgaW9yZXFz
ICovCj4gKyAgICB1aW50OF90IGhhbmRsZV9idWZpb3JlcTsKPiArICAgIHVpbnQ4X3QgcGFkWzNd
Owo+ICsgICAgLyogT1VUIC0gc2VydmVyIGlkICovCj4gKyAgICBpb3NlcnZpZF90IGlkOwo+ICt9
Owo+ICsKPiArLyoKPiArICogWEVOX0RNT1BfZ2V0X2lvcmVxX3NlcnZlcl9pbmZvOiBHZXQgYWxs
IHRoZSBpbmZvcm1hdGlvbiBuZWNlc3NhcnkgdG8KPiArICogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhY2Nlc3MgSU9SRVEgU2VydmVyIDxpZD4uCj4gKyAqCj4gKyAqIFRoZSBlbXVs
YXRvciBuZWVkcyB0byBtYXAgdGhlIHN5bmNocm9ub3VzIGlvcmVxIHN0cnVjdHVyZXMgYW5kIGJ1
ZmZlcmVkCj4gKyAqIGlvcmVxIHJpbmcgKGlmIGl0IGV4aXN0cykgdGhhdCBYZW4gdXNlcyB0byBy
ZXF1ZXN0IGVtdWxhdGlvbi4gVGhlc2UgYXJlCj4gKyAqIGhvc3RlZCBpbiB0aGUgdGFyZ2V0IGRv
bWFpbidzIGdtZm5zIDxpb3JlcV9nZm4+IGFuZCA8YnVmaW9yZXFfZ2ZuPgo+ICsgKiByZXNwZWN0
aXZlbHkuIEluIGFkZGl0aW9uLCBpZiB0aGUgSU9SRVEgU2VydmVyIGlzIGhhbmRsaW5nIGJ1ZmZl
cmVkCj4gKyAqIGVtdWxhdGlvbiByZXF1ZXN0cywgdGhlIGVtdWxhdG9yIG5lZWRzIHRvIGJpbmQg
dG8gZXZlbnQgY2hhbm5lbAo+ICsgKiA8YnVmaW9yZXFfcG9ydD4gdG8gbGlzdGVuIGZvciB0aGVt
LiAoVGhlIGV2ZW50IGNoYW5uZWxzIHVzZWQgZm9yCj4gKyAqIHN5bmNocm9ub3VzIGVtdWxhdGlv
biByZXF1ZXN0cyBhcmUgc3BlY2lmaWVkIGluIHRoZSBwZXItQ1BVIGlvcmVxCj4gKyAqIHN0cnVj
dHVyZXMgaW4gPGlvcmVxX2dmbj4pLgo+ICsgKiBJZiB0aGUgSU9SRVEgU2VydmVyIGlzIG5vdCBo
YW5kbGluZyBidWZmZXJlZCBlbXVsYXRpb24gcmVxdWVzdHMgdGhlbiB0aGUKPiArICogdmFsdWVz
IGhhbmRlZCBiYWNrIGluIDxidWZpb3JlcV9nZm4+IGFuZCA8YnVmaW9yZXFfcG9ydD4gd2lsbCBi
b3RoIGJlIDAuCj4gKyAqLwo+ICsjZGVmaW5lIFhFTl9ETU9QX2dldF9pb3JlcV9zZXJ2ZXJfaW5m
byAyCj4gKwo+ICtzdHJ1Y3QgeGVuX2RtX29wX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyB7Cj4gKyAg
ICAvKiBJTiAtIHNlcnZlciBpZCAqLwo+ICsgICAgaW9zZXJ2aWRfdCBpZDsKPiArICAgIHVpbnQx
Nl90IHBhZDsKPiArICAgIC8qIE9VVCAtIGJ1ZmZlcmVkIGlvcmVxIHBvcnQgKi8KPiArICAgIGV2
dGNobl9wb3J0X3QgYnVmaW9yZXFfcG9ydDsKPiArICAgIC8qIE9VVCAtIHN5bmMgaW9yZXEgZ2Zu
ICovCj4gKyAgICB1aW50NjRfYWxpZ25lZF90IGlvcmVxX2dmbjsKPiArICAgIC8qIE9VVCAtIGJ1
ZmZlcmVkIGlvcmVxIGdmbiAqLwo+ICsgICAgdWludDY0X2FsaWduZWRfdCBidWZpb3JlcV9nZm47
Cj4gK307Cj4gKwo+ICsvKgo+ICsgKiBYRU5fRE1PUF9tYXBfaW9fcmFuZ2VfdG9faW9yZXFfc2Vy
dmVyOiBSZWdpc3RlciBhbiBJL08gcmFuZ2UgZm9yCj4gKyAqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVtdWxhdGlvbiBieSB0aGUgY2xpZW50IG9mCj4gKyAqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPUkVRIFNlcnZlciA8aWQ+Lgo+ICsg
KiBYRU5fRE1PUF91bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZlcjogRGVyZWdpc3RlciBh
biBJL08gcmFuZ2UKPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBmb3IKPiArICogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGVtdWxhdGlvbiBieSB0aGUgY2xpZW50IG9mCj4gKyAqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT1JFUSBTZXJ2ZXIgPGlk
Pi4KPiArICoKPiArICogVGhlcmUgYXJlIHRocmVlIHR5cGVzIG9mIEkvTyB0aGF0IGNhbiBiZSBl
bXVsYXRlZDogcG9ydCBJL08sIG1lbW9yeQo+ICsgKiBhY2Nlc3NlcyBhbmQgUENJIGNvbmZpZyBz
cGFjZSBhY2Nlc3Nlcy4gVGhlIDx0eXBlPiBmaWVsZCBkZW5vdGVzIHdoaWNoCj4gKyAqIHR5cGUg
b2YgcmFuZ2UqIHRoZSA8c3RhcnQ+IGFuZCA8ZW5kPiAoaW5jbHVzaXZlKSBmaWVsZHMgYXJlIHNw
ZWNpZnlpbmcuCj4gKyAqIFBDSSBjb25maWcgc3BhY2UgcmFuZ2VzIGFyZSBzcGVjaWZpZWQgYnkg
c2VnbWVudC9idXMvZGV2aWNlL2Z1bmN0aW9uCj4gKyAqIHZhbHVlcyB3aGljaCBzaG91bGQgYmUg
ZW5jb2RlZCB1c2luZyB0aGUgRE1PUF9QQ0lfU0JERiBoZWxwZXIgbWFjcm8KPiArICogYmVsb3cu
Cj4gKyAqCj4gKyAqIE5PVEU6IHVubGVzcyBhbiBlbXVsYXRpb24gcmVxdWVzdCBmYWxscyBlbnRp
cmVseSB3aXRoaW4gYSByYW5nZSBtYXBwZWQKPiArICogYnkgYSBzZWNvbmRhcnkgZW11bGF0b3Is
IGl0IHdpbGwgbm90IGJlIHBhc3NlZCB0byB0aGF0IGVtdWxhdG9yLgo+ICsgKi8KPiArI2RlZmlu
ZSBYRU5fRE1PUF9tYXBfaW9fcmFuZ2VfdG9faW9yZXFfc2VydmVyIDMKPiArI2RlZmluZSBYRU5f
RE1PUF91bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZlciA0Cj4gKwo+ICtzdHJ1Y3QgeGVu
X2RtX29wX2lvcmVxX3NlcnZlcl9yYW5nZSB7Cj4gKyAgICAvKiBJTiAtIHNlcnZlciBpZCAqLwo+
ICsgICAgaW9zZXJ2aWRfdCBpZDsKPiArICAgIHVpbnQxNl90IHBhZDsKPiArICAgIC8qIElOIC0g
dHlwZSBvZiByYW5nZSAqLwo+ICsgICAgdWludDMyX3QgdHlwZTsKPiArIyBkZWZpbmUgWEVOX0RN
T1BfSU9fUkFOR0VfUE9SVCAgIDAgLyogSS9PIHBvcnQgcmFuZ2UgKi8KPiArIyBkZWZpbmUgWEVO
X0RNT1BfSU9fUkFOR0VfTUVNT1JZIDEgLyogTU1JTyByYW5nZSAqLwo+ICsjIGRlZmluZSBYRU5f
RE1PUF9JT19SQU5HRV9QQ0kgICAgMiAvKiBQQ0kgc2VnbWVudC9idXMvZGV2L2Z1bmMgcmFuZ2Ug
Ki8KPiArICAgIC8qIElOIC0gaW5jbHVzaXZlIHN0YXJ0IGFuZCBlbmQgb2YgcmFuZ2UgKi8KPiAr
ICAgIHVpbnQ2NF9hbGlnbmVkX3Qgc3RhcnQsIGVuZDsKPiArfTsKPiArCj4gKyNkZWZpbmUgWEVO
X0RNT1BfUENJX1NCREYocyxiLGQsZikgXAo+ICsJKCgoKHMpICYgMHhmZmZmKSA8PCAxNikgfCAg
XAo+ICsJICgoKGIpICYgMHhmZikgPDwgOCkgfCAgICAgXAo+ICsJICgoKGQpICYgMHgxZikgPDwg
MykgfCAgICAgXAo+ICsJICgoZikgJiAweDA3KSkKPiArCj4gKy8qCj4gKyAqIFhFTl9ETU9QX3Nl
dF9pb3JlcV9zZXJ2ZXJfc3RhdGU6IEVuYWJsZSBvciBkaXNhYmxlIHRoZSBJT1JFUSBTZXJ2ZXIg
PGlkPgo+ICsgKgo+ICsgKiBUaGUgSU9SRVEgU2VydmVyIHdpbGwgbm90IGJlIHBhc3NlZCBhbnkg
ZW11bGF0aW9uIHJlcXVlc3RzIHVudGlsIGl0IGlzCj4gKyAqIGluIHRoZSBlbmFibGVkIHN0YXRl
Lgo+ICsgKiBOb3RlIHRoYXQgdGhlIGNvbnRlbnRzIG9mIHRoZSBpb3JlcV9nZm4gYW5kIGJ1Zmlv
cmVxX2dmbiAoc2VlCj4gKyAqIFhFTl9ETU9QX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbykgYXJlIG5v
dCBtZWFuaW5nZnVsIHVudGlsIHRoZSBJT1JFUSBTZXJ2ZXIKPiArICogaXMgaW4gdGhlIGVuYWJs
ZWQgc3RhdGUuCj4gKyAqLwo+ICsjZGVmaW5lIFhFTl9ETU9QX3NldF9pb3JlcV9zZXJ2ZXJfc3Rh
dGUgNQo+ICsKPiArc3RydWN0IHhlbl9kbV9vcF9zZXRfaW9yZXFfc2VydmVyX3N0YXRlIHsKPiAr
ICAgIC8qIElOIC0gc2VydmVyIGlkICovCj4gKyAgICBpb3NlcnZpZF90IGlkOwo+ICsgICAgLyog
SU4gLSBlbmFibGVkPyAqLwo+ICsgICAgdWludDhfdCBlbmFibGVkOwo+ICsgICAgdWludDhfdCBw
YWQ7Cj4gK307Cj4gKwo+ICsvKgo+ICsgKiBYRU5fRE1PUF9kZXN0cm95X2lvcmVxX3NlcnZlcjog
RGVzdHJveSB0aGUgSU9SRVEgU2VydmVyIDxpZD4uCj4gKyAqCj4gKyAqIEFueSByZWdpc3RlcmVk
IEkvTyByYW5nZXMgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGRlcmVnaXN0ZXJlZC4KPiArICovCj4g
KyNkZWZpbmUgWEVOX0RNT1BfZGVzdHJveV9pb3JlcV9zZXJ2ZXIgNgo+ICsKPiArc3RydWN0IHhl
bl9kbV9vcF9kZXN0cm95X2lvcmVxX3NlcnZlciB7Cj4gKyAgICAvKiBJTiAtIHNlcnZlciBpZCAq
Lwo+ICsgICAgaW9zZXJ2aWRfdCBpZDsKPiArICAgIHVpbnQxNl90IHBhZDsKPiArfTsKPiArCj4g
Ky8qCj4gKyAqIFhFTl9ETU9QX3RyYWNrX2RpcnR5X3ZyYW06IFRyYWNrIG1vZGlmaWNhdGlvbnMg
dG8gdGhlIHNwZWNpZmllZCBwZm4KPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFu
Z2UuCj4gKyAqCj4gKyAqIE5PVEU6IFRoZSBiaXRtYXAgcGFzc2VkIGJhY2sgdG8gdGhlIGNhbGxl
ciBpcyBwYXNzZWQgaW4gYQo+ICsgKiAgICAgICBzZWNvbmRhcnkgYnVmZmVyLgo+ICsgKi8KPiAr
I2RlZmluZSBYRU5fRE1PUF90cmFja19kaXJ0eV92cmFtIDcKPiArCj4gK3N0cnVjdCB4ZW5fZG1f
b3BfdHJhY2tfZGlydHlfdnJhbSB7Cj4gKyAgICAvKiBJTiAtIG51bWJlciBvZiBwYWdlcyB0byBi
ZSB0cmFja2VkICovCj4gKyAgICB1aW50MzJfdCBucjsKPiArICAgIHVpbnQzMl90IHBhZDsKPiAr
ICAgIC8qIElOIC0gZmlyc3QgcGZuIHRvIHRyYWNrICovCj4gKyAgICB1aW50NjRfYWxpZ25lZF90
IGZpcnN0X3BmbjsKPiArfTsKPiArCj4gKy8qCj4gKyAqIFhFTl9ETU9QX3NldF9wY2lfaW50eF9s
ZXZlbDogU2V0IHRoZSBsb2dpY2FsIGxldmVsIG9mIG9uZSBvZiBhIGRvbWFpbidzCj4gKyAqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJIElOVHggcGlucy4KPiArICovCj4gKyNkZWZp
bmUgWEVOX0RNT1Bfc2V0X3BjaV9pbnR4X2xldmVsIDgKPiArCj4gK3N0cnVjdCB4ZW5fZG1fb3Bf
c2V0X3BjaV9pbnR4X2xldmVsIHsKPiArICAgIC8qIElOIC0gUENJIElOVHggaWRlbnRpZmljYXRp
b24gKGRvbWFpbjpidXM6ZGV2aWNlOmludHgpICovCj4gKyAgICB1aW50MTZfdCBkb21haW47Cj4g
KyAgICB1aW50OF90IGJ1cywgZGV2aWNlLCBpbnR4Owo+ICsgICAgLyogSU4gLSBMZXZlbDogMCAt
PiBkZWFzc2VydGVkLCAxIC0+IGFzc2VydGVkICovCj4gKyAgICB1aW50OF90ICBsZXZlbDsKPiAr
fTsKPiArCj4gKy8qCj4gKyAqIFhFTl9ETU9QX3NldF9pc2FfaXJxX2xldmVsOiBTZXQgdGhlIGxv
Z2ljYWwgbGV2ZWwgb2YgYSBvbmUgb2YgYSBkb21haW4ncwo+ICsgKiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgSVNBIElSUSBsaW5lcy4KPiArICovCj4gKyNkZWZpbmUgWEVOX0RNT1Bfc2V0
X2lzYV9pcnFfbGV2ZWwgOQo+ICsKPiArc3RydWN0IHhlbl9kbV9vcF9zZXRfaXNhX2lycV9sZXZl
bCB7Cj4gKyAgICAvKiBJTiAtIElTQSBJUlEgKDAtMTUpICovCj4gKyAgICB1aW50OF90ICBpc2Ff
aXJxOwo+ICsgICAgLyogSU4gLSBMZXZlbDogMCAtPiBkZWFzc2VydGVkLCAxIC0+IGFzc2VydGVk
ICovCj4gKyAgICB1aW50OF90ICBsZXZlbDsKPiArfTsKPiArCj4gKy8qCj4gKyAqIFhFTl9ETU9Q
X3NldF9wY2lfbGlua19yb3V0ZTogTWFwIGEgUENJIElOVHggbGluZSB0byBhbiBJUlEgbGluZS4K
PiArICovCj4gKyNkZWZpbmUgWEVOX0RNT1Bfc2V0X3BjaV9saW5rX3JvdXRlIDEwCj4gKwo+ICtz
dHJ1Y3QgeGVuX2RtX29wX3NldF9wY2lfbGlua19yb3V0ZSB7Cj4gKyAgICAvKiBQQ0kgSU5UeCBs
aW5lICgwLTMpICovCj4gKyAgICB1aW50OF90ICBsaW5rOwo+ICsgICAgLyogSVNBIElSUSAoMS0x
NSkgb3IgMCAtPiBkaXNhYmxlIGxpbmsgKi8KPiArICAgIHVpbnQ4X3QgIGlzYV9pcnE7Cj4gK307
Cj4gKwo+ICsvKgo+ICsgKiBYRU5fRE1PUF9tb2RpZmllZF9tZW1vcnk6IE5vdGlmeSB0aGF0IGEg
c2V0IG9mIHBhZ2VzIHdlcmUgbW9kaWZpZWQgYnkKPiArICogICAgICAgICAgICAgICAgICAgICAg
ICAgICBhbiBlbXVsYXRvci4KPiArICoKPiArICogRE1PUCBidWYgMSBjb250YWlucyBhbiBhcnJh
eSBvZiB4ZW5fZG1fb3BfbW9kaWZpZWRfbWVtb3J5X2V4dGVudCB3aXRoCj4gKyAqIEBucl9leHRl
bnRzIGVudHJpZXMuCj4gKyAqCj4gKyAqIE9uIGVycm9yLCBAbnJfZXh0ZW50cyB3aWxsIGNvbnRh
aW4gdGhlIGluZGV4KzEgb2YgdGhlIGV4dGVudCB0aGF0Cj4gKyAqIGhhZCB0aGUgZXJyb3IuICBJ
dCBpcyBub3QgZGVmaW5lZCBpZiBvciB3aGljaCBwYWdlcyBtYXkgaGF2ZSBiZWVuCj4gKyAqIG1h
cmtlZCBhcyBkaXJ0eSwgaW4gdGhpcyBldmVudC4KPiArICovCj4gKyNkZWZpbmUgWEVOX0RNT1Bf
bW9kaWZpZWRfbWVtb3J5IDExCj4gKwo+ICtzdHJ1Y3QgeGVuX2RtX29wX21vZGlmaWVkX21lbW9y
eSB7Cj4gKyAgICAvKgo+ICsgICAgICogSU4gLSBOdW1iZXIgb2YgZXh0ZW50cyB0byBiZSBwcm9j
ZXNzZWQKPiArICAgICAqIE9VVCAtcmV0dXJucyBuKzEgZm9yIGZhaWxpbmcgZXh0ZW50Cj4gKyAg
ICAgKi8KPiArICAgIHVpbnQzMl90IG5yX2V4dGVudHM7Cj4gKyAgICAvKiBJTi9PVVQgLSBNdXN0
IGJlIHNldCB0byAwICovCj4gKyAgICB1aW50MzJfdCBvcGFxdWU7Cj4gK307Cj4gKwo+ICtzdHJ1
Y3QgeGVuX2RtX29wX21vZGlmaWVkX21lbW9yeV9leHRlbnQgewo+ICsgICAgLyogSU4gLSBudW1i
ZXIgb2YgY29udGlndW91cyBwYWdlcyBtb2RpZmllZCAqLwo+ICsgICAgdWludDMyX3QgbnI7Cj4g
KyAgICB1aW50MzJfdCBwYWQ7Cj4gKyAgICAvKiBJTiAtIGZpcnN0IHBmbiBtb2RpZmllZCAqLwo+
ICsgICAgdWludDY0X2FsaWduZWRfdCBmaXJzdF9wZm47Cj4gK307Cj4gKwo+ICsvKgo+ICsgKiBY
RU5fRE1PUF9zZXRfbWVtX3R5cGU6IE5vdGlmeSB0aGF0IGEgcmVnaW9uIG9mIG1lbW9yeSBpcyB0
byBiZSB0cmVhdGVkCj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgaW4gYSBzcGVjaWZpYyB3
YXkuIChTZWUgZGVmaW5pdGlvbiBvZgo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgIGh2bW1l
bV90eXBlX3QpLgo+ICsgKgo+ICsgKiBOT1RFOiBJbiB0aGUgZXZlbnQgb2YgYSBjb250aW51YXRp
b24gKHJldHVybiBjb2RlIC1FUkVTVEFSVCksIHRoZQo+ICsgKiAgICAgICBAZmlyc3RfcGZuIGlz
IHNldCB0byB0aGUgdmFsdWUgb2YgdGhlIHBmbiBvZiB0aGUgcmVtYWluaW5nCj4gKyAqICAgICAg
IHJlZ2lvbiBhbmQgQG5yIHJlZHVjZWQgdG8gdGhlIHNpemUgb2YgdGhlIHJlbWFpbmluZyByZWdp
b24uCj4gKyAqLwo+ICsjZGVmaW5lIFhFTl9ETU9QX3NldF9tZW1fdHlwZSAxMgo+ICsKPiArc3Ry
dWN0IHhlbl9kbV9vcF9zZXRfbWVtX3R5cGUgewo+ICsgICAgLyogSU4gLSBudW1iZXIgb2YgY29u
dGlndW91cyBwYWdlcyAqLwo+ICsgICAgdWludDMyX3QgbnI7Cj4gKyAgICAvKiBJTiAtIG5ldyBo
dm1tZW1fdHlwZV90IG9mIHJlZ2lvbiAqLwo+ICsgICAgdWludDE2X3QgbWVtX3R5cGU7Cj4gKyAg
ICB1aW50MTZfdCBwYWQ7Cj4gKyAgICAvKiBJTiAtIGZpcnN0IHBmbiBpbiByZWdpb24gKi8KPiAr
ICAgIHVpbnQ2NF9hbGlnbmVkX3QgZmlyc3RfcGZuOwo+ICt9Owo+ICsKPiArLyoKPiArICogWEVO
X0RNT1BfaW5qZWN0X2V2ZW50OiBJbmplY3QgYW4gZXZlbnQgaW50byBhIFZDUFUsIHdoaWNoIHdp
bGwKPiArICogICAgICAgICAgICAgICAgICAgICAgICBnZXQgdGFrZW4gdXAgd2hlbiBpdCBpcyBu
ZXh0IHNjaGVkdWxlZC4KPiArICoKPiArICogTm90ZSB0aGF0IHRoZSBjYWxsZXIgc2hvdWxkIGtu
b3cgZW5vdWdoIG9mIHRoZSBzdGF0ZSBvZiB0aGUgQ1BVIGJlZm9yZQo+ICsgKiBpbmplY3Rpbmcs
IHRvIGtub3cgd2hhdCB0aGUgZWZmZWN0IG9mIGluamVjdGluZyB0aGUgZXZlbnQgd2lsbCBiZS4K
PiArICovCj4gKyNkZWZpbmUgWEVOX0RNT1BfaW5qZWN0X2V2ZW50IDEzCj4gKwo+ICtzdHJ1Y3Qg
eGVuX2RtX29wX2luamVjdF9ldmVudCB7Cj4gKyAgICAvKiBJTiAtIGluZGV4IG9mIHZDUFUgKi8K
PiArICAgIHVpbnQzMl90IHZjcHVpZDsKPiArICAgIC8qIElOIC0gaW50ZXJydXB0IHZlY3RvciAq
Lwo+ICsgICAgdWludDhfdCB2ZWN0b3I7Cj4gKyAgICAvKiBJTiAtIGV2ZW50IHR5cGUgKERNT1Bf
RVZFTlRfKiApICovCj4gKyAgICB1aW50OF90IHR5cGU7Cj4gKy8qIE5CLiBUaGlzIGVudW1lcmF0
aW9uIHByZWNpc2VseSBtYXRjaGVzIGh2bS5oOlg4Nl9FVkVOVFRZUEVfKiAqLwo+ICsjIGRlZmlu
ZSBYRU5fRE1PUF9FVkVOVF9leHRfaW50ICAgIDAgLyogZXh0ZXJuYWwgaW50ZXJydXB0ICovCj4g
KyMgZGVmaW5lIFhFTl9ETU9QX0VWRU5UX25taSAgICAgICAgMiAvKiBubWkgKi8KPiArIyBkZWZp
bmUgWEVOX0RNT1BfRVZFTlRfaHdfZXhjICAgICAzIC8qIGhhcmR3YXJlIGV4Y2VwdGlvbiAqLwo+
ICsjIGRlZmluZSBYRU5fRE1PUF9FVkVOVF9zd19pbnQgICAgIDQgLyogc29mdHdhcmUgaW50ZXJy
dXB0IChDRCBubikgKi8KPiArIyBkZWZpbmUgWEVOX0RNT1BfRVZFTlRfcHJpX3N3X2V4YyA1IC8q
IElDRUJQIChGMSkgKi8KPiArIyBkZWZpbmUgWEVOX0RNT1BfRVZFTlRfc3dfZXhjICAgICA2IC8q
IElOVDMgKENDKSwgSU5UTyAoQ0UpICovCj4gKyAgICAvKiBJTiAtIGluc3RydWN0aW9uIGxlbmd0
aCAqLwo+ICsgICAgdWludDhfdCBpbnNuX2xlbjsKPiArICAgIHVpbnQ4X3QgcGFkMDsKPiArICAg
IC8qIElOIC0gZXJyb3IgY29kZSAob3IgfjAgdG8gc2tpcCkgKi8KPiArICAgIHVpbnQzMl90IGVy
cm9yX2NvZGU7Cj4gKyAgICB1aW50MzJfdCBwYWQxOwo+ICsgICAgLyogSU4gLSBDUjIgZm9yIHBh
Z2UgZmF1bHRzICovCj4gKyAgICB1aW50NjRfYWxpZ25lZF90IGNyMjsKPiArfTsKPiArCj4gKy8q
Cj4gKyAqIFhFTl9ETU9QX2luamVjdF9tc2k6IEluamVjdCBhbiBNU0kgZm9yIGFuIGVtdWxhdGVk
IGRldmljZS4KPiArICovCj4gKyNkZWZpbmUgWEVOX0RNT1BfaW5qZWN0X21zaSAxNAo+ICsKPiAr
c3RydWN0IHhlbl9kbV9vcF9pbmplY3RfbXNpIHsKPiArICAgIC8qIElOIC0gTVNJIGRhdGEgKGxv
d2VyIDMyIGJpdHMpICovCj4gKyAgICB1aW50MzJfdCBkYXRhOwo+ICsgICAgdWludDMyX3QgcGFk
Owo+ICsgICAgLyogSU4gLSBNU0kgYWRkcmVzcyAoMHhmZWV4eHh4eCkgKi8KPiArICAgIHVpbnQ2
NF9hbGlnbmVkX3QgYWRkcjsKPiArfTsKPiArCj4gKy8qCj4gKyAqIFhFTl9ETU9QX21hcF9tZW1f
dHlwZV90b19pb3JlcV9zZXJ2ZXIgOiBtYXAgb3IgdW5tYXAgdGhlIElPUkVRIFNlcnZlciA8aWQ+
Cj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBzcGVjaWZpYyBt
ZW1vcnkgdHlwZSA8dHlwZT4KPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZvciBzcGVjaWZpYyBhY2Nlc3NlcyA8ZmxhZ3M+Cj4gKyAqCj4gKyAqIEZvciBub3csIGZs
YWdzIG9ubHkgYWNjZXB0IHRoZSB2YWx1ZSBvZiBYRU5fRE1PUF9JT1JFUV9NRU1fQUNDRVNTX1dS
SVRFLAo+ICsgKiB3aGljaCBtZWFucyBvbmx5IHdyaXRlIG9wZXJhdGlvbnMgYXJlIHRvIGJlIGZv
cndhcmRlZCB0byBhbiBpb3JlcSBzZXJ2ZXIuCj4gKyAqIFN1cHBvcnQgZm9yIHRoZSBlbXVsYXRp
b24gb2YgcmVhZCBvcGVyYXRpb25zIGNhbiBiZSBhZGRlZCB3aGVuIGFuIGlvcmVxCj4gKyAqIHNl
cnZlciBoYXMgc3VjaCByZXF1aXJlbWVudCBpbiBmdXR1cmUuCj4gKyAqLwo+ICsjZGVmaW5lIFhF
Tl9ETU9QX21hcF9tZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXIgMTUKPiArCj4gK3N0cnVjdCB4ZW5f
ZG1fb3BfbWFwX21lbV90eXBlX3RvX2lvcmVxX3NlcnZlciB7Cj4gKyAgICBpb3NlcnZpZF90IGlk
OyAgICAgIC8qIElOIC0gaW9yZXEgc2VydmVyIGlkICovCj4gKyAgICB1aW50MTZfdCB0eXBlOyAg
ICAgIC8qIElOIC0gbWVtb3J5IHR5cGUgKi8KPiArICAgIHVpbnQzMl90IGZsYWdzOyAgICAgLyog
SU4gLSB0eXBlcyBvZiBhY2Nlc3NlcyB0byBiZSBmb3J3YXJkZWQgdG8gdGhlCj4gKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlvcmVxIHNlcnZlci4gZmxhZ3Mgd2l0aCAwIG1lYW5zIHRvIHVu
bWFwIHRoZQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBpb3JlcSBzZXJ2ZXIgKi8KPiAr
Cj4gKyNkZWZpbmUgWEVOX0RNT1BfSU9SRVFfTUVNX0FDQ0VTU19SRUFEICgxdSA8PCAwKQo+ICsj
ZGVmaW5lIFhFTl9ETU9QX0lPUkVRX01FTV9BQ0NFU1NfV1JJVEUgKDF1IDw8IDEpCj4gKwo+ICsg
ICAgdWludDY0X3Qgb3BhcXVlOyAgICAvKiBJTi9PVVQgLSBvbmx5IHVzZWQgZm9yIGh5cGVyY2Fs
bCBjb250aW51YXRpb24sCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhcyB0byBiZSBz
ZXQgdG8gemVybyBieSB0aGUgY2FsbGVyICovCj4gK307Cj4gKwo+ICtzdHJ1Y3QgeGVuX2RtX29w
IHsKPiArICAgIHVpbnQzMl90IG9wOwo+ICsgICAgdWludDMyX3QgcGFkOwo+ICsgICAgdW5pb24g
ewo+ICsgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3BfY3JlYXRlX2lvcmVxX3NlcnZlciBjcmVhdGVf
aW9yZXFfc2VydmVyOwo+ICsgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3BfZ2V0X2lvcmVxX3NlcnZl
cl9pbmZvIGdldF9pb3JlcV9zZXJ2ZXJfaW5mbzsKPiArICAgICAgICBzdHJ1Y3QgeGVuX2RtX29w
X2lvcmVxX3NlcnZlcl9yYW5nZSBtYXBfaW9fcmFuZ2VfdG9faW9yZXFfc2VydmVyOwo+ICsgICAg
ICAgIHN0cnVjdCB4ZW5fZG1fb3BfaW9yZXFfc2VydmVyX3JhbmdlIHVubWFwX2lvX3JhbmdlX2Zy
b21faW9yZXFfc2VydmVyOwo+ICsgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X2lvcmVxX3Nl
cnZlcl9zdGF0ZSBzZXRfaW9yZXFfc2VydmVyX3N0YXRlOwo+ICsgICAgICAgIHN0cnVjdCB4ZW5f
ZG1fb3BfZGVzdHJveV9pb3JlcV9zZXJ2ZXIgZGVzdHJveV9pb3JlcV9zZXJ2ZXI7Cj4gKyAgICAg
ICAgc3RydWN0IHhlbl9kbV9vcF90cmFja19kaXJ0eV92cmFtIHRyYWNrX2RpcnR5X3ZyYW07Cj4g
KyAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9zZXRfcGNpX2ludHhfbGV2ZWwgc2V0X3BjaV9pbnR4
X2xldmVsOwo+ICsgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X2lzYV9pcnFfbGV2ZWwgc2V0
X2lzYV9pcnFfbGV2ZWw7Cj4gKyAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9zZXRfcGNpX2xpbmtf
cm91dGUgc2V0X3BjaV9saW5rX3JvdXRlOwo+ICsgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3BfbW9k
aWZpZWRfbWVtb3J5IG1vZGlmaWVkX21lbW9yeTsKPiArICAgICAgICBzdHJ1Y3QgeGVuX2RtX29w
X3NldF9tZW1fdHlwZSBzZXRfbWVtX3R5cGU7Cj4gKyAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9p
bmplY3RfZXZlbnQgaW5qZWN0X2V2ZW50Owo+ICsgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3BfaW5q
ZWN0X21zaSBpbmplY3RfbXNpOwo+ICsgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3BfbWFwX21lbV90
eXBlX3RvX2lvcmVxX3NlcnZlcgo+ICsgICAgICAgICAgICAgICAgbWFwX21lbV90eXBlX3RvX2lv
cmVxX3NlcnZlcjsKPiArICAgIH0gdTsKPiArfTsKPiArCj4gKyNlbmRpZiAvKiBfX1hFTl9fIHx8
IF9fWEVOX1RPT0xTX18gKi8KPiArCj4gK3N0cnVjdCB4ZW5fZG1fb3BfYnVmIHsKPiArICAgIFhF
Tl9HVUVTVF9IQU5ETEUodm9pZCkgaDsKPiArICAgIHhlbl91bG9uZ190IHNpemU7Cj4gK307Cj4g
K3R5cGVkZWYgc3RydWN0IHhlbl9kbV9vcF9idWYgeGVuX2RtX29wX2J1Zl90Owo+ICtERUZJTkVf
WEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG1fb3BfYnVmX3QpOwo+ICsKPiArLyogYCBlbnVtIG5lZ19l
cnJub3ZhbAo+ICsgKiBgIEhZUEVSVklTT1JfZG1fb3AoZG9taWRfdCBkb21pZCwKPiArICogYCAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBucl9idWZzLAo+ICsgKiBgICAgICAgICAgICAg
ICAgICAgeGVuX2RtX29wX2J1Zl90IGJ1ZnNbXSkKPiArICogYAo+ICsgKgo+ICsgKiBAZG9taWQg
aXMgdGhlIGRvbWFpbiB0aGUgaHlwZXJjYWxsIG9wZXJhdGVzIG9uLgo+ICsgKiBAbnJfYnVmcyBp
cyB0aGUgbnVtYmVyIG9mIGJ1ZmZlcnMgaW4gdGhlIEBidWZzIGFycmF5Lgo+ICsgKiBAYnVmcyBw
b2ludHMgdG8gYW4gYXJyYXkgb2YgYnVmZmVycyB3aGVyZSBAYnVmc1swXSBjb250YWlucyBhIHN0
cnVjdAo+ICsgKiB4ZW5fZG1fb3AsIGRlc2NyaWJpbmcgdGhlIHNwZWNpZmljIGRldmljZSBtb2Rl
bCBvcGVyYXRpb24gYW5kIGl0cwo+ICsgKiBwYXJhbWV0ZXJzLgo+ICsgKiBAYnVmc1sxLi5dIG1h
eSBiZSByZWZlcmVuY2VkIGluIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgcHVycG9zZXMgb2YKPiAr
ICogcGFzc2luZyBleHRyYSBpbmZvcm1hdGlvbiB0byBvciBmcm9tIHRoZSBkb21haW4uCj4gKyAq
Lwo+ICsKPiArI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19IVk1fRE1fT1BfSF9fICovCj4gKwo+ICsv
Kgo+ICsgKiBMb2NhbCB2YXJpYWJsZXM6Cj4gKyAqIG1vZGU6IEMKPiArICogYy1maWxlLXN0eWxl
OiAiQlNEIgo+ICsgKiBjLWJhc2ljLW9mZnNldDogNAo+ICsgKiB0YWItd2lkdGg6IDQKPiArICog
aW5kZW50LXRhYnMtbW9kZTogbmlsCj4gKyAqIEVuZDoKPiArICovCj4gZGlmZiAtLWdpdCBhL2lu
Y2x1ZGUveGVuL2h2bS9lODIwLmggYi9pbmNsdWRlL3hlbi9odm0vZTgyMC5oCj4gaW5kZXggNWJk
YzIyNy4uNGM0MmYzMyAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3hlbi9odm0vZTgyMC5oCj4gKysr
IGIvaW5jbHVkZS94ZW4vaHZtL2U4MjAuaAo+IEBAIC0xLDQgKzEsMyBAQAo+IC0KPiAgLyoKPiAg
ICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBw
ZXJzb24gb2J0YWluaW5nIGEgY29weQo+ICAgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lh
dGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KPiBAQCAtMTcsMTEg
KzE2LDE1IEBACj4gICAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJB
Q1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4gICAqIEZST00sIE9VVCBPRiBPUiBJTiBD
T05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKPiAgICogREVB
TElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+ICsgKgo+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMDYsIEtl
aXIgRnJhc2VyCj4gICAqLwo+ICAKPiAgI2lmbmRlZiBfX1hFTl9QVUJMSUNfSFZNX0U4MjBfSF9f
Cj4gICNkZWZpbmUgX19YRU5fUFVCTElDX0hWTV9FODIwX0hfXwo+ICAKPiArI2luY2x1ZGUgIi4u
L3hlbi5oIgo+ICsKPiAgLyogRTgyMCBsb2NhdGlvbiBpbiBIVk0gdmlydHVhbCBhZGRyZXNzIHNw
YWNlLiAqLwo+ICAjZGVmaW5lIEhWTV9FODIwX1BBR0UgICAgICAgIDB4MDAwOTAwMDAKPiAgI2Rl
ZmluZSBIVk1fRTgyMF9OUl9PRkZTRVQgICAweDAwMDAwMUU4Cj4gQEAgLTI5LDYgKzMyLDcgQEAK
PiAgCj4gICNkZWZpbmUgSFZNX0JFTE9XXzRHX1JBTV9FTkQgICAgICAgIDB4RjAwMDAwMDAKPiAg
I2RlZmluZSBIVk1fQkVMT1dfNEdfTU1JT19TVEFSVCAgICAgSFZNX0JFTE9XXzRHX1JBTV9FTkQK
PiAtI2RlZmluZSBIVk1fQkVMT1dfNEdfTU1JT19MRU5HVEggICAgKCgxVUxMIDw8IDMyKSAtIEhW
TV9CRUxPV180R19NTUlPX1NUQVJUKQo+ICsjZGVmaW5lIEhWTV9CRUxPV180R19NTUlPX0xFTkdU
SCAgICAoKHhlbl9ta191bGxvbmcoMSkgPDwgMzIpIC0gXAo+ICsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgSFZNX0JFTE9XXzRHX01NSU9fU1RBUlQpCj4gIAo+ICAjZW5kaWYg
LyogX19YRU5fUFVCTElDX0hWTV9FODIwX0hfXyAqLwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3hl
bi9odm0vaHZtX2luZm9fdGFibGUuaCBiL2luY2x1ZGUveGVuL2h2bS9odm1faW5mb190YWJsZS5o
Cj4gaW5kZXggMzYwODVmYS4uMDhjMjUyZSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3hlbi9odm0v
aHZtX2luZm9fdGFibGUuaAo+ICsrKyBiL2luY2x1ZGUveGVuL2h2bS9odm1faW5mb190YWJsZS5o
Cj4gQEAgLTIwLDYgKzIwLDggQEAKPiAgICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP
TiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiAgICogRlJPTSwgT1VU
IE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhF
Ugo+ICAgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4gKyAqCj4gKyAqIENvcHlyaWdodCAo
YykgMjAwNiwgS2VpciBGcmFzZXIKPiAgICovCj4gIAo+ICAjaWZuZGVmIF9fWEVOX1BVQkxJQ19I
Vk1fSFZNX0lORk9fVEFCTEVfSF9fCj4gQEAgLTMyLDYgKzM0LDE0IEBACj4gIC8qIE1heGltdW0g
d2UgY2FuIHN1cHBvcnQgd2l0aCBjdXJyZW50IHZMQVBJQyBJRCBtYXBwaW5nLiAqLwo+ICAjZGVm
aW5lIEhWTV9NQVhfVkNQVVMgICAgICAgIDEyOAo+ICAKPiArLyoKPiArICogSW4gc29tZSBjYXNl
cyBTTVAgSFZNIGd1ZXN0cyBtYXkgcmVxdWlyZSBrbm93bGVkZ2Ugb2YgWGVuJ3MgaWRlYSBvZiB2
Q1BVIGlkcwo+ICsgKiBmb3IgdGhlaXIgdkNQVXMuIEZvciBleGFtcGxlLCBIWVBFUlZJU09SX3Zj
cHVfb3AgYW5kIHNvbWUgRVZUQ0hOT1BfKgo+ICsgKiBoeXBlcmNhbGxzIHRha2UgdmNwdSBpZCBh
cyBhIHBhcmFtZXRlci4gSXQgaXMgdmFsaWQgZm9yIEhWTSBndWVzdHMgdG8gYXNzdW1lCj4gKyAq
IHRoYXQgWGVuJ3MgdkNQVSBpZCBhbHdheXMgZXF1YWxzIHRvIEFDUEkgKG5vdCBBUElDISkgaWQg
aW4gTUFEVCB0YWJsZSB3aGljaAo+ICsgKiBpcyBhbHdheXMgcHJlc2VudCBmb3IgU01QIGd1ZXN0
cy4KPiArICovCj4gKwo+ICBzdHJ1Y3QgaHZtX2luZm9fdGFibGUgewo+ICAgICAgY2hhciAgICAg
ICAgc2lnbmF0dXJlWzhdOyAvKiAiSFZNIElORk8iICovCj4gICAgICB1aW50MzJfdCAgICBsZW5n
dGg7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2h2bS9odm1fb3AuaCBiL2luY2x1ZGUveGVu
L2h2bS9odm1fb3AuaAo+IGluZGV4IGNkZTM1NzEuLjBiZGFmZGYgMTAwNjQ0Cj4gLS0tIGEvaW5j
bHVkZS94ZW4vaHZtL2h2bV9vcC5oCj4gKysrIGIvaW5jbHVkZS94ZW4vaHZtL2h2bV9vcC5oCj4g
QEAgLTE2LDYgKzE2LDggQEAKPiAgICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBP
RiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiAgICogRlJPTSwgT1VUIE9G
IE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgo+
ICAgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4gKyAqCj4gKyAqIENvcHlyaWdodCAoYykg
MjAwNywgS2VpciBGcmFzZXIKPiAgICovCj4gIAo+ICAjaWZuZGVmIF9fWEVOX1BVQkxJQ19IVk1f
SFZNX09QX0hfXwo+IEBAIC0zNiw2ICszOCw4IEBAIHN0cnVjdCB4ZW5faHZtX3BhcmFtIHsKPiAg
dHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9wYXJhbSB4ZW5faHZtX3BhcmFtX3Q7Cj4gIERFRklORV9Y
RU5fR1VFU1RfSEFORExFKHhlbl9odm1fcGFyYW1fdCk7Cj4gIAo+ICsjaWYgX19YRU5fSU5URVJG
QUNFX1ZFUlNJT05fXyA8IDB4MDAwNDA5MDAKPiArCj4gIC8qIFNldCB0aGUgbG9naWNhbCBsZXZl
bCBvZiBvbmUgb2YgYSBkb21haW4ncyBQQ0kgSU5UeCB3aXJlcy4gKi8KPiAgI2RlZmluZSBIVk1P
UF9zZXRfcGNpX2ludHhfbGV2ZWwgIDIKPiAgc3RydWN0IHhlbl9odm1fc2V0X3BjaV9pbnR4X2xl
dmVsIHsKPiBAQCAtNzQsNiArNzgsOCBAQCBzdHJ1Y3QgeGVuX2h2bV9zZXRfcGNpX2xpbmtfcm91
dGUgewo+ICB0eXBlZGVmIHN0cnVjdCB4ZW5faHZtX3NldF9wY2lfbGlua19yb3V0ZSB4ZW5faHZt
X3NldF9wY2lfbGlua19yb3V0ZV90Owo+ICBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZt
X3NldF9wY2lfbGlua19yb3V0ZV90KTsKPiAgCj4gKyNlbmRpZiAvKiBfX1hFTl9JTlRFUkZBQ0Vf
VkVSU0lPTl9fIDwgMHgwMDA0MDkwMCAqLwo+ICsKPiAgLyogRmx1c2hlcyBhbGwgVkNQVSBUTEJz
OiBAYXJnIG11c3QgYmUgTlVMTC4gKi8KPiAgI2RlZmluZSBIVk1PUF9mbHVzaF90bGJzICAgICAg
ICAgIDUKPiAgCj4gQEAgLTgxLDU4ICs4NywyMSBAQCB0eXBlZGVmIGVudW0gewo+ICAgICAgSFZN
TUVNX3JhbV9ydywgICAgICAgICAgICAgLyogTm9ybWFsIHJlYWQvd3JpdGUgZ3Vlc3QgUkFNICov
Cj4gICAgICBIVk1NRU1fcmFtX3JvLCAgICAgICAgICAgICAvKiBSZWFkLW9ubHk7IHdyaXRlcyBh
cmUgZGlzY2FyZGVkICovCj4gICAgICBIVk1NRU1fbW1pb19kbSwgICAgICAgICAgICAvKiBSZWFk
cyBhbmQgd3JpdGUgZ28gdG8gdGhlIGRldmljZSBtb2RlbCAqLwo+IC0gICAgSFZNTUVNX21taW9f
d3JpdGVfZG0gICAgICAgLyogUmVhZC1vbmx5OyB3cml0ZXMgZ28gdG8gdGhlIGRldmljZSBtb2Rl
bCAqLwo+ICsjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAwNDA3MDAKPiArICAg
IEhWTU1FTV9tbWlvX3dyaXRlX2RtLCAgICAgIC8qIFJlYWQtb25seTsgd3JpdGVzIGdvIHRvIHRo
ZSBkZXZpY2UgbW9kZWwgKi8KPiArI2Vsc2UKPiArICAgIEhWTU1FTV91bnVzZWQsICAgICAgICAg
ICAgIC8qIFBsYWNlaG9sZGVyOyBzZXR0aW5nIG1lbW9yeSB0byB0aGlzIHR5cGUKPiArICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGwgZmFpbCBmb3IgY29kZSBhZnRlciA0Ljcu
MCAqLwo+ICsjZW5kaWYKPiArICAgIEhWTU1FTV9pb3JlcV9zZXJ2ZXIgICAgICAgIC8qIE1lbW9y
eSB0eXBlIGNsYWltZWQgYnkgYW4gaW9yZXEgc2VydmVyOyB0eXBlCj4gKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGFuZ2VzIHRvIHRoaXMgdmFsdWUgYXJlIG9ubHkgYWxsb3dl
ZCBhZnRlcgo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW4gaW9yZXEgc2Vy
dmVyIGhhcyBjbGFpbWVkIGl0cyBvd25lcnNoaXAuCj4gKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBPbmx5IHBhZ2VzIHdpdGggSFZNTUVNX3JhbV9ydyBhcmUgYWxsb3dlZCB0bwo+
ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlIHRvIHRoaXMgdHlwZTsg
Y29udmVyc2VseSwgcGFnZXMgd2l0aAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpcyB0eXBlIGFyZSBvbmx5IGFsbG93ZWQgdG8gYmUgY2hhbmdlZCBiYWNrCj4gKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBIVk1NRU1fcmFtX3J3LiAqLwo+ICB9IGh2
bW1lbV90eXBlX3Q7Cj4gIAo+IC0vKiBGb2xsb3dpbmcgdG9vbHMtb25seSBpbnRlcmZhY2VzIG1h
eSBjaGFuZ2UgaW4gZnV0dXJlLiAqLwo+IC0jaWYgZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVk
KF9fWEVOX1RPT0xTX18pCj4gLQo+IC0vKiBUcmFjayBkaXJ0eSBWUkFNLiAqLwo+IC0jZGVmaW5l
IEhWTU9QX3RyYWNrX2RpcnR5X3ZyYW0gICAgNgo+IC1zdHJ1Y3QgeGVuX2h2bV90cmFja19kaXJ0
eV92cmFtIHsKPiAtICAgIC8qIERvbWFpbiB0byBiZSB0cmFja2VkLiAqLwo+IC0gICAgZG9taWRf
dCAgZG9taWQ7Cj4gLSAgICAvKiBOdW1iZXIgb2YgcGFnZXMgdG8gdHJhY2suICovCj4gLSAgICB1
aW50MzJfdCBucjsKPiAtICAgIC8qIEZpcnN0IHBmbiB0byB0cmFjay4gKi8KPiAtICAgIHVpbnQ2
NF9hbGlnbmVkX3QgZmlyc3RfcGZuOwo+IC0gICAgLyogT1VUIHZhcmlhYmxlLiAqLwo+IC0gICAg
LyogRGlydHkgYml0bWFwIGJ1ZmZlci4gKi8KPiAtICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQodWlu
dDgpIGRpcnR5X2JpdG1hcDsKPiAtfTsKPiAtdHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV90cmFja19k
aXJ0eV92cmFtIHhlbl9odm1fdHJhY2tfZGlydHlfdnJhbV90Owo+IC1ERUZJTkVfWEVOX0dVRVNU
X0hBTkRMRSh4ZW5faHZtX3RyYWNrX2RpcnR5X3ZyYW1fdCk7Cj4gLQo+IC0vKiBOb3RpZnkgdGhh
dCBzb21lIHBhZ2VzIGdvdCBtb2RpZmllZCBieSB0aGUgRGV2aWNlIE1vZGVsLiAqLwo+IC0jZGVm
aW5lIEhWTU9QX21vZGlmaWVkX21lbW9yeSAgICA3Cj4gLXN0cnVjdCB4ZW5faHZtX21vZGlmaWVk
X21lbW9yeSB7Cj4gLSAgICAvKiBEb21haW4gdG8gYmUgdXBkYXRlZC4gKi8KPiAtICAgIGRvbWlk
X3QgIGRvbWlkOwo+IC0gICAgLyogTnVtYmVyIG9mIHBhZ2VzLiAqLwo+IC0gICAgdWludDMyX3Qg
bnI7Cj4gLSAgICAvKiBGaXJzdCBwZm4uICovCj4gLSAgICB1aW50NjRfYWxpZ25lZF90IGZpcnN0
X3BmbjsKPiAtfTsKPiAtdHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9tb2RpZmllZF9tZW1vcnkgeGVu
X2h2bV9tb2RpZmllZF9tZW1vcnlfdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2
bV9tb2RpZmllZF9tZW1vcnlfdCk7Cj4gLQo+IC0jZGVmaW5lIEhWTU9QX3NldF9tZW1fdHlwZSAg
ICA4Cj4gLS8qIE5vdGlmeSB0aGF0IGEgcmVnaW9uIG9mIG1lbW9yeSBpcyB0byBiZSB0cmVhdGVk
IGluIGEgc3BlY2lmaWMgd2F5LiAqLwo+IC1zdHJ1Y3QgeGVuX2h2bV9zZXRfbWVtX3R5cGUgewo+
IC0gICAgLyogRG9tYWluIHRvIGJlIHVwZGF0ZWQuICovCj4gLSAgICBkb21pZF90IGRvbWlkOwo+
IC0gICAgLyogTWVtb3J5IHR5cGUgKi8KPiAtICAgIHVpbnQxNl90IGh2bW1lbV90eXBlOwo+IC0g
ICAgLyogTnVtYmVyIG9mIHBhZ2VzLiAqLwo+IC0gICAgdWludDMyX3QgbnI7Cj4gLSAgICAvKiBG
aXJzdCBwZm4uICovCj4gLSAgICB1aW50NjRfYWxpZ25lZF90IGZpcnN0X3BmbjsKPiAtfTsKPiAt
dHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9zZXRfbWVtX3R5cGUgeGVuX2h2bV9zZXRfbWVtX3R5cGVf
dDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9zZXRfbWVtX3R5cGVfdCk7Cj4g
LQo+IC0jZW5kaWYgLyogZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18p
ICovCj4gLQo+ICAvKiBIaW50IGZyb20gUFYgZHJpdmVycyBmb3IgcGFnZXRhYmxlIGRlc3RydWN0
aW9uLiAqLwo+ICAjZGVmaW5lIEhWTU9QX3BhZ2V0YWJsZV9keWluZyAgICAgICAgOQo+ICBzdHJ1
Y3QgeGVuX2h2bV9wYWdldGFibGVfZHlpbmcgewo+IEBAIC0xNzAsMzggKzEzOSw2IEBAIERFRklO
RV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1feGVudHJhY2VfdCk7Cj4gIC8qIERlcHJlY2F0ZWQg
YnkgWEVOTUVNX2FjY2Vzc19vcF9nZXRfYWNjZXNzICovCj4gICNkZWZpbmUgSFZNT1BfZ2V0X21l
bV9hY2Nlc3MgICAgICAgIDEzCj4gIAo+IC0jZGVmaW5lIEhWTU9QX2luamVjdF90cmFwICAgICAg
ICAgICAgMTQKPiAtLyogSW5qZWN0IGEgdHJhcCBpbnRvIGEgVkNQVSwgd2hpY2ggd2lsbCBnZXQg
dGFrZW4gdXAgb24gdGhlIG5leHQKPiAtICogc2NoZWR1bGluZyBvZiBpdC4gTm90ZSB0aGF0IHRo
ZSBjYWxsZXIgc2hvdWxkIGtub3cgZW5vdWdoIG9mIHRoZQo+IC0gKiBzdGF0ZSBvZiB0aGUgQ1BV
IGJlZm9yZSBpbmplY3RpbmcsIHRvIGtub3cgd2hhdCB0aGUgZWZmZWN0IG9mCj4gLSAqIGluamVj
dGluZyB0aGUgdHJhcCB3aWxsIGJlLgo+IC0gKi8KPiAtc3RydWN0IHhlbl9odm1faW5qZWN0X3Ry
YXAgewo+IC0gICAgLyogRG9tYWluIHRvIGJlIHF1ZXJpZWQuICovCj4gLSAgICBkb21pZF90IGRv
bWlkOwo+IC0gICAgLyogVkNQVSAqLwo+IC0gICAgdWludDMyX3QgdmNwdWlkOwo+IC0gICAgLyog
VmVjdG9yIG51bWJlciAqLwo+IC0gICAgdWludDMyX3QgdmVjdG9yOwo+IC0gICAgLyogVHJhcCB0
eXBlIChIVk1PUF9UUkFQXyopICovCj4gLSAgICB1aW50MzJfdCB0eXBlOwo+IC0vKiBOQi4gVGhp
cyBlbnVtZXJhdGlvbiBwcmVjaXNlbHkgbWF0Y2hlcyBodm0uaDpYODZfRVZFTlRUWVBFXyogKi8K
PiAtIyBkZWZpbmUgSFZNT1BfVFJBUF9leHRfaW50ICAgIDAgLyogZXh0ZXJuYWwgaW50ZXJydXB0
ICovCj4gLSMgZGVmaW5lIEhWTU9QX1RSQVBfbm1pICAgICAgICAyIC8qIG5taSAqLwo+IC0jIGRl
ZmluZSBIVk1PUF9UUkFQX2h3X2V4YyAgICAgMyAvKiBoYXJkd2FyZSBleGNlcHRpb24gKi8KPiAt
IyBkZWZpbmUgSFZNT1BfVFJBUF9zd19pbnQgICAgIDQgLyogc29mdHdhcmUgaW50ZXJydXB0IChD
RCBubikgKi8KPiAtIyBkZWZpbmUgSFZNT1BfVFJBUF9wcmlfc3dfZXhjIDUgLyogSUNFQlAgKEYx
KSAqLwo+IC0jIGRlZmluZSBIVk1PUF9UUkFQX3N3X2V4YyAgICAgNiAvKiBJTlQzIChDQyksIElO
VE8gKENFKSAqLwo+IC0gICAgLyogRXJyb3IgY29kZSwgb3IgfjB1IHRvIHNraXAgKi8KPiAtICAg
IHVpbnQzMl90IGVycm9yX2NvZGU7Cj4gLSAgICAvKiBJbnRydWN0aW9uIGxlbmd0aCAqLwo+IC0g
ICAgdWludDMyX3QgaW5zbl9sZW47Cj4gLSAgICAvKiBDUjIgZm9yIHBhZ2UgZmF1bHRzICovCj4g
LSAgICB1aW50NjRfYWxpZ25lZF90IGNyMjsKPiAtfTsKPiAtdHlwZWRlZiBzdHJ1Y3QgeGVuX2h2
bV9pbmplY3RfdHJhcCB4ZW5faHZtX2luamVjdF90cmFwX3Q7Cj4gLURFRklORV9YRU5fR1VFU1Rf
SEFORExFKHhlbl9odm1faW5qZWN0X3RyYXBfdCk7Cj4gLQo+ICAjZW5kaWYgLyogZGVmaW5lZChf
X1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pICovCj4gIAo+ICAjZGVmaW5lIEhWTU9Q
X2dldF9tZW1fdHlwZSAgICAxNQo+IEBAIC0yMjEsMTUyICsxNTgsMTggQEAgREVGSU5FX1hFTl9H
VUVTVF9IQU5ETEUoeGVuX2h2bV9nZXRfbWVtX3R5cGVfdCk7Cj4gIC8qIEZvbGxvd2luZyB0b29s
cy1vbmx5IGludGVyZmFjZXMgbWF5IGNoYW5nZSBpbiBmdXR1cmUuICovCj4gICNpZiBkZWZpbmVk
KF9fWEVOX18pIHx8IGRlZmluZWQoX19YRU5fVE9PTFNfXykKPiAgCj4gLS8qIE1TSSBpbmplY3Rp
b24gZm9yIGVtdWxhdGVkIGRldmljZXMgKi8KPiAtI2RlZmluZSBIVk1PUF9pbmplY3RfbXNpICAg
ICAgICAgMTYKPiAtc3RydWN0IHhlbl9odm1faW5qZWN0X21zaSB7Cj4gLSAgICAvKiBEb21haW4g
dG8gYmUgaW5qZWN0ZWQgKi8KPiAtICAgIGRvbWlkX3QgICBkb21pZDsKPiAtICAgIC8qIERhdGEg
LS0gbG93ZXIgMzIgYml0cyAqLwo+IC0gICAgdWludDMyX3QgIGRhdGE7Cj4gLSAgICAvKiBBZGRy
ZXNzICgweGZlZXh4eHh4KSAqLwo+IC0gICAgdWludDY0X3QgIGFkZHI7Cj4gLX07Cj4gLXR5cGVk
ZWYgc3RydWN0IHhlbl9odm1faW5qZWN0X21zaSB4ZW5faHZtX2luamVjdF9tc2lfdDsKPiAtREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9pbmplY3RfbXNpX3QpOwo+IC0KPiAgLyoKPiAt
ICogSU9SRVEgU2VydmVycwo+IC0gKgo+IC0gKiBUaGUgaW50ZXJmYWNlIGJldHdlZW4gYW4gSS9P
IGVtdWxhdG9yIGFuIFhlbiBpcyBjYWxsZWQgYW4gSU9SRVEgU2VydmVyLgo+IC0gKiBBIGRvbWFp
biBzdXBwb3J0cyBhIHNpbmdsZSAnbGVnYWN5JyBJT1JFUSBTZXJ2ZXIgd2hpY2ggaXMgaW5zdGFu
dGlhdGVkIGlmCj4gLSAqIHBhcmFtZXRlci4uLgo+IC0gKgo+IC0gKiBIVk1fUEFSQU1fSU9SRVFf
UEZOIGlzIHJlYWQgKHRvIGdldCB0aGUgZ21mbiBjb250YWluaW5nIHRoZSBzeW5jaHJvbm91cwo+
IC0gKiBpb3JlcSBzdHJ1Y3R1cmVzKSwgb3IuLi4KPiAtICogSFZNX1BBUkFNX0JVRklPUkVRX1BG
TiBpcyByZWFkICh0byBnZXQgdGhlIGdtZm4gY29udGFpbmluZyB0aGUgYnVmZmVyZWQKPiAtICog
aW9yZXEgcmluZyksIG9yLi4uCj4gLSAqIEhWTV9QQVJBTV9CVUZJT1JFUV9FVlRDSE4gaXMgcmVh
ZCAodG8gZ2V0IHRoZSBldmVudCBjaGFubmVsIHRoYXQgWGVuIHVzZXMKPiAtICogdG8gcmVxdWVz
dCBidWZmZXJlZCBJL08gZW11bGF0aW9uKS4KPiAtICogCj4gLSAqIFRoZSBmb2xsb3dpbmcgaHlw
ZXJjYWxscyBmYWNpbGl0YXRlIHRoZSBjcmVhdGlvbiBvZiBJT1JFUSBTZXJ2ZXJzIGZvcgo+IC0g
KiAnc2Vjb25kYXJ5JyBlbXVsYXRvcnMgd2hpY2ggYXJlIGludm9rZWQgdG8gaW1wbGVtZW50IHBv
cnQgSS9PLCBtZW1vcnksIG9yCj4gLSAqIFBDSSBjb25maWcgc3BhY2UgcmFuZ2VzIHdoaWNoIHRo
ZXkgZXhwbGljaXRseSByZWdpc3Rlci4KPiArICogRGVmaW5pdGlvbnMgcmVsYXRpbmcgdG8gRE1P
UF9jcmVhdGVfaW9yZXFfc2VydmVyLiAoRGVmaW5lZCBoZXJlIGZvcgo+ICsgKiBiYWNrd2FyZHMg
Y29tcGF0aWJpbGl0eSkuCj4gICAqLwo+ICAKPiAtdHlwZWRlZiB1aW50MTZfdCBpb3NlcnZpZF90
Owo+IC0KPiArI2RlZmluZSBIVk1fSU9SRVFTUlZfQlVGSU9SRVFfT0ZGICAgIDAKPiArI2RlZmlu
ZSBIVk1fSU9SRVFTUlZfQlVGSU9SRVFfTEVHQUNZIDEKPiAgLyoKPiAtICogSFZNT1BfY3JlYXRl
X2lvcmVxX3NlcnZlcjogSW5zdGFudGlhdGUgYSBuZXcgSU9SRVEgU2VydmVyIGZvciBhIHNlY29u
ZGFyeQo+IC0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbXVsYXRvciBzZXJ2aWNpbmcg
ZG9tYWluIDxkb21pZD4uCj4gLSAqCj4gLSAqIFRoZSA8aWQ+IGhhbmRlZCBiYWNrIGlzIHVuaXF1
ZSBmb3IgPGRvbWlkPi4gSWYgPGhhbmRsZV9idWZpb3JlcT4gaXMgemVybwo+IC0gKiB0aGUgYnVm
ZmVyZWQgaW9yZXEgcmluZyB3aWxsIG5vdCBiZSBhbGxvY2F0ZWQgYW5kIGhlbmNlIGFsbCBlbXVs
YXRpb24KPiAtICogcmVxdWVzdGVzIHRvIHRoaXMgc2VydmVyIHdpbGwgYmUgc3luY2hyb25vdXMu
Cj4gKyAqIFVzZSB0aGlzIHdoZW4gcmVhZF9wb2ludGVyIGdldHMgdXBkYXRlZCBhdG9taWNhbGx5
IGFuZAo+ICsgKiB0aGUgcG9pbnRlciBwYWlyIGdldHMgcmVhZCBhdG9taWNhbGx5Ogo+ICAgKi8K
PiAtI2RlZmluZSBIVk1PUF9jcmVhdGVfaW9yZXFfc2VydmVyIDE3Cj4gLXN0cnVjdCB4ZW5faHZt
X2NyZWF0ZV9pb3JlcV9zZXJ2ZXIgewo+IC0gICAgZG9taWRfdCBkb21pZDsgICAgICAgICAgIC8q
IElOIC0gZG9tYWluIHRvIGJlIHNlcnZpY2VkICovCj4gLSAgICB1aW50OF90IGhhbmRsZV9idWZp
b3JlcTsgLyogSU4gLSBzaG91bGQgc2VydmVyIGhhbmRsZSBidWZmZXJlZCBpb3JlcXMgKi8KPiAt
ICAgIGlvc2VydmlkX3QgaWQ7ICAgICAgICAgICAvKiBPVVQgLSBzZXJ2ZXIgaWQgKi8KPiAtfTsK
PiAtdHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9jcmVhdGVfaW9yZXFfc2VydmVyIHhlbl9odm1fY3Jl
YXRlX2lvcmVxX3NlcnZlcl90Owo+IC1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX2Ny
ZWF0ZV9pb3JlcV9zZXJ2ZXJfdCk7Cj4gLQo+IC0vKgo+IC0gKiBIVk1PUF9nZXRfaW9yZXFfc2Vy
dmVyX2luZm86IEdldCBhbGwgdGhlIGluZm9ybWF0aW9uIG5lY2Vzc2FyeSB0byBhY2Nlc3MKPiAt
ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT1JFUSBTZXJ2ZXIgPGlkPi4gCj4gLSAq
Cj4gLSAqIFRoZSBlbXVsYXRvciBuZWVkcyB0byBtYXAgdGhlIHN5bmNocm9ub3VzIGlvcmVxIHN0
cnVjdHVyZXMgYW5kIGJ1ZmZlcmVkCj4gLSAqIGlvcmVxIHJpbmcgKGlmIGl0IGV4aXN0cykgdGhh
dCBYZW4gdXNlcyB0byByZXF1ZXN0IGVtdWxhdGlvbi4gVGhlc2UgYXJlCj4gLSAqIGhvc3RlZCBp
biBkb21haW4gPGRvbWlkPidzIGdtZm5zIDxpb3JlcV9wZm4+IGFuZCA8YnVmaW9yZXFfcGZuPgo+
IC0gKiByZXNwZWN0aXZlbHkuIEluIGFkZGl0aW9uLCBpZiB0aGUgSU9SRVEgU2VydmVyIGlzIGhh
bmRsaW5nIGJ1ZmZlcmVkCj4gLSAqIGVtdWxhdGlvbiByZXF1ZXN0cywgdGhlIGVtdWxhdG9yIG5l
ZWRzIHRvIGJpbmQgdG8gZXZlbnQgY2hhbm5lbAo+IC0gKiA8YnVmaW9yZXFfcG9ydD4gdG8gbGlz
dGVuIGZvciB0aGVtLiAoVGhlIGV2ZW50IGNoYW5uZWxzIHVzZWQgZm9yCj4gLSAqIHN5bmNocm9u
b3VzIGVtdWxhdGlvbiByZXF1ZXN0cyBhcmUgc3BlY2lmaWVkIGluIHRoZSBwZXItQ1BVIGlvcmVx
Cj4gLSAqIHN0cnVjdHVyZXMgaW4gPGlvcmVxX3Bmbj4pLgo+IC0gKiBJZiB0aGUgSU9SRVEgU2Vy
dmVyIGlzIG5vdCBoYW5kbGluZyBidWZmZXJlZCBlbXVsYXRpb24gcmVxdWVzdHMgdGhlbiB0aGUK
PiAtICogdmFsdWVzIGhhbmRlZCBiYWNrIGluIDxidWZpb3JlcV9wZm4+IGFuZCA8YnVmaW9yZXFf
cG9ydD4gd2lsbCBib3RoIGJlIDAuCj4gLSAqLwo+IC0jZGVmaW5lIEhWTU9QX2dldF9pb3JlcV9z
ZXJ2ZXJfaW5mbyAxOAo+IC1zdHJ1Y3QgeGVuX2h2bV9nZXRfaW9yZXFfc2VydmVyX2luZm8gewo+
IC0gICAgZG9taWRfdCBkb21pZDsgICAgICAgICAgICAgICAgIC8qIElOIC0gZG9tYWluIHRvIGJl
IHNlcnZpY2VkICovCj4gLSAgICBpb3NlcnZpZF90IGlkOyAgICAgICAgICAgICAgICAgLyogSU4g
LSBzZXJ2ZXIgaWQgKi8KPiAtICAgIGV2dGNobl9wb3J0X3QgYnVmaW9yZXFfcG9ydDsgICAvKiBP
VVQgLSBidWZmZXJlZCBpb3JlcSBwb3J0ICovCj4gLSAgICB1aW50NjRfYWxpZ25lZF90IGlvcmVx
X3BmbjsgICAgLyogT1VUIC0gc3luYyBpb3JlcSBwZm4gKi8KPiAtICAgIHVpbnQ2NF9hbGlnbmVk
X3QgYnVmaW9yZXFfcGZuOyAvKiBPVVQgLSBidWZmZXJlZCBpb3JlcSBwZm4gKi8KPiAtfTsKPiAt
dHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9nZXRfaW9yZXFfc2VydmVyX2luZm8geGVuX2h2bV9nZXRf
aW9yZXFfc2VydmVyX2luZm9fdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9n
ZXRfaW9yZXFfc2VydmVyX2luZm9fdCk7Cj4gLQo+IC0vKgo+IC0gKiBIVk1fbWFwX2lvX3Jhbmdl
X3RvX2lvcmVxX3NlcnZlcjogUmVnaXN0ZXIgYW4gSS9PIHJhbmdlIG9mIGRvbWFpbiA8ZG9taWQ+
Cj4gLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgZW11bGF0aW9uIGJ5
IHRoZSBjbGllbnQgb2YgSU9SRVEKPiAtICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFNlcnZlciA8aWQ+Cj4gLSAqIEhWTV91bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZl
cjogRGVyZWdpc3RlciBhbiBJL08gcmFuZ2Ugb2YgPGRvbWlkPgo+IC0gKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBlbXVsYXRpb24gYnkgdGhlIGNsaWVudCBvZiBJ
T1JFUQo+IC0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlcnZlciA8
aWQ+Cj4gLSAqCj4gLSAqIFRoZXJlIGFyZSB0aHJlZSB0eXBlcyBvZiBJL08gdGhhdCBjYW4gYmUg
ZW11bGF0ZWQ6IHBvcnQgSS9PLCBtZW1vcnkgYWNjZXNzZXMKPiAtICogYW5kIFBDSSBjb25maWcg
c3BhY2UgYWNjZXNzZXMuIFRoZSA8dHlwZT4gZmllbGQgZGVub3RlcyB3aGljaCB0eXBlIG9mIHJh
bmdlCj4gLSAqIHRoZSA8c3RhcnQ+IGFuZCA8ZW5kPiAoaW5jbHVzaXZlKSBmaWVsZHMgYXJlIHNw
ZWNpZnlpbmcuCj4gLSAqIFBDSSBjb25maWcgc3BhY2UgcmFuZ2VzIGFyZSBzcGVjaWZpZWQgYnkg
c2VnbWVudC9idXMvZGV2aWNlL2Z1bmN0aW9uIHZhbHVlcwo+IC0gKiB3aGljaCBzaG91bGQgYmUg
ZW5jb2RlZCB1c2luZyB0aGUgSFZNT1BfUENJX1NCREYgaGVscGVyIG1hY3JvIGJlbG93Lgo+IC0g
Kgo+IC0gKiBOT1RFOiB1bmxlc3MgYW4gZW11bGF0aW9uIHJlcXVlc3QgZmFsbHMgZW50aXJlbHkg
d2l0aGluIGEgcmFuZ2UgbWFwcGVkCj4gLSAqIGJ5IGEgc2Vjb25kYXJ5IGVtdWxhdG9yLCBpdCB3
aWxsIG5vdCBiZSBwYXNzZWQgdG8gdGhhdCBlbXVsYXRvci4KPiAtICovCj4gLSNkZWZpbmUgSFZN
T1BfbWFwX2lvX3JhbmdlX3RvX2lvcmVxX3NlcnZlciAxOQo+IC0jZGVmaW5lIEhWTU9QX3VubWFw
X2lvX3JhbmdlX2Zyb21faW9yZXFfc2VydmVyIDIwCj4gLXN0cnVjdCB4ZW5faHZtX2lvX3Jhbmdl
IHsKPiAtICAgIGRvbWlkX3QgZG9taWQ7ICAgICAgICAgICAgICAgLyogSU4gLSBkb21haW4gdG8g
YmUgc2VydmljZWQgKi8KPiAtICAgIGlvc2VydmlkX3QgaWQ7ICAgICAgICAgICAgICAgLyogSU4g
LSBzZXJ2ZXIgaWQgKi8KPiAtICAgIHVpbnQzMl90IHR5cGU7ICAgICAgICAgICAgICAgLyogSU4g
LSB0eXBlIG9mIHJhbmdlICovCj4gLSMgZGVmaW5lIEhWTU9QX0lPX1JBTkdFX1BPUlQgICAwIC8q
IEkvTyBwb3J0IHJhbmdlICovCj4gLSMgZGVmaW5lIEhWTU9QX0lPX1JBTkdFX01FTU9SWSAxIC8q
IE1NSU8gcmFuZ2UgKi8KPiAtIyBkZWZpbmUgSFZNT1BfSU9fUkFOR0VfUENJICAgIDIgLyogUENJ
IHNlZ21lbnQvYnVzL2Rldi9mdW5jIHJhbmdlICovCj4gLSAgICB1aW50NjRfYWxpZ25lZF90IHN0
YXJ0LCBlbmQ7IC8qIElOIC0gaW5jbHVzaXZlIHN0YXJ0IGFuZCBlbmQgb2YgcmFuZ2UgKi8KPiAt
fTsKPiAtdHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9pb19yYW5nZSB4ZW5faHZtX2lvX3JhbmdlX3Q7
Cj4gLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1faW9fcmFuZ2VfdCk7Cj4gLQo+IC0j
ZGVmaW5lIEhWTU9QX1BDSV9TQkRGKHMsYixkLGYpICAgICAgICAgICAgICAgICBcCj4gLQkoKCgo
cykgJiAweGZmZmYpIDw8IDE2KSB8ICAgICAgICAgICAgICAgICAgIFwKPiAtCSAoKChiKSAmIDB4
ZmYpIDw8IDgpIHwgICAgICAgICAgICAgICAgICAgICAgXAo+IC0JICgoKGQpICYgMHgxZikgPDwg
MykgfCAgICAgICAgICAgICAgICAgICAgICBcCj4gLQkgKChmKSAmIDB4MDcpKQo+IC0KPiAtLyoK
PiAtICogSFZNT1BfZGVzdHJveV9pb3JlcV9zZXJ2ZXI6IERlc3Ryb3kgdGhlIElPUkVRIFNlcnZl
ciA8aWQ+IHNlcnZpY2luZyBkb21haW4KPiAtICogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxkb21pZD4uCj4gLSAqCj4gLSAqIEFueSByZWdpc3RlcmVkIEkvTyByYW5nZXMgd2lsbCBiZSBh
dXRvbWF0aWNhbGx5IGRlcmVnaXN0ZXJlZC4KPiAtICovCj4gLSNkZWZpbmUgSFZNT1BfZGVzdHJv
eV9pb3JlcV9zZXJ2ZXIgMjEKPiAtc3RydWN0IHhlbl9odm1fZGVzdHJveV9pb3JlcV9zZXJ2ZXIg
ewo+IC0gICAgZG9taWRfdCBkb21pZDsgLyogSU4gLSBkb21haW4gdG8gYmUgc2VydmljZWQgKi8K
PiAtICAgIGlvc2VydmlkX3QgaWQ7IC8qIElOIC0gc2VydmVyIGlkICovCj4gLX07Cj4gLXR5cGVk
ZWYgc3RydWN0IHhlbl9odm1fZGVzdHJveV9pb3JlcV9zZXJ2ZXIgeGVuX2h2bV9kZXN0cm95X2lv
cmVxX3NlcnZlcl90Owo+IC1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX2Rlc3Ryb3lf
aW9yZXFfc2VydmVyX3QpOwo+IC0KPiAtLyoKPiAtICogSFZNT1Bfc2V0X2lvcmVxX3NlcnZlcl9z
dGF0ZTogRW5hYmxlIG9yIGRpc2FibGUgdGhlIElPUkVRIFNlcnZlciA8aWQ+IHNlcnZpY2luZwo+
IC0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4gPGRvbWlkPi4KPiAtICoK
PiAtICogVGhlIElPUkVRIFNlcnZlciB3aWxsIG5vdCBiZSBwYXNzZWQgYW55IGVtdWxhdGlvbiBy
ZXF1ZXN0cyB1bnRpbCBpdCBpcyBpbiB0aGUKPiAtICogZW5hYmxlZCBzdGF0ZS4KPiAtICogTm90
ZSB0aGF0IHRoZSBjb250ZW50cyBvZiB0aGUgaW9yZXFfcGZuIGFuZCBidWZpb3JlcV9mbiAoc2Vl
Cj4gLSAqIEhWTU9QX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbykgYXJlIG5vdCBtZWFuaW5nZnVsIHVu
dGlsIHRoZSBJT1JFUSBTZXJ2ZXIgaXMgaW4KPiAtICogdGhlIGVuYWJsZWQgc3RhdGUuCj4gLSAq
Lwo+IC0jZGVmaW5lIEhWTU9QX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGUgMjIKPiAtc3RydWN0IHhl
bl9odm1fc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZSB7Cj4gLSAgICBkb21pZF90IGRvbWlkOyAgIC8q
IElOIC0gZG9tYWluIHRvIGJlIHNlcnZpY2VkICovCj4gLSAgICBpb3NlcnZpZF90IGlkOyAgIC8q
IElOIC0gc2VydmVyIGlkICovCj4gLSAgICB1aW50OF90IGVuYWJsZWQ7IC8qIElOIC0gZW5hYmxl
ZD8gKi8gICAgCj4gLX07Cj4gLXR5cGVkZWYgc3RydWN0IHhlbl9odm1fc2V0X2lvcmVxX3NlcnZl
cl9zdGF0ZSB4ZW5faHZtX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGVfdDsKPiAtREVGSU5FX1hFTl9H
VUVTVF9IQU5ETEUoeGVuX2h2bV9zZXRfaW9yZXFfc2VydmVyX3N0YXRlX3QpOwo+ICsjZGVmaW5l
IEhWTV9JT1JFUVNSVl9CVUZJT1JFUV9BVE9NSUMgMgo+ICAKPiAgI2VuZGlmIC8qIGRlZmluZWQo
X19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKSAqLwo+ICAKPiBAQCAtMzg5LDYgKzE5
Miw5NyBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX2V2dGNobl91cGNhbGxfdmVj
dG9yX3QpOwo+ICAKPiAgI2VuZGlmIC8qIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194
ODZfNjRfXykgKi8KPiAgCj4gKyNkZWZpbmUgSFZNT1BfZ3Vlc3RfcmVxdWVzdF92bV9ldmVudCAy
NAo+ICsKPiArLyogSFZNT1BfYWx0cDJtOiBwZXJmb3JtIGFsdHAybSBzdGF0ZSBvcGVyYXRpb25z
ICovCj4gKyNkZWZpbmUgSFZNT1BfYWx0cDJtIDI1Cj4gKwo+ICsjZGVmaW5lIEhWTU9QX0FMVFAy
TV9JTlRFUkZBQ0VfVkVSU0lPTiAweDAwMDAwMDAxCj4gKwo+ICtzdHJ1Y3QgeGVuX2h2bV9hbHRw
Mm1fZG9tYWluX3N0YXRlIHsKPiArICAgIC8qIElOIG9yIE9VVCB2YXJpYWJsZSBvbi9vZmYgKi8K
PiArICAgIHVpbnQ4X3Qgc3RhdGU7Cj4gK307Cj4gK3R5cGVkZWYgc3RydWN0IHhlbl9odm1fYWx0
cDJtX2RvbWFpbl9zdGF0ZSB4ZW5faHZtX2FsdHAybV9kb21haW5fc3RhdGVfdDsKPiArREVGSU5F
X1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9hbHRwMm1fZG9tYWluX3N0YXRlX3QpOwo+ICsKPiAr
c3RydWN0IHhlbl9odm1fYWx0cDJtX3ZjcHVfZW5hYmxlX25vdGlmeSB7Cj4gKyAgICB1aW50MzJf
dCB2Y3B1X2lkOwo+ICsgICAgdWludDMyX3QgcGFkOwo+ICsgICAgLyogI1ZFIGluZm8gYXJlYSBn
Zm4gKi8KPiArICAgIHVpbnQ2NF90IGdmbjsKPiArfTsKPiArdHlwZWRlZiBzdHJ1Y3QgeGVuX2h2
bV9hbHRwMm1fdmNwdV9lbmFibGVfbm90aWZ5IHhlbl9odm1fYWx0cDJtX3ZjcHVfZW5hYmxlX25v
dGlmeV90Owo+ICtERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX2FsdHAybV92Y3B1X2Vu
YWJsZV9ub3RpZnlfdCk7Cj4gKwo+ICtzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fdmlldyB7Cj4gKyAg
ICAvKiBJTi9PVVQgdmFyaWFibGUgKi8KPiArICAgIHVpbnQxNl90IHZpZXc7Cj4gKyAgICAvKiBD
cmVhdGUgdmlldyBvbmx5OiBkZWZhdWx0IGFjY2VzcyB0eXBlCj4gKyAgICAgKiBOT1RFOiBjdXJy
ZW50bHkgaWdub3JlZCAqLwo+ICsgICAgdWludDE2X3QgaHZtbWVtX2RlZmF1bHRfYWNjZXNzOyAv
KiB4ZW5tZW1fYWNjZXNzX3QgKi8KPiArfTsKPiArdHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9hbHRw
Mm1fdmlldyB4ZW5faHZtX2FsdHAybV92aWV3X3Q7Cj4gK0RFRklORV9YRU5fR1VFU1RfSEFORExF
KHhlbl9odm1fYWx0cDJtX3ZpZXdfdCk7Cj4gKwo+ICtzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fc2V0
X21lbV9hY2Nlc3Mgewo+ICsgICAgLyogdmlldyAqLwo+ICsgICAgdWludDE2X3QgdmlldzsKPiAr
ICAgIC8qIE1lbW9yeSB0eXBlICovCj4gKyAgICB1aW50MTZfdCBodm1tZW1fYWNjZXNzOyAvKiB4
ZW5tZW1fYWNjZXNzX3QgKi8KPiArICAgIHVpbnQzMl90IHBhZDsKPiArICAgIC8qIGdmbiAqLwo+
ICsgICAgdWludDY0X3QgZ2ZuOwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCB4ZW5faHZtX2FsdHAy
bV9zZXRfbWVtX2FjY2VzcyB4ZW5faHZtX2FsdHAybV9zZXRfbWVtX2FjY2Vzc190Owo+ICtERUZJ
TkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX2FsdHAybV9zZXRfbWVtX2FjY2Vzc190KTsKPiAr
Cj4gK3N0cnVjdCB4ZW5faHZtX2FsdHAybV9jaGFuZ2VfZ2ZuIHsKPiArICAgIC8qIHZpZXcgKi8K
PiArICAgIHVpbnQxNl90IHZpZXc7Cj4gKyAgICB1aW50MTZfdCBwYWQxOwo+ICsgICAgdWludDMy
X3QgcGFkMjsKPiArICAgIC8qIG9sZCBnZm4gKi8KPiArICAgIHVpbnQ2NF90IG9sZF9nZm47Cj4g
KyAgICAvKiBuZXcgZ2ZuLCBJTlZBTElEX0dGTiAofjBVTCkgbWVhbnMgcmV2ZXJ0ICovCj4gKyAg
ICB1aW50NjRfdCBuZXdfZ2ZuOwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCB4ZW5faHZtX2FsdHAy
bV9jaGFuZ2VfZ2ZuIHhlbl9odm1fYWx0cDJtX2NoYW5nZV9nZm5fdDsKPiArREVGSU5FX1hFTl9H
VUVTVF9IQU5ETEUoeGVuX2h2bV9hbHRwMm1fY2hhbmdlX2dmbl90KTsKPiArCj4gK3N0cnVjdCB4
ZW5faHZtX2FsdHAybV9vcCB7Cj4gKyAgICB1aW50MzJfdCB2ZXJzaW9uOyAgIC8qIEhWTU9QX0FM
VFAyTV9JTlRFUkZBQ0VfVkVSU0lPTiAqLwo+ICsgICAgdWludDMyX3QgY21kOwo+ICsvKiBHZXQv
c2V0IHRoZSBhbHRwMm0gc3RhdGUgZm9yIGEgZG9tYWluICovCj4gKyNkZWZpbmUgSFZNT1BfYWx0
cDJtX2dldF9kb21haW5fc3RhdGUgICAgIDEKPiArI2RlZmluZSBIVk1PUF9hbHRwMm1fc2V0X2Rv
bWFpbl9zdGF0ZSAgICAgMgo+ICsvKiBTZXQgdGhlIGN1cnJlbnQgVkNQVSB0byByZWNlaXZlIGFs
dHAybSBldmVudCBub3RpZmljYXRpb25zICovCj4gKyNkZWZpbmUgSFZNT1BfYWx0cDJtX3ZjcHVf
ZW5hYmxlX25vdGlmeSAgIDMKPiArLyogQ3JlYXRlIGEgbmV3IHZpZXcgKi8KPiArI2RlZmluZSBI
Vk1PUF9hbHRwMm1fY3JlYXRlX3AybSAgICAgICAgICAgNAo+ICsvKiBEZXN0cm95IGEgdmlldyAq
Lwo+ICsjZGVmaW5lIEhWTU9QX2FsdHAybV9kZXN0cm95X3AybSAgICAgICAgICA1Cj4gKy8qIFN3
aXRjaCB2aWV3IGZvciBhbiBlbnRpcmUgZG9tYWluICovCj4gKyNkZWZpbmUgSFZNT1BfYWx0cDJt
X3N3aXRjaF9wMm0gICAgICAgICAgIDYKPiArLyogTm90aWZ5IHRoYXQgYSBwYWdlIG9mIG1lbW9y
eSBpcyB0byBoYXZlIHNwZWNpZmljIGFjY2VzcyB0eXBlcyAqLwo+ICsjZGVmaW5lIEhWTU9QX2Fs
dHAybV9zZXRfbWVtX2FjY2VzcyAgICAgICA3Cj4gKy8qIENoYW5nZSBhIHAybSBlbnRyeSB0byBo
YXZlIGEgZGlmZmVyZW50IGdmbi0+bWZuIG1hcHBpbmcgKi8KPiArI2RlZmluZSBIVk1PUF9hbHRw
Mm1fY2hhbmdlX2dmbiAgICAgICAgICAgOAo+ICsgICAgZG9taWRfdCBkb21haW47Cj4gKyAgICB1
aW50MTZfdCBwYWQxOwo+ICsgICAgdWludDMyX3QgcGFkMjsKPiArICAgIHVuaW9uIHsKPiArICAg
ICAgICBzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fZG9tYWluX3N0YXRlICAgICAgIGRvbWFpbl9zdGF0
ZTsKPiArICAgICAgICBzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fdmNwdV9lbmFibGVfbm90aWZ5IGVu
YWJsZV9ub3RpZnk7Cj4gKyAgICAgICAgc3RydWN0IHhlbl9odm1fYWx0cDJtX3ZpZXcgICAgICAg
ICAgICAgICB2aWV3Owo+ICsgICAgICAgIHN0cnVjdCB4ZW5faHZtX2FsdHAybV9zZXRfbWVtX2Fj
Y2VzcyAgICAgc2V0X21lbV9hY2Nlc3M7Cj4gKyAgICAgICAgc3RydWN0IHhlbl9odm1fYWx0cDJt
X2NoYW5nZV9nZm4gICAgICAgICBjaGFuZ2VfZ2ZuOwo+ICsgICAgICAgIHVpbnQ4X3QgcGFkWzY0
XTsKPiArICAgIH0gdTsKPiArfTsKPiArdHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fb3Ag
eGVuX2h2bV9hbHRwMm1fb3BfdDsKPiArREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9h
bHRwMm1fb3BfdCk7Cj4gKwo+ICAjZW5kaWYgLyogX19YRU5fUFVCTElDX0hWTV9IVk1fT1BfSF9f
ICovCj4gIAo+ICAvKgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9odm0vaHZtX3ZjcHUuaCBi
L2luY2x1ZGUveGVuL2h2bS9odm1fdmNwdS5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRl
eCAwMDAwMDAwLi5kMjFhYmYxCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2luY2x1ZGUveGVuL2h2
bS9odm1fdmNwdS5oCj4gQEAgLTAsMCArMSwxNDQgQEAKPiArLyoKPiArICogUGVybWlzc2lvbiBp
cyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5n
IGEgY29weQo+ICsgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRp
b24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KPiArICogZGVhbCBpbiB0aGUgU29mdHdhcmUg
d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKPiAr
ICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0
ZSwgc3VibGljZW5zZSwgYW5kL29yCj4gKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwg
YW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCj4gKyAqIGZ1cm5p
c2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4gKyAq
Cj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90
aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCj4gKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg
cG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJP
VklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+
ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCj4gKyAqIEFVVEhP
UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMg
T1IgT1RIRVIKPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFD
VCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiArICogRlJPTSwgT1VUIE9GIE9SIElOIENP
Tk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgo+ICsgKiBERUFM
SU5HUyBJTiBUSEUgU09GVFdBUkUuCj4gKyAqCj4gKyAqIENvcHlyaWdodCAoYykgMjAxNSwgUm9n
ZXIgUGF1IE1vbm5lIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KPiArICovCj4gKwo+ICsjaWZuZGVm
IF9fWEVOX1BVQkxJQ19IVk1fSFZNX1ZDUFVfSF9fCj4gKyNkZWZpbmUgX19YRU5fUFVCTElDX0hW
TV9IVk1fVkNQVV9IX18KPiArCj4gKyNpbmNsdWRlICIuLi94ZW4uaCIKPiArCj4gK3N0cnVjdCB2
Y3B1X2h2bV94ODZfMzIgewo+ICsgICAgdWludDMyX3QgZWF4Owo+ICsgICAgdWludDMyX3QgZWN4
Owo+ICsgICAgdWludDMyX3QgZWR4Owo+ICsgICAgdWludDMyX3QgZWJ4Owo+ICsgICAgdWludDMy
X3QgZXNwOwo+ICsgICAgdWludDMyX3QgZWJwOwo+ICsgICAgdWludDMyX3QgZXNpOwo+ICsgICAg
dWludDMyX3QgZWRpOwo+ICsgICAgdWludDMyX3QgZWlwOwo+ICsgICAgdWludDMyX3QgZWZsYWdz
Owo+ICsKPiArICAgIHVpbnQzMl90IGNyMDsKPiArICAgIHVpbnQzMl90IGNyMzsKPiArICAgIHVp
bnQzMl90IGNyNDsKPiArCj4gKyAgICB1aW50MzJfdCBwYWQxOwo+ICsKPiArICAgIC8qCj4gKyAg
ICAgKiBFRkVSIHNob3VsZCBvbmx5IGJlIHVzZWQgdG8gc2V0IHRoZSBOWEUgYml0IChpZiByZXF1
aXJlZCkKPiArICAgICAqIHdoZW4gc3RhcnRpbmcgYSB2Q1BVIGluIDMyYml0IG1vZGUgd2l0aCBw
YWdpbmcgZW5hYmxlZCBvcgo+ICsgICAgICogdG8gc2V0IHRoZSBMTUUvTE1BIGJpdHMgaW4gb3Jk
ZXIgdG8gc3RhcnQgdGhlIHZDUFUgaW4KPiArICAgICAqIGNvbXBhdGliaWxpdHkgbW9kZS4KPiAr
ICAgICAqLwo+ICsgICAgdWludDY0X3QgZWZlcjsKPiArCj4gKyAgICB1aW50MzJfdCBjc19iYXNl
Owo+ICsgICAgdWludDMyX3QgZHNfYmFzZTsKPiArICAgIHVpbnQzMl90IHNzX2Jhc2U7Cj4gKyAg
ICB1aW50MzJfdCBlc19iYXNlOwo+ICsgICAgdWludDMyX3QgdHJfYmFzZTsKPiArICAgIHVpbnQz
Ml90IGNzX2xpbWl0Owo+ICsgICAgdWludDMyX3QgZHNfbGltaXQ7Cj4gKyAgICB1aW50MzJfdCBz
c19saW1pdDsKPiArICAgIHVpbnQzMl90IGVzX2xpbWl0Owo+ICsgICAgdWludDMyX3QgdHJfbGlt
aXQ7Cj4gKyAgICB1aW50MTZfdCBjc19hcjsKPiArICAgIHVpbnQxNl90IGRzX2FyOwo+ICsgICAg
dWludDE2X3Qgc3NfYXI7Cj4gKyAgICB1aW50MTZfdCBlc19hcjsKPiArICAgIHVpbnQxNl90IHRy
X2FyOwo+ICsKPiArICAgIHVpbnQxNl90IHBhZDJbM107Cj4gK307Cj4gKwo+ICsvKgo+ICsgKiBU
aGUgbGF5b3V0IG9mIHRoZSBfYXIgZmllbGRzIG9mIHRoZSBzZWdtZW50IHJlZ2lzdGVycyBpcyB0
aGUKPiArICogZm9sbG93aW5nOgo+ICsgKgo+ICsgKiBCaXRzICAgWzAsM106IHR5cGUgKGJpdHMg
NDAtNDMpLgo+ICsgKiBCaXQgICAgICAgIDQ6IHMgICAgKGRlc2NyaXB0b3IgdHlwZSwgYml0IDQ0
KS4KPiArICogQml0ICAgIFs1LDZdOiBkcGwgIChkZXNjcmlwdG9yIHByaXZpbGVnZSBsZXZlbCwg
Yml0cyA0NS00NikuCj4gKyAqIEJpdCAgICAgICAgNzogcCAgICAoc2VnbWVudC1wcmVzZW50LCBi
aXQgNDcpLgo+ICsgKiBCaXQgICAgICAgIDg6IGF2bCAgKGF2YWlsYWJsZSBmb3Igc3lzdGVtIHNv
ZnR3YXJlLCBiaXQgNTIpLgo+ICsgKiBCaXQgICAgICAgIDk6IGwgICAgKDY0LWJpdCBjb2RlIHNl
Z21lbnQsIGJpdCA1MykuCj4gKyAqIEJpdCAgICAgICAxMDogZGIgICAobWVhbmluZyBkZXBlbmRz
IG9uIHRoZSBzZWdtZW50LCBiaXQgNTQpLgo+ICsgKiBCaXQgICAgICAgMTE6IGcgICAgKGdyYW51
bGFyaXR5LCBiaXQgNTUpCj4gKyAqIEJpdHMgWzEyLDE1XTogdW51c2VkLCBtdXN0IGJlIGJsYW5r
Lgo+ICsgKgo+ICsgKiBBIG1vcmUgY29tcGxldGUgZGVzY3JpcHRpb24gb2YgdGhlIG1lYW5pbmcg
b2YgdGhpcyBmaWVsZHMgY2FuIGJlCj4gKyAqIG9idGFpbmVkIGZyb20gdGhlIEludGVsIFNETSwg
Vm9sdW1lIDMsIHNlY3Rpb24gMy40LjUuCj4gKyAqLwo+ICsKPiArc3RydWN0IHZjcHVfaHZtX3g4
Nl82NCB7Cj4gKyAgICB1aW50NjRfdCByYXg7Cj4gKyAgICB1aW50NjRfdCByY3g7Cj4gKyAgICB1
aW50NjRfdCByZHg7Cj4gKyAgICB1aW50NjRfdCByYng7Cj4gKyAgICB1aW50NjRfdCByc3A7Cj4g
KyAgICB1aW50NjRfdCByYnA7Cj4gKyAgICB1aW50NjRfdCByc2k7Cj4gKyAgICB1aW50NjRfdCBy
ZGk7Cj4gKyAgICB1aW50NjRfdCByaXA7Cj4gKyAgICB1aW50NjRfdCByZmxhZ3M7Cj4gKwo+ICsg
ICAgdWludDY0X3QgY3IwOwo+ICsgICAgdWludDY0X3QgY3IzOwo+ICsgICAgdWludDY0X3QgY3I0
Owo+ICsgICAgdWludDY0X3QgZWZlcjsKPiArCj4gKyAgICAvKgo+ICsgICAgICogVXNpbmcgVkNQ
VV9IVk1fTU9ERV82NEIgaW1wbGllcyB0aGF0IHRoZSB2Q1BVIGlzIGxhdW5jaGVkCj4gKyAgICAg
KiBkaXJlY3RseSBpbiBsb25nIG1vZGUsIHNvIHRoZSBjYWNoZWQgcGFydHMgb2YgdGhlIHNlZ21l
bnQKPiArICAgICAqIHJlZ2lzdGVycyBnZXQgc2V0IHRvIG1hdGNoIHRoYXQgZW52aXJvbm1lbnQu
Cj4gKyAgICAgKgo+ICsgICAgICogSWYgdGhlIHVzZXIgd2FudHMgdG8gbGF1bmNoIHRoZSB2Q1BV
IGluIGNvbXBhdGliaWxpdHkgbW9kZQo+ICsgICAgICogdGhlIDMyLWJpdCBzdHJ1Y3R1cmUgc2hv
dWxkIGJlIHVzZWQgaW5zdGVhZC4KPiArICAgICAqLwo+ICt9Owo+ICsKPiArc3RydWN0IHZjcHVf
aHZtX2NvbnRleHQgewo+ICsjZGVmaW5lIFZDUFVfSFZNX01PREVfMzJCIDAgIC8qIDMyYml0IGZp
ZWxkcyBvZiB0aGUgc3RydWN0dXJlIHdpbGwgYmUgdXNlZC4gKi8KPiArI2RlZmluZSBWQ1BVX0hW
TV9NT0RFXzY0QiAxICAvKiA2NGJpdCBmaWVsZHMgb2YgdGhlIHN0cnVjdHVyZSB3aWxsIGJlIHVz
ZWQuICovCj4gKyAgICB1aW50MzJfdCBtb2RlOwo+ICsKPiArICAgIHVpbnQzMl90IHBhZDsKPiAr
Cj4gKyAgICAvKiBDUFUgcmVnaXN0ZXJzLiAqLwo+ICsgICAgdW5pb24gewo+ICsgICAgICAgIHN0
cnVjdCB2Y3B1X2h2bV94ODZfMzIgeDg2XzMyOwo+ICsgICAgICAgIHN0cnVjdCB2Y3B1X2h2bV94
ODZfNjQgeDg2XzY0Owo+ICsgICAgfSBjcHVfcmVnczsKPiArfTsKPiArdHlwZWRlZiBzdHJ1Y3Qg
dmNwdV9odm1fY29udGV4dCB2Y3B1X2h2bV9jb250ZXh0X3Q7Cj4gK0RFRklORV9YRU5fR1VFU1Rf
SEFORExFKHZjcHVfaHZtX2NvbnRleHRfdCk7Cj4gKwo+ICsjZW5kaWYgLyogX19YRU5fUFVCTElD
X0hWTV9IVk1fVkNQVV9IX18gKi8KPiArCj4gKy8qCj4gKyAqIExvY2FsIHZhcmlhYmxlczoKPiAr
ICogbW9kZTogQwo+ICsgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCj4gKyAqIGMtYmFzaWMtb2Zmc2V0
OiA0Cj4gKyAqIHRhYi13aWR0aDogNAo+ICsgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKPiArICog
RW5kOgo+ICsgKi8KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vaHZtL2h2bV94c19zdHJpbmdz
LmggYi9pbmNsdWRlL3hlbi9odm0vaHZtX3hzX3N0cmluZ3MuaAo+IGluZGV4IDhhZWM5MzUuLmZl
YTFkZDQgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS94ZW4vaHZtL2h2bV94c19zdHJpbmdzLmgKPiAr
KysgYi9pbmNsdWRlL3hlbi9odm0vaHZtX3hzX3N0cmluZ3MuaAo+IEBAIC0yMCw2ICsyMCw4IEBA
Cj4gICAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQg
T1IgT1RIRVJXSVNFLCBBUklTSU5HCj4gICAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9O
IFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKPiAgICogREVBTElOR1MgSU4g
VEhFIFNPRlRXQVJFLgo+ICsgKgo+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMTMsIENpdHJpeCBTeXN0
ZW1zCj4gICAqLwo+ICAKPiAgI2lmbmRlZiBfX1hFTl9QVUJMSUNfSFZNX0hWTV9YU19TVFJJTkdT
X0hfXwo+IEBAIC02OSw2ICs3MSw3IEBACj4gICNkZWZpbmUgSFZNX1hTX1NZU1RFTV9TRVJJQUxf
TlVNQkVSICAgICJiaW9zLXN0cmluZ3Mvc3lzdGVtLXNlcmlhbC1udW1iZXIiCj4gICNkZWZpbmUg
SFZNX1hTX0VOQ0xPU1VSRV9NQU5VRkFDVFVSRVIgICJiaW9zLXN0cmluZ3MvZW5jbG9zdXJlLW1h
bnVmYWN0dXJlciIKPiAgI2RlZmluZSBIVk1fWFNfRU5DTE9TVVJFX1NFUklBTF9OVU1CRVIgImJp
b3Mtc3RyaW5ncy9lbmNsb3N1cmUtc2VyaWFsLW51bWJlciIKPiArI2RlZmluZSBIVk1fWFNfRU5D
TE9TVVJFX0FTU0VUX1RBRyAgICAgImJpb3Mtc3RyaW5ncy9lbmNsb3N1cmUtYXNzZXQtdGFnIgo+
ICAjZGVmaW5lIEhWTV9YU19CQVRURVJZX01BTlVGQUNUVVJFUiAgICAiYmlvcy1zdHJpbmdzL2Jh
dHRlcnktbWFudWZhY3R1cmVyIgo+ICAjZGVmaW5lIEhWTV9YU19CQVRURVJZX0RFVklDRV9OQU1F
ICAgICAiYmlvcy1zdHJpbmdzL2JhdHRlcnktZGV2aWNlLW5hbWUiCj4gIAo+IGRpZmYgLS1naXQg
YS9pbmNsdWRlL3hlbi9odm0vaW9yZXEuaCBiL2luY2x1ZGUveGVuL2h2bS9pb3JlcS5oCj4gaW5k
ZXggNWI1ZmVkZi4uZDMwOWQxMiAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3hlbi9odm0vaW9yZXEu
aAo+ICsrKyBiL2luY2x1ZGUveGVuL2h2bS9pb3JlcS5oCj4gQEAgLTgzLDggKzgzLDE3IEBAIHR5
cGVkZWYgc3RydWN0IGJ1Zl9pb3JlcSBidWZfaW9yZXFfdDsKPiAgCj4gICNkZWZpbmUgSU9SRVFf
QlVGRkVSX1NMT1RfTlVNICAgICA1MTEgLyogOCBieXRlcyBlYWNoLCBwbHVzIDIgNC1ieXRlIGlu
ZGV4ZXMgKi8KPiAgc3RydWN0IGJ1ZmZlcmVkX2lvcGFnZSB7Cj4gLSAgICB1bnNpZ25lZCBpbnQg
cmVhZF9wb2ludGVyOwo+IC0gICAgdW5zaWduZWQgaW50IHdyaXRlX3BvaW50ZXI7Cj4gKyNpZmRl
ZiBfX1hFTl9fCj4gKyAgICB1bmlvbiBidWZpb3JlcV9wb2ludGVycyB7Cj4gKyAgICAgICAgc3Ry
dWN0IHsKPiArI2VuZGlmCj4gKyAgICAgICAgICAgIHVpbnQzMl90IHJlYWRfcG9pbnRlcjsKPiAr
ICAgICAgICAgICAgdWludDMyX3Qgd3JpdGVfcG9pbnRlcjsKPiArI2lmZGVmIF9fWEVOX18KPiAr
ICAgICAgICB9Owo+ICsgICAgICAgIHVpbnQ2NF90IGZ1bGw7Cj4gKyAgICB9IHB0cnM7Cj4gKyNl
bmRpZgo+ICAgICAgYnVmX2lvcmVxX3QgYnVmX2lvcmVxW0lPUkVRX0JVRkZFUl9TTE9UX05VTV07
Cj4gIH07IC8qIE5CLiBTaXplIG9mIHRoaXMgc3RydWN0dXJlIG11c3QgYmUgbm8gZ3JlYXRlciB0
aGFuIG9uZSBwYWdlLiAqLwo+ICB0eXBlZGVmIHN0cnVjdCBidWZmZXJlZF9pb3BhZ2UgYnVmZmVy
ZWRfaW9wYWdlX3Q7Cj4gQEAgLTk0LDE0ICsxMDMsMTkgQEAgdHlwZWRlZiBzdHJ1Y3QgYnVmZmVy
ZWRfaW9wYWdlIGJ1ZmZlcmVkX2lvcGFnZV90Owo+ICAgKiB2ZXJzaW9uIG51bWJlciBpbiBIVk1f
UEFSQU1fQUNQSV9JT1BPUlRTX0xPQ0FUSU9OLgo+ICAgKi8KPiAgCj4gLS8qIFZlcnNpb24gMCAo
ZGVmYXVsdCk6IFRyYWRpdGlvbmFsIFhlbiBsb2NhdGlvbnMuICovCj4gKy8qCj4gKyAqIFZlcnNp
b24gMCAoZGVmYXVsdCk6IFRyYWRpdGlvbmFsIChvYnNvbGV0ZSkgWGVuIGxvY2F0aW9ucy4KPiAr
ICoKPiArICogVGhlc2UgYXJlIG5vdyBvbmx5IHVzZWQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBW
TXMgbWlncmF0ZWQKPiArICogZnJvbSBvbGRlciBYZW4gdmVyc2lvbnMuCj4gKyAqLwo+ICAjZGVm
aW5lIEFDUElfUE0xQV9FVlRfQkxLX0FERFJFU1NfVjAgMHgxZjQwCj4gICNkZWZpbmUgQUNQSV9Q
TTFBX0NOVF9CTEtfQUREUkVTU19WMCAoQUNQSV9QTTFBX0VWVF9CTEtfQUREUkVTU19WMCArIDB4
MDQpCj4gICNkZWZpbmUgQUNQSV9QTV9UTVJfQkxLX0FERFJFU1NfVjAgICAoQUNQSV9QTTFBX0VW
VF9CTEtfQUREUkVTU19WMCArIDB4MDgpCj4gICNkZWZpbmUgQUNQSV9HUEUwX0JMS19BRERSRVNT
X1YwICAgICAoQUNQSV9QTV9UTVJfQkxLX0FERFJFU1NfVjAgKyAweDIwKQo+ICAjZGVmaW5lIEFD
UElfR1BFMF9CTEtfTEVOX1YwICAgICAgICAgMHgwOAo+ICAKPiAtLyogVmVyc2lvbiAxOiBMb2Nh
dGlvbnMgcHJlZmVycmVkIGJ5IG1vZGVybiBRZW11LiAqLwo+ICsvKiBWZXJzaW9uIDE6IExvY2F0
aW9ucyBwcmVmZXJyZWQgYnkgbW9kZXJuIFFlbXUgKGluY2x1ZGluZyBRZW11LXRyYWQpLiAqLwo+
ICAjZGVmaW5lIEFDUElfUE0xQV9FVlRfQkxLX0FERFJFU1NfVjEgMHhiMDAwCj4gICNkZWZpbmUg
QUNQSV9QTTFBX0NOVF9CTEtfQUREUkVTU19WMSAoQUNQSV9QTTFBX0VWVF9CTEtfQUREUkVTU19W
MSArIDB4MDQpCj4gICNkZWZpbmUgQUNQSV9QTV9UTVJfQkxLX0FERFJFU1NfVjEgICAoQUNQSV9Q
TTFBX0VWVF9CTEtfQUREUkVTU19WMSArIDB4MDgpCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVu
L2h2bS9wYXJhbXMuaCBiL2luY2x1ZGUveGVuL2h2bS9wYXJhbXMuaAo+IGluZGV4IGEyZDQzYmMu
LjJlYzJlN2MgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS94ZW4vaHZtL3BhcmFtcy5oCj4gKysrIGIv
aW5jbHVkZS94ZW4vaHZtL3BhcmFtcy5oCj4gQEAgLTE2LDYgKzE2LDggQEAKPiAgICogTElBQklM
SVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0Us
IEFSSVNJTkcKPiAgICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09G
VFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgo+ICAgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUu
Cj4gKyAqCj4gKyAqIENvcHlyaWdodCAoYykgMjAwNywgS2VpciBGcmFzZXIKPiAgICovCj4gIAo+
ICAjaWZuZGVmIF9fWEVOX1BVQkxJQ19IVk1fUEFSQU1TX0hfXwo+IEBAIC0yNywxOCArMjksNDcg
QEAKPiAgICogUGFyYW1ldGVyIHNwYWNlIGZvciBIVk1PUF97c2V0LGdldH1fcGFyYW0uCj4gICAq
Lwo+ICAKPiArI2RlZmluZSBIVk1fUEFSQU1fQ0FMTEJBQ0tfSVJRIDAKPiArI2RlZmluZSBIVk1f
UEFSQU1fQ0FMTEJBQ0tfSVJRX1RZUEVfTUFTSyB4ZW5fbWtfdWxsb25nKDB4RkYwMDAwMDAwMDAw
MDAwMCkKPiAgLyoKPiAgICogSG93IHNob3VsZCBDUFUwIGV2ZW50LWNoYW5uZWwgbm90aWZpY2F0
aW9ucyBiZSBkZWxpdmVyZWQ/Cj4gLSAqIHZhbFs2Mzo1Nl0gPT0gMDogdmFsWzU1OjBdIGlzIGEg
ZGVsaXZlcnkgR1NJIChHbG9iYWwgU3lzdGVtIEludGVycnVwdCkuCj4gLSAqIHZhbFs2Mzo1Nl0g
PT0gMTogdmFsWzU1OjBdIGlzIGEgZGVsaXZlcnkgUENJIElOVHggbGluZSwgYXMgZm9sbG93czoK
PiAtICogICAgICAgICAgICAgICAgICBEb21haW4gPSB2YWxbNDc6MzJdLCBCdXMgID0gdmFsWzMx
OjE2XSwKPiAtICogICAgICAgICAgICAgICAgICBEZXZGbiAgPSB2YWxbMTU6IDhdLCBJbnRYID0g
dmFsWyAxOiAwXQo+IC0gKiB2YWxbNjM6NTZdID09IDI6IHZhbFs3OjBdIGlzIGEgdmVjdG9yIG51
bWJlciwgY2hlY2sgZm9yCj4gLSAqICAgICAgICAgICAgICAgICAgWEVORkVBVF9odm1fY2FsbGJh
Y2tfdmVjdG9yIHRvIGtub3cgaWYgdGhpcyBkZWxpdmVyeQo+IC0gKiAgICAgICAgICAgICAgICAg
IG1ldGhvZCBpcyBhdmFpbGFibGUuCj4gKyAqCj4gICAqIElmIHZhbCA9PSAwIHRoZW4gQ1BVMCBl
dmVudC1jaGFubmVsIG5vdGlmaWNhdGlvbnMgYXJlIG5vdCBkZWxpdmVyZWQuCj4gKyAqIElmIHZh
bCAhPSAwLCB2YWxbNjM6NTZdIGVuY29kZXMgdGhlIHR5cGUsIGFzIGZvbGxvd3M6Cj4gKyAqLwo+
ICsKPiArI2RlZmluZSBIVk1fUEFSQU1fQ0FMTEJBQ0tfVFlQRV9HU0kgICAgICAwCj4gKy8qCj4g
KyAqIHZhbFs1NTowXSBpcyBhIGRlbGl2ZXJ5IEdTSS4gIEdTSSAwIGNhbm5vdCBiZSB1c2VkLCBh
cyBpdCBhbGlhc2VzIHZhbCA9PSAwLAo+ICsgKiBhbmQgZGlzYWJsZXMgYWxsIG5vdGlmaWNhdGlv
bnMuCj4gKyAqLwo+ICsKPiArI2RlZmluZSBIVk1fUEFSQU1fQ0FMTEJBQ0tfVFlQRV9QQ0lfSU5U
WCAxCj4gKy8qCj4gKyAqIHZhbFs1NTowXSBpcyBhIGRlbGl2ZXJ5IFBDSSBJTlR4IGxpbmU6Cj4g
KyAqIERvbWFpbiA9IHZhbFs0NzozMl0sIEJ1cyA9IHZhbFszMToxNl0gRGV2Rm4gPSB2YWxbMTU6
OF0sIEludFggPSB2YWxbMTowXQo+ICAgKi8KPiAtI2RlZmluZSBIVk1fUEFSQU1fQ0FMTEJBQ0tf
SVJRIDAKPiArCj4gKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18p
Cj4gKyNkZWZpbmUgSFZNX1BBUkFNX0NBTExCQUNLX1RZUEVfVkVDVE9SICAgMgo+ICsvKgo+ICsg
KiB2YWxbNzowXSBpcyBhIHZlY3RvciBudW1iZXIuICBDaGVjayBmb3IgWEVORkVBVF9odm1fY2Fs
bGJhY2tfdmVjdG9yIHRvIGtub3cKPiArICogaWYgdGhpcyBkZWxpdmVyeSBtZXRob2QgaXMgYXZh
aWxhYmxlLgo+ICsgKi8KPiArI2VsaWYgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fYWFy
Y2g2NF9fKQo+ICsjZGVmaW5lIEhWTV9QQVJBTV9DQUxMQkFDS19UWVBFX1BQSSAgICAgIDIKPiAr
LyoKPiArICogdmFsWzU1OjE2XSBuZWVkcyB0byBiZSB6ZXJvLgo+ICsgKiB2YWxbMTU6OF0gaXMg
aW50ZXJydXB0IGZsYWcgb2YgdGhlIFBQSSB1c2VkIGJ5IGV2ZW50LWNoYW5uZWw6Cj4gKyAqICBi
aXQgODogdGhlIFBQSSBpcyBlZGdlKDEpIG9yIGxldmVsKDApIHRyaWdnZXJlZAo+ICsgKiAgYml0
IDk6IHRoZSBQUEkgaXMgYWN0aXZlIGxvdygxKSBvciBoaWdoKDApCj4gKyAqIHZhbFs3OjBdIGlz
IGEgUFBJIG51bWJlciB1c2VkIGJ5IGV2ZW50LWNoYW5uZWwuCj4gKyAqIFRoaXMgaXMgb25seSB1
c2VkIGJ5IEFSTS9BUk02NCBhbmQgbWFza2luZy9lb2kgdGhlIGludGVycnVwdCBhc3NvY2lhdGVk
IHRvCj4gKyAqIHRoZSBub3RpZmljYXRpb24gaXMgaGFuZGxlZCBieSB0aGUgaW50ZXJydXB0IGNv
bnRyb2xsZXIuCj4gKyAqLwo+ICsjZGVmaW5lIEhWTV9QQVJBTV9DQUxMQkFDS19UWVBFX1BQSV9G
TEFHX01BU0sgICAgICAweEZGMDAKPiArI2RlZmluZSBIVk1fUEFSQU1fQ0FMTEJBQ0tfVFlQRV9Q
UElfRkxBR19MT1dfTEVWRUwgMgo+ICsjZW5kaWYKPiAgCj4gIC8qCj4gICAqIFRoZXNlIGFyZSBu
b3QgdXNlZCBieSBYZW4uIFRoZXkgYXJlIGhlcmUgZm9yIGNvbnZlbmllbmNlIG9mIEhWTS1ndWVz
dAo+IEBAIC05NiwxMSArMTI3LDI2IEBACj4gICNkZWZpbmUgX0hWTVBWX3JlZmVyZW5jZV90c2Mg
Mwo+ICAjZGVmaW5lIEhWTVBWX3JlZmVyZW5jZV90c2MgICgxIDw8IF9IVk1QVl9yZWZlcmVuY2Vf
dHNjKQo+ICAKPiArLyogVXNlIEh5cGVyY2FsbCBmb3IgcmVtb3RlIFRMQiBmbHVzaCAqLwo+ICsj
ZGVmaW5lIF9IVk1QVl9oY2FsbF9yZW1vdGVfdGxiX2ZsdXNoIDQKPiArI2RlZmluZSBIVk1QVl9o
Y2FsbF9yZW1vdGVfdGxiX2ZsdXNoICgxIDw8IF9IVk1QVl9oY2FsbF9yZW1vdGVfdGxiX2ZsdXNo
KQo+ICsKPiArLyogVXNlIEFQSUMgYXNzaXN0ICovCj4gKyNkZWZpbmUgX0hWTVBWX2FwaWNfYXNz
aXN0IDUKPiArI2RlZmluZSBIVk1QVl9hcGljX2Fzc2lzdCAoMSA8PCBfSFZNUFZfYXBpY19hc3Np
c3QpCj4gKwo+ICsvKiBFbmFibGUgY3Jhc2ggTVNScyAqLwo+ICsjZGVmaW5lIF9IVk1QVl9jcmFz
aF9jdGwgNgo+ICsjZGVmaW5lIEhWTVBWX2NyYXNoX2N0bCAoMSA8PCBfSFZNUFZfY3Jhc2hfY3Rs
KQo+ICsKPiAgI2RlZmluZSBIVk1QVl9mZWF0dXJlX21hc2sgXAo+IC0JKEhWTVBWX2Jhc2VfZnJl
cSB8IFwKPiAtCSBIVk1QVl9ub19mcmVxIHwgXAo+IC0JIEhWTVBWX3RpbWVfcmVmX2NvdW50IHwg
XAo+IC0JIEhWTVBWX3JlZmVyZW5jZV90c2MpCj4gKyAgICAgICAgKEhWTVBWX2Jhc2VfZnJlcSB8
IFwKPiArICAgICAgICAgSFZNUFZfbm9fZnJlcSB8IFwKPiArICAgICAgICAgSFZNUFZfdGltZV9y
ZWZfY291bnQgfCBcCj4gKyAgICAgICAgIEhWTVBWX3JlZmVyZW5jZV90c2MgfCBcCj4gKyAgICAg
ICAgIEhWTVBWX2hjYWxsX3JlbW90ZV90bGJfZmx1c2ggfCBcCj4gKyAgICAgICAgIEhWTVBWX2Fw
aWNfYXNzaXN0IHwgXAo+ICsgICAgICAgICBIVk1QVl9jcmFzaF9jdGwpCj4gIAo+ICAjZW5kaWYK
PiAgCj4gQEAgLTE2Miw4ICsyMDgsNyBAQAo+ICAgKi8KPiAgI2RlZmluZSBIVk1fUEFSQU1fQUNQ
SV9JT1BPUlRTX0xPQ0FUSU9OIDE5Cj4gIAo+IC0vKiBFbmFibGUgYmxvY2tpbmcgbWVtb3J5IGV2
ZW50cywgYXN5bmMgb3Igc3luYyAocGF1c2UgdmNwdSB1bnRpbCByZXNwb25zZSkgCj4gLSAqIG9u
Y2hhbmdlb25seSBpbmRpY2F0ZXMgbWVzc2FnZXMgb25seSBvbiBhIGNoYW5nZSBvZiB2YWx1ZSAq
Lwo+ICsvKiBEZXByZWNhdGVkICovCj4gICNkZWZpbmUgSFZNX1BBUkFNX01FTU9SWV9FVkVOVF9D
UjAgICAgICAgICAgMjAKPiAgI2RlZmluZSBIVk1fUEFSQU1fTUVNT1JZX0VWRU5UX0NSMyAgICAg
ICAgICAyMQo+ICAjZGVmaW5lIEhWTV9QQVJBTV9NRU1PUllfRVZFTlRfQ1I0ICAgICAgICAgIDIy
Cj4gQEAgLTE3MSwxOCArMjE2LDEyIEBACj4gICNkZWZpbmUgSFZNX1BBUkFNX01FTU9SWV9FVkVO
VF9TSU5HTEVfU1RFUCAgMjUKPiAgI2RlZmluZSBIVk1fUEFSQU1fTUVNT1JZX0VWRU5UX01TUiAg
ICAgICAgICAzMAo+ICAKPiAtI2RlZmluZSBIVk1QTUVfTU9ERV9NQVNLICAgICAgICgzIDw8IDAp
Cj4gLSNkZWZpbmUgSFZNUE1FX21vZGVfZGlzYWJsZWQgICAwCj4gLSNkZWZpbmUgSFZNUE1FX21v
ZGVfYXN5bmMgICAgICAxCj4gLSNkZWZpbmUgSFZNUE1FX21vZGVfc3luYyAgICAgICAyCj4gLSNk
ZWZpbmUgSFZNUE1FX29uY2hhbmdlb25seSAgICAoMSA8PCAyKQo+IC0KPiAgLyogQm9vbGVhbjog
RW5hYmxlIG5lc3RlZGh2bSAoaHZtIG9ubHkpICovCj4gICNkZWZpbmUgSFZNX1BBUkFNX05FU1RF
REhWTSAgICAyNAo+ICAKPiAgLyogUGFyYW1zIGZvciB0aGUgbWVtIGV2ZW50IHJpbmdzICovCj4g
ICNkZWZpbmUgSFZNX1BBUkFNX1BBR0lOR19SSU5HX1BGTiAgIDI3Cj4gLSNkZWZpbmUgSFZNX1BB
UkFNX0FDQ0VTU19SSU5HX1BGTiAgIDI4Cj4gKyNkZWZpbmUgSFZNX1BBUkFNX01PTklUT1JfUklO
R19QRk4gIDI4Cj4gICNkZWZpbmUgSFZNX1BBUkFNX1NIQVJJTkdfUklOR19QRk4gIDI5Cj4gIAo+
ICAvKiBTSFVURE9XTl8qIGFjdGlvbiBpbiBjYXNlIG9mIGEgdHJpcGxlIGZhdWx0ICovCj4gQEAg
LTE5NCw2ICsyMzMsNTIgQEAKPiAgLyogTG9jYXRpb24gb2YgdGhlIFZNIEdlbmVyYXRpb24gSUQg
aW4gZ3Vlc3QgcGh5c2ljYWwgYWRkcmVzcyBzcGFjZS4gKi8KPiAgI2RlZmluZSBIVk1fUEFSQU1f
Vk1fR0VORVJBVElPTl9JRF9BRERSIDM0Cj4gIAo+IC0jZGVmaW5lIEhWTV9OUl9QQVJBTVMgICAg
ICAgICAgMzUKPiArLyoKPiArICogU2V0IG1vZGUgZm9yIGFsdHAybToKPiArICogIGRpc2FibGVk
OiBkb24ndCBhY3RpdmF0ZSBhbHRwMm0gKGRlZmF1bHQpCj4gKyAqICBtaXhlZDogYWxsb3cgYWNj
ZXNzIHRvIGFsbCBhbHRwMm0gb3BzIGZvciBib3RoIGluLWd1ZXN0IGFuZCBleHRlcm5hbCB0b29s
cwo+ICsgKiAgZXh0ZXJuYWw6IGFsbG93IGFjY2VzcyB0byBleHRlcm5hbCBwcml2aWxlZ2VkIHRv
b2xzIG9ubHkKPiArICogIGxpbWl0ZWQ6IGd1ZXN0IG9ubHkgaGFzIGxpbWl0ZWQgYWNjZXNzIChp
ZS4gY29udHJvbCBWTUZVTkMgYW5kICNWRSkKPiArICovCj4gKyNkZWZpbmUgSFZNX1BBUkFNX0FM
VFAyTSAgICAgICAzNQo+ICsjZGVmaW5lIFhFTl9BTFRQMk1fZGlzYWJsZWQgICAgICAwCj4gKyNk
ZWZpbmUgWEVOX0FMVFAyTV9taXhlZCAgICAgICAgIDEKPiArI2RlZmluZSBYRU5fQUxUUDJNX2V4
dGVybmFsICAgICAgMgo+ICsjZGVmaW5lIFhFTl9BTFRQMk1fbGltaXRlZCAgICAgICAzCj4gKwo+
ICsvKgo+ICsgKiBTaXplIG9mIHRoZSB4ODcgRlBVIEZJUC9GRFAgcmVnaXN0ZXJzIHRoYXQgdGhl
IGh5cGVydmlzb3IgbmVlZHMgdG8KPiArICogc2F2ZS9yZXN0b3JlLiAgVGhpcyBpcyBhIHdvcmth
cm91bmQgZm9yIGEgaGFyZHdhcmUgbGltaXRhdGlvbiB0aGF0Cj4gKyAqIGRvZXMgbm90IGFsbG93
IHRoZSBmdWxsIEZJUC9GRFAgYW5kIEZDUy9GRFMgdG8gYmUgcmVzdG9yZWQuCj4gKyAqCj4gKyAq
IFZhbGlkIHZhbHVlcyBhcmU6Cj4gKyAqCj4gKyAqIDg6IHNhdmUvcmVzdG9yZSA2NC1iaXQgRklQ
L0ZEUCBhbmQgY2xlYXIgRkNTL0ZEUyAoZGVmYXVsdCBpZiBDUFUKPiArICogICAgaGFzIEZQQ1NE
UyBmZWF0dXJlKS4KPiArICoKPiArICogNDogc2F2ZS9yZXN0b3JlIDMyLWJpdCBGSVAvRkRQLCBG
Q1MvRkRTLCBhbmQgY2xlYXIgdXBwZXIgMzItYml0cyBvZgo+ICsgKiAgICBGSVAvRkRQLgo+ICsg
Kgo+ICsgKiAwOiBhbGxvdyBoeXBlcnZpc29yIHRvIGNob29zZSBiYXNlZCBvbiB0aGUgdmFsdWUg
b2YgRklQL0ZEUAo+ICsgKiAgICAoZGVmYXVsdCBpZiBDUFUgZG9lcyBub3QgaGF2ZSBGUENTRFMp
Lgo+ICsgKgo+ICsgKiBJZiBGUENTRFMgKGJpdCAxMyBpbiBDUFVJRCBsZWFmIDB4Nywgc3VibGVh
ZiAweDApIGlzIHNldCwgdGhlIENQVQo+ICsgKiBuZXZlciBzYXZlcyBGQ1MvRkRTIGFuZCB0aGlz
IHBhcmFtZXRlciBzaG91bGQgYmUgbGVmdCBhdCB0aGUKPiArICogZGVmYXVsdCBvZiA4Lgo+ICsg
Ki8KPiArI2RlZmluZSBIVk1fUEFSQU1fWDg3X0ZJUF9XSURUSCAzNgo+ICsKPiArLyoKPiArICog
VFNTIChhbmQgaXRzIHNpemUpIHVzZWQgb24gSW50ZWwgd2hlbiBDUjAuUEU9MC4gVGhlIGFkZHJl
c3Mgb2NjdXBpZXMKPiArICogdGhlIGxvdyAzMiBiaXRzLCB3aGlsZSB0aGUgc2l6ZSBpcyBpbiB0
aGUgaGlnaCAzMiBvbmVzLgo+ICsgKi8KPiArI2RlZmluZSBIVk1fUEFSQU1fVk04Nl9UU1NfU0la
RUQgMzcKPiArCj4gKy8qIEVuYWJsZSBNQ0EgY2FwYWJpbGl0aWVzLiAqLwo+ICsjZGVmaW5lIEhW
TV9QQVJBTV9NQ0FfQ0FQIDM4Cj4gKyNkZWZpbmUgWEVOX0hWTV9NQ0FfQ0FQX0xNQ0UgICAoeGVu
X21rX3VsbG9uZygxKSA8PCAwKQo+ICsjZGVmaW5lIFhFTl9IVk1fTUNBX0NBUF9NQVNLICAgWEVO
X0hWTV9NQ0FfQ0FQX0xNQ0UKPiArCj4gKyNkZWZpbmUgSFZNX05SX1BBUkFNUyAzOQo+ICAKPiAg
I2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19IVk1fUEFSQU1TX0hfXyAqLwo+IGRpZmYgLS1naXQgYS9p
bmNsdWRlL3hlbi9odm0vc2F2ZS5oIGIvaW5jbHVkZS94ZW4vaHZtL3NhdmUuaAo+IGluZGV4IGNj
OGI1ZmQuLjBiZDI0MGQgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS94ZW4vaHZtL3NhdmUuaAo+ICsr
KyBiL2luY2x1ZGUveGVuL2h2bS9zYXZlLmgKPiBAQCAtNjMsMTMgKzYzLDE1IEBAIHN0cnVjdCBo
dm1fc2F2ZV9kZXNjcmlwdG9yIHsKPiAgCj4gICNpZmRlZiBfX1hFTl9fCj4gICMgZGVmaW5lIERF
Q0xBUkVfSFZNX1NBVkVfVFlQRV9DT01QQVQoX3gsIF9jb2RlLCBfdHlwZSwgX2N0eXBlLCBfZml4
KSAgICAgXAo+IC0gICAgc3RhdGljIGlubGluZSBpbnQgX19IVk1fU0FWRV9GSVhfQ09NUEFUXyMj
X3godm9pZCAqaCkgeyByZXR1cm4gX2ZpeChoKTsgfSBcCj4gLSAgICBzdHJ1Y3QgX19IVk1fU0FW
RV9UWVBFXyMjX3ggeyBfdHlwZSB0OyBjaGFyIGNbX2NvZGVdOyBjaGFyIGNwdFsyXTt9OyBcCj4g
KyAgICBzdGF0aWMgaW5saW5lIGludCBfX0hWTV9TQVZFX0ZJWF9DT01QQVRfIyNfeCh2b2lkICpo
LCB1aW50MzJfdCBzaXplKSAgXAo+ICsgICAgICAgIHsgcmV0dXJuIF9maXgoaCwgc2l6ZSk7IH0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIHN0cnVjdCBf
X0hWTV9TQVZFX1RZUEVfIyNfeCB7IF90eXBlIHQ7IGNoYXIgY1tfY29kZV07IGNoYXIgY3B0WzJd
O307ICBcCj4gICAgICBzdHJ1Y3QgX19IVk1fU0FWRV9UWVBFX0NPTVBBVF8jI194IHsgX2N0eXBl
IHQ7IH0gICAgICAgICAgICAgICAgICAgCj4gIAo+ICAjIGluY2x1ZGUgPHhlbi9saWIuaD4gLyog
QlVHKCkgKi8KPiAgIyBkZWZpbmUgREVDTEFSRV9IVk1fU0FWRV9UWVBFKF94LCBfY29kZSwgX3R5
cGUpICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiAtICAgIHN0YXRpYyBpbmxpbmUgaW50IF9f
SFZNX1NBVkVfRklYX0NPTVBBVF8jI194KHZvaWQgKmgpIHsgQlVHKCk7IHJldHVybiAtMTsgfSBc
Cj4gKyAgICBzdGF0aWMgaW5saW5lIGludCBfX0hWTV9TQVZFX0ZJWF9DT01QQVRfIyNfeCh2b2lk
ICpoLCB1aW50MzJfdCBzaXplKSBcCj4gKyAgICAgICAgeyBCVUcoKTsgcmV0dXJuIC0xOyB9ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gICAgICBzdHJ1Y3Qg
X19IVk1fU0FWRV9UWVBFXyMjX3ggeyBfdHlwZSB0OyBjaGFyIGNbX2NvZGVdOyBjaGFyIGNwdFsx
XTt9OyBcCj4gICAgICBzdHJ1Y3QgX19IVk1fU0FWRV9UWVBFX0NPTVBBVF8jI194IHsgX3R5cGUg
dDsgfSAgICAgICAgICAgICAgICAgICAKPiAgI2Vsc2UKPiBAQCAtODksNyArOTEsNyBAQCBzdHJ1
Y3QgaHZtX3NhdmVfZGVzY3JpcHRvciB7Cj4gICMgZGVmaW5lIEhWTV9TQVZFX0xFTkdUSF9DT01Q
QVQoX3gpIChzaXplb2YgKEhWTV9TQVZFX1RZUEVfQ09NUEFUKF94KSkpCj4gIAo+ICAjIGRlZmlu
ZSBIVk1fU0FWRV9IQVNfQ09NUEFUKF94KSAoc2l6ZW9mICgoKHN0cnVjdCBfX0hWTV9TQVZFX1RZ
UEVfIyNfeCAqKSgwKSktPmNwdCktMSkKPiAtIyBkZWZpbmUgSFZNX1NBVkVfRklYX0NPTVBBVChf
eCwgX2RzdCkgX19IVk1fU0FWRV9GSVhfQ09NUEFUXyMjX3goX2RzdCkKPiArIyBkZWZpbmUgSFZN
X1NBVkVfRklYX0NPTVBBVChfeCwgX2RzdCwgX3NpemUpIF9fSFZNX1NBVkVfRklYX0NPTVBBVF8j
I194KF9kc3QsIF9zaXplKQo+ICAjZW5kaWYKPiAgCj4gIC8qIAo+IGRpZmYgLS1naXQgYS9pbmNs
dWRlL3hlbi9pby85cGZzLmggYi9pbmNsdWRlL3hlbi9pby85cGZzLmgKPiBuZXcgZmlsZSBtb2Rl
IDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjRiZmQ1ZDQKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIv
aW5jbHVkZS94ZW4vaW8vOXBmcy5oCj4gQEAgLTAsMCArMSw0OSBAQAo+ICsvKgo+ICsgKiA5cGZz
LmggLS0gWGVuIDlQRlMgdHJhbnNwb3J0Cj4gKyAqCj4gKyAqIFJlZmVyIHRvIGRvY3MvbWlzYy85
cGZzLm1hcmtkb3duIGZvciB0aGUgc3BlY2lmaWNhdGlvbgo+ICsgKgo+ICsgKiBQZXJtaXNzaW9u
IGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5p
bmcgYSBjb3B5Cj4gKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRh
dGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bwo+ICsgKiBkZWFsIGluIHRoZSBTb2Z0d2Fy
ZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQo+
ICsgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmli
dXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKPiArICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJl
LCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKPiArICogZnVy
bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiAr
ICoKPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu
b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KPiArICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlh
bCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCj4gKyAqCj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9S
Cj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKPiArICogQVVU
SE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdF
UyBPUiBPVEhFUgo+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRS
QUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwo+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4g
Q09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCj4gKyAqIERF
QUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KPiArICoKPiArICogQ29weXJpZ2h0IChDKSAyMDE3IFN0
ZWZhbm8gU3RhYmVsbGluaSA8c3RlZmFub0BhcG9yZXRvLmNvbT4KPiArICovCj4gKwo+ICsjaWZu
ZGVmIF9fWEVOX1BVQkxJQ19JT185UEZTX0hfXwo+ICsjZGVmaW5lIF9fWEVOX1BVQkxJQ19JT185
UEZTX0hfXwo+ICsKPiArI2luY2x1ZGUgIi4uL2dyYW50X3RhYmxlLmgiCj4gKyNpbmNsdWRlICJy
aW5nLmgiCj4gKwo+ICsvKgo+ICsgKiBTZWUgZG9jcy9taXNjLzlwZnMubWFya2Rvd24gaW4geGVu
LmdpdCBmb3IgdGhlIGZ1bGwgc3BlY2lmaWNhdGlvbjoKPiArICogaHR0cHM6Ly94ZW5iaXRzLnhl
bi5vcmcvZG9jcy91bnN0YWJsZS9taXNjLzlwZnMuaHRtbAo+ICsgKi8KPiArREVGSU5FX1hFTl9G
TEVYX1JJTkdfQU5EX0lOVEYoeGVuXzlwZnMpOwo+ICsKPiArI2VuZGlmCj4gKwo+ICsvKgo+ICsg
KiBMb2NhbCB2YXJpYWJsZXM6Cj4gKyAqIG1vZGU6IEMKPiArICogYy1maWxlLXN0eWxlOiAiQlNE
Igo+ICsgKiBjLWJhc2ljLW9mZnNldDogNAo+ICsgKiB0YWItd2lkdGg6IDQKPiArICogaW5kZW50
LXRhYnMtbW9kZTogbmlsCj4gKyAqIEVuZDoKPiArICovCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUv
eGVuL2lvL2Jsa2lmLmggYi9pbmNsdWRlL3hlbi9pby9ibGtpZi5oCj4gaW5kZXggNmJhZjdmYi4u
MTVhNzFlMyAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3hlbi9pby9ibGtpZi5oCj4gKysrIGIvaW5j
bHVkZS94ZW4vaW8vYmxraWYuaAo+IEBAIC04OSw4ICs4OSwyMiBAQAo+ICAgKiAgICAgIFZhbHVl
czogICAgICAgICBzdHJpbmcKPiAgICoKPiAgICogICAgICBBIGZyZWUgZm9ybWF0dGVkIHN0cmlu
ZyBwcm92aWRpbmcgc3VmZmljaWVudCBpbmZvcm1hdGlvbiBmb3IgdGhlCj4gLSAqICAgICAgYmFj
a2VuZCBkcml2ZXIgdG8gb3BlbiB0aGUgYmFja2luZyBkZXZpY2UuICAoZS5nLiB0aGUgcGF0aCB0
byB0aGUKPiAtICogICAgICBmaWxlIG9yIGJsb2NrIGRldmljZSByZXByZXNlbnRpbmcgdGhlIGJh
Y2tpbmcgc3RvcmUuKQo+ICsgKiAgICAgIGhvdHBsdWcgc2NyaXB0IHRvIGF0dGFjaCB0aGUgZGV2
aWNlIGFuZCBwcm92aWRlIGEgc3VpdGFibGUKPiArICogICAgICBoYW5kbGVyIChpZTogYSBibG9j
ayBkZXZpY2UpIGZvciBibGtiYWNrIHRvIHVzZS4KPiArICoKPiArICogcGh5c2ljYWwtZGV2aWNl
Cj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgICJNQUpPUjpNSU5PUiIKPiArICogICAgICBOb3Rl
czogMTEKPiArICoKPiArICogICAgICBNQUpPUiBhbmQgTUlOT1IgYXJlIHRoZSBtYWpvciBudW1i
ZXIgYW5kIG1pbm9yIG51bWJlciBvZiB0aGUKPiArICogICAgICBiYWNraW5nIGRldmljZSByZXNw
ZWN0aXZlbHkuCj4gKyAqCj4gKyAqIHBoeXNpY2FsLWRldmljZS1wYXRoCj4gKyAqICAgICAgVmFs
dWVzOiAgICAgICAgIHBhdGggc3RyaW5nCj4gKyAqCj4gKyAqICAgICAgQSBzdHJpbmcgdGhhdCBj
b250YWlucyB0aGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgZGlzayBpbWFnZS4gT24KPiArICogICAg
ICBOZXRCU0QgYW5kIExpbnV4IHRoaXMgaXMgYWx3YXlzIGEgYmxvY2sgZGV2aWNlLCB3aGlsZSBv
biBGcmVlQlNECj4gKyAqICAgICAgaXQgY2FuIGJlIGVpdGhlciBhIGJsb2NrIGRldmljZSBvciBh
IHJlZ3VsYXIgZmlsZS4KPiAgICoKPiAgICogdHlwZQo+ICAgKiAgICAgIFZhbHVlczogICAgICAg
ICAiZmlsZSIsICJwaHkiLCAidGFwIgo+IEBAIC0yMDIsMTAgKzIxNiw5IEBACj4gICAqICAgICAg
RGVmYXVsdCBWYWx1ZTogIDEKPiAgICoKPiAgICogICAgICBUaGlzIG9wdGlvbmFsIHByb3BlcnR5
LCBzZXQgYnkgdGhlIHRvb2xzdGFjaywgaW5zdHJ1Y3RzIHRoZSBiYWNrZW5kCj4gLSAqICAgICAg
dG8gb2ZmZXIgZGlzY2FyZCB0byB0aGUgZnJvbnRlbmQuIElmIHRoZSBwcm9wZXJ0eSBpcyBtaXNz
aW5nIHRoZQo+IC0gKiAgICAgIGJhY2tlbmQgc2hvdWxkIG9mZmVyIGRpc2NhcmQgaWYgdGhlIGJh
Y2tpbmcgc3RvcmFnZSBhY3R1YWxseSBzdXBwb3J0cwo+IC0gKiAgICAgIGl0LiBUaGlzIG9wdGlv
bmFsIHByb3BlcnR5LCBzZXQgYnkgdGhlIHRvb2xzdGFjaywgcmVxdWVzdHMgdGhhdCB0aGUKPiAt
ICogICAgICBiYWNrZW5kIG9mZmVyLCBvciBub3Qgb2ZmZXIsIGRpc2NhcmQgdG8gdGhlIGZyb250
ZW5kLgo+ICsgKiAgICAgIHRvIG9mZmVyIChvciBub3QgdG8gb2ZmZXIpIGRpc2NhcmQgdG8gdGhl
IGZyb250ZW5kLiBJZiB0aGUgcHJvcGVydHkKPiArICogICAgICBpcyBtaXNzaW5nIHRoZSBiYWNr
ZW5kIHNob3VsZCBvZmZlciBkaXNjYXJkIGlmIHRoZSBiYWNraW5nIHN0b3JhZ2UKPiArICogICAg
ICBhY3R1YWxseSBzdXBwb3J0cyBpdC4KPiAgICoKPiAgICogZGlzY2FyZC1hbGlnbm1lbnQKPiAg
ICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQzMl90Pgo+IEBAIC0zODUsNiArMzk4LDU1IEBA
Cj4gICAqICAgICB0aGFuIFJJTkdfU0laRSAqIEJMS0lGX01BWF9TRUdNRU5UU19QRVJfUkVRVUVT
VC4KPiAgICooMTApIFRoZSBkaXNjYXJkLXNlY3VyZSBwcm9wZXJ0eSBtYXkgYmUgcHJlc2VudCBh
bmQgd2lsbCBiZSBzZXQgdG8gMSBpZiB0aGUKPiAgICogICAgIGJhY2tpbmcgZGV2aWNlIHN1cHBv
cnRzIHNlY3VyZSBkaXNjYXJkLgo+ICsgKigxMSkgT25seSB1c2VkIGJ5IExpbnV4IGFuZCBOZXRC
U0QuCj4gKyAqLwo+ICsKPiArLyoKPiArICogTXVsdGlwbGUgaGFyZHdhcmUgcXVldWVzL3Jpbmdz
Ogo+ICsgKiBJZiBzdXBwb3J0ZWQsIHRoZSBiYWNrZW5kIHdpbGwgd3JpdGUgdGhlIGtleSAibXVs
dGktcXVldWUtbWF4LXF1ZXVlcyIgdG8KPiArICogdGhlIGRpcmVjdG9yeSBmb3IgdGhhdCB2YmQs
IGFuZCBzZXQgaXRzIHZhbHVlIHRvIHRoZSBtYXhpbXVtIHN1cHBvcnRlZAo+ICsgKiBudW1iZXIg
b2YgcXVldWVzLgo+ICsgKiBGcm9udGVuZHMgdGhhdCBhcmUgYXdhcmUgb2YgdGhpcyBmZWF0dXJl
IGFuZCB3aXNoIHRvIHVzZSBpdCBjYW4gd3JpdGUgdGhlCj4gKyAqIGtleSAibXVsdGktcXVldWUt
bnVtLXF1ZXVlcyIgd2l0aCB0aGUgbnVtYmVyIHRoZXkgd2lzaCB0byB1c2UsIHdoaWNoIG11c3Qg
YmUKPiArICogZ3JlYXRlciB0aGFuIHplcm8sIGFuZCBubyBtb3JlIHRoYW4gdGhlIHZhbHVlIHJl
cG9ydGVkIGJ5IHRoZSBiYWNrZW5kIGluCj4gKyAqICJtdWx0aS1xdWV1ZS1tYXgtcXVldWVzIi4K
PiArICoKPiArICogRm9yIGZyb250ZW5kcyByZXF1ZXN0aW5nIGp1c3Qgb25lIHF1ZXVlLCB0aGUg
dXN1YWwgZXZlbnQtY2hhbm5lbCBhbmQKPiArICogcmluZy1yZWYga2V5cyBhcmUgd3JpdHRlbiBh
cyBiZWZvcmUsIHNpbXBsaWZ5aW5nIHRoZSBiYWNrZW5kIHByb2Nlc3NpbmcKPiArICogdG8gYXZv
aWQgZGlzdGluZ3Vpc2hpbmcgYmV0d2VlbiBhIGZyb250ZW5kIHRoYXQgZG9lc24ndCB1bmRlcnN0
YW5kIHRoZQo+ICsgKiBtdWx0aS1xdWV1ZSBmZWF0dXJlLCBhbmQgb25lIHRoYXQgZG9lcywgYnV0
IHJlcXVlc3RlZCBvbmx5IG9uZSBxdWV1ZS4KPiArICoKPiArICogRnJvbnRlbmRzIHJlcXVlc3Rp
bmcgdHdvIG9yIG1vcmUgcXVldWVzIG11c3Qgbm90IHdyaXRlIHRoZSB0b3BsZXZlbAo+ICsgKiBl
dmVudC1jaGFubmVsIGFuZCByaW5nLXJlZiBrZXlzLCBpbnN0ZWFkIHdyaXRpbmcgdGhvc2Uga2V5
cyB1bmRlciBzdWIta2V5cwo+ICsgKiBoYXZpbmcgdGhlIG5hbWUgInF1ZXVlLU4iIHdoZXJlIE4g
aXMgdGhlIGludGVnZXIgSUQgb2YgdGhlIHF1ZXVlL3JpbmcgZm9yCj4gKyAqIHdoaWNoIHRob3Nl
IGtleXMgYmVsb25nLiBRdWV1ZXMgYXJlIGluZGV4ZWQgZnJvbSB6ZXJvLgo+ICsgKiBGb3IgZXhh
bXBsZSwgYSBmcm9udGVuZCB3aXRoIHR3byBxdWV1ZXMgbXVzdCB3cml0ZSB0aGUgZm9sbG93aW5n
IHNldCBvZgo+ICsgKiBxdWV1ZS1yZWxhdGVkIGtleXM6Cj4gKyAqCj4gKyAqIC9sb2NhbC9kb21h
aW4vMS9kZXZpY2UvdmJkLzAvbXVsdGktcXVldWUtbnVtLXF1ZXVlcyA9ICIyIgo+ICsgKiAvbG9j
YWwvZG9tYWluLzEvZGV2aWNlL3ZiZC8wL3F1ZXVlLTAgPSAiIgo+ICsgKiAvbG9jYWwvZG9tYWlu
LzEvZGV2aWNlL3ZiZC8wL3F1ZXVlLTAvcmluZy1yZWYgPSAiPHJpbmctcmVmIzA+Igo+ICsgKiAv
bG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZiZC8wL3F1ZXVlLTAvZXZlbnQtY2hhbm5lbCA9ICI8ZXZ0
Y2huIzA+Igo+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZiZC8wL3F1ZXVlLTEgPSAiIgo+
ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZiZC8wL3F1ZXVlLTEvcmluZy1yZWYgPSAiPHJp
bmctcmVmIzE+Igo+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZiZC8wL3F1ZXVlLTEvZXZl
bnQtY2hhbm5lbCA9ICI8ZXZ0Y2huIzE+Igo+ICsgKgo+ICsgKiBJdCBpcyBhbHNvIHBvc3NpYmxl
IHRvIHVzZSBtdWx0aXBsZSBxdWV1ZXMvcmluZ3MgdG9nZXRoZXIgd2l0aAo+ICsgKiBmZWF0dXJl
IG11bHRpLXBhZ2UgcmluZyBidWZmZXIuCj4gKyAqIEZvciBleGFtcGxlLCBhIGZyb250ZW5kIHJl
cXVlc3RzIHR3byBxdWV1ZXMvcmluZ3MgYW5kIHRoZSBzaXplIG9mIGVhY2ggcmluZwo+ICsgKiBi
dWZmZXIgaXMgdHdvIHBhZ2VzIG11c3Qgd3JpdGUgdGhlIGZvbGxvd2luZyBzZXQgb2YgcmVsYXRl
ZCBrZXlzOgo+ICsgKgo+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZiZC8wL211bHRpLXF1
ZXVlLW51bS1xdWV1ZXMgPSAiMiIKPiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92YmQvMC9y
aW5nLXBhZ2Utb3JkZXIgPSAiMSIKPiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92YmQvMC9x
dWV1ZS0wID0gIiIKPiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92YmQvMC9xdWV1ZS0wL3Jp
bmctcmVmMCA9ICI8cmluZy1yZWYjMD4iCj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmJk
LzAvcXVldWUtMC9yaW5nLXJlZjEgPSAiPHJpbmctcmVmIzE+Igo+ICsgKiAvbG9jYWwvZG9tYWlu
LzEvZGV2aWNlL3ZiZC8wL3F1ZXVlLTAvZXZlbnQtY2hhbm5lbCA9ICI8ZXZ0Y2huIzA+Igo+ICsg
KiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZiZC8wL3F1ZXVlLTEgPSAiIgo+ICsgKiAvbG9jYWwv
ZG9tYWluLzEvZGV2aWNlL3ZiZC8wL3F1ZXVlLTEvcmluZy1yZWYwID0gIjxyaW5nLXJlZiMyPiIK
PiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92YmQvMC9xdWV1ZS0xL3JpbmctcmVmMSA9ICI8
cmluZy1yZWYjMz4iCj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmJkLzAvcXVldWUtMS9l
dmVudC1jaGFubmVsID0gIjxldnRjaG4jMT4iCj4gKyAqCj4gICAqLwo+ICAKPiAgLyoKPiBkaWZm
IC0tZ2l0IGEvaW5jbHVkZS94ZW4vaW8vY29uc29sZS5oIGIvaW5jbHVkZS94ZW4vaW8vY29uc29s
ZS5oCj4gaW5kZXggZTJjZDk3Zi4uMGYwNzExZiAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3hlbi9p
by9jb25zb2xlLmgKPiArKysgYi9pbmNsdWRlL3hlbi9pby9jb25zb2xlLmgKPiBAQCAtMjcsNiAr
MjcsOCBAQAo+ICAjaWZuZGVmIF9fWEVOX1BVQkxJQ19JT19DT05TT0xFX0hfXwo+ICAjZGVmaW5l
IF9fWEVOX1BVQkxJQ19JT19DT05TT0xFX0hfXwo+ICAKPiArI2luY2x1ZGUgInJpbmcuaCIKPiAr
Cj4gIHR5cGVkZWYgdWludDMyX3QgWEVOQ09OU19SSU5HX0lEWDsKPiAgCj4gICNkZWZpbmUgTUFT
S19YRU5DT05TX0lEWChpZHgsIHJpbmcpICgoaWR4KSAmIChzaXplb2YocmluZyktMSkpCj4gQEAg
LTM4LDYgKzQwLDEwIEBAIHN0cnVjdCB4ZW5jb25zX2ludGVyZmFjZSB7Cj4gICAgICBYRU5DT05T
X1JJTkdfSURYIG91dF9jb25zLCBvdXRfcHJvZDsKPiAgfTsKPiAgCj4gKyNpZiBkZWZpbmVkKF9f
R05VQ19fKSAmJiAhZGVmaW5lZChfX1NUUklDVF9BTlNJX18pCj4gK0RFRklORV9YRU5fRkxFWF9S
SU5HKHhlbmNvbnMpOwo+ICsjZW5kaWYKPiArCj4gICNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfSU9f
Q09OU09MRV9IX18gKi8KPiAgCj4gIC8qCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2lvL2Rp
c3BsaWYuaCBiL2luY2x1ZGUveGVuL2lvL2Rpc3BsaWYuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0
Cj4gaW5kZXggMDAwMDAwMC4uOGE5NGYxZgo+IC0tLSAvZGV2L251bGwKPiArKysgYi9pbmNsdWRl
L3hlbi9pby9kaXNwbGlmLmgKPiBAQCAtMCwwICsxLDg2NCBAQAo+ICsvKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCj4gKyAqIGRpc3BsaWYuaAo+ICsgKgo+ICsgKiBVbmlmaWVkIGRpc3BsYXkgZGV2aWNl
IEkvTyBpbnRlcmZhY2UgZm9yIFhlbiBndWVzdCBPU2VzLgo+ICsgKgo+ICsgKiBQZXJtaXNzaW9u
IGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5p
bmcgYSBjb3B5Cj4gKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRh
dGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bwo+ICsgKiBkZWFsIGluIHRoZSBTb2Z0d2Fy
ZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQo+
ICsgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmli
dXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKPiArICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJl
LCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKPiArICogZnVy
bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiAr
ICoKPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu
b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KPiArICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlh
bCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCj4gKyAqCj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9S
Cj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKPiArICogQVVU
SE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdF
UyBPUiBPVEhFUgo+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRS
QUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwo+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4g
Q09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCj4gKyAqIERF
QUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KPiArICoKPiArICogQ29weXJpZ2h0IChDKSAyMDE2LTIw
MTcgRVBBTSBTeXN0ZW1zIEluYy4KPiArICoKPiArICogQXV0aG9yczogT2xla3NhbmRyIEFuZHJ1
c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPgo+ICsgKiAgICAgICAg
ICBPbGVrc2FuZHIgR3J5dHNvdiA8b2xla3NhbmRyX2dyeXRzb3ZAZXBhbS5jb20+Cj4gKyAqLwo+
ICsKPiArI2lmbmRlZiBfX1hFTl9QVUJMSUNfSU9fRElTUExJRl9IX18KPiArI2RlZmluZSBfX1hF
Tl9QVUJMSUNfSU9fRElTUExJRl9IX18KPiArCj4gKyNpbmNsdWRlICJyaW5nLmgiCj4gKyNpbmNs
dWRlICIuLi9ncmFudF90YWJsZS5oIgo+ICsKPiArLyoKPiArICoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
Kgo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb3RvY29sIHZlcnNpb24KPiArICoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgo+ICsgKi8KPiArI2RlZmluZSBYRU5ESVNQTF9QUk9UT0NPTF9W
RVJTSU9OICAgICAiMSIKPiArCj4gKy8qCj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiArICog
ICAgICAgICAgICAgICAgICBNYWluIGZlYXR1cmVzIHByb3ZpZGVkIGJ5IHRoZSBwcm90b2NvbAo+
ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAqIFRoaXMgcHJvdG9jb2wgYWltcyB0byBwcm92
aWRlIGEgdW5pZmllZCBwcm90b2NvbCB3aGljaCBmaXRzIG1vcmUKPiArICogc29waGlzdGljYXRl
ZCB1c2UtY2FzZXMgdGhhbiBhIGZyYW1lYnVmZmVyIGRldmljZSBjYW4gaGFuZGxlLiBBdCB0aGUK
PiArICogbW9tZW50IGJhc2ljIGZ1bmN0aW9uYWxpdHkgaXMgc3VwcG9ydGVkIHdpdGggdGhlIGlu
dGVudGlvbiB0byBiZSBleHRlbmRlZDoKPiArICogIG8gbXVsdGlwbGUgZHluYW1pY2FsbHkgYWxs
b2NhdGVkL2Rlc3Ryb3llZCBmcmFtZWJ1ZmZlcnMKPiArICogIG8gYnVmZmVycyBvZiBhcmJpdHJh
cnkgc2l6ZXMKPiArICogIG8gYnVmZmVyIGFsbG9jYXRpb24gYXQgZWl0aGVyIGJhY2sgb3IgZnJv
bnQgZW5kCj4gKyAqICBvIGJldHRlciBjb25maWd1cmF0aW9uIG9wdGlvbnMgaW5jbHVkaW5nIG11
bHRpcGxlIGRpc3BsYXkgc3VwcG9ydAo+ICsgKgo+ICsgKiBOb3RlOiBleGlzdGluZyBmYmlmIGNh
biBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggZGlzcGxpZiBydW5uaW5nIGF0IHRoZQo+ICsgKiBzYW1l
IHRpbWUsIGUuZy4gb24gTGludXggb25lIHByb3ZpZGVzIGZyYW1lYnVmZmVyIGFuZCBhbm90aGVy
IERSTS9LTVMKPiArICoKPiArICogTm90ZTogZGlzcGxheSByZXNvbHV0aW9uIChYZW5TdG9yZSdz
ICJyZXNvbHV0aW9uIiBwcm9wZXJ0eSkgZGVmaW5lcwo+ICsgKiB2aXNpYmxlIGFyZWEgb2YgdGhl
IHZpcnR1YWwgZGlzcGxheS4gQXQgdGhlIHNhbWUgdGltZSByZXNvbHV0aW9uIG9mCj4gKyAqIHRo
ZSBkaXNwbGF5IGFuZCBmcmFtZSBidWZmZXJzIG1heSBkaWZmZXI6IGJ1ZmZlcnMgY2FuIGJlIHNt
YWxsZXIsIGVxdWFsCj4gKyAqIG9yIGJpZ2dlciB0aGFuIHRoZSB2aXNpYmxlIGFyZWEuIFRoaXMg
aXMgdG8gZW5hYmxlIHVzZS1jYXNlcywgd2hlcmUgYmFja2VuZAo+ICsgKiBtYXkgZG8gc29tZSBw
b3N0LXByb2Nlc3Npbmcgb2YgdGhlIGRpc3BsYXkgYW5kIGZyYW1lIGJ1ZmZlcnMgc3VwcGxpZWQs
Cj4gKyAqIGUuZy4gdGhvc2UgYnVmZmVycyBjYW4gYmUganVzdCBhIHBhcnQgb2YgdGhlIGZpbmFs
IGNvbXBvc2l0aW9uLgo+ICsgKgo+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAqICAgICAg
ICAgICAgICAgICAgICAgICAgRGlyZWN0aW9uIG9mIGltcHJvdmVtZW50cwo+ICsgKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqCj4gKyAqIEZ1dHVyZSBleHRlbnNpb25zIHRvIHRoZSBleGlzdGluZyBwcm90
b2NvbCBtYXkgaW5jbHVkZToKPiArICogIG8gZGlzcGxheS9jb25uZWN0b3IgY2xvbmluZwo+ICsg
KiAgbyBhbGxvY2F0aW9uIG9mIG9iamVjdHMgb3RoZXIgdGhhbiBkaXNwbGF5IGJ1ZmZlcnMKPiAr
ICogIG8gcGxhbmUvb3ZlcmxheSBzdXBwb3J0Cj4gKyAqICBvIHNjYWxpbmcgc3VwcG9ydAo+ICsg
KiAgbyByb3RhdGlvbiBzdXBwb3J0Cj4gKyAqCj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiAr
ICogICAgICAgICAgICAgICAgICBGZWF0dXJlIGFuZCBQYXJhbWV0ZXIgTmVnb3RpYXRpb24KPiAr
ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgo+ICsgKgo+ICsgKiBGcm9udC0+YmFjayBub3RpZmljYXRp
b25zOiB3aGVuIGVucXVldWluZyBhIG5ldyByZXF1ZXN0LCBzZW5kaW5nIGEKPiArICogbm90aWZp
Y2F0aW9uIGNhbiBiZSBtYWRlIGNvbmRpdGlvbmFsIG9uIHhlbmRpc3BsX3JlcSAoaS5lLiwgdGhl
IGdlbmVyaWMKPiArICogaG9sZC1vZmYgbWVjaGFuaXNtIHByb3ZpZGVkIGJ5IHRoZSByaW5nIG1h
Y3JvcykuIEJhY2tlbmRzIG11c3Qgc2V0Cj4gKyAqIHhlbmRpc3BsX3JlcSBhcHByb3ByaWF0ZWx5
IChlLmcuLCB1c2luZyBSSU5HX0ZJTkFMX0NIRUNLX0ZPUl9SRVFVRVNUUygpKS4KPiArICoKPiAr
ICogQmFjay0+ZnJvbnQgbm90aWZpY2F0aW9uczogd2hlbiBlbnF1ZXVpbmcgYSBuZXcgcmVzcG9u
c2UsIHNlbmRpbmcgYQo+ICsgKiBub3RpZmljYXRpb24gY2FuIGJlIG1hZGUgY29uZGl0aW9uYWwg
b24geGVuZGlzcGxfcmVzcCAoaS5lLiwgdGhlIGdlbmVyaWMKPiArICogaG9sZC1vZmYgbWVjaGFu
aXNtIHByb3ZpZGVkIGJ5IHRoZSByaW5nIG1hY3JvcykuIEZyb250ZW5kcyBtdXN0IHNldAo+ICsg
KiB4ZW5kaXNwbF9yZXNwIGFwcHJvcHJpYXRlbHkgKGUuZy4sIHVzaW5nIFJJTkdfRklOQUxfQ0hF
Q0tfRk9SX1JFU1BPTlNFUygpKS4KPiArICoKPiArICogVGhlIHR3byBoYWx2ZXMgb2YgYSBwYXJh
LXZpcnR1YWwgZGlzcGxheSBkcml2ZXIgdXRpbGl6ZSBub2RlcyB3aXRoaW4KPiArICogWGVuU3Rv
cmUgdG8gY29tbXVuaWNhdGUgY2FwYWJpbGl0aWVzIGFuZCB0byBuZWdvdGlhdGUgb3BlcmF0aW5n
IHBhcmFtZXRlcnMuCj4gKyAqIFRoaXMgc2VjdGlvbiBlbnVtZXJhdGVzIHRoZXNlIG5vZGVzIHdo
aWNoIHJlc2lkZSBpbiB0aGUgcmVzcGVjdGl2ZSBmcm9udCBhbmQKPiArICogYmFja2VuZCBwb3J0
aW9ucyBvZiBYZW5TdG9yZSwgZm9sbG93aW5nIHRoZSBYZW5CdXMgY29udmVudGlvbi4KPiArICoK
PiArICogQWxsIGRhdGEgaW4gWGVuU3RvcmUgaXMgc3RvcmVkIGFzIHN0cmluZ3MuIE5vZGVzIHNw
ZWNpZnlpbmcgbnVtZXJpYwo+ICsgKiB2YWx1ZXMgYXJlIGVuY29kZWQgaW4gZGVjaW1hbC4gSW50
ZWdlciB2YWx1ZSByYW5nZXMgbGlzdGVkIGJlbG93IGFyZQo+ICsgKiBleHByZXNzZWQgYXMgZml4
ZWQgc2l6ZWQgaW50ZWdlciB0eXBlcyBjYXBhYmxlIG9mIHN0b3JpbmcgdGhlIGNvbnZlcnNpb24K
PiArICogb2YgYSBwcm9wZXJseSBmb3JtYXRlZCBub2RlIHN0cmluZywgd2l0aG91dCBsb3NzIG9m
IGluZm9ybWF0aW9uLgo+ICsgKgo+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAqICAgICAg
ICAgICAgICAgICAgICAgICAgRXhhbXBsZSBjb25maWd1cmF0aW9uCj4gKyAqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKPiArICoKPiArICogTm90ZTogZGVwZW5kaW5nIG9uIHRoZSB1c2UtY2FzZSBiYWNr
ZW5kIGNhbiBleHBvc2UgbW9yZSBkaXNwbGF5IGNvbm5lY3RvcnMKPiArICogdGhhbiB0aGUgdW5k
ZXJseWluZyBIVyBwaHlzaWNhbGx5IGhhcyBieSBlbXBsb3lpbmcgU1cgZ3JhcGhpY3MgY29tcG9z
aXRvcnMKPiArICoKPiArICogVGhpcyBpcyBhbiBleGFtcGxlIG9mIGJhY2tlbmQgYW5kIGZyb250
ZW5kIGNvbmZpZ3VyYXRpb246Cj4gKyAqCj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tIEJhY2tlbmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoK
PiArICogL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQvdmRpc3BsLzEvMC9mcm9udGVuZC1pZCA9ICIx
Igo+ICsgKiAvbG9jYWwvZG9tYWluLzAvYmFja2VuZC92ZGlzcGwvMS8wL2Zyb250ZW5kID0gIi9s
b2NhbC9kb21haW4vMS9kZXZpY2UvdmRpc3BsLzAiCj4gKyAqIC9sb2NhbC9kb21haW4vMC9iYWNr
ZW5kL3ZkaXNwbC8xLzAvc3RhdGUgPSAiNCIKPiArICogL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQv
dmRpc3BsLzEvMC92ZXJzaW9ucyA9ICIxLDIiCj4gKyAqCj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tIEZyb250ZW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KPiArICoKPiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92ZGlzcGwvMC9iYWNrZW5kLWlk
ID0gIjAiCj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmRpc3BsLzAvYmFja2VuZCA9ICIv
bG9jYWwvZG9tYWluLzAvYmFja2VuZC92ZGlzcGwvMS8wIgo+ICsgKiAvbG9jYWwvZG9tYWluLzEv
ZGV2aWNlL3ZkaXNwbC8wL3N0YXRlID0gIjQiCj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2Uv
dmRpc3BsLzAvdmVyc2lvbiA9ICIxIgo+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZkaXNw
bC8wL2JlLWFsbG9jID0gIjEiCj4gKyAqCj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
Q29ubmVjdG9yIDAgY29uZmlndXJhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoK
PiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92ZGlzcGwvMC8wL3Jlc29sdXRpb24gPSAiMTky
MHgxMDgwIgo+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZkaXNwbC8wLzAvcmVxLXJpbmct
cmVmID0gIjI4MzIiCj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmRpc3BsLzAvMC9yZXEt
ZXZlbnQtY2hhbm5lbCA9ICIxNSIKPiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92ZGlzcGwv
MC8wL2V2dC1yaW5nLXJlZiA9ICIzODciCj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmRp
c3BsLzAvMC9ldnQtZXZlbnQtY2hhbm5lbCA9ICIxNiIKPiArICoKPiArICotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSBDb25uZWN0b3IgMSBjb25maWd1cmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQo+ICsgKgo+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZkaXNwbC8wLzEvcmVz
b2x1dGlvbiA9ICI4MDB4NjAwIgo+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZkaXNwbC8w
LzEvcmVxLXJpbmctcmVmID0gIjI4MzMiCj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmRp
c3BsLzAvMS9yZXEtZXZlbnQtY2hhbm5lbCA9ICIxNyIKPiArICogL2xvY2FsL2RvbWFpbi8xL2Rl
dmljZS92ZGlzcGwvMC8xL2V2dC1yaW5nLXJlZiA9ICIzODgiCj4gKyAqIC9sb2NhbC9kb21haW4v
MS9kZXZpY2UvdmRpc3BsLzAvMS9ldnQtZXZlbnQtY2hhbm5lbCA9ICIxOCIKPiArICoKPiArICoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYWNr
ZW5kIFhlbkJ1cyBOb2Rlcwo+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAqCj4gKyAqLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUHJvdG9jb2wgdmVyc2lvbiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KPiArICoKPiArICogdmVyc2lvbnMKPiArICogICAgICBWYWx1ZXM6
ICAgICAgICAgPHN0cmluZz4KPiArICoKPiArICogICAgICBMaXN0IG9mIFhFTkRJU1BMX0xJU1Rf
U0VQQVJBVE9SIHNlcGFyYXRlZCBwcm90b2NvbCB2ZXJzaW9ucyBzdXBwb3J0ZWQKPiArICogICAg
ICBieSB0aGUgYmFja2VuZC4gRm9yIGV4YW1wbGUgIjEsMiwzIi4KPiArICoKPiArICoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVuZCBY
ZW5CdXMgTm9kZXMKPiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsgKgo+ICsgKi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFkZHJlc3NpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCj4gKyAqCj4gKyAqIGRvbS1pZAo+ICsgKiAgICAgIFZhbHVlczogICAgICAg
ICA8dWludDE2X3Q+Cj4gKyAqCj4gKyAqICAgICAgRG9tYWluIGlkZW50aWZpZXIuCj4gKyAqCj4g
KyAqIGRldi1pZAo+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludDE2X3Q+Cj4gKyAqCj4g
KyAqICAgICAgRGV2aWNlIGlkZW50aWZpZXIuCj4gKyAqCj4gKyAqIGNvbm4taWR4Cj4gKyAqICAg
ICAgVmFsdWVzOiAgICAgICAgIDx1aW50OF90Pgo+ICsgKgo+ICsgKiAgICAgIFplcm8gYmFzZWQg
Y29udGlnb3VzIGluZGV4IG9mIHRoZSBjb25uZWN0b3IuCj4gKyAqICAgICAgL2xvY2FsL2RvbWFp
bi88ZG9tLWlkPi9kZXZpY2UvdmRpc3BsLzxkZXYtaWQ+Lzxjb25uLWlkeD4vLi4uCj4gKyAqCj4g
KyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUHJvdG9jb2wgdmVyc2lvbiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoKPiArICogdmVyc2lvbgo+ICsgKiAgICAgIFZh
bHVlczogICAgICAgICA8c3RyaW5nPgo+ICsgKgo+ICsgKiAgICAgIFByb3RvY29sIHZlcnNpb24s
IGNob3NlbiBhbW9uZyB0aGUgb25lcyBzdXBwb3J0ZWQgYnkgdGhlIGJhY2tlbmQuCj4gKyAqCj4g
KyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBCYWNrZW5kIGJ1ZmZlciBhbGxvY2F0aW9uIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoKPiArICogYmUtYWxsb2MKPiArICogICAgICBW
YWx1ZXM6ICAgICAgICAgIjAiLCAiMSIKPiArICoKPiArICogICAgICBJZiB2YWx1ZSBpcyBzZXQg
dG8gIjEiLCB0aGVuIGJhY2tlbmQgY2FuIGJlIGEgYnVmZmVyIHByb3ZpZGVyL2FsbG9jYXRvcgo+
ICsgKiAgICAgIGZvciB0aGlzIGRvbWFpbiBkdXJpbmcgWEVORElTUExfT1BfREJVRl9DUkVBVEUg
b3BlcmF0aW9uIChzZWUgYmVsb3cKPiArICogICAgICBmb3IgbmVnb3RpYXRpb24pLgo+ICsgKiAg
ICAgIElmIHZhbHVlIGlzIG5vdCAiMSIgb3Igb21pdHRlZCBmcm9udGVuZCBtdXN0IGFsbG9jYXRl
IGJ1ZmZlcnMgaXRzZWxmLgo+ICsgKgo+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
IENvbm5lY3RvciBzZXR0aW5ncyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gKyAqCj4g
KyAqIHJlc29sdXRpb24KPiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPHdpZHRoLCB1aW50MzJf
dD54PGhlaWdodCwgdWludDMyX3Q+Cj4gKyAqCj4gKyAqICAgICAgV2lkdGggYW5kIGhlaWdodCBv
ZiB0aGUgY29ubmVjdG9yIGluIHBpeGVscyBzZXBhcmF0ZWQgYnkKPiArICogICAgICBYRU5ESVNQ
TF9SRVNPTFVUSU9OX1NFUEFSQVRPUi4gVGhpcyBkZWZpbmVzIHZpc2libGUgYXJlYSBvZiB0aGUK
PiArICogICAgICBkaXNwbGF5Lgo+ICsgKgo+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLSBDb25uZWN0
b3IgUmVxdWVzdCBUcmFuc3BvcnQgUGFyYW1ldGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tCj4gKyAq
Cj4gKyAqIFRoaXMgY29tbXVuaWNhdGlvbiBwYXRoIGlzIHVzZWQgdG8gZGVsaXZlciByZXF1ZXN0
cyBmcm9tIGZyb250ZW5kIHRvIGJhY2tlbmQKPiArICogYW5kIGdldCB0aGUgY29ycmVzcG9uZGlu
ZyByZXNwb25zZXMgZnJvbSBiYWNrZW5kIHRvIGZyb250ZW5kLAo+ICsgKiBzZXQgdXAgcGVyIGNv
bm5lY3Rvci4KPiArICoKPiArICogcmVxLWV2ZW50LWNoYW5uZWwKPiArICogICAgICBWYWx1ZXM6
ICAgICAgICAgPHVpbnQzMl90Pgo+ICsgKgo+ICsgKiAgICAgIFRoZSBpZGVudGlmaWVyIG9mIHRo
ZSBYZW4gY29ubmVjdG9yJ3MgY29udHJvbCBldmVudCBjaGFubmVsCj4gKyAqICAgICAgdXNlZCB0
byBzaWduYWwgYWN0aXZpdHkgaW4gdGhlIHJpbmcgYnVmZmVyLgo+ICsgKgo+ICsgKiByZXEtcmlu
Zy1yZWYKPiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQzMl90Pgo+ICsgKgo+ICsgKiAg
ICAgIFRoZSBYZW4gZ3JhbnQgcmVmZXJlbmNlIGdyYW50aW5nIHBlcm1pc3Npb24gZm9yIHRoZSBi
YWNrZW5kIHRvIG1hcAo+ICsgKiAgICAgIGEgc29sZSBwYWdlIG9mIGNvbm5lY3RvcidzIGNvbnRy
b2wgcmluZyBidWZmZXIuCj4gKyAqCj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLSBDb25uZWN0b3Ig
RXZlbnQgVHJhbnNwb3J0IFBhcmFtZXRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoKPiAr
ICogVGhpcyBjb21tdW5pY2F0aW9uIHBhdGggaXMgdXNlZCB0byBkZWxpdmVyIGFzeW5jaHJvbm91
cyBldmVudHMgZnJvbSBiYWNrZW5kCj4gKyAqIHRvIGZyb250ZW5kLCBzZXQgdXAgcGVyIGNvbm5l
Y3Rvci4KPiArICoKPiArICogZXZ0LWV2ZW50LWNoYW5uZWwKPiArICogICAgICBWYWx1ZXM6ICAg
ICAgICAgPHVpbnQzMl90Pgo+ICsgKgo+ICsgKiAgICAgIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBY
ZW4gY29ubmVjdG9yJ3MgZXZlbnQgY2hhbm5lbAo+ICsgKiAgICAgIHVzZWQgdG8gc2lnbmFsIGFj
dGl2aXR5IGluIHRoZSByaW5nIGJ1ZmZlci4KPiArICoKPiArICogZXZ0LXJpbmctcmVmCj4gKyAq
ICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4KPiArICoKPiArICogICAgICBUaGUgWGVu
IGdyYW50IHJlZmVyZW5jZSBncmFudGluZyBwZXJtaXNzaW9uIGZvciB0aGUgYmFja2VuZCB0byBt
YXAKPiArICogICAgICBhIHNvbGUgcGFnZSBvZiBjb25uZWN0b3IncyBldmVudCByaW5nIGJ1ZmZl
ci4KPiArICovCj4gKwo+ICsvKgo+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFNUQVRFIERJQUdSQU1TCj4gKyAqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKPiArICoKPiArICogVG9vbCBzdGFjayBjcmVhdGVzIGZyb250IGFuZCBiYWNrIHN0
YXRlIG5vZGVzIHdpdGggaW5pdGlhbCBzdGF0ZQo+ICsgKiBYZW5idXNTdGF0ZUluaXRpYWxpc2lu
Zy4KPiArICogVG9vbCBzdGFjayBjcmVhdGVzIGFuZCBzZXRzIHVwIGZyb250ZW5kIGRpc3BsYXkg
Y29uZmlndXJhdGlvbgo+ICsgKiBub2RlcyBwZXIgZG9tYWluLgo+ICsgKgo+ICsgKi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE5vcm1hbCBmbG93IC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCj4gKyAqCj4gKyAqIEZyb250ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBCYWNrCj4gKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgICA9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4gKyAqIFhlbmJ1c1N0YXRlSW5pdGlh
bGlzaW5nICAgICAgICAgICAgICBYZW5idXNTdGF0ZUluaXRpYWxpc2luZwo+ICsgKiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gUXVlcnkgYmFja2VuZCBkZXZpY2UgaWRl
bnRpZmljYXRpb24KPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRhdGEuCj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbyBPcGVu
IGFuZCB2YWxpZGF0ZSBiYWNrZW5kIGRldmljZS4KPiArICogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfAo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFYKPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFhlbmJ1c1N0YXRlSW5pdFdhaXQKPiArICoKPiArICogbyBRdWVyeSBmcm9udGVu
ZCBjb25maWd1cmF0aW9uCj4gKyAqIG8gQWxsb2NhdGUgYW5kIGluaXRpYWxpemUKPiArICogICBl
dmVudCBjaGFubmVscyBwZXIgY29uZmlndXJlZAo+ICsgKiAgIGNvbm5lY3Rvci4KPiArICogbyBQ
dWJsaXNoIHRyYW5zcG9ydCBwYXJhbWV0ZXJzCj4gKyAqICAgdGhhdCB3aWxsIGJlIGluIGVmZmVj
dCBkdXJpbmcKPiArICogICB0aGlzIGNvbm5lY3Rpb24uCj4gKyAqICAgICAgICAgICAgICB8Cj4g
KyAqICAgICAgICAgICAgICB8Cj4gKyAqICAgICAgICAgICAgICBWCj4gKyAqIFhlbmJ1c1N0YXRl
SW5pdGlhbGlzZWQKPiArICoKPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBvIFF1ZXJ5IGZyb250ZW5kIHRyYW5zcG9ydCBwYXJhbWV0ZXJzLgo+ICsgKiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gQ29ubmVjdCB0byB0aGUgZXZlbnQgY2hh
bm5lbHMuCj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfAo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwKPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBW
Cj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYZW5idXNTdGF0ZUNv
bm5lY3RlZAo+ICsgKgo+ICsgKiAgbyBDcmVhdGUgYW5kIGluaXRpYWxpemUgT1MKPiArICogICAg
dmlydHVhbCBkaXNwbGF5IGNvbm5lY3RvcnMKPiArICogICAgYXMgcGVyIGNvbmZpZ3VyYXRpb24u
Cj4gKyAqICAgICAgICAgICAgICB8Cj4gKyAqICAgICAgICAgICAgICB8Cj4gKyAqICAgICAgICAg
ICAgICBWCj4gKyAqIFhlbmJ1c1N0YXRlQ29ubmVjdGVkCj4gKyAqCj4gKyAqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBYZW5idXNTdGF0ZVVua25vd24KPiArICogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlQ2xvc2VkCj4gKyAqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYZW5idXNTdGF0ZUNsb3NpbmcKPiAr
ICogbyBSZW1vdmUgdmlydHVhbCBkaXNwbGF5IGRldmljZQo+ICsgKiBvIFJlbW92ZSBldmVudCBj
aGFubmVscwo+ICsgKiAgICAgICAgICAgICAgfAo+ICsgKiAgICAgICAgICAgICAgfAo+ICsgKiAg
ICAgICAgICAgICAgVgo+ICsgKiBYZW5idXNTdGF0ZUNsb3NlZAo+ICsgKgo+ICsgKi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUmVjb3ZlcnkgZmxvdyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCj4gKyAqCj4gKyAqIEluIGNhc2Ugb2YgZnJvbnRlbmQgdW5yZWNvdmVyYWJs
ZSBlcnJvcnMgYmFja2VuZCBoYW5kbGVzIHRoYXQgYXMKPiArICogaWYgZnJvbnRlbmQgZ29lcyBp
bnRvIHRoZSBYZW5idXNTdGF0ZUNsb3NlZCBzdGF0ZS4KPiArICoKPiArICogSW4gY2FzZSBvZiBi
YWNrZW5kIHVucmVjb3ZlcmFibGUgZXJyb3JzIGZyb250ZW5kIHRyaWVzIHJlbW92aW5nCj4gKyAq
IHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UuIElmIHRoaXMgaXMgcG9zc2libGUgYXQgdGhlIG1vbWVu
dCBvZiBlcnJvciwKPiArICogdGhlbiBmcm9udGVuZCBnb2VzIGludG8gdGhlIFhlbmJ1c1N0YXRl
SW5pdGlhbGlzaW5nIHN0YXRlIGFuZCBpcyByZWFkeSBmb3IKPiArICogbmV3IGNvbm5lY3Rpb24g
d2l0aCBiYWNrZW5kLiBJZiB0aGUgdmlydHVhbGl6ZWQgZGV2aWNlIGlzIHN0aWxsIGluIHVzZSBh
bmQKPiArICogY2Fubm90IGJlIHJlbW92ZWQsIHRoZW4gZnJvbnRlbmQgZ29lcyBpbnRvIHRoZSBY
ZW5idXNTdGF0ZVJlY29uZmlndXJpbmcgc3RhdGUKPiArICogdW50aWwgZWl0aGVyIHRoZSB2aXJ0
dWFsaXplZCBkZXZpY2UgaXMgcmVtb3ZlZCBvciBiYWNrZW5kIGluaXRpYXRlcyBhIG5ldwo+ICsg
KiBjb25uZWN0aW9uLiBPbiB0aGUgdmlydHVhbGl6ZWQgZGV2aWNlIHJlbW92YWwgZnJvbnRlbmQg
Z29lcyBpbnRvIHRoZQo+ICsgKiBYZW5idXNTdGF0ZUluaXRpYWxpc2luZyBzdGF0ZS4KPiArICoK
PiArICogTm90ZSBvbiBYZW5idXNTdGF0ZVJlY29uZmlndXJpbmcgc3RhdGUgb2YgdGhlIGZyb250
ZW5kOiBpZiBiYWNrZW5kIGhhcwo+ICsgKiB1bnJlY292ZXJhYmxlIGVycm9ycyB0aGVuIGZyb250
ZW5kIGNhbm5vdCBzZW5kIHJlcXVlc3RzIHRvIHRoZSBiYWNrZW5kCj4gKyAqIGFuZCB0aHVzIGNh
bm5vdCBwcm92aWRlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHZpcnR1YWxpemVkIGRldmljZSBhbnlt
b3JlLgo+ICsgKiBBZnRlciBiYWNrZW5kIGlzIGJhY2sgdG8gbm9ybWFsIHRoZSB2aXJ0dWFsaXpl
ZCBkZXZpY2UgbWF5IHN0aWxsIGhvbGQgc29tZQo+ICsgKiBzdGF0ZTogY29uZmlndXJhdGlvbiBp
biB1c2UsIGFsbG9jYXRlZCBidWZmZXJzLCBjbGllbnQgYXBwbGljYXRpb24gc3RhdGUgZXRjLgo+
ICsgKiBJbiBtb3N0IGNhc2VzLCB0aGlzIHdpbGwgcmVxdWlyZSBmcm9udGVuZCB0byBpbXBsZW1l
bnQgY29tcGxleCByZWNvdmVyeQo+ICsgKiByZWNvbm5lY3QgbG9naWMuIEluc3RlYWQsIGJ5IGdv
aW5nIGludG8gWGVuYnVzU3RhdGVSZWNvbmZpZ3VyaW5nIHN0YXRlLAo+ICsgKiBmcm9udGVuZCB3
aWxsIG1ha2Ugc3VyZSBubyBuZXcgY2xpZW50cyBvZiB0aGUgdmlydHVhbGl6ZWQgZGV2aWNlIGFy
ZQo+ICsgKiBhY2NlcHRlZCwgYWxsb3cgZXhpc3RpbmcgY2xpZW50KHMpIHRvIGV4aXQgZ3JhY2Vm
dWxseSBieSBzaWduYWxpbmcgZXJyb3IKPiArICogc3RhdGUgZXRjLgo+ICsgKiBPbmNlIGFsbCB0
aGUgY2xpZW50cyBhcmUgZ29uZSBmcm9udGVuZCBjYW4gcmVpbml0aWFsaXplIHRoZSB2aXJ0dWFs
aXplZAo+ICsgKiBkZXZpY2UgYW5kIGdldCBpbnRvIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nIHN0
YXRlIGFnYWluIHNpZ25hbGluZyB0aGUKPiArICogYmFja2VuZCB0aGF0IGEgbmV3IGNvbm5lY3Rp
b24gY2FuIGJlIG1hZGUuCj4gKyAqCj4gKyAqIFRoZXJlIGFyZSBtdWx0aXBsZSBjb25kaXRpb25z
IHBvc3NpYmxlIHVuZGVyIHdoaWNoIGZyb250ZW5kIHdpbGwgZ28gZnJvbQo+ICsgKiBYZW5idXNT
dGF0ZVJlY29uZmlndXJpbmcgaW50byBYZW5idXNTdGF0ZUluaXRpYWxpc2luZywgc29tZSBvZiB0
aGVtIGFyZSBPUwo+ICsgKiBzcGVjaWZpYy4gRm9yIGV4YW1wbGU6Cj4gKyAqIDEuIFRoZSB1bmRl
cmx5aW5nIE9TIGZyYW1ld29yayBtYXkgcHJvdmlkZSBjYWxsYmFja3MgdG8gc2lnbmFsIHRoYXQg
dGhlIGxhc3QKPiArICogICAgY2xpZW50IG9mIHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UgaGFzIGdv
bmUgYW5kIHRoZSBkZXZpY2UgY2FuIGJlIHJlbW92ZWQKPiArICogMi4gRnJvbnRlbmQgY2FuIHNj
aGVkdWxlIGEgZGVmZXJyZWQgd29yayAodGltZXIvdGFza2xldC93b3JrcXVldWUpCj4gKyAqICAg
IHRvIHBlcmlvZGljYWxseSBjaGVjayBpZiB0aGlzIGlzIHRoZSByaWdodCB0aW1lIHRvIHJlLXRy
eSByZW1vdmFsIG9mCj4gKyAqICAgIHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UuCj4gKyAqIDMuIEJ5
IGFueSBvdGhlciBtZWFucy4KPiArICoKPiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsgKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVRVUVTVCBDT0RFUwo+ICsgKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCj4gKyAqIFJlcXVlc3QgY29kZXMgWzA7IDE1XSBhcmUgcmVzZXJ2ZWQgYW5kIG11
c3Qgbm90IGJlIHVzZWQKPiArICovCj4gKwo+ICsjZGVmaW5lIFhFTkRJU1BMX09QX0RCVUZfQ1JF
QVRFICAgICAgIDB4MTAKPiArI2RlZmluZSBYRU5ESVNQTF9PUF9EQlVGX0RFU1RST1kgICAgICAw
eDExCj4gKyNkZWZpbmUgWEVORElTUExfT1BfRkJfQVRUQUNIICAgICAgICAgMHgxMgo+ICsjZGVm
aW5lIFhFTkRJU1BMX09QX0ZCX0RFVEFDSCAgICAgICAgIDB4MTMKPiArI2RlZmluZSBYRU5ESVNQ
TF9PUF9TRVRfQ09ORklHICAgICAgICAweDE0Cj4gKyNkZWZpbmUgWEVORElTUExfT1BfUEdfRkxJ
UCAgICAgICAgICAgMHgxNQo+ICsKPiArLyoKPiArICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsg
KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWRU5UIENPREVTCj4gKyAqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKPiArICovCj4gKyNkZWZpbmUgWEVORElTUExfRVZUX1BHX0ZMSVAgICAg
ICAgICAgMHgwMAo+ICsKPiArLyoKPiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsgKiAgICAg
ICAgICAgICAgIFhFTlNUT1JFIEZJRUxEIEFORCBQQVRIIE5BTUUgU1RSSU5HUywgSEVMUEVSUwo+
ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAqLwo+ICsjZGVmaW5lIFhFTkRJU1BMX0RSSVZF
Ul9OQU1FICAgICAgICAgICJ2ZGlzcGwiCj4gKwo+ICsjZGVmaW5lIFhFTkRJU1BMX0xJU1RfU0VQ
QVJBVE9SICAgICAgICIsIgo+ICsjZGVmaW5lIFhFTkRJU1BMX1JFU09MVVRJT05fU0VQQVJBVE9S
ICJ4Igo+ICsKPiArI2RlZmluZSBYRU5ESVNQTF9GSUVMRF9CRV9WRVJTSU9OUyAgICAidmVyc2lv
bnMiCj4gKyNkZWZpbmUgWEVORElTUExfRklFTERfRkVfVkVSU0lPTiAgICAgInZlcnNpb24iCj4g
KyNkZWZpbmUgWEVORElTUExfRklFTERfUkVRX1JJTkdfUkVGICAgInJlcS1yaW5nLXJlZiIKPiAr
I2RlZmluZSBYRU5ESVNQTF9GSUVMRF9SRVFfQ0hBTk5FTCAgICAicmVxLWV2ZW50LWNoYW5uZWwi
Cj4gKyNkZWZpbmUgWEVORElTUExfRklFTERfRVZUX1JJTkdfUkVGICAgImV2dC1yaW5nLXJlZiIK
PiArI2RlZmluZSBYRU5ESVNQTF9GSUVMRF9FVlRfQ0hBTk5FTCAgICAiZXZ0LWV2ZW50LWNoYW5u
ZWwiCj4gKyNkZWZpbmUgWEVORElTUExfRklFTERfUkVTT0xVVElPTiAgICAgInJlc29sdXRpb24i
Cj4gKyNkZWZpbmUgWEVORElTUExfRklFTERfQkVfQUxMT0MgICAgICAgImJlLWFsbG9jIgo+ICsK
PiArLyoKPiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsgKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgU1RBVFVTIFJFVFVSTiBDT0RFUwo+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAq
Cj4gKyAqIFN0YXR1cyByZXR1cm4gY29kZSBpcyB6ZXJvIG9uIHN1Y2Nlc3MgYW5kIC1YRU5fRVhY
IG9uIGZhaWx1cmUuCj4gKyAqCj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiArICogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBBc3N1bXB0aW9ucwo+ICsgKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCj4gKyAqIG8gdXNhZ2Ugb2YgZ3JhbnQgcmVmZXJlbmNlIDAgYXMgaW52YWxpZCBncmFudCBy
ZWZlcmVuY2U6Cj4gKyAqICAgZ3JhbnQgcmVmZXJlbmNlIDAgaXMgdmFsaWQsIGJ1dCBuZXZlciBl
eHBvc2VkIHRvIGEgUFYgZHJpdmVyLAo+ICsgKiAgIGJlY2F1c2Ugb2YgdGhlIGZhY3QgaXQgaXMg
YWxyZWFkeSBpbiB1c2UvcmVzZXJ2ZWQgYnkgdGhlIFBWIGNvbnNvbGUuCj4gKyAqIG8gYWxsIHJl
ZmVyZW5jZXMgaW4gdGhpcyBkb2N1bWVudCB0byBwYWdlIHNpemVzIG11c3QgYmUgdHJlYXRlZAo+
ICsgKiAgIGFzIHBhZ2VzIG9mIHNpemUgWEVOX1BBR0VfU0laRSB1bmxlc3Mgb3RoZXJ3aXNlIG5v
dGVkLgo+ICsgKgo+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAqICAgICAgIERlc2NyaXB0
aW9uIG9mIHRoZSBwcm90b2NvbCBiZXR3ZWVuIGZyb250ZW5kIGFuZCBiYWNrZW5kIGRyaXZlcgo+
ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAqCj4gKyAqIFRoZSB0d28gaGFsdmVzIG9mIGEg
UGFyYS12aXJ0dWFsIGRpc3BsYXkgZHJpdmVyIGNvbW11bmljYXRlIHdpdGgKPiArICogZWFjaCBv
dGhlciB1c2luZyBzaGFyZWQgcGFnZXMgYW5kIGV2ZW50IGNoYW5uZWxzLgo+ICsgKiBTaGFyZWQg
cGFnZSBjb250YWlucyBhIHJpbmcgd2l0aCByZXF1ZXN0L3Jlc3BvbnNlIHBhY2tldHMuCj4gKyAq
Cj4gKyAqIEFsbCByZXNlcnZlZCBmaWVsZHMgaW4gdGhlIHN0cnVjdHVyZXMgYmVsb3cgbXVzdCBi
ZSAwLgo+ICsgKiBEaXNwbGF5IGJ1ZmZlcnMncyBjb29raWUgb2YgdmFsdWUgMCBpcyB0cmVhdGVk
IGFzIGludmFsaWQuCj4gKyAqIEZyYW1lYnVmZmVyJ3MgY29va2llIG9mIHZhbHVlIDAgaXMgdHJl
YXRlZCBhcyBpbnZhbGlkLgo+ICsgKgo+ICsgKiBGb3IgYWxsIHJlcXVlc3QvcmVzcG9uc2UvZXZl
bnQgcGFja2V0cyB0aGF0IHVzZSBjb29raWVzOgo+ICsgKiAgIGRidWZfY29va2llIC0gdWludDY0
X3QsIHVuaXF1ZSB0byBndWVzdCBkb21haW4gdmFsdWUgdXNlZCBieSB0aGUgYmFja2VuZAo+ICsg
KiAgICAgdG8gbWFwIHJlbW90ZSBkaXNwbGF5IGJ1ZmZlciB0byBpdHMgbG9jYWwgb25lCj4gKyAq
ICAgZmJfY29va2llIC0gdWludDY0X3QsIHVuaXF1ZSB0byBndWVzdCBkb21haW4gdmFsdWUgdXNl
ZCBieSB0aGUgYmFja2VuZAo+ICsgKiAgICAgdG8gbWFwIHJlbW90ZSBmcmFtZWJ1ZmZlciB0byBp
dHMgbG9jYWwgb25lCj4gKyAqCj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSBSZXF1ZXN0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoKPiArICog
QWxsIHJlcXVlc3RzL3Jlc3BvbnNlcywgd2hpY2ggYXJlIG5vdCBjb25uZWN0b3Igc3BlY2lmaWMs
IG11c3QgYmUgc2VudCBvdmVyCj4gKyAqIGNvbnRyb2wgcmluZyBvZiB0aGUgY29ubmVjdG9yIHdo
aWNoIGhhcyB0aGUgaW5kZXggdmFsdWUgb2YgMDoKPiArICogICAvbG9jYWwvZG9tYWluLzxkb20t
aWQ+L2RldmljZS92ZGlzcGwvPGRldi1pZD4vMC9yZXEtcmluZy1yZWYKPiArICoKPiArICogQWxs
IHJlcXVlc3QgcGFja2V0cyBoYXZlIHRoZSBzYW1lIGxlbmd0aCAoNjQgb2N0ZXRzKQo+ICsgKiBB
bGwgcmVxdWVzdCBwYWNrZXRzIGhhdmUgY29tbW9uIGhlYWRlcjoKPiArICogICAgICAgICAwICAg
ICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBv
Y3RldAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAg
ICAgICAgIHwgICAgb3BlcmF0aW9uICAgfCAgIHJlc2VydmVkICAgICB8IDQKPiArICogKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiAgIGlk
IC0gdWludDE2X3QsIHByaXZhdGUgZ3Vlc3QgdmFsdWUsIGVjaG9lZCBpbiByZXNwb25zZQo+ICsg
KiAgIG9wZXJhdGlvbiAtIHVpbnQ4X3QsIG9wZXJhdGlvbiBjb2RlLCBYRU5ESVNQTF9PUF8/Pz8K
PiArICoKPiArICogUmVxdWVzdCBkYnVmIGNyZWF0aW9uIC0gcmVxdWVzdCBjcmVhdGlvbiBvZiBh
IGRpc3BsYXkgYnVmZmVyLgo+ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAg
ICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4gKyAqICstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Kwo+ICsgKiB8ICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAgfF9PUF9EQlVGX0NSRUFU
RSB8ICAgcmVzZXJ2ZWQgICAgIHwgNAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8IDgKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgIGRi
dWZfY29va2llIGxvdyAzMi1iaXQgICAgICAgICAgICAgICAgICAgICAgfCAxMgo+ICsgKiArLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgZGJ1Zl9jb29raWUgaGlnaCAz
Mi1iaXQgICAgICAgICAgICAgICAgICAgICB8IDE2Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgMjAKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaGVpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyNAo+
ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YnBwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI4Cj4gKyAqICstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Kwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3ogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgMzIKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAzNgo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdyZWZfZGlyZWN0b3J5ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQwCj4gKyAqICst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNDQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAq
IHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvfAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY0Cj4g
KyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKwo+ICsgKgo+ICsgKiBNdXN0IGJlIHNlbnQgb3ZlciBjb250cm9sIHJp
bmcgb2YgdGhlIGNvbm5lY3RvciB3aGljaCBoYXMgdGhlIGluZGV4Cj4gKyAqIHZhbHVlIG9mIDA6
Cj4gKyAqICAgL2xvY2FsL2RvbWFpbi88ZG9tLWlkPi9kZXZpY2UvdmRpc3BsLzxkZXYtaWQ+LzAv
cmVxLXJpbmctcmVmCj4gKyAqIEFsbCB1bnVzZWQgYml0cyBpbiBmbGFncyBmaWVsZCBtdXN0IGJl
IHNldCB0byAwLgo+ICsgKgo+ICsgKiBBbiBhdHRlbXB0IHRvIGNyZWF0ZSBtdWx0aXBsZSBkaXNw
bGF5IGJ1ZmZlcnMgd2l0aCB0aGUgc2FtZSBkYnVmX2Nvb2tpZSBpcwo+ICsgKiBhbiBlcnJvci4g
ZGJ1Zl9jb29raWUgY2FuIGJlIHJlLXVzZWQgYWZ0ZXIgZGVzdHJveWluZyB0aGUgY29ycmVzcG9u
ZGluZwo+ICsgKiBkaXNwbGF5IGJ1ZmZlci4KPiArICoKPiArICogV2lkdGggYW5kIGhlaWdodCBv
ZiB0aGUgZGlzcGxheSBidWZmZXJzIGNhbiBiZSBzbWFsbGVyLCBlcXVhbCBvciBiaWdnZXIKPiAr
ICogdGhhbiB0aGUgY29ubmVjdG9yJ3MgcmVzb2x1dGlvbi4gRGVwdGgvcGl4ZWwgZm9ybWF0IG9m
IHRoZSBpbmRpdmlkdWFsCj4gKyAqIGJ1ZmZlcnMgY2FuIGRpZmZlciBhcyB3ZWxsLgo+ICsgKgo+
ICsgKiB3aWR0aCAtIHVpbnQzMl90LCB3aWR0aCBpbiBwaXhlbHMKPiArICogaGVpZ2h0IC0gdWlu
dDMyX3QsIGhlaWdodCBpbiBwaXhlbHMKPiArICogYnBwIC0gdWludDMyX3QsIGJpdHMgcGVyIHBp
eGVsCj4gKyAqIGJ1ZmZlcl9zeiAtIHVpbnQzMl90LCBidWZmZXIgc2l6ZSB0byBiZSBhbGxvY2F0
ZWQsIG9jdGV0cwo+ICsgKiBmbGFncyAtIHVpbnQzMl90LCBmbGFncyBvZiB0aGUgb3BlcmF0aW9u
Cj4gKyAqICAgbyBYRU5ESVNQTF9EQlVGX0ZMR19SRVFfQUxMT0MgLSBpZiBzZXQsIHRoZW4gYmFj
a2VuZCBpcyByZXF1ZXN0ZWQKPiArICogICAgIHRvIGFsbG9jYXRlIHRoZSBidWZmZXIgd2l0aCB0
aGUgcGFyYW1ldGVycyBwcm92aWRlZCBpbiB0aGlzIHJlcXVlc3QuCj4gKyAqICAgICBQYWdlIGRp
cmVjdG9yeSBpcyBoYW5kbGVkIGFzIGZvbGxvd3M6Cj4gKyAqICAgICAgIEZyb250ZW5kIG9uIHJl
cXVlc3Q6Cj4gKyAqICAgICAgICAgbyBhbGxvY2F0ZXMgcGFnZXMgZm9yIHRoZSBkaXJlY3Rvcnkg
KGdyZWZfZGlyZWN0b3J5LAo+ICsgKiAgICAgICAgICAgZ3JlZl9kaXJfbmV4dF9wYWdlKHMpCj4g
KyAqICAgICAgICAgbyBncmFudHMgcGVybWlzc2lvbnMgZm9yIHRoZSBwYWdlcyBvZiB0aGUgZGly
ZWN0b3J5IHRvIHRoZSBiYWNrZW5kCj4gKyAqICAgICAgICAgbyBzZXRzIGdyZWZfZGlyX25leHRf
cGFnZSBmaWVsZHMKPiArICogICAgICAgQmFja2VuZCBvbiByZXNwb25zZToKPiArICogICAgICAg
ICBvIGdyYW50cyBwZXJtaXNzaW9ucyBmb3IgdGhlIHBhZ2VzIG9mIHRoZSBidWZmZXIgYWxsb2Nh
dGVkIHRvCj4gKyAqICAgICAgICAgICB0aGUgZnJvbnRlbmQKPiArICogICAgICAgICBvIGZpbGxz
IGluIHBhZ2UgZGlyZWN0b3J5IHdpdGggZ3JhbnQgcmVmZXJlbmNlcwo+ICsgKiAgICAgICAgICAg
KGdyZWZbXSBpbiBzdHJ1Y3QgeGVuZGlzcGxfcGFnZV9kaXJlY3RvcnkpCj4gKyAqIGdyZWZfZGly
ZWN0b3J5IC0gZ3JhbnRfcmVmX3QsIGEgcmVmZXJlbmNlIHRvIHRoZSBmaXJzdCBzaGFyZWQgcGFn
ZQo+ICsgKiAgIGRlc2NyaWJpbmcgc2hhcmVkIGJ1ZmZlciByZWZlcmVuY2VzLiBBdCBsZWFzdCBv
bmUgcGFnZSBleGlzdHMuIElmIHNoYXJlZAo+ICsgKiAgIGJ1ZmZlciBzaXplIChidWZmZXJfc3op
IGV4Y2VlZHMgd2hhdCBjYW4gYmUgYWRkcmVzc2VkIGJ5IHRoaXMgc2luZ2xlIHBhZ2UsCj4gKyAq
ICAgdGhlbiByZWZlcmVuY2UgdG8gdGhlIG5leHQgcGFnZSBtdXN0IGJlIHN1cHBsaWVkIChzZWUg
Z3JlZl9kaXJfbmV4dF9wYWdlCj4gKyAqICAgYmVsb3cpCj4gKyAqLwo+ICsKPiArI2RlZmluZSBY
RU5ESVNQTF9EQlVGX0ZMR19SRVFfQUxMT0MgICAgICAgKDEgPDwgMCkKPiArCj4gK3N0cnVjdCB4
ZW5kaXNwbF9kYnVmX2NyZWF0ZV9yZXEgewo+ICsgICAgdWludDY0X3QgZGJ1Zl9jb29raWU7Cj4g
KyAgICB1aW50MzJfdCB3aWR0aDsKPiArICAgIHVpbnQzMl90IGhlaWdodDsKPiArICAgIHVpbnQz
Ml90IGJwcDsKPiArICAgIHVpbnQzMl90IGJ1ZmZlcl9zejsKPiArICAgIHVpbnQzMl90IGZsYWdz
Owo+ICsgICAgZ3JhbnRfcmVmX3QgZ3JlZl9kaXJlY3Rvcnk7Cj4gK307Cj4gKwo+ICsvKgo+ICsg
KiBTaGFyZWQgcGFnZSBmb3IgWEVORElTUExfT1BfREJVRl9DUkVBVEUgYnVmZmVyIGRlc2NyaXB0
b3IgKGdyZWZfZGlyZWN0b3J5IGluCj4gKyAqIHRoZSByZXF1ZXN0KSBlbXBsb3lzIGEgbGlzdCBv
ZiBwYWdlcywgZGVzY3JpYmluZyBhbGwgcGFnZXMgb2YgdGhlIHNoYXJlZAo+ICsgKiBkYXRhIGJ1
ZmZlcjoKPiArICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIg
ICAgICAgICAgICAgICAzICAgICAgICBvY3RldAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAg
ICAgICAgICAgICAgICAgICAgICAgIGdyZWZfZGlyX25leHRfcGFnZSAgICAgICAgICAgICAgICAg
ICAgICAgICB8IDQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBncmVmWzBdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4gKyAq
ICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKwo+ICsgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKPiArICogKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAq
IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmVmW2ldICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCBpKjQrOAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98
Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
cmVmW04gLSAxXSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTio0KzgKPiArICogKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rCj4gKyAqCj4gKyAqIGdyZWZfZGlyX25leHRfcGFnZSAtIGdyYW50X3JlZl90LCByZWZl
cmVuY2UgdG8gdGhlIG5leHQgcGFnZSBkZXNjcmliaW5nCj4gKyAqICAgcGFnZSBkaXJlY3Rvcnku
IE11c3QgYmUgMCBpZiB0aGVyZSBhcmUgbm8gbW9yZSBwYWdlcyBpbiB0aGUgbGlzdC4KPiArICog
Z3JlZltpXSAtIGdyYW50X3JlZl90LCByZWZlcmVuY2UgdG8gYSBzaGFyZWQgcGFnZSBvZiB0aGUg
YnVmZmVyCj4gKyAqICAgYWxsb2NhdGVkIGF0IFhFTkRJU1BMX09QX0RCVUZfQ1JFQVRFCj4gKyAq
Cj4gKyAqIE51bWJlciBvZiBncmFudF9yZWZfdCBlbnRyaWVzIGluIHRoZSB3aG9sZSBwYWdlIGRp
cmVjdG9yeSBpcyBub3QKPiArICogcGFzc2VkLCBidXQgaW5zdGVhZCBjYW4gYmUgY2FsY3VsYXRl
ZCBhczoKPiArICogICBudW1fZ3JlZnNfdG90YWwgPSAoWEVORElTUExfT1BfREJVRl9DUkVBVEUu
YnVmZmVyX3N6ICsgWEVOX1BBR0VfU0laRSAtIDEpIC8KPiArICogICAgICAgWEVOX1BBR0VfU0la
RQo+ICsgKi8KPiArCj4gK3N0cnVjdCB4ZW5kaXNwbF9wYWdlX2RpcmVjdG9yeSB7Cj4gKyAgICBn
cmFudF9yZWZfdCBncmVmX2Rpcl9uZXh0X3BhZ2U7Cj4gKyAgICBncmFudF9yZWZfdCBncmVmWzFd
OyAvKiBWYXJpYWJsZSBsZW5ndGggKi8KPiArfTsKPiArCj4gKy8qCj4gKyAqIFJlcXVlc3QgZGJ1
ZiBkZXN0cnVjdGlvbiAtIGRlc3Ryb3kgYSBwcmV2aW91c2x5IGFsbG9jYXRlZCBkaXNwbGF5IGJ1
ZmZlcjoKPiArICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIg
ICAgICAgICAgICAgICAzICAgICAgICBvY3RldAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAg
ICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHxfT1BfREJVRl9ERVNUUk9ZfCAgIHJlc2Vy
dmVkICAgICB8IDQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4gKyAq
ICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICBkYnVmX2Nvb2tpZSBs
b3cgMzItYml0ICAgICAgICAgICAgICAgICAgICAgIHwgMTIKPiArICogKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4g
KyAqIHwgICAgICAgICAgICAgICAgICAgICAgIGRidWZfY29va2llIGhpZ2ggMzItYml0ICAgICAg
ICAgICAgICAgICAgICAgfCAxNgo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
IDIwCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKPiArICogKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCA2NAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICoKPiArICog
TXVzdCBiZSBzZW50IG92ZXIgY29udHJvbCByaW5nIG9mIHRoZSBjb25uZWN0b3Igd2hpY2ggaGFz
IHRoZSBpbmRleAo+ICsgKiB2YWx1ZSBvZiAwOgo+ICsgKiAgIC9sb2NhbC9kb21haW4vPGRvbS1p
ZD4vZGV2aWNlL3ZkaXNwbC88ZGV2LWlkPi8wL3JlcS1yaW5nLXJlZgo+ICsgKi8KPiArCj4gK3N0
cnVjdCB4ZW5kaXNwbF9kYnVmX2Rlc3Ryb3lfcmVxIHsKPiArICAgIHVpbnQ2NF90IGRidWZfY29v
a2llOwo+ICt9Owo+ICsKPiArLyoKPiArICogUmVxdWVzdCBmcmFtZWJ1ZmZlciBhdHRhY2htZW50
IC0gcmVxdWVzdCBhdHRhY2htZW50IG9mIGEgZnJhbWVidWZmZXIgdG8KPiArICogcHJldmlvdXNs
eSBjcmVhdGVkIGRpc3BsYXkgYnVmZmVyLgo+ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAg
MSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4gKyAqICst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAgfCBfT1Bf
RkJfQVRUQUNIICB8ICAgcmVzZXJ2ZWQgICAgIHwgNAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICog
fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8IDgKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAg
ICAgICAgIGRidWZfY29va2llIGxvdyAzMi1iaXQgICAgICAgICAgICAgICAgICAgICAgfCAxMgo+
ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgZGJ1Zl9jb29r
aWUgaGlnaCAzMi1iaXQgICAgICAgICAgICAgICAgICAgICB8IDE2Cj4gKyAqICstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Kwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgZmJfY29va2llIGxvdyAzMi1iaXQgICAg
ICAgICAgICAgICAgICAgICAgIHwgMjAKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAg
ICAgICAgICAgICAgICAgICBmYl9jb29raWUgaGlnaCAzMi1iaXQgICAgICAgICAgICAgICAgICAg
ICAgfCAyNAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB3aWR0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI4Cj4gKyAqICst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzIKPiArICogKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAq
IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGl4ZWxfZm9ybWF0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAzNgo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQw
Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKPiArICogKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
Cj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCA2NAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICoKPiArICogTXVz
dCBiZSBzZW50IG92ZXIgY29udHJvbCByaW5nIG9mIHRoZSBjb25uZWN0b3Igd2hpY2ggaGFzIHRo
ZSBpbmRleAo+ICsgKiB2YWx1ZSBvZiAwOgo+ICsgKiAgIC9sb2NhbC9kb21haW4vPGRvbS1pZD4v
ZGV2aWNlL3ZkaXNwbC88ZGV2LWlkPi8wL3JlcS1yaW5nLXJlZgo+ICsgKiBXaWR0aCBhbmQgaGVp
Z2h0IGNhbiBiZSBzbWFsbGVyLCBlcXVhbCBvciBiaWdnZXIgdGhhbiB0aGUgY29ubmVjdG9yJ3MK
PiArICogcmVzb2x1dGlvbi4KPiArICoKPiArICogQW4gYXR0ZW1wdCB0byBjcmVhdGUgbXVsdGlw
bGUgZnJhbWUgYnVmZmVycyB3aXRoIHRoZSBzYW1lIGZiX2Nvb2tpZSBpcwo+ICsgKiBhbiBlcnJv
ci4gZmJfY29va2llIGNhbiBiZSByZS11c2VkIGFmdGVyIGRlc3Ryb3lpbmcgdGhlIGNvcnJlc3Bv
bmRpbmcKPiArICogZnJhbWUgYnVmZmVyLgo+ICsgKgo+ICsgKiB3aWR0aCAtIHVpbnQzMl90LCB3
aWR0aCBpbiBwaXhlbHMKPiArICogaGVpZ2h0IC0gdWludDMyX3QsIGhlaWdodCBpbiBwaXhlbHMK
PiArICogcGl4ZWxfZm9ybWF0IC0gdWludDMyX3QsIHBpeGVsIGZvcm1hdCBvZiB0aGUgZnJhbWVi
dWZmZXIsIEZPVVJDQyBjb2RlCj4gKyAqLwo+ICsKPiArc3RydWN0IHhlbmRpc3BsX2ZiX2F0dGFj
aF9yZXEgewo+ICsgICAgdWludDY0X3QgZGJ1Zl9jb29raWU7Cj4gKyAgICB1aW50NjRfdCBmYl9j
b29raWU7Cj4gKyAgICB1aW50MzJfdCB3aWR0aDsKPiArICAgIHVpbnQzMl90IGhlaWdodDsKPiAr
ICAgIHVpbnQzMl90IHBpeGVsX2Zvcm1hdDsKPiArfTsKPiArCj4gKy8qCj4gKyAqIFJlcXVlc3Qg
ZnJhbWVidWZmZXIgZGV0YWNoIC0gZGV0YWNoIGEgcHJldmlvdXNseQo+ICsgKiBhdHRhY2hlZCBm
cmFtZWJ1ZmZlciBmcm9tIHRoZSBkaXNwbGF5IGJ1ZmZlciBpbiByZXF1ZXN0Ogo+ICsgKiAgICAg
ICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMg
ICAgICAgIG9jdGV0Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgaWQg
ICAgICAgICAgICAgICAgfCAgX09QX0ZCX0RFVEFDSCB8ICAgcmVzZXJ2ZWQgICAgIHwgNAo+ICsg
KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2
ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKPiArICogKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4g
KyAqIHwgICAgICAgICAgICAgICAgICAgICAgICBmYl9jb29raWUgbG93IDMyLWJpdCAgICAgICAg
ICAgICAgICAgICAgICAgfCAxMgo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAg
ICAgICAgICAgICAgIGZiX2Nvb2tpZSBoaWdoIDMyLWJpdCAgICAgICAgICAgICAgICAgICAgICB8
IDE2Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAKPiArICogKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rCj4gKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IDY0Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKgo+ICsgKiBNdXN0IGJlIHNlbnQgb3Zl
ciBjb250cm9sIHJpbmcgb2YgdGhlIGNvbm5lY3RvciB3aGljaCBoYXMgdGhlIGluZGV4Cj4gKyAq
IHZhbHVlIG9mIDA6Cj4gKyAqICAgL2xvY2FsL2RvbWFpbi88ZG9tLWlkPi9kZXZpY2UvdmRpc3Bs
LzxkZXYtaWQ+LzAvcmVxLXJpbmctcmVmCj4gKyAqLwo+ICsKPiArc3RydWN0IHhlbmRpc3BsX2Zi
X2RldGFjaF9yZXEgewo+ICsgICAgdWludDY0X3QgZmJfY29va2llOwo+ICt9Owo+ICsKPiArLyoK
PiArICogUmVxdWVzdCBjb25maWd1cmF0aW9uIHNldC9yZXNldCAtIHJlcXVlc3QgdG8gc2V0IG9y
IHJlc2V0Cj4gKyAqIHRoZSBjb25maWd1cmF0aW9uL21vZGUgb2YgdGhlIGRpc3BsYXk6Cj4gKyAq
ICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAg
ICAgMyAgICAgICAgb2N0ZXQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAg
ICBpZCAgICAgICAgICAgICAgICB8IF9PUF9TRVRfQ09ORklHIHwgICByZXNlcnZlZCAgICAgfCA0
Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAo+ICsgKiArLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgIGZiX2Nvb2tpZSBsb3cgMzItYml0ICAg
ICAgICAgICAgICAgICAgICAgICB8IDEyCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAg
ICAgICAgICAgICAgICAgICAgZmJfY29va2llIGhpZ2ggMzItYml0ICAgICAgICAgICAgICAgICAg
ICAgIHwgMTYKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMAo+ICsgKiAr
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI0Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsg
KiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgMjgKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaGVpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAz
Mgo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYnBwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQwCj4gKyAqICstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgNDQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvfAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY0Cj4gKyAqICst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKwo+ICsgKgo+ICsgKiBQYXNzIGFsbCB6ZXJvcyB0byByZXNldCwgb3RoZXJ3aXNl
IGNvbW1hbmQgaXMgdHJlYXRlZCBhcwo+ICsgKiBjb25maWd1cmF0aW9uIHNldC4KPiArICogRnJh
bWVidWZmZXIncyBjb29raWUgZGVmaW5lcyB3aGljaCBmcmFtZWJ1ZmZlci9kYnVmIG11c3QgYmUK
PiArICogZGlzcGxheWVkIHdoaWxlIGVuYWJsaW5nIGRpc3BsYXkgKGFwcGx5aW5nIGNvbmZpZ3Vy
YXRpb24pLgo+ICsgKiB4LCB5LCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBib3VuZCBieSB0aGUgY29u
bmVjdG9yJ3MgcmVzb2x1dGlvbiBhbmQgbXVzdCBub3QKPiArICogZXhjZWVkIGl0Lgo+ICsgKgo+
ICsgKiB4IC0gdWludDMyX3QsIHN0YXJ0aW5nIHBvc2l0aW9uIGluIHBpeGVscyBieSBYIGF4aXMK
PiArICogeSAtIHVpbnQzMl90LCBzdGFydGluZyBwb3NpdGlvbiBpbiBwaXhlbHMgYnkgWSBheGlz
Cj4gKyAqIHdpZHRoIC0gdWludDMyX3QsIHdpZHRoIGluIHBpeGVscwo+ICsgKiBoZWlnaHQgLSB1
aW50MzJfdCwgaGVpZ2h0IGluIHBpeGVscwo+ICsgKiBicHAgLSB1aW50MzJfdCwgYml0cyBwZXIg
cGl4ZWwKPiArICovCj4gKwo+ICtzdHJ1Y3QgeGVuZGlzcGxfc2V0X2NvbmZpZ19yZXEgewo+ICsg
ICAgdWludDY0X3QgZmJfY29va2llOwo+ICsgICAgdWludDMyX3QgeDsKPiArICAgIHVpbnQzMl90
IHk7Cj4gKyAgICB1aW50MzJfdCB3aWR0aDsKPiArICAgIHVpbnQzMl90IGhlaWdodDsKPiArICAg
IHVpbnQzMl90IGJwcDsKPiArfTsKPiArCj4gKy8qCj4gKyAqIFJlcXVlc3QgcGFnZSBmbGlwIC0g
cmVxdWVzdCB0byBmbGlwIGEgcGFnZSBpZGVudGlmaWVkIGJ5IHRoZSBmcmFtZWJ1ZmZlcgo+ICsg
KiBjb29raWU6Cj4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAg
ICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAq
IHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8IF9PUF9QR19GTElQICAgIHwgICBy
ZXNlcnZlZCAgICAgfCA0Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAo+
ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgIGZiX2Nvb2tp
ZSBsb3cgMzItYml0ICAgICAgICAgICAgICAgICAgICAgICB8IDEyCj4gKyAqICstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Kwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgZmJfY29va2llIGhpZ2ggMzItYml0ICAg
ICAgICAgICAgICAgICAgICAgIHwgMTYKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAyMAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4gKyAqICstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqLwo+
ICsKPiArc3RydWN0IHhlbmRpc3BsX3BhZ2VfZmxpcF9yZXEgewo+ICsgICAgdWludDY0X3QgZmJf
Y29va2llOwo+ICt9Owo+ICsKPiArLyoKPiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tIFJlc3BvbnNlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsgKgo+
ICsgKiBBbGwgcmVzcG9uc2UgcGFja2V0cyBoYXZlIHRoZSBzYW1lIGxlbmd0aCAoNjQgb2N0ZXRz
KQo+ICsgKgo+ICsgKiBBbGwgcmVzcG9uc2UgcGFja2V0cyBoYXZlIGNvbW1vbiBoZWFkZXI6Cj4g
KyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAg
ICAgICAgMyAgICAgICAgb2N0ZXQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAg
ICAgICBpZCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAg
fCA0Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RhdHVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAo+ICsgKiArLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8IDEyCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8L1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL3wKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA2NAo+ICsgKiAr
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSsKPiArICoKPiArICogaWQgLSB1aW50MTZfdCwgcHJpdmF0ZSBndWVzdCB2YWx1
ZSwgZWNob2VkIGZyb20gcmVxdWVzdAo+ICsgKiBzdGF0dXMgLSBpbnQzMl90LCByZXNwb25zZSBz
dGF0dXMsIHplcm8gb24gc3VjY2VzcyBhbmQgLVhFTl9FWFggb24gZmFpbHVyZQo+ICsgKgo+ICsg
Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEV2ZW50cyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gKyAqCj4gKyAqIEV2ZW50cyBhcmUgc2VudCB2aWEgYSBz
aGFyZWQgcGFnZSBhbGxvY2F0ZWQgYnkgdGhlIGZyb250IGFuZCBwcm9wYWdhdGVkIGJ5Cj4gKyAq
ICAgZXZ0LWV2ZW50LWNoYW5uZWwvZXZ0LXJpbmctcmVmIFhlblN0b3JlIGVudHJpZXMKPiArICog
QWxsIGV2ZW50IHBhY2tldHMgaGF2ZSB0aGUgc2FtZSBsZW5ndGggKDY0IG9jdGV0cykKPiArICog
QWxsIGV2ZW50IHBhY2tldHMgaGF2ZSBjb21tb24gaGVhZGVyOgo+ICsgKiAgICAgICAgIDAgICAg
ICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9j
dGV0Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgaWQgICAgICAgICAg
ICAgICAgfCAgICAgIHR5cGUgICAgICB8ICAgcmVzZXJ2ZWQgICAgIHwgNAo+ICsgKiArLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8IDgKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqCj4gKyAq
IGlkIC0gdWludDE2X3QsIGV2ZW50IGlkLCBtYXkgYmUgdXNlZCBieSBmcm9udAo+ICsgKiB0eXBl
IC0gdWludDhfdCwgdHlwZSBvZiB0aGUgZXZlbnQKPiArICoKPiArICoKPiArICogUGFnZSBmbGlw
IGNvbXBsZXRlIGV2ZW50IC0gZXZlbnQgZnJvbSBiYWNrIHRvIGZyb250IG9uIHBhZ2UgZmxpcCBj
b21wbGV0ZWQ6Cj4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAg
ICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAq
IHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8ICAgX0VWVF9QR19GTElQIHwgICBy
ZXNlcnZlZCAgICAgfCA0Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAo+
ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgIGZiX2Nvb2tp
ZSBsb3cgMzItYml0ICAgICAgICAgICAgICAgICAgICAgICB8IDEyCj4gKyAqICstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Kwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgZmJfY29va2llIGhpZ2ggMzItYml0ICAg
ICAgICAgICAgICAgICAgICAgIHwgMTYKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAyMAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4gKyAqICstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqLwo+
ICsKPiArc3RydWN0IHhlbmRpc3BsX3BnX2ZsaXBfZXZ0IHsKPiArICAgIHVpbnQ2NF90IGZiX2Nv
b2tpZTsKPiArfTsKPiArCj4gK3N0cnVjdCB4ZW5kaXNwbF9yZXEgewo+ICsgICAgdWludDE2X3Qg
aWQ7Cj4gKyAgICB1aW50OF90IG9wZXJhdGlvbjsKPiArICAgIHVpbnQ4X3QgcmVzZXJ2ZWRbNV07
Cj4gKyAgICB1bmlvbiB7Cj4gKyAgICAgICAgc3RydWN0IHhlbmRpc3BsX2RidWZfY3JlYXRlX3Jl
cSBkYnVmX2NyZWF0ZTsKPiArICAgICAgICBzdHJ1Y3QgeGVuZGlzcGxfZGJ1Zl9kZXN0cm95X3Jl
cSBkYnVmX2Rlc3Ryb3k7Cj4gKyAgICAgICAgc3RydWN0IHhlbmRpc3BsX2ZiX2F0dGFjaF9yZXEg
ZmJfYXR0YWNoOwo+ICsgICAgICAgIHN0cnVjdCB4ZW5kaXNwbF9mYl9kZXRhY2hfcmVxIGZiX2Rl
dGFjaDsKPiArICAgICAgICBzdHJ1Y3QgeGVuZGlzcGxfc2V0X2NvbmZpZ19yZXEgc2V0X2NvbmZp
ZzsKPiArICAgICAgICBzdHJ1Y3QgeGVuZGlzcGxfcGFnZV9mbGlwX3JlcSBwZ19mbGlwOwo+ICsg
ICAgICAgIHVpbnQ4X3QgcmVzZXJ2ZWRbNTZdOwo+ICsgICAgfSBvcDsKPiArfTsKPiArCj4gK3N0
cnVjdCB4ZW5kaXNwbF9yZXNwIHsKPiArICAgIHVpbnQxNl90IGlkOwo+ICsgICAgdWludDhfdCBv
cGVyYXRpb247Cj4gKyAgICB1aW50OF90IHJlc2VydmVkOwo+ICsgICAgaW50MzJfdCBzdGF0dXM7
Cj4gKyAgICB1aW50OF90IHJlc2VydmVkMVs1Nl07Cj4gK307Cj4gKwo+ICtzdHJ1Y3QgeGVuZGlz
cGxfZXZ0IHsKPiArICAgIHVpbnQxNl90IGlkOwo+ICsgICAgdWludDhfdCB0eXBlOwo+ICsgICAg
dWludDhfdCByZXNlcnZlZFs1XTsKPiArICAgIHVuaW9uIHsKPiArICAgICAgICBzdHJ1Y3QgeGVu
ZGlzcGxfcGdfZmxpcF9ldnQgcGdfZmxpcDsKPiArICAgICAgICB1aW50OF90IHJlc2VydmVkWzU2
XTsKPiArICAgIH0gb3A7Cj4gK307Cj4gKwo+ICtERUZJTkVfUklOR19UWVBFUyh4ZW5fZGlzcGxp
Ziwgc3RydWN0IHhlbmRpc3BsX3JlcSwgc3RydWN0IHhlbmRpc3BsX3Jlc3ApOwo+ICsKPiArLyoK
PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgIEJh
Y2sgdG8gZnJvbnQgZXZlbnRzIGRlbGl2ZXJ5Cj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiAr
ICogSW4gb3JkZXIgdG8gZGVsaXZlciBhc3luY2hyb25vdXMgZXZlbnRzIGZyb20gYmFjayB0byBm
cm9udCBhIHNoYXJlZCBwYWdlIGlzCj4gKyAqIGFsbG9jYXRlZCBieSBmcm9udCBhbmQgaXRzIGdy
YW50ZWQgcmVmZXJlbmNlIHByb3BhZ2F0ZWQgdG8gYmFjayB2aWEKPiArICogWGVuU3RvcmUgZW50
cmllcyAoZXZ0LXJpbmctcmVmL2V2dC1ldmVudC1jaGFubmVsKS4KPiArICogVGhpcyBwYWdlIGhh
cyBhIGNvbW1vbiBoZWFkZXIgdXNlZCBieSBib3RoIGZyb250IGFuZCBiYWNrIHRvIHN5bmNocm9u
aXplCj4gKyAqIGFjY2VzcyBhbmQgY29udHJvbCBldmVudCdzIHJpbmcgYnVmZmVyLCB3aGlsZSBi
YWNrIGJlaW5nIGEgcHJvZHVjZXIgb2YgdGhlCj4gKyAqIGV2ZW50cyBhbmQgZnJvbnQgYmVpbmcg
YSBjb25zdW1lci4gVGhlIHJlc3Qgb2YgdGhlIHBhZ2UgYWZ0ZXIgdGhlIGhlYWRlcgo+ICsgKiBp
cyB1c2VkIGZvciBldmVudCBwYWNrZXRzLgo+ICsgKgo+ICsgKiBVcG9uIHJlY2VwdGlvbiBvZiBh
biBldmVudChzKSBmcm9udCBtYXkgY29uZmlybSBpdHMgcmVjZXB0aW9uCj4gKyAqIGZvciBlaXRo
ZXIgZWFjaCBldmVudCwgZ3JvdXAgb2YgZXZlbnRzIG9yIG5vbmUuCj4gKyAqLwo+ICsKPiArc3Ry
dWN0IHhlbmRpc3BsX2V2ZW50X3BhZ2Ugewo+ICsgICAgdWludDMyX3QgaW5fY29uczsKPiArICAg
IHVpbnQzMl90IGluX3Byb2Q7Cj4gKyAgICB1aW50OF90IHJlc2VydmVkWzU2XTsKPiArfTsKPiAr
Cj4gKyNkZWZpbmUgWEVORElTUExfRVZFTlRfUEFHRV9TSVpFIDQwOTYKPiArI2RlZmluZSBYRU5E
SVNQTF9JTl9SSU5HX09GRlMgKHNpemVvZihzdHJ1Y3QgeGVuZGlzcGxfZXZlbnRfcGFnZSkpCj4g
KyNkZWZpbmUgWEVORElTUExfSU5fUklOR19TSVpFIChYRU5ESVNQTF9FVkVOVF9QQUdFX1NJWkUg
LSBYRU5ESVNQTF9JTl9SSU5HX09GRlMpCj4gKyNkZWZpbmUgWEVORElTUExfSU5fUklOR19MRU4g
KFhFTkRJU1BMX0lOX1JJTkdfU0laRSAvIHNpemVvZihzdHJ1Y3QgeGVuZGlzcGxfZXZ0KSkKPiAr
I2RlZmluZSBYRU5ESVNQTF9JTl9SSU5HKHBhZ2UpIFwKPiArCSgoc3RydWN0IHhlbmRpc3BsX2V2
dCAqKSgoY2hhciAqKShwYWdlKSArIFhFTkRJU1BMX0lOX1JJTkdfT0ZGUykpCj4gKyNkZWZpbmUg
WEVORElTUExfSU5fUklOR19SRUYocGFnZSwgaWR4KSBcCj4gKwkoWEVORElTUExfSU5fUklORygo
cGFnZSkpWyhpZHgpICUgWEVORElTUExfSU5fUklOR19MRU5dKQo+ICsKPiArI2VuZGlmIC8qIF9f
WEVOX1BVQkxJQ19JT19ESVNQTElGX0hfXyAqLwo+ICsKPiArLyoKPiArICogTG9jYWwgdmFyaWFi
bGVzOgo+ICsgKiBtb2RlOiBDCj4gKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKPiArICogYy1iYXNp
Yy1vZmZzZXQ6IDQKPiArICogdGFiLXdpZHRoOiA0Cj4gKyAqIGluZGVudC10YWJzLW1vZGU6IG5p
bAo+ICsgKiBFbmQ6Cj4gKyAqLwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9pby9rYmRpZi5o
IGIvaW5jbHVkZS94ZW4vaW8va2JkaWYuaAo+IGluZGV4IDJkMmFlYmQuLjNjZTU0ZTkgMTAwNjQ0
Cj4gLS0tIGEvaW5jbHVkZS94ZW4vaW8va2JkaWYuaAo+ICsrKyBiL2luY2x1ZGUveGVuL2lvL2ti
ZGlmLmgKPiBAQCAtMjYsNDYgKzI2LDQ0OSBAQAo+ICAjaWZuZGVmIF9fWEVOX1BVQkxJQ19JT19L
QkRJRl9IX18KPiAgI2RlZmluZSBfX1hFTl9QVUJMSUNfSU9fS0JESUZfSF9fCj4gIAo+IC0vKiBJ
biBldmVudHMgKGJhY2tlbmQgLT4gZnJvbnRlbmQpICovCj4gKy8qCj4gKyAqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgo+ICsgKiAgICAgICAgICAgICAgICAgICAgIEZlYXR1cmUgYW5kIFBhcmFtZXRlciBO
ZWdvdGlhdGlvbgo+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiArICoKPiArICogVGhlIHR3byBo
YWx2ZXMgb2YgYSBwYXJhLXZpcnR1YWwgZHJpdmVyIHV0aWxpemUgbm9kZXMgd2l0aGluCj4gKyAq
IFhlblN0b3JlIHRvIGNvbW11bmljYXRlIGNhcGFiaWxpdGllcyBhbmQgdG8gbmVnb3RpYXRlIG9w
ZXJhdGluZyBwYXJhbWV0ZXJzLgo+ICsgKiBUaGlzIHNlY3Rpb24gZW51bWVyYXRlcyB0aGVzZSBu
b2RlcyB3aGljaCByZXNpZGUgaW4gdGhlIHJlc3BlY3RpdmUgZnJvbnQgYW5kCj4gKyAqIGJhY2tl
bmQgcG9ydGlvbnMgb2YgWGVuU3RvcmUsIGZvbGxvd2luZyBYZW5CdXMgY29udmVudGlvbi4KPiAr
ICoKPiArICogQWxsIGRhdGEgaW4gWGVuU3RvcmUgaXMgc3RvcmVkIGFzIHN0cmluZ3MuICBOb2Rl
cyBzcGVjaWZ5aW5nIG51bWVyaWMKPiArICogdmFsdWVzIGFyZSBlbmNvZGVkIGluIGRlY2ltYWwu
IEludGVnZXIgdmFsdWUgcmFuZ2VzIGxpc3RlZCBiZWxvdyBhcmUKPiArICogZXhwcmVzc2VkIGFz
IGZpeGVkIHNpemVkIGludGVnZXIgdHlwZXMgY2FwYWJsZSBvZiBzdG9yaW5nIHRoZSBjb252ZXJz
aW9uCj4gKyAqIG9mIGEgcHJvcGVybHkgZm9ybWF0ZWQgbm9kZSBzdHJpbmcsIHdpdGhvdXQgbG9z
cyBvZiBpbmZvcm1hdGlvbi4KPiArICoKPiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEJhY2tlbmQgWGVuQnVzIE5vZGVzCj4gKyAqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgo+ICsgKgo+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRmVh
dHVyZXMgc3VwcG9ydGVkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoKPiArICog
Q2FwYWJsZSBiYWNrZW5kIGFkdmVydGlzZXMgc3VwcG9ydGVkIGZlYXR1cmVzIGJ5IHB1Ymxpc2hp
bmcKPiArICogY29ycmVzcG9uZGluZyBlbnRyaWVzIGluIFhlblN0b3JlIGFuZCBwdXRzIDEgYXMg
dGhlIHZhbHVlIG9mIHRoZSBlbnRyeS4KPiArICogSWYgYSBmZWF0dXJlIGlzIG5vdCBzdXBwb3J0
ZWQgdGhlbiAwIG11c3QgYmUgc2V0IG9yIGZlYXR1cmUgZW50cnkgb21pdHRlZC4KPiArICoKPiAr
ICogZmVhdHVyZS1hYnMtcG9pbnRlcgo+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludD4K
PiArICoKPiArICogICAgICBCYWNrZW5kcywgd2hpY2ggc3VwcG9ydCByZXBvcnRpbmcgb2YgYWJz
b2x1dGUgY29vcmRpbmF0ZXMgZm9yIHBvaW50ZXIKPiArICogICAgICBkZXZpY2Ugc2hvdWxkIHNl
dCB0aGlzIHRvIDEuCj4gKyAqCj4gKyAqIGZlYXR1cmUtbXVsdGktdG91Y2gKPiArICogICAgICBW
YWx1ZXM6ICAgICAgICAgPHVpbnQ+Cj4gKyAqCj4gKyAqICAgICAgQmFja2VuZHMsIHdoaWNoIHN1
cHBvcnQgcmVwb3J0aW5nIG9mIG11bHRpLXRvdWNoIGV2ZW50cwo+ICsgKiAgICAgIHNob3VsZCBz
ZXQgdGhpcyB0byAxLgo+ICsgKgo+ICsgKiBmZWF0dXJlLXJhdy1wb2ludGVyCj4gKyAqICAgICAg
VmFsdWVzOiAgICAgICAgPHVpbnQ+Cj4gKyAqCj4gKyAqICAgICAgQmFja2VuZHMsIHdoaWNoIHN1
cHBvcnQgcmVwb3J0aW5nIHJhdyAodW5zY2FsZWQpIGFic29sdXRlIGNvb3JkaW5hdGVzCj4gKyAq
ICAgICAgZm9yIHBvaW50ZXIgZGV2aWNlcyBzaG91bGQgc2V0IHRoaXMgdG8gMS4gUmF3ICh1bnNj
YWxlZCkgdmFsdWVzIGhhdmUKPiArICogICAgICBhIHJhbmdlIG9mIFswLCAweDdmZmZdLgo+ICsg
Kgo+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUG9pbnRlciBEZXZpY2UgUGFyYW1ldGVy
cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoKPiArICogd2lkdGgKPiArICogICAgICBW
YWx1ZXM6ICAgICAgICAgPHVpbnQ+Cj4gKyAqCj4gKyAqICAgICAgTWF4aW11bSBYIGNvb3JkaW5h
dGUgKHdpZHRoKSB0byBiZSB1c2VkIGJ5IHRoZSBmcm9udGVuZAo+ICsgKiAgICAgIHdoaWxlIHJl
cG9ydGluZyBpbnB1dCBldmVudHMsIHBpeGVscywgWzA7IFVJTlQzMl9NQVhdLgo+ICsgKgo+ICsg
KiBoZWlnaHQKPiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ+Cj4gKyAqCj4gKyAqICAg
ICAgTWF4aW11bSBZIGNvb3JkaW5hdGUgKGhlaWdodCkgdG8gYmUgdXNlZCBieSB0aGUgZnJvbnRl
bmQKPiArICogICAgICB3aGlsZSByZXBvcnRpbmcgaW5wdXQgZXZlbnRzLCBwaXhlbHMsIFswOyBV
SU5UMzJfTUFYXS4KPiArICoKPiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEZyb250ZW5kIFhlbkJ1cyBOb2Rlcwo+ICsgKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKPiArICoKPiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRmVhdHVy
ZSByZXF1ZXN0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gKyAqCj4gKyAqIENhcGFi
bGUgZnJvbnRlbmQgcmVxdWVzdHMgZmVhdHVyZXMgZnJvbSBiYWNrZW5kIHZpYSBzZXR0aW5nIGNv
cnJlc3BvbmRpbmcKPiArICogZW50cmllcyB0byAxIGluIFhlblN0b3JlLiBSZXF1ZXN0cyBmb3Ig
ZmVhdHVyZXMgbm90IGFkdmVydGlzZWQgYXMgc3VwcG9ydGVkCj4gKyAqIGJ5IHRoZSBiYWNrZW5k
IGhhdmUgbm8gZWZmZWN0Lgo+ICsgKgo+ICsgKiByZXF1ZXN0LWFicy1wb2ludGVyCj4gKyAqICAg
ICAgVmFsdWVzOiAgICAgICAgIDx1aW50Pgo+ICsgKgo+ICsgKiAgICAgIFJlcXVlc3QgYmFja2Vu
ZCB0byByZXBvcnQgYWJzb2x1dGUgcG9pbnRlciBjb29yZGluYXRlcwo+ICsgKiAgICAgIChYRU5L
QkRfVFlQRV9QT1MpIGluc3RlYWQgb2YgcmVsYXRpdmUgb25lcyAoWEVOS0JEX1RZUEVfTU9USU9O
KS4KPiArICoKPiArICogcmVxdWVzdC1tdWx0aS10b3VjaAo+ICsgKiAgICAgIFZhbHVlczogICAg
ICAgICA8dWludD4KPiArICoKPiArICogICAgICBSZXF1ZXN0IGJhY2tlbmQgdG8gcmVwb3J0IG11
bHRpLXRvdWNoIGV2ZW50cy4KPiArICoKPiArICogcmVxdWVzdC1yYXctcG9pbnRlcgo+ICsgKiAg
ICAgIFZhbHVlczogICAgICAgICA8dWludD4KPiArICoKPiArICogICAgICBSZXF1ZXN0IGJhY2tl
bmQgdG8gcmVwb3J0IHJhdyB1bnNjYWxlZCBhYnNvbHV0ZSBwb2ludGVyIGNvb3JkaW5hdGVzLgo+
ICsgKiAgICAgIFRoaXMgb3B0aW9uIGlzIG9ubHkgdmFsaWQgaWYgcmVxdWVzdC1hYnMtcG9pbnRl
ciBpcyBhbHNvIHNldC4KPiArICogICAgICBSYXcgdW5zY2FsZWQgY29vcmRpbmF0ZXMgaGF2ZSB0
aGUgcmFuZ2UgWzAsIDB4N2ZmZl0KPiArICoKPiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBS
ZXF1ZXN0IFRyYW5zcG9ydCBQYXJhbWV0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gKyAq
Cj4gKyAqIGV2ZW50LWNoYW5uZWwKPiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ+Cj4g
KyAqCj4gKyAqICAgICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIFhlbiBldmVudCBjaGFubmVsIHVz
ZWQgdG8gc2lnbmFsIGFjdGl2aXR5Cj4gKyAqICAgICAgaW4gdGhlIHJpbmcgYnVmZmVyLgo+ICsg
Kgo+ICsgKiBwYWdlLWdyZWYKPiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ+Cj4gKyAq
Cj4gKyAqICAgICAgVGhlIFhlbiBncmFudCByZWZlcmVuY2UgZ3JhbnRpbmcgcGVybWlzc2lvbiBm
b3IgdGhlIGJhY2tlbmQgdG8gbWFwCj4gKyAqICAgICAgYSBzb2xlIHBhZ2UgaW4gYSBzaW5nbGUg
cGFnZSBzaXplZCBldmVudCByaW5nIGJ1ZmZlci4KPiArICoKPiArICogcGFnZS1yZWYKPiArICog
ICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ+Cj4gKyAqCj4gKyAqICAgICAgT0JTT0xFVEUsIG5v
dCByZWNvbW1lbmRlZCBmb3IgdXNlLgo+ICsgKiAgICAgIFBGTiBvZiB0aGUgc2hhcmVkIHBhZ2Uu
Cj4gKyAqCj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTXVsdGktdG91Y2ggRGV2aWNlIFBh
cmFtZXRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoKPiArICogbXVsdGktdG91Y2gt
bnVtLWNvbnRhY3RzCj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50Pgo+ICsgKgo+ICsg
KiAgICAgIE51bWJlciBvZiBzaW11bHRhbmVvdXMgdG91Y2hlcyByZXBvcnRlZC4KPiArICoKPiAr
ICogbXVsdGktdG91Y2gtd2lkdGgKPiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ+Cj4g
KyAqCj4gKyAqICAgICAgV2lkdGggb2YgdGhlIHRvdWNoIGFyZWEgdG8gYmUgdXNlZCBieSB0aGUg
ZnJvbnRlbmQKPiArICogICAgICB3aGlsZSByZXBvcnRpbmcgaW5wdXQgZXZlbnRzLCBwaXhlbHMs
IFswOyBVSU5UMzJfTUFYXS4KPiArICoKPiArICogbXVsdGktdG91Y2gtaGVpZ2h0Cj4gKyAqICAg
ICAgVmFsdWVzOiAgICAgICAgIDx1aW50Pgo+ICsgKgo+ICsgKiAgICAgIEhlaWdodCBvZiB0aGUg
dG91Y2ggYXJlYSB0byBiZSB1c2VkIGJ5IHRoZSBmcm9udGVuZAo+ICsgKiAgICAgIHdoaWxlIHJl
cG9ydGluZyBpbnB1dCBldmVudHMsIHBpeGVscywgWzA7IFVJTlQzMl9NQVhdLgo+ICsgKi8KPiAg
Cj4gIC8qCj4gLSAqIEZyb250ZW5kcyBzaG91bGQgaWdub3JlIHVua25vd24gaW4gZXZlbnRzLgo+
ICsgKiBFVkVOVCBDT0RFUy4KPiArICovCj4gKwo+ICsjZGVmaW5lIFhFTktCRF9UWVBFX01PVElP
TiAgICAgICAgICAgICAxCj4gKyNkZWZpbmUgWEVOS0JEX1RZUEVfUkVTRVJWRUQgICAgICAgICAg
IDIKPiArI2RlZmluZSBYRU5LQkRfVFlQRV9LRVkgICAgICAgICAgICAgICAgMwo+ICsjZGVmaW5l
IFhFTktCRF9UWVBFX1BPUyAgICAgICAgICAgICAgICA0Cj4gKyNkZWZpbmUgWEVOS0JEX1RZUEVf
TVRPVUNIICAgICAgICAgICAgIDUKPiArCj4gKy8qIE11bHRpLXRvdWNoIGV2ZW50IHN1Yi1jb2Rl
cyAqLwo+ICsKPiArI2RlZmluZSBYRU5LQkRfTVRfRVZfRE9XTiAgICAgICAgICAgICAgMAo+ICsj
ZGVmaW5lIFhFTktCRF9NVF9FVl9VUCAgICAgICAgICAgICAgICAxCj4gKyNkZWZpbmUgWEVOS0JE
X01UX0VWX01PVElPTiAgICAgICAgICAgIDIKPiArI2RlZmluZSBYRU5LQkRfTVRfRVZfU1lOICAg
ICAgICAgICAgICAgMwo+ICsjZGVmaW5lIFhFTktCRF9NVF9FVl9TSEFQRSAgICAgICAgICAgICA0
Cj4gKyNkZWZpbmUgWEVOS0JEX01UX0VWX09SSUVOVCAgICAgICAgICAgIDUKPiArCj4gKy8qCj4g
KyAqIENPTlNUQU5UUywgWEVOU1RPUkUgRklFTEQgQU5EIFBBVEggTkFNRSBTVFJJTkdTLCBIRUxQ
RVJTLgo+ICAgKi8KPiAgCj4gLS8qIFBvaW50ZXIgbW92ZW1lbnQgZXZlbnQgKi8KPiAtI2RlZmlu
ZSBYRU5LQkRfVFlQRV9NT1RJT04gIDEKPiAtLyogRXZlbnQgdHlwZSAyIGN1cnJlbnRseSBub3Qg
dXNlZCAqLwo+IC0vKiBLZXkgZXZlbnQgKGluY2x1ZGVzIHBvaW50ZXIgYnV0dG9ucykgKi8KPiAt
I2RlZmluZSBYRU5LQkRfVFlQRV9LRVkgICAgIDMKPiArI2RlZmluZSBYRU5LQkRfRFJJVkVSX05B
TUUgICAgICAgICAgICAgInZrYmQiCj4gKwo+ICsjZGVmaW5lIFhFTktCRF9GSUVMRF9GRUFUX0FC
U19QT0lOVEVSICAiZmVhdHVyZS1hYnMtcG9pbnRlciIKPiArI2RlZmluZSBYRU5LQkRfRklFTERf
RkVBVF9NVE9VQ0ggICAgICAgImZlYXR1cmUtbXVsdGktdG91Y2giCj4gKyNkZWZpbmUgWEVOS0JE
X0ZJRUxEX1JFUV9BQlNfUE9JTlRFUiAgICJyZXF1ZXN0LWFicy1wb2ludGVyIgo+ICsjZGVmaW5l
IFhFTktCRF9GSUVMRF9SRVFfTVRPVUNIICAgICAgICAicmVxdWVzdC1tdWx0aS10b3VjaCIKPiAr
I2RlZmluZSBYRU5LQkRfRklFTERfUklOR19HUkVGICAgICAgICAgInBhZ2UtZ3JlZiIKPiArI2Rl
ZmluZSBYRU5LQkRfRklFTERfRVZUX0NIQU5ORUwgICAgICAgImV2ZW50LWNoYW5uZWwiCj4gKyNk
ZWZpbmUgWEVOS0JEX0ZJRUxEX1dJRFRIICAgICAgICAgICAgICJ3aWR0aCIKPiArI2RlZmluZSBY
RU5LQkRfRklFTERfSEVJR0hUICAgICAgICAgICAgImhlaWdodCIKPiArI2RlZmluZSBYRU5LQkRf
RklFTERfTVRfV0lEVEggICAgICAgICAgIm11bHRpLXRvdWNoLXdpZHRoIgo+ICsjZGVmaW5lIFhF
TktCRF9GSUVMRF9NVF9IRUlHSFQgICAgICAgICAibXVsdGktdG91Y2gtaGVpZ2h0Igo+ICsjZGVm
aW5lIFhFTktCRF9GSUVMRF9NVF9OVU1fQ09OVEFDVFMgICAibXVsdGktdG91Y2gtbnVtLWNvbnRh
Y3RzIgo+ICsKPiArLyogT0JTT0xFVEUsIG5vdCByZWNvbW1lbmRlZCBmb3IgdXNlICovCj4gKyNk
ZWZpbmUgWEVOS0JEX0ZJRUxEX1JJTkdfUkVGICAgICAgICAgICJwYWdlLXJlZiIKPiArCj4gIC8q
Cj4gLSAqIFBvaW50ZXIgcG9zaXRpb24gZXZlbnQKPiAtICogQ2FwYWJsZSBiYWNrZW5kIHNldHMg
ZmVhdHVyZS1hYnMtcG9pbnRlciBpbiB4ZW5zdG9yZS4KPiAtICogRnJvbnRlbmQgcmVxdWVzdHMg
b3QgaW5zdGVhZCBvZiBYRU5LQkRfVFlQRV9NT1RJT04gYnkgc2V0dGluZwo+IC0gKiByZXF1ZXN0
LWFicy11cGRhdGUgaW4geGVuc3RvcmUuCj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsgKiBE
ZXNjcmlwdGlvbiBvZiB0aGUgcHJvdG9jb2wgYmV0d2VlbiBmcm9udGVuZCBhbmQgYmFja2VuZCBk
cml2ZXIuCj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsgKgo+ICsgKiBUaGUgdHdvIGhhbHZl
cyBvZiBhIFBhcmEtdmlydHVhbCBkcml2ZXIgY29tbXVuaWNhdGUgd2l0aAo+ICsgKiBlYWNoIG90
aGVyIHVzaW5nIGEgc2hhcmVkIHBhZ2UgYW5kIGFuIGV2ZW50IGNoYW5uZWwuCj4gKyAqIFNoYXJl
ZCBwYWdlIGNvbnRhaW5zIGEgcmluZyB3aXRoIGV2ZW50IHN0cnVjdHVyZXMuCj4gKyAqCj4gKyAq
IEFsbCByZXNlcnZlZCBmaWVsZHMgaW4gdGhlIHN0cnVjdHVyZXMgYmVsb3cgbXVzdCBiZSAwLgo+
ICsgKgo+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiArICogICAgICAgICAgICAgICAgICAgICAg
ICAgICBCYWNrZW5kIHRvIGZyb250ZW5kIGV2ZW50cwo+ICsgKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
PiArICoKPiArICogRnJvbnRlbmRzIHNob3VsZCBpZ25vcmUgdW5rbm93biBpbiBldmVudHMuCj4g
KyAqIEFsbCBldmVudCBwYWNrZXRzIGhhdmUgdGhlIHNhbWUgbGVuZ3RoICg0MCBvY3RldHMpCj4g
KyAqIEFsbCBldmVudCBwYWNrZXRzIGhhdmUgY29tbW9uIGhlYWRlcjoKPiArICoKPiArICogICAg
ICAgICAgMCAgICAgICAgIG9jdGV0Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAg
ICAgICB0eXBlICAgICAgfAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHR5cGUgLSB1
aW50OF90LCBldmVudCBjb2RlLCBYRU5LQkRfVFlQRV8/Pz8KPiArICoKPiArICoKPiArICogUG9p
bnRlciByZWxhdGl2ZSBtb3ZlbWVudCBldmVudAo+ICsgKiAgICAgICAgIDAgICAgICAgICAgICAg
ICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4gKyAq
ICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKwo+ICsgKiB8ICBfVFlQRV9NT1RJT04gIHwgICAgICAgICAgICAgICAgICAg
ICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgIHwgNAo+ICsgKiArLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiAr
ICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxfeCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8IDgKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVsX3kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAx
Mgo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZWxfeiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE2Cj4gKyAqICstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgMjAKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvfAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQwCj4gKyAqICst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKwo+ICsgKgo+ICsgKiByZWxfeCAtIGludDMyX3QsIHJlbGF0aXZlIFggbW90aW9u
Cj4gKyAqIHJlbF95IC0gaW50MzJfdCwgcmVsYXRpdmUgWSBtb3Rpb24KPiArICogcmVsX3ogLSBp
bnQzMl90LCByZWxhdGl2ZSBaIG1vdGlvbiAod2hlZWwpCj4gICAqLwo+IC0jZGVmaW5lIFhFTktC
RF9UWVBFX1BPUyAgICAgNAo+ICAKPiAgc3RydWN0IHhlbmtiZF9tb3Rpb24KPiAgewo+IC0gICAg
dWludDhfdCB0eXBlOyAgICAgICAgLyogWEVOS0JEX1RZUEVfTU9USU9OICovCj4gLSAgICBpbnQz
Ml90IHJlbF94OyAgICAgICAvKiByZWxhdGl2ZSBYIG1vdGlvbiAqLwo+IC0gICAgaW50MzJfdCBy
ZWxfeTsgICAgICAgLyogcmVsYXRpdmUgWSBtb3Rpb24gKi8KPiAtICAgIGludDMyX3QgcmVsX3o7
ICAgICAgIC8qIHJlbGF0aXZlIFogbW90aW9uICh3aGVlbCkgKi8KPiArICAgIHVpbnQ4X3QgdHlw
ZTsKPiArICAgIGludDMyX3QgcmVsX3g7Cj4gKyAgICBpbnQzMl90IHJlbF95Owo+ICsgICAgaW50
MzJfdCByZWxfejsKPiAgfTsKPiAgCj4gKy8qCj4gKyAqIEtleSBldmVudCAoaW5jbHVkZXMgcG9p
bnRlciBidXR0b25zKQo+ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAg
ICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4gKyAqICstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+
ICsgKiB8ICBfVFlQRV9LRVkgICAgIHwgICAgIHByZXNzZWQgICAgfCAgICAgICAgICAgIHJlc2Vy
dmVkICAgICAgICAgICAgIHwgNAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGtleWNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
IDgKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMgo+ICsgKiArLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSsKPiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgNDAKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqCj4gKyAqIHByZXNzZWQgLSB1aW50OF90
LCAxIGlmIHByZXNzZWQ7IDAgb3RoZXJ3aXNlCj4gKyAqIGtleWNvZGUgLSB1aW50MzJfdCwgS0VZ
XyogZnJvbSBsaW51eC9pbnB1dC5oCj4gKyAqLwo+ICsKPiAgc3RydWN0IHhlbmtiZF9rZXkKPiAg
ewo+IC0gICAgdWludDhfdCB0eXBlOyAgICAgICAgIC8qIFhFTktCRF9UWVBFX0tFWSAqLwo+IC0g
ICAgdWludDhfdCBwcmVzc2VkOyAgICAgIC8qIDEgaWYgcHJlc3NlZDsgMCBvdGhlcndpc2UgKi8K
PiAtICAgIHVpbnQzMl90IGtleWNvZGU7ICAgICAvKiBLRVlfKiBmcm9tIGxpbnV4L2lucHV0Lmgg
Ki8KPiArICAgIHVpbnQ4X3QgdHlwZTsKPiArICAgIHVpbnQ4X3QgcHJlc3NlZDsKPiArICAgIHVp
bnQzMl90IGtleWNvZGU7Cj4gIH07Cj4gIAo+ICsvKgo+ICsgKiBQb2ludGVyIGFic29sdXRlIHBv
c2l0aW9uIGV2ZW50Cj4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAg
ICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPiArICogKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4g
KyAqIHwgIF9UWVBFX1BPUyAgICAgfCAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAg
ICAgICAgICAgICAgICAgfCA0Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFic194ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
OAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhYnNfeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEyCj4gKyAqICstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbF96ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgMTYKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAyMAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4gKyAqICst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNDAKPiArICogKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAq
Cj4gKyAqIGFic194IC0gaW50MzJfdCwgYWJzb2x1dGUgWCBwb3NpdGlvbiAoaW4gRkIgcGl4ZWxz
KQo+ICsgKiBhYnNfeSAtIGludDMyX3QsIGFic29sdXRlIFkgcG9zaXRpb24gKGluIEZCIHBpeGVs
cykKPiArICogcmVsX3ogLSBpbnQzMl90LCByZWxhdGl2ZSBaIG1vdGlvbiAod2hlZWwpCj4gKyAq
Lwo+ICsKPiAgc3RydWN0IHhlbmtiZF9wb3NpdGlvbgo+ICB7Cj4gLSAgICB1aW50OF90IHR5cGU7
ICAgICAgICAvKiBYRU5LQkRfVFlQRV9QT1MgKi8KPiAtICAgIGludDMyX3QgYWJzX3g7ICAgICAg
IC8qIGFic29sdXRlIFggcG9zaXRpb24gKGluIEZCIHBpeGVscykgKi8KPiAtICAgIGludDMyX3Qg
YWJzX3k7ICAgICAgIC8qIGFic29sdXRlIFkgcG9zaXRpb24gKGluIEZCIHBpeGVscykgKi8KPiAt
ICAgIGludDMyX3QgcmVsX3o7ICAgICAgIC8qIHJlbGF0aXZlIFogbW90aW9uICh3aGVlbCkgKi8K
PiArICAgIHVpbnQ4X3QgdHlwZTsKPiArICAgIGludDMyX3QgYWJzX3g7Cj4gKyAgICBpbnQzMl90
IGFic195Owo+ICsgICAgaW50MzJfdCByZWxfejsKPiArfTsKPiArCj4gKy8qCj4gKyAqIE11bHRp
LXRvdWNoIGV2ZW50IGFuZCBpdHMgc3ViLXR5cGVzCj4gKyAqCj4gKyAqIEFsbCBtdWx0aS10b3Vj
aCBldmVudCBwYWNrZXRzIGhhdmUgY29tbW9uIGhlYWRlcjoKPiArICoKPiArICogICAgICAgICAw
ICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAg
ICBvY3RldAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgX1RZUEVfTVRPVUNIICB8ICAgZXZl
bnRfdHlwZSAgIHwgICBjb250YWN0X2lkICAgfCAgICByZXNlcnZlZCAgICB8IDQKPiArICogKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKgo+
ICsgKiBldmVudF90eXBlIC0gdW50OF90LCBtdWx0aS10b3VjaCBldmVudCBzdWItdHlwZSwgWEVO
S0JEX01UX0VWXz8/Pwo+ICsgKiBjb250YWN0X2lkIC0gdW50OF90LCBJRCBvZiB0aGUgY29udGFj
dAo+ICsgKgo+ICsgKiBUb3VjaCBpbnRlcmFjdGlvbnMgY2FuIGNvbnNpc3Qgb2Ygb25lIG9yIG1v
cmUgY29udGFjdHMuCj4gKyAqIEZvciBlYWNoIGNvbnRhY3QsIGEgc2VyaWVzIG9mIGV2ZW50cyBp
cyBnZW5lcmF0ZWQsIHN0YXJ0aW5nCj4gKyAqIHdpdGggYSBkb3duIGV2ZW50LCBmb2xsb3dlZCBi
eSB6ZXJvIG9yIG1vcmUgbW90aW9uIGV2ZW50cywKPiArICogYW5kIGVuZGluZyB3aXRoIGFuIHVw
IGV2ZW50LiBFdmVudHMgcmVsYXRpbmcgdG8gdGhlIHNhbWUKPiArICogY29udGFjdCBwb2ludCBj
YW4gYmUgaWRlbnRpZmllZCBieSB0aGUgSUQgb2YgdGhlIHNlcXVlbmNlOiBjb250YWN0IElELgo+
ICsgKiBDb250YWN0IElEIG1heSBiZSByZXVzZWQgYWZ0ZXIgWEVOS0JEX01UX0VWX1VQIGV2ZW50
IGFuZAo+ICsgKiBpcyBpbiB0aGUgWzA7IFhFTktCRF9GSUVMRF9OVU1fQ09OVEFDVFMgLSAxXSBy
YW5nZS4KPiArICoKPiArICogRm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gcGxlYXNlIHJlZmVyIHRv
IGRvY3VtZW50YXRpb24gb24gV2F5bGFuZCBbMV0sCj4gKyAqIExpbnV4IFsyXSBhbmQgV2luZG93
cyBbM10gbXVsdGktdG91Y2ggc3VwcG9ydC4KPiArICoKPiArICogWzFdIGh0dHBzOi8vY2dpdC5m
cmVlZGVza3RvcC5vcmcvd2F5bGFuZC93YXlsYW5kL3RyZWUvcHJvdG9jb2wvd2F5bGFuZC54bWwK
PiArICogWzJdIGh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL0RvY3VtZW50YXRpb24vaW5wdXQv
bXVsdGktdG91Y2gtcHJvdG9jb2wudHh0Cj4gKyAqIFszXSBodHRwczovL21zZG4ubWljcm9zb2Z0
LmNvbS9lbi11cy9saWJyYXJ5L2pqMTUxNTY0KHY9dnMuODUpLmFzcHgKPiArICoKPiArICoKPiAr
ICogTXVsdGktdG91Y2ggZG93biBldmVudCAtIHNlbnQgd2hlbiBhIG5ldyB0b3VjaCBpcyBtYWRl
OiB0b3VjaCBpcyBhc3NpZ25lZAo+ICsgKiBhIHVuaXF1ZSBjb250YWN0IElELCBzZW50IHdpdGgg
dGhpcyBhbmQgY29uc2VxdWVudCBldmVudHMgcmVsYXRlZAo+ICsgKiB0byB0aGlzIHRvdWNoLgo+
ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAg
ICAgICAgIDMgICAgICAgIG9jdGV0Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICBfVFlQRV9N
VE9VQ0ggIHwgICBfTVRfRVZfRE9XTiAgfCAgIGNvbnRhY3RfaWQgICB8ICAgIHJlc2VydmVkICAg
IHwgNAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKPiArICogKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJzX3ggICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAxMgo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnNfeSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8IDE2Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAKPiAr
ICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+ICsgKiArLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiAr
ICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8IDQwCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKgo+ICsgKiBhYnNfeCAt
IGludDMyX3QsIGFic29sdXRlIFggcG9zaXRpb24sIGluIHBpeGVscwo+ICsgKiBhYnNfeSAtIGlu
dDMyX3QsIGFic29sdXRlIFkgcG9zaXRpb24sIGluIHBpeGVscwo+ICsgKgo+ICsgKiBNdWx0aS10
b3VjaCBjb250YWN0IHJlbGVhc2UgZXZlbnQKPiArICogICAgICAgICAwICAgICAgICAgICAgICAg
IDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAo+ICsgKiAr
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSsKPiArICogfCAgX1RZUEVfTVRPVUNIICB8ICBfTVRfRVZfVVAgICAgIHwgICBj
b250YWN0X2lkICAgfCAgICByZXNlcnZlZCAgICB8IDQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAq
IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCA4Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8L1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKPiAr
ICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2Vy
dmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0MAo+ICsgKiArLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsK
PiArICoKPiArICogTXVsdGktdG91Y2ggbW90aW9uIGV2ZW50Cj4gKyAqICAgICAgICAgMCAgICAg
ICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0
ZXQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgIF9UWVBFX01UT1VDSCAgfCAgX01UX0VWX01P
VElPTiB8ICAgY29udGFjdF9pZCAgIHwgICAgcmVzZXJ2ZWQgICAgfCA0Cj4gKyAqICstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgOAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhYnNfeCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IDEyCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFic195ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYKPiArICog
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMAo+ICsgKiArLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiAr
ICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC98Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNDAK
PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqCj4gKyAqIGFic194IC0gaW50MzJfdCwgYWJzb2x1dGUg
WCBwb3NpdGlvbiwgaW4gcGl4ZWxzLAo+ICsgKiBhYnNfeSAtIGludDMyX3QsIGFic29sdXRlIFkg
cG9zaXRpb24sIGluIHBpeGVscywKPiArICoKPiArICogTXVsdGktdG91Y2ggaW5wdXQgc3luY2hy
b25pemF0aW9uIGV2ZW50IC0gc2hvd3MgZW5kIG9mIGEgc2V0IG9mIGV2ZW50cwo+ICsgKiB3aGlj
aCBsb2dpY2FsbHkgYmVsb25nIHRvZ2V0aGVyLgo+ICsgKiAgICAgICAgIDAgICAgICAgICAgICAg
ICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4gKyAq
ICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKwo+ICsgKiB8ICBfVFlQRV9NVE9VQ0ggIHwgIF9NVF9FVl9TWU4gICAgfCAg
IGNvbnRhY3RfaWQgICB8ICAgIHJlc2VydmVkICAgIHwgNAo+ICsgKiArLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiAr
ICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8IDgKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+
ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz
ZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQwCj4gKyAqICstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Kwo+ICsgKgo+ICsgKiBNdWx0aS10b3VjaCBzaGFwZSBldmVudCAtIHRvdWNoIHBvaW50J3Mgc2hh
cGUgaGFzIGNoYW5nZWQgaXRzIHNoYXBlLgo+ICsgKiBTaGFwZSBpcyBhcHByb3hpbWF0ZWQgYnkg
YW4gZWxsaXBzZSB0aHJvdWdoIHRoZSBtYWpvciBhbmQgbWlub3IgYXhpcwo+ICsgKiBsZW5ndGhz
OiBtYWpvciBpcyB0aGUgbG9uZ2VyIGRpYW1ldGVyIG9mIHRoZSBlbGxpcHNlIGFuZCBtaW5vciBp
cyB0aGUKPiArICogc2hvcnRlciBvbmUuIENlbnRlciBvZiB0aGUgZWxsaXBzZSBpcyByZXBvcnRl
ZCB2aWEKPiArICogWEVOS0JEX01UX0VWX0RPV04vWEVOS0JEX01UX0VWX01PVElPTiBldmVudHMu
Cj4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAg
ICAgICAgICAgMyAgICAgICAgb2N0ZXQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgIF9UWVBF
X01UT1VDSCAgfCAgX01UX0VWX1NIQVBFICB8ICAgY29udGFjdF9pZCAgIHwgICAgcmVzZXJ2ZWQg
ICAgfCA0Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAo+ICsgKiArLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWpvciAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEyCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbm9yICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgMTYKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMAo+
ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSsKPiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4gKyAqICstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+
ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgNDAKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqCj4gKyAqIG1ham9y
IC0gdW50MzJfdCwgbGVuZ3RoIG9mIHRoZSBtYWpvciBheGlzLCBwaXhlbHMKPiArICogbWlub3Ig
LSB1bnQzMl90LCBsZW5ndGggb2YgdGhlIG1pbm9yIGF4aXMsIHBpeGVscwo+ICsgKgo+ICsgKiBN
dWx0aS10b3VjaCBvcmllbnRhdGlvbiBldmVudCAtIHRvdWNoIHBvaW50J3Mgc2hhcGUgaGFzIGNo
YW5nZWQKPiArICogaXRzIG9yaWVudGF0aW9uOiBjYWxjdWxhdGVkIGFzIGEgY2xvY2t3aXNlIGFu
Z2xlIGJldHdlZW4gdGhlIG1ham9yIGF4aXMKPiArICogb2YgdGhlIGVsbGlwc2UgYW5kIHBvc2l0
aXZlIFkgYXhpcyBpbiBkZWdyZWVzLCBbLTE4MDsgKzE4MF0uCj4gKyAqICAgICAgICAgMCAgICAg
ICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0
ZXQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgIF9UWVBFX01UT1VDSCAgfCAgX01UX0VWX09S
SUVOVCB8ICAgY29udGFjdF9pZCAgIHwgICAgcmVzZXJ2ZWQgICAgfCA0Cj4gKyAqICstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgOAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAg
ICAgICAgb3JpZW50YXRpb24gICAgICAgICAgIHwgICAgICAgICAgICByZXNlcnZlZCAgICAgICAg
ICAgICB8IDEyCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYKPiArICog
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rCj4gKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICog
fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8IDQwCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKgo+ICsgKiBvcmllbnRhdGlv
biAtIGludDE2X3QsIGNsb2Nrd2lzZSBhbmdsZSBvZiB0aGUgbWFqb3IgYXhpcwo+ICsgKi8KPiAr
Cj4gK3N0cnVjdCB4ZW5rYmRfbXRvdWNoIHsKPiArICAgIHVpbnQ4X3QgdHlwZTsgICAgICAgICAg
ICAvKiBYRU5LQkRfVFlQRV9NVE9VQ0ggKi8KPiArICAgIHVpbnQ4X3QgZXZlbnRfdHlwZTsgICAg
ICAvKiBYRU5LQkRfTVRfRVZfPz8/ICovCj4gKyAgICB1aW50OF90IGNvbnRhY3RfaWQ7Cj4gKyAg
ICB1aW50OF90IHJlc2VydmVkWzVdOyAgICAgLyogcmVzZXJ2ZWQgZm9yIHRoZSBmdXR1cmUgdXNl
ICovCj4gKyAgICB1bmlvbiB7Cj4gKyAgICAgICAgc3RydWN0IHsKPiArICAgICAgICAgICAgaW50
MzJfdCBhYnNfeDsgICAvKiBhYnNvbHV0ZSBYIHBvc2l0aW9uLCBwaXhlbHMgKi8KPiArICAgICAg
ICAgICAgaW50MzJfdCBhYnNfeTsgICAvKiBhYnNvbHV0ZSBZIHBvc2l0aW9uLCBwaXhlbHMgKi8K
PiArICAgICAgICB9IHBvczsKPiArICAgICAgICBzdHJ1Y3Qgewo+ICsgICAgICAgICAgICB1aW50
MzJfdCBtYWpvcjsgIC8qIGxlbmd0aCBvZiB0aGUgbWFqb3IgYXhpcywgcGl4ZWxzICovCj4gKyAg
ICAgICAgICAgIHVpbnQzMl90IG1pbm9yOyAgLyogbGVuZ3RoIG9mIHRoZSBtaW5vciBheGlzLCBw
aXhlbHMgKi8KPiArICAgICAgICB9IHNoYXBlOwo+ICsgICAgICAgIGludDE2X3Qgb3JpZW50YXRp
b247IC8qIGNsb2Nrd2lzZSBhbmdsZSBvZiB0aGUgbWFqb3IgYXhpcyAqLwo+ICsgICAgfSB1Owo+
ICB9Owo+ICAKPiAgI2RlZmluZSBYRU5LQkRfSU5fRVZFTlRfU0laRSA0MAo+IEBAIC03NiwxNSAr
NDc5LDI2IEBAIHVuaW9uIHhlbmtiZF9pbl9ldmVudAo+ICAgICAgc3RydWN0IHhlbmtiZF9tb3Rp
b24gbW90aW9uOwo+ICAgICAgc3RydWN0IHhlbmtiZF9rZXkga2V5Owo+ICAgICAgc3RydWN0IHhl
bmtiZF9wb3NpdGlvbiBwb3M7Cj4gKyAgICBzdHJ1Y3QgeGVua2JkX210b3VjaCBtdG91Y2g7Cj4g
ICAgICBjaGFyIHBhZFtYRU5LQkRfSU5fRVZFTlRfU0laRV07Cj4gIH07Cj4gIAo+IC0vKiBPdXQg
ZXZlbnRzIChmcm9udGVuZCAtPiBiYWNrZW5kKSAqLwo+IC0KPiAgLyoKPiArICoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyb250ZW5kIHRvIGJh
Y2tlbmQgZXZlbnRzCj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsgKgo+ICAgKiBPdXQgZXZl
bnRzIG1heSBiZSBzZW50IG9ubHkgd2hlbiByZXF1ZXN0ZWQgYnkgYmFja2VuZCwgYW5kIHJlY2Vp
cHQKPiAgICogb2YgYW4gdW5rbm93biBvdXQgZXZlbnQgaXMgYW4gZXJyb3IuCj4gICAqIE5vIG91
dCBldmVudHMgY3VycmVudGx5IGRlZmluZWQuCj4gKwo+ICsgKiBBbGwgZXZlbnQgcGFja2V0cyBo
YXZlIHRoZSBzYW1lIGxlbmd0aCAoNDAgb2N0ZXRzKQo+ICsgKiBBbGwgZXZlbnQgcGFja2V0cyBo
YXZlIGNvbW1vbiBoZWFkZXI6Cj4gKyAqICAgICAgICAgIDAgICAgICAgICBvY3RldAo+ICsgKiAr
LS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgdHlwZSAgICAgIHwKPiArICogKy0tLS0t
LS0tLS0tLS0tLS0tKwo+ICsgKiB0eXBlIC0gdWludDhfdCwgZXZlbnQgY29kZQo+ICAgKi8KPiAg
Cj4gICNkZWZpbmUgWEVOS0JEX09VVF9FVkVOVF9TSVpFIDQwCj4gQEAgLTk1LDcgKzUwOSwxMSBA
QCB1bmlvbiB4ZW5rYmRfb3V0X2V2ZW50Cj4gICAgICBjaGFyIHBhZFtYRU5LQkRfT1VUX0VWRU5U
X1NJWkVdOwo+ICB9Owo+ICAKPiAtLyogc2hhcmVkIHBhZ2UgKi8KPiArLyoKPiArICoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqCj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNoYXJlZCBwYWdl
Cj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsgKi8KPiAgCj4gICNkZWZpbmUgWEVOS0JEX0lO
X1JJTkdfU0laRSAyMDQ4Cj4gICNkZWZpbmUgWEVOS0JEX0lOX1JJTkdfTEVOIChYRU5LQkRfSU5f
UklOR19TSVpFIC8gWEVOS0JEX0lOX0VWRU5UX1NJWkUpCj4gQEAgLTExOSw3ICs1MzcsNyBAQCBz
dHJ1Y3QgeGVua2JkX3BhZ2UKPiAgICAgIHVpbnQzMl90IG91dF9jb25zLCBvdXRfcHJvZDsKPiAg
fTsKPiAgCj4gLSNlbmRpZgo+ICsjZW5kaWYgLyogX19YRU5fUFVCTElDX0lPX0tCRElGX0hfXyAq
Lwo+ICAKPiAgLyoKPiAgICogTG9jYWwgdmFyaWFibGVzOgo+IGRpZmYgLS1naXQgYS9pbmNsdWRl
L3hlbi9pby9saWJ4ZW52Y2hhbi5oIGIvaW5jbHVkZS94ZW4vaW8vbGlieGVudmNoYW4uaAo+IGlu
ZGV4IDVjM2QzZDQuLjQ0Mjg0ZjQgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS94ZW4vaW8vbGlieGVu
dmNoYW4uaAo+ICsrKyBiL2luY2x1ZGUveGVuL2lvL2xpYnhlbnZjaGFuLmgKPiBAQCAtMTAsMTkg
KzEwLDIzIEBACj4gICAqCj4gICAqIEBzZWN0aW9uIExJQ0VOU0UKPiAgICoKPiAtICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
PiAtICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKPiAtICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgo+IC0gKiAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCj4gKyAqIFBlcm1pc3Npb24gaXMg
aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBh
IGNvcHkKPiArICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9u
IGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCj4gKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdp
dGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCj4gKyAq
IHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUs
IHN1YmxpY2Vuc2UsIGFuZC9vcgo+ICsgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFu
ZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwo+ICsgKiBmdXJuaXNo
ZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+ICAgKgo+
IC0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCj4gLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo+IC0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKPiAtICogIExlc3NlciBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCj4gKyAqIFRoZSBhYm92ZSBj
b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1
ZGVkIGluCj4gKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNv
ZnR3YXJlLgo+ICAgKgo+IC0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+IC0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQo+IC0gKiAgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBN
QSAgMDIxMTAtMTMwMSBVU0EKPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIs
IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiArICogSU1QTElFRCwg
SU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFksCj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS
SU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQo+ICsgKiBBVVRIT1JTIE9SIENPUFlSSUdI
VCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4gKyAq
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI
RVJXSVNFLCBBUklTSU5HCj4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEgg
VEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKPiArICogREVBTElOR1MgSU4gVEhFIFNP
RlRXQVJFLgo+ICAgKgo+ICAgKiBAc2VjdGlvbiBERVNDUklQVElPTgo+ICAgKgo+IGRpZmYgLS1n
aXQgYS9pbmNsdWRlL3hlbi9pby9uZXRpZi5oIGIvaW5jbHVkZS94ZW4vaW8vbmV0aWYuaAo+IGlu
ZGV4IDYxZTlhZWEuLmNhMDA2MTQgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS94ZW4vaW8vbmV0aWYu
aAo+ICsrKyBiL2luY2x1ZGUveGVuL2lvL25ldGlmLmgKPiBAQCAtMSw4ICsxLDggQEAKPiAgLyoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgo+ICAgKiBuZXRpZi5oCj4gLSAqIAo+ICsgKgo+ICAgKiBVbmlm
aWVkIG5ldHdvcmstZGV2aWNlIEkvTyBpbnRlcmZhY2UgZm9yIFhlbiBndWVzdCBPU2VzLgo+IC0g
KiAKPiArICoKPiAgICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFy
Z2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQo+ICAgKiBvZiB0aGlzIHNvZnR3YXJl
IGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8K
PiAgICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5n
IHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKPiBAQCAtMTM2LDE0ICsxMzYsNjg0IEBACj4gICAqLwo+
ICAKPiAgLyoKPiAtICogVGhpcyBpcyB0aGUgJ3dpcmUnIGZvcm1hdCBmb3IgcGFja2V0czoKPiAt
ICogIFJlcXVlc3QgMTogbmV0aWZfdHhfcmVxdWVzdCAtLSBORVRUWEZfKiAoYW55IGZsYWdzKQo+
IC0gKiBbUmVxdWVzdCAyOiBuZXRpZl90eF9leHRyYV0gIChvbmx5IGlmIHJlcXVlc3QgMSBoYXMg
TkVUVFhGX2V4dHJhX2luZm8pCj4gLSAqIFtSZXF1ZXN0IDM6IG5ldGlmX3R4X2V4dHJhXSAgKG9u
bHkgaWYgcmVxdWVzdCAyIGhhcyBYRU5fTkVUSUZfRVhUUkFfTU9SRSkKPiAtICogIFJlcXVlc3Qg
NDogbmV0aWZfdHhfcmVxdWVzdCAtLSBORVRUWEZfbW9yZV9kYXRhCj4gLSAqICBSZXF1ZXN0IDU6
IG5ldGlmX3R4X3JlcXVlc3QgLS0gTkVUVFhGX21vcmVfZGF0YQo+ICsgKiAiZmVhdHVyZS1tdWx0
aWNhc3QtY29udHJvbCIgYW5kICJmZWF0dXJlLWR5bmFtaWMtbXVsdGljYXN0LWNvbnRyb2wiCj4g
KyAqIGFkdmVydGlzZSB0aGUgY2FwYWJpbGl0eSB0byBmaWx0ZXIgZXRoZXJuZXQgbXVsdGljYXN0
IHBhY2tldHMgaW4gdGhlCj4gKyAqIGJhY2tlbmQuIElmIHRoZSBmcm9udGVuZCB3aXNoZXMgdG8g
dGFrZSBhZHZhbnRhZ2Ugb2YgdGhpcyBmZWF0dXJlIHRoZW4KPiArICogaXQgbWF5IHNldCAicmVx
dWVzdC1tdWx0aWNhc3QtY29udHJvbCIuIElmIHRoZSBiYWNrZW5kIG9ubHkgYWR2ZXJ0aXNlcwo+
ICsgKiAiZmVhdHVyZS1tdWx0aWNhc3QtY29udHJvbCIgdGhlbiAicmVxdWVzdC1tdWx0aWNhc3Qt
Y29udHJvbCIgbXVzdCBiZSBzZXQKPiArICogYmVmb3JlIHRoZSBmcm9udGVuZCBtb3ZlcyBpbnRv
IHRoZSBjb25uZWN0ZWQgc3RhdGUuIFRoZSBiYWNrZW5kIHdpbGwKPiArICogc2FtcGxlIHRoZSB2
YWx1ZSBvbiB0aGlzIHN0YXRlIHRyYW5zaXRpb24gYW5kIGFueSBzdWJzZXF1ZW50IGNoYW5nZSBp
bgo+ICsgKiB2YWx1ZSB3aWxsIGhhdmUgbm8gZWZmZWN0LiBIb3dldmVyLCBpZiB0aGUgYmFja2Vu
ZCBhbHNvIGFkdmVydGlzZXMKPiArICogImZlYXR1cmUtZHluYW1pYy1tdWx0aWNhc3QtY29udHJv
bCIgdGhlbiAicmVxdWVzdC1tdWx0aWNhc3QtY29udHJvbCIKPiArICogbWF5IGJlIHNldCBieSB0
aGUgZnJvbnRlbmQgYXQgYW55IHRpbWUuIEluIHRoaXMgY2FzZSwgdGhlIGJhY2tlbmQgd2lsbAo+
ICsgKiB3YXRjaCB0aGUgdmFsdWUgYW5kIHJlLXNhbXBsZSBvbiB3YXRjaCBldmVudHMuCj4gKyAq
Cj4gKyAqIElmIHRoZSBzYW1wbGVkIHZhbHVlIG9mICJyZXF1ZXN0LW11bHRpY2FzdC1jb250cm9s
IiBpcyBzZXQgdGhlbiB0aGUKPiArICogYmFja2VuZCB0cmFuc21pdCBzaWRlIHNob3VsZCBubyBs
b25nZXIgZmxvb2QgbXVsdGljYXN0IHBhY2tldHMgdG8gdGhlCj4gKyAqIGZyb250ZW5kLCBpdCBz
aG91bGQgaW5zdGVhZCBkcm9wIGFueSBtdWx0aWNhc3QgcGFja2V0IHRoYXQgZG9lcyBub3QKPiAr
ICogbWF0Y2ggaW4gYSBmaWx0ZXIgbGlzdC4KPiArICogVGhlIGxpc3QgaXMgYW1lbmRlZCBieSB0
aGUgZnJvbnRlbmQgYnkgc2VuZGluZyBkdW1teSB0cmFuc21pdCByZXF1ZXN0cwo+ICsgKiBjb250
YWluaW5nIFhFTl9ORVRJRl9FWFRSQV9UWVBFX01DQVNUX3tBREQsREVMfSBleHRyYS1pbmZvIGZy
YWdtZW50cyBhcwo+ICsgKiBzcGVjaWZpZWQgYmVsb3cuCj4gKyAqIE5vdGUgdGhhdCB0aGUgZmls
dGVyIGxpc3QgbWF5IGJlIGFtZW5kZWQgZXZlbiBpZiB0aGUgc2FtcGxlZCB2YWx1ZSBvZgo+ICsg
KiAicmVxdWVzdC1tdWx0aWNhc3QtY29udHJvbCIgaXMgbm90IHNldCwgaG93ZXZlciB0aGUgZmls
dGVyIHNob3VsZCBvbmx5Cj4gKyAqIGJlIGFwcGxpZWQgaWYgaXQgaXMgc2V0Lgo+ICsgKi8KPiAr
Cj4gKy8qCj4gKyAqIENvbnRyb2wgcmluZwo+ICsgKiA9PT09PT09PT09PT0KPiArICoKPiArICog
U29tZSBmZWF0dXJlcywgc3VjaCBhcyBoYXNoaW5nIChkZXRhaWxlZCBiZWxvdyksIHJlcXVpcmUg
YQo+ICsgKiBzaWduaWZpY2FudCBhbW91bnQgb2Ygb3V0LW9mLWJhbmQgZGF0YSB0byBiZSBwYXNz
ZWQgZnJvbSBmcm9udGVuZCB0bwo+ICsgKiBiYWNrZW5kLiBVc2Ugb2YgeGVuc3RvcmUgaXMgbm90
IHN1aXRhYmxlIGZvciBsYXJnZSBxdWFudGl0aWVzIG9mIGRhdGEKPiArICogYmVjYXVzZSBvZiBx
dW90YSBsaW1pdGF0aW9ucyBhbmQgc28gYSBkZWRpY2F0ZWQgJ2NvbnRyb2wgcmluZycgaXMgdXNl
ZC4KPiArICogVGhlIGFiaWxpdHkgb2YgdGhlIGJhY2tlbmQgdG8gdXNlIGEgY29udHJvbCByaW5n
IGlzIGFkdmVydGlzZWQgYnkKPiArICogc2V0dGluZzoKPiArICoKPiArICogL2xvY2FsL2RvbWFp
bi9YL2JhY2tlbmQvPGRvbWlkPi88dmlmPi9mZWF0dXJlLWN0cmwtcmluZyA9ICIxIgo+ICsgKgo+
ICsgKiBUaGUgZnJvbnRlbmQgcHJvdmlkZXMgYSBjb250cm9sIHJpbmcgdG8gdGhlIGJhY2tlbmQg
Ynkgc2V0dGluZzoKPiArICoKPiArICogL2xvY2FsL2RvbWFpbi88ZG9taWQ+L2RldmljZS92aWYv
PHZpZj4vY3RybC1yaW5nLXJlZiA9IDxncmVmPgo+ICsgKiAvbG9jYWwvZG9tYWluLzxkb21pZD4v
ZGV2aWNlL3ZpZi88dmlmPi9ldmVudC1jaGFubmVsLWN0cmwgPSA8cG9ydD4KPiArICoKPiArICog
d2hlcmUgPGdyZWY+IGlzIHRoZSBncmFudCByZWZlcmVuY2Ugb2YgdGhlIHNoYXJlZCBwYWdlIHVz
ZWQgdG8KPiArICogaW1wbGVtZW50IHRoZSBjb250cm9sIHJpbmcgYW5kIDxwb3J0PiBpcyBhbiBl
dmVudCBjaGFubmVsIHRvIGJlIHVzZWQKPiArICogYXMgYSBtYWlsYm94IGludGVycnVwdC4gVGhl
c2Uga2V5cyBtdXN0IGJlIHNldCBiZWZvcmUgdGhlIGZyb250ZW5kCj4gKyAqIG1vdmVzIGludG8g
dGhlIGNvbm5lY3RlZCBzdGF0ZS4KPiArICoKPiArICogVGhlIGNvbnRyb2wgcmluZyB1c2VzIGEg
Zml4ZWQgcmVxdWVzdC9yZXNwb25zZSBtZXNzYWdlIHNpemUgYW5kIGlzCj4gKyAqIGJhbGFuY2Vk
IChpLmUuIG9uZSByZXF1ZXN0IHRvIG9uZSByZXNwb25zZSksIHNvIG9wZXJhdGlvbmFsbHkgaXQg
aXMgbXVjaAo+ICsgKiB0aGUgc2FtZSBhcyBhIHRyYW5zbWl0IG9yIHJlY2VpdmUgcmluZy4KPiAr
ICogTm90ZSB0aGF0IHRoZXJlIGlzIG5vIHJlcXVpcmVtZW50IHRoYXQgcmVzcG9uc2VzIGFyZSBp
c3N1ZWQgaW4gdGhlIHNhbWUKPiArICogb3JkZXIgYXMgcmVxdWVzdHMuCj4gKyAqLwo+ICsKPiAr
LyoKPiArICogSGFzaCB0eXBlcwo+ICsgKiA9PT09PT09PT09Cj4gKyAqCj4gKyAqIEZvciB0aGUg
cHVycG9zZXMgb2YgdGhlIGRlZmluaXRpb25zIGJlbG93LCAnUGFja2V0W10nIGlzIGFuIGFycmF5
IG9mCj4gKyAqIG9jdGV0cyBjb250YWluaW5nIGFuIElQIHBhY2tldCB3aXRob3V0IG9wdGlvbnMs
ICdBcnJheVtYLi5ZXScgbWVhbnMgYQo+ICsgKiBzdWItYXJyYXkgb2YgJ0FycmF5JyBjb250YWlu
aW5nIGJ5dGVzIFggdGhydSBZIGluY2x1c2l2ZSwgYW5kICcrJyBpcwo+ICsgKiB1c2VkIHRvIGlu
ZGljYXRlIGNvbmNhdGVuYXRpb24gb2YgYXJyYXlzLgo+ICsgKi8KPiArCj4gKy8qCj4gKyAqIEEg
aGFzaCBjYWxjdWxhdGVkIG92ZXIgYW4gSVAgdmVyc2lvbiA0IGhlYWRlciBhcyBmb2xsb3dzOgo+
ICsgKgo+ICsgKiBCdWZmZXJbMC4uOF0gPSBQYWNrZXRbMTIuLjE1XSAoc291cmNlIGFkZHJlc3Mp
ICsKPiArICogICAgICAgICAgICAgICAgUGFja2V0WzE2Li4xOV0gKGRlc3RpbmF0aW9uIGFkZHJl
c3MpCj4gKyAqCj4gKyAqIFJlc3VsdCA9IEhhc2goQnVmZmVyLCA4KQo+ICsgKi8KPiArI2RlZmlu
ZSBfWEVOX05FVElGX0NUUkxfSEFTSF9UWVBFX0lQVjQgMAo+ICsjZGVmaW5lIFhFTl9ORVRJRl9D
VFJMX0hBU0hfVFlQRV9JUFY0IFwKPiArICAgICgxIDw8IF9YRU5fTkVUSUZfQ1RSTF9IQVNIX1RZ
UEVfSVBWNCkKPiArCj4gKy8qCj4gKyAqIEEgaGFzaCBjYWxjdWxhdGVkIG92ZXIgYW4gSVAgdmVy
c2lvbiA0IGhlYWRlciBhbmQgVENQIGhlYWRlciBhcwo+ICsgKiBmb2xsb3dzOgo+ICsgKgo+ICsg
KiBCdWZmZXJbMC4uMTJdID0gUGFja2V0WzEyLi4xNV0gKHNvdXJjZSBhZGRyZXNzKSArCj4gKyAq
ICAgICAgICAgICAgICAgICBQYWNrZXRbMTYuLjE5XSAoZGVzdGluYXRpb24gYWRkcmVzcykgKwo+
ICsgKiAgICAgICAgICAgICAgICAgUGFja2V0WzIwLi4yMV0gKHNvdXJjZSBwb3J0KSArCj4gKyAq
ICAgICAgICAgICAgICAgICBQYWNrZXRbMjIuLjIzXSAoZGVzdGluYXRpb24gcG9ydCkKPiArICoK
PiArICogUmVzdWx0ID0gSGFzaChCdWZmZXIsIDEyKQo+ICsgKi8KPiArI2RlZmluZSBfWEVOX05F
VElGX0NUUkxfSEFTSF9UWVBFX0lQVjRfVENQIDEKPiArI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9I
QVNIX1RZUEVfSVBWNF9UQ1AgXAo+ICsgICAgKDEgPDwgX1hFTl9ORVRJRl9DVFJMX0hBU0hfVFlQ
RV9JUFY0X1RDUCkKPiArCj4gKy8qCj4gKyAqIEEgaGFzaCBjYWxjdWxhdGVkIG92ZXIgYW4gSVAg
dmVyc2lvbiA2IGhlYWRlciBhcyBmb2xsb3dzOgo+ICsgKgo+ICsgKiBCdWZmZXJbMC4uMzJdID0g
UGFja2V0WzguLjIzXSAgKHNvdXJjZSBhZGRyZXNzICkgKwo+ICsgKiAgICAgICAgICAgICAgICAg
UGFja2V0WzI0Li4zOV0gKGRlc3RpbmF0aW9uIGFkZHJlc3MpCj4gKyAqCj4gKyAqIFJlc3VsdCA9
IEhhc2goQnVmZmVyLCAzMikKPiArICovCj4gKyNkZWZpbmUgX1hFTl9ORVRJRl9DVFJMX0hBU0hf
VFlQRV9JUFY2IDIKPiArI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfSVBWNiBcCj4g
KyAgICAoMSA8PCBfWEVOX05FVElGX0NUUkxfSEFTSF9UWVBFX0lQVjYpCj4gKwo+ICsvKgo+ICsg
KiBBIGhhc2ggY2FsY3VsYXRlZCBvdmVyIGFuIElQIHZlcnNpb24gNiBoZWFkZXIgYW5kIFRDUCBo
ZWFkZXIgYXMKPiArICogZm9sbG93czoKPiArICoKPiArICogQnVmZmVyWzAuLjM2XSA9IFBhY2tl
dFs4Li4yM10gIChzb3VyY2UgYWRkcmVzcykgKwo+ICsgKiAgICAgICAgICAgICAgICAgUGFja2V0
WzI0Li4zOV0gKGRlc3RpbmF0aW9uIGFkZHJlc3MpICsKPiArICogICAgICAgICAgICAgICAgIFBh
Y2tldFs0MC4uNDFdIChzb3VyY2UgcG9ydCkgKwo+ICsgKiAgICAgICAgICAgICAgICAgUGFja2V0
WzQyLi40M10gKGRlc3RpbmF0aW9uIHBvcnQpCj4gKyAqCj4gKyAqIFJlc3VsdCA9IEhhc2goQnVm
ZmVyLCAzNikKPiArICovCj4gKyNkZWZpbmUgX1hFTl9ORVRJRl9DVFJMX0hBU0hfVFlQRV9JUFY2
X1RDUCAzCj4gKyNkZWZpbmUgWEVOX05FVElGX0NUUkxfSEFTSF9UWVBFX0lQVjZfVENQIFwKPiAr
ICAgICgxIDw8IF9YRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfSVBWNl9UQ1ApCj4gKwo+ICsvKgo+
ICsgKiBIYXNoIGFsZ29yaXRobXMKPiArICogPT09PT09PT09PT09PT09Cj4gKyAqLwo+ICsKPiAr
I2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9IQVNIX0FMR09SSVRITV9OT05FIDAKPiArCj4gKy8qCj4g
KyAqIFRvZXBsaXR6IGhhc2g6Cj4gKyAqLwo+ICsKPiArI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9I
QVNIX0FMR09SSVRITV9UT0VQTElUWiAxCj4gKwo+ICsvKgo+ICsgKiBUaGlzIGFsZ29yaXRobSB1
c2VzIGEgJ2tleScgYXMgd2VsbCBhcyB0aGUgZGF0YSBidWZmZXIgaXRzZWxmLgo+ICsgKiAoQnVm
ZmVyW10gYW5kIEtleVtdIGFyZSB0cmVhdGVkIGFzIHNoaWZ0LXJlZ2lzdGVycyB3aGVyZSB0aGUg
TVNCIG9mCj4gKyAqIEJ1ZmZlci9LZXlbMF0gaXMgY29uc2lkZXJlZCAnbGVmdC1tb3N0JyBhbmQg
dGhlIExTQiBvZiBCdWZmZXIvS2V5W04tMV0KPiArICogaXMgdGhlICdyaWdodC1tb3N0JykuCj4g
KyAqCj4gKyAqIFZhbHVlID0gMAo+ICsgKiBGb3IgbnVtYmVyIG9mIGJpdHMgaW4gQnVmZmVyW10K
PiArICogICAgSWYgKGxlZnQtbW9zdCBiaXQgb2YgQnVmZmVyW10gaXMgMSkKPiArICogICAgICAg
IFZhbHVlIF49IGxlZnQtbW9zdCAzMiBiaXRzIG9mIEtleVtdCj4gKyAqICAgIEtleVtdIDw8IDEK
PiArICogICAgQnVmZmVyW10gPDwgMQo+ICsgKgo+ICsgKiBUaGUgY29kZSBiZWxvdyBpcyBwcm92
aWRlZCBmb3IgY29udmVuaWVuY2Ugd2hlcmUgYW4gb3BlcmF0aW5nIHN5c3RlbQo+ICsgKiBkb2Vz
IG5vdCBhbHJlYWR5IHByb3ZpZGUgYW4gaW1wbGVtZW50YXRpb24uCj4gKyAqLwo+ICsjaWZkZWYg
WEVOX05FVElGX0RFRklORV9UT0VQTElUWgo+ICtzdGF0aWMgdWludDMyX3QgeGVuX25ldGlmX3Rv
ZXBsaXR6X2hhc2goY29uc3QgdWludDhfdCAqa2V5LAo+ICsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGtleWxlbiwKPiArICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwKPiArICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBidWZsZW4pCj4gK3sK
PiArICAgIHVuc2lnbmVkIGludCBrZXlpLCBidWZpOwo+ICsgICAgdWludDY0X3QgcHJlZml4ID0g
MDsKPiArICAgIHVpbnQ2NF90IGhhc2ggPSAwOwo+ICsKPiArICAgIC8qIFByZS1sb2FkIHByZWZp
eCB3aXRoIHRoZSBmaXJzdCA4IGJ5dGVzIG9mIHRoZSBrZXkgKi8KPiArICAgIGZvciAoa2V5aSA9
IDA7IGtleWkgPCA4OyBrZXlpKyspIHsKPiArICAgICAgICBwcmVmaXggPDw9IDg7Cj4gKyAgICAg
ICAgcHJlZml4IHw9IChrZXlpIDwga2V5bGVuKSA/IGtleVtrZXlpXSA6IDA7Cj4gKyAgICB9Cj4g
Kwo+ICsgICAgZm9yIChidWZpID0gMDsgYnVmaSA8IGJ1ZmxlbjsgYnVmaSsrKSB7Cj4gKyAgICAg
ICAgdWludDhfdCBieXRlID0gYnVmW2J1ZmldOwo+ICsgICAgICAgIHVuc2lnbmVkIGludCBiaXQ7
Cj4gKwo+ICsgICAgICAgIGZvciAoYml0ID0gMDsgYml0IDwgODsgYml0KyspIHsKPiArICAgICAg
ICAgICAgaWYgKGJ5dGUgJiAweDgwKQo+ICsgICAgICAgICAgICAgICAgaGFzaCBePSBwcmVmaXg7
Cj4gKyAgICAgICAgICAgIHByZWZpeCA8PD0gMTsKPiArICAgICAgICAgICAgYnl0ZSA8PD0xOwo+
ICsgICAgICAgIH0KPiArCj4gKyAgICAgICAgLyoKPiArICAgICAgICAgKiAncHJlZml4JyBoYXMg
bm93IGJlZW4gbGVmdC1zaGlmdGVkIGJ5IDgsIHNvCj4gKyAgICAgICAgICogT1IgaW4gdGhlIG5l
eHQgYnl0ZS4KPiArICAgICAgICAgKi8KPiArICAgICAgICBwcmVmaXggfD0gKGtleWkgPCBrZXls
ZW4pID8ga2V5W2tleWldIDogMDsKPiArICAgICAgICBrZXlpKys7Cj4gKyAgICB9Cj4gKwo+ICsg
ICAgLyogVGhlIHZhbGlkIHBhcnQgb2YgdGhlIGhhc2ggaXMgaW4gdGhlIHVwcGVyIDMyIGJpdHMu
ICovCj4gKyAgICByZXR1cm4gaGFzaCA+PiAzMjsKPiArfQo+ICsjZW5kaWYgLyogWEVOX05FVElG
X0RFRklORV9UT0VQTElUWiAqLwo+ICsKPiArLyoKPiArICogQ29udHJvbCByZXF1ZXN0cyAoc3Ry
dWN0IHhlbl9uZXRpZl9jdHJsX3JlcXVlc3QpCj4gKyAqID09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQo+ICsgKgo+ICsgKiBBbGwgcmVxdWVzdHMgaGF2ZSB0
aGUgZm9sbG93aW5nIGZvcm1hdDoKPiArICoKPiArICogICAgMCAgICAgMSAgICAgMiAgICAgMyAg
ICAgNCAgICAgNSAgICAgNiAgICAgNyAgb2N0ZXQKPiArICogKy0tLS0tKy0tLS0tKy0tLS0tKy0t
LS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwo+ICsgKiB8ICAgIGlkICAgICB8ICAgdHlwZSAg
ICB8ICAgICAgICAgZGF0YVswXSAgICAgICB8Cj4gKyAqICstLS0tLSstLS0tLSstLS0tLSstLS0t
LSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKPiArICogfCAgICAgICAgIGRhdGFbMV0gICAgICAg
fCAgICAgICAgIGRhdGFbMl0gICAgICAgfAo+ICsgKiArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqCj4gKyAqIGlkOiB0aGUgcmVxdWVzdCBpZGVu
dGlmaWVyLCBlY2hvZWQgaW4gcmVzcG9uc2UuCj4gKyAqIHR5cGU6IHRoZSB0eXBlIG9mIHJlcXVl
c3QgKHNlZSBiZWxvdykKPiArICogZGF0YVtdOiBhbnkgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhl
IHJlcXVlc3QgKGRldGVybWluZWQgYnkgdHlwZSkKPiArICovCj4gKwo+ICtzdHJ1Y3QgeGVuX25l
dGlmX2N0cmxfcmVxdWVzdCB7Cj4gKyAgICB1aW50MTZfdCBpZDsKPiArICAgIHVpbnQxNl90IHR5
cGU7Cj4gKwo+ICsjZGVmaW5lIFhFTl9ORVRJRl9DVFJMX1RZUEVfSU5WQUxJRCAgICAgICAgICAg
ICAgIDAKPiArI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9UWVBFX0dFVF9IQVNIX0ZMQUdTICAgICAg
ICAxCj4gKyNkZWZpbmUgWEVOX05FVElGX0NUUkxfVFlQRV9TRVRfSEFTSF9GTEFHUyAgICAgICAg
Mgo+ICsjZGVmaW5lIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfS0VZICAgICAgICAgIDMK
PiArI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9UWVBFX0dFVF9IQVNIX01BUFBJTkdfU0laRSA0Cj4g
KyNkZWZpbmUgWEVOX05FVElGX0NUUkxfVFlQRV9TRVRfSEFTSF9NQVBQSU5HX1NJWkUgNQo+ICsj
ZGVmaW5lIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfTUFQUElORyAgICAgIDYKPiArI2Rl
ZmluZSBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9IQVNIX0FMR09SSVRITSAgICA3Cj4gKwo+ICsg
ICAgdWludDMyX3QgZGF0YVszXTsKPiArfTsKPiArCj4gKy8qCj4gKyAqIENvbnRyb2wgcmVzcG9u
c2VzIChzdHJ1Y3QgeGVuX25ldGlmX2N0cmxfcmVzcG9uc2UpCj4gKyAqID09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4gKyAqCj4gKyAqIEFsbCByZXNw
b25zZXMgaGF2ZSB0aGUgZm9sbG93aW5nIGZvcm1hdDoKPiArICoKPiArICogICAgMCAgICAgMSAg
ICAgMiAgICAgMyAgICAgNCAgICAgNSAgICAgNiAgICAgNyAgb2N0ZXQKPiArICogKy0tLS0tKy0t
LS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwo+ICsgKiB8ICAgIGlkICAg
ICB8ICAgdHlwZSAgICB8ICAgICAgICAgc3RhdHVzICAgICAgICB8Cj4gKyAqICstLS0tLSstLS0t
LSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKPiArICogfCAgICAgICAgIGRh
dGEgICAgICAgICAgfAo+ICsgKiArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rCj4gKyAqCj4gKyAq
IGlkOiB0aGUgY29ycmVzcG9uZGluZyByZXF1ZXN0IGlkZW50aWZpZXIKPiArICogdHlwZTogdGhl
IHR5cGUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgcmVxdWVzdAo+ICsgKiBzdGF0dXM6IHRoZSBzdGF0
dXMgb2YgcmVxdWVzdCBwcm9jZXNzaW5nCj4gKyAqIGRhdGE6IGFueSBkYXRhIGFzc29jaWF0ZWQg
d2l0aCB0aGUgcmVzcG9uc2UgKGRldGVybWluZWQgYnkgdHlwZSBhbmQKPiArICogICAgICAgc3Rh
dHVzKQo+ICsgKi8KPiArCj4gK3N0cnVjdCB4ZW5fbmV0aWZfY3RybF9yZXNwb25zZSB7Cj4gKyAg
ICB1aW50MTZfdCBpZDsKPiArICAgIHVpbnQxNl90IHR5cGU7Cj4gKyAgICB1aW50MzJfdCBzdGF0
dXM7Cj4gKwo+ICsjZGVmaW5lIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19TVUNDRVNTICAgICAgICAg
ICAwCj4gKyNkZWZpbmUgWEVOX05FVElGX0NUUkxfU1RBVFVTX05PVF9TVVBQT1JURUQgICAgIDEK
PiArI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfSU5WQUxJRF9QQVJBTUVURVIgMgo+ICsj
ZGVmaW5lIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19CVUZGRVJfT1ZFUkZMT1cgICAzCj4gKwo+ICsg
ICAgdWludDMyX3QgZGF0YTsKPiArfTsKPiArCj4gKy8qCj4gKyAqIENvbnRyb2wgbWVzc2FnZXMK
PiArICogPT09PT09PT09PT09PT09PQo+ICsgKgo+ICsgKiBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NF
VF9IQVNIX0FMR09SSVRITQo+ICsgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQo+ICsgKgo+ICsgKiBUaGlzIGlzIHNlbnQgYnkgdGhlIGZyb250ZW5kIHRvIHNldCB0aGUg
ZGVzaXJlZCBoYXNoIGFsZ29yaXRobS4KPiArICoKPiArICogUmVxdWVzdDoKPiArICoKPiArICog
IHR5cGUgICAgPSBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9IQVNIX0FMR09SSVRITQo+ICsgKiAg
ZGF0YVswXSA9IGEgWEVOX05FVElGX0NUUkxfSEFTSF9BTEdPUklUSE1fKiB2YWx1ZQo+ICsgKiAg
ZGF0YVsxXSA9IDAKPiArICogIGRhdGFbMl0gPSAwCj4gKyAqCj4gKyAqIFJlc3BvbnNlOgo+ICsg
Kgo+ICsgKiAgc3RhdHVzID0gWEVOX05FVElGX0NUUkxfU1RBVFVTX05PVF9TVVBQT1JURUQgICAg
IC0gT3BlcmF0aW9uIG5vdAo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkCj4gKyAqICAgICAgICAgICBYRU5fTkVUSUZfQ1RS
TF9TVEFUVVNfSU5WQUxJRF9QQVJBTUVURVIgLSBUaGUgYWxnb3JpdGhtIGlzIG5vdAo+ICsgKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9y
dGVkCj4gKyAqICAgICAgICAgICBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfU1VDQ0VTUyAgICAgICAg
ICAgLSBPcGVyYXRpb24gc3VjY2Vzc2Z1bAo+ICsgKgo+ICsgKiBOT1RFOiBTZXR0aW5nIGRhdGFb
MF0gdG8gWEVOX05FVElGX0NUUkxfSEFTSF9BTEdPUklUSE1fTk9ORSBkaXNhYmxlcwo+ICsgKiAg
ICAgICBoYXNoaW5nIGFuZCB0aGUgYmFja2VuZCBpcyBmcmVlIHRvIGNob29zZSBob3cgaXQgc3Rl
ZXJzIHBhY2tldHMKPiArICogICAgICAgdG8gcXVldWVzICh3aGljaCBpcyB0aGUgZGVmYXVsdCBi
ZWhhdmlvdXIpLgo+ICsgKgo+ICsgKiBYRU5fTkVUSUZfQ1RSTF9UWVBFX0dFVF9IQVNIX0ZMQUdT
Cj4gKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoKPiArICogVGhp
cyBpcyBzZW50IGJ5IHRoZSBmcm9udGVuZCB0byBxdWVyeSB0aGUgdHlwZXMgb2YgaGFzaCBzdXBw
b3J0ZWQgYnkKPiArICogdGhlIGJhY2tlbmQuCj4gKyAqCj4gKyAqIFJlcXVlc3Q6Cj4gKyAqCj4g
KyAqICB0eXBlICAgID0gWEVOX05FVElGX0NUUkxfVFlQRV9HRVRfSEFTSF9GTEFHUwo+ICsgKiAg
ZGF0YVswXSA9IDAKPiArICogIGRhdGFbMV0gPSAwCj4gKyAqICBkYXRhWzJdID0gMAo+ICsgKgo+
ICsgKiBSZXNwb25zZToKPiArICoKPiArICogIHN0YXR1cyA9IFhFTl9ORVRJRl9DVFJMX1NUQVRV
U19OT1RfU1VQUE9SVEVEIC0gT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQKPiArICogICAgICAgICAg
IFhFTl9ORVRJRl9DVFJMX1NUQVRVU19TVUNDRVNTICAgICAgIC0gT3BlcmF0aW9uIHN1Y2Nlc3Nm
dWwKPiArICogIGRhdGEgICA9IHN1cHBvcnRlZCBoYXNoIHR5cGVzIChpZiBvcGVyYXRpb24gd2Fz
IHN1Y2Nlc3NmdWwpCj4gKyAqCj4gKyAqIE5PVEU6IEEgdmFsaWQgaGFzaCBhbGdvcml0aG0gbXVz
dCBiZSBzZWxlY3RlZCBiZWZvcmUgdGhpcyBvcGVyYXRpb24gY2FuCj4gKyAqICAgICAgIHN1Y2Nl
ZWQuCj4gKyAqCj4gKyAqIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfRkxBR1MKPiArICog
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsgKgo+ICsgKiBUaGlzIGlzIHNl
bnQgYnkgdGhlIGZyb250ZW5kIHRvIHNldCB0aGUgdHlwZXMgb2YgaGFzaCB0aGF0IHRoZSBiYWNr
ZW5kCj4gKyAqIHNob3VsZCBjYWxjdWxhdGUuIChTZWUgYWJvdmUgZm9yIGhhc2ggdHlwZSBkZWZp
bml0aW9ucykuCj4gKyAqIE5vdGUgdGhhdCB0aGUgJ21heGltYWwnIHR5cGUgb2YgaGFzaCBzaG91
bGQgYWx3YXlzIGJlIGNob3Nlbi4gRm9yCj4gKyAqIGV4YW1wbGUsIGlmIHRoZSBmcm9udGVuZCBz
ZXRzIGJvdGggSVBWNCBhbmQgSVBWNF9UQ1AgaGFzaCB0eXBlcyB0aGVuCj4gKyAqIHRoZSBsYXR0
ZXIgaGFzaCB0eXBlIHNob3VsZCBiZSBjYWxjdWxhdGVkIGZvciBhbnkgVENQIHBhY2tldCBhbmQg
dGhlCj4gKyAqIGZvcm1lciBvbmx5IGNhbGN1bGF0ZWQgZm9yIG5vbi1UQ1AgcGFja2V0cy4KPiAr
ICoKPiArICogUmVxdWVzdDoKPiArICoKPiArICogIHR5cGUgICAgPSBYRU5fTkVUSUZfQ1RSTF9U
WVBFX1NFVF9IQVNIX0ZMQUdTCj4gKyAqICBkYXRhWzBdID0gYml0d2lzZSBPUiBvZiBYRU5fTkVU
SUZfQ1RSTF9IQVNIX1RZUEVfKiB2YWx1ZXMKPiArICogIGRhdGFbMV0gPSAwCj4gKyAqICBkYXRh
WzJdID0gMAo+ICsgKgo+ICsgKiBSZXNwb25zZToKPiArICoKPiArICogIHN0YXR1cyA9IFhFTl9O
RVRJRl9DVFJMX1NUQVRVU19OT1RfU1VQUE9SVEVEICAgICAtIE9wZXJhdGlvbiBub3QKPiArICog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBv
cnRlZAo+ICsgKiAgICAgICAgICAgWEVOX05FVElGX0NUUkxfU1RBVFVTX0lOVkFMSURfUEFSQU1F
VEVSIC0gT25lIG9yIG1vcmUgZmxhZwo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgaXMgaW52YWxpZCBvcgo+ICsgKiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zdXBwb3J0ZWQK
PiArICogICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19TVUNDRVNTICAgICAgICAgICAt
IE9wZXJhdGlvbiBzdWNjZXNzZnVsCj4gKyAqICBkYXRhICAgPSAwCj4gKyAqCj4gKyAqIE5PVEU6
IEEgdmFsaWQgaGFzaCBhbGdvcml0aG0gbXVzdCBiZSBzZWxlY3RlZCBiZWZvcmUgdGhpcyBvcGVy
YXRpb24gY2FuCj4gKyAqICAgICAgIHN1Y2NlZWQuCj4gKyAqICAgICAgIEFsc28sIHNldHRpbmcg
ZGF0YVswXSB0byB6ZXJvIGRpc2FibGVzIGhhc2hpbmcgYW5kIHRoZSBiYWNrZW5kCj4gKyAqICAg
ICAgIGlzIGZyZWUgdG8gY2hvb3NlIGhvdyBpdCBzdGVlcnMgcGFja2V0cyB0byBxdWV1ZXMuCj4g
KyAqCj4gKyAqIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfS0VZCj4gKyAqIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gKyAqCj4gKyAqIFRoaXMgaXMgc2VudCBieSB0aGUg
ZnJvbnRlbmQgdG8gc2V0IHRoZSBrZXkgb2YgdGhlIGhhc2ggaWYgdGhlIGFsZ29yaXRobQo+ICsg
KiByZXF1aXJlcyBpdC4gKFNlZSBoYXNoIGFsZ29yaXRobXMgYWJvdmUpLgo+ICsgKgo+ICsgKiBS
ZXF1ZXN0Ogo+ICsgKgo+ICsgKiAgdHlwZSAgICA9IFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hB
U0hfS0VZCj4gKyAqICBkYXRhWzBdID0gZ3JhbnQgcmVmZXJlbmNlIG9mIHBhZ2UgY29udGFpbmlu
ZyB0aGUga2V5IChhc3N1bWVkIHRvCj4gKyAqICAgICAgICAgICAgc3RhcnQgYXQgYmVnaW5uaW5n
IG9mIGdyYW50KQo+ICsgKiAgZGF0YVsxXSA9IHNpemUgb2Yga2V5IGluIG9jdGV0cwo+ICsgKiAg
ZGF0YVsyXSA9IDAKPiArICoKPiArICogUmVzcG9uc2U6Cj4gKyAqCj4gKyAqICBzdGF0dXMgPSBY
RU5fTkVUSUZfQ1RSTF9TVEFUVVNfTk9UX1NVUFBPUlRFRCAgICAgLSBPcGVyYXRpb24gbm90Cj4g
KyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dXBwb3J0ZWQKPiArICogICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19JTlZBTElEX1BB
UkFNRVRFUiAtIEtleSBzaXplIGlzIGludmFsaWQKPiArICogICAgICAgICAgIFhFTl9ORVRJRl9D
VFJMX1NUQVRVU19CVUZGRVJfT1ZFUkZMT1cgICAtIEtleSBzaXplIGlzIGxhcmdlcgo+ICsgKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhbiB0
aGUgYmFja2VuZAo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3VwcG9ydHMKPiArICogICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1NUQVRV
U19TVUNDRVNTICAgICAgICAgICAtIE9wZXJhdGlvbiBzdWNjZXNzZnVsCj4gKyAqICBkYXRhICAg
PSAwCj4gKyAqCj4gKyAqIE5PVEU6IEFueSBrZXkgb2N0ZXRzIG5vdCBzcGVjaWZpZWQgYXJlIGFz
c3VtZWQgdG8gYmUgemVybyAodGhlIGtleQo+ICsgKiAgICAgICBpcyBhc3N1bWVkIHRvIGJlIGVt
cHR5IGJ5IGRlZmF1bHQpIGFuZCBzcGVjaWZ5aW5nIGEgbmV3IGtleQo+ICsgKiAgICAgICBpbnZh
bGlkYXRlcyBhbnkgcHJldmlvdXMga2V5LCBoZW5jZSBzcGVjaWZ5aW5nIGEga2V5IHNpemUgb2YK
PiArICogICAgICAgemVybyB3aWxsIGNsZWFyIHRoZSBrZXkgKHdoaWNoIGVuc3VyZXMgdGhhdCB0
aGUgY2FsY3VsYXRlZCBoYXNoCj4gKyAqICAgICAgIHdpbGwgYWx3YXlzIGJlIHplcm8pLgo+ICsg
KiAgICAgICBUaGUgbWF4aW11bSBzaXplIG9mIGtleSBpcyBhbGdvcml0aG0gYW5kIGJhY2tlbmQg
c3BlY2lmaWMsIGJ1dAo+ICsgKiAgICAgICBpcyBhbHNvIGxpbWl0ZWQgYnkgdGhlIHNpbmdsZSBn
cmFudCByZWZlcmVuY2UuCj4gKyAqICAgICAgIFRoZSBncmFudCByZWZlcmVuY2UgbWF5IGJlIHJl
YWQtb25seSBhbmQgbXVzdCByZW1haW4gdmFsaWQgdW50aWwKPiArICogICAgICAgdGhlIHJlc3Bv
bnNlIGhhcyBiZWVuIHByb2Nlc3NlZC4KPiArICoKPiArICogWEVOX05FVElGX0NUUkxfVFlQRV9H
RVRfSEFTSF9NQVBQSU5HX1NJWkUKPiArICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KPiArICoKPiArICogVGhpcyBpcyBzZW50IGJ5IHRoZSBmcm9udGVuZCB0byBx
dWVyeSB0aGUgbWF4aW11bSBzaXplIG9mIG1hcHBpbmcKPiArICogdGFibGUgc3VwcG9ydGVkIGJ5
IHRoZSBiYWNrZW5kLiBUaGUgc2l6ZSBpcyBzcGVjaWZpZWQgaW4gdGVybXMgb2YKPiArICogdGFi
bGUgZW50cmllcy4KPiArICoKPiArICogUmVxdWVzdDoKPiArICoKPiArICogIHR5cGUgICAgPSBY
RU5fTkVUSUZfQ1RSTF9UWVBFX0dFVF9IQVNIX01BUFBJTkdfU0laRQo+ICsgKiAgZGF0YVswXSA9
IDAKPiArICogIGRhdGFbMV0gPSAwCj4gKyAqICBkYXRhWzJdID0gMAo+ICsgKgo+ICsgKiBSZXNw
b25zZToKPiArICoKPiArICogIHN0YXR1cyA9IFhFTl9ORVRJRl9DVFJMX1NUQVRVU19OT1RfU1VQ
UE9SVEVEIC0gT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQKPiArICogICAgICAgICAgIFhFTl9ORVRJ
Rl9DVFJMX1NUQVRVU19TVUNDRVNTICAgICAgIC0gT3BlcmF0aW9uIHN1Y2Nlc3NmdWwKPiArICog
IGRhdGEgICA9IG1heGltdW0gbnVtYmVyIG9mIGVudHJpZXMgYWxsb3dlZCBpbiB0aGUgbWFwcGlu
ZyB0YWJsZQo+ICsgKiAgICAgICAgICAgKGlmIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bCkgb3Ig
emVybyBpZiBhIG1hcHBpbmcgdGFibGUgaXMKPiArICogICAgICAgICAgIG5vdCBzdXBwb3J0ZWQg
KGkuZS4gaGFzaCBtYXBwaW5nIGlzIGRvbmUgb25seSBieSBtb2R1bGFyCj4gKyAqICAgICAgICAg
ICBhcml0aG1ldGljKS4KPiArICoKPiArICogWEVOX05FVElGX0NUUkxfVFlQRV9TRVRfSEFTSF9N
QVBQSU5HX1NJWkUKPiArICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+
ICsgKgo+ICsgKiBUaGlzIGlzIHNlbnQgYnkgdGhlIGZyb250ZW5kIHRvIHNldCB0aGUgYWN0dWFs
IHNpemUgb2YgdGhlIG1hcHBpbmcKPiArICogdGFibGUgdG8gYmUgdXNlZCBieSB0aGUgYmFja2Vu
ZC4gVGhlIHNpemUgaXMgc3BlY2lmaWVkIGluIHRlcm1zIG9mCj4gKyAqIHRhYmxlIGVudHJpZXMu
Cj4gKyAqIEFueSBwcmV2aW91cyB0YWJsZSBpcyBpbnZhbGlkYXRlZCBieSB0aGlzIG1lc3NhZ2Ug
YW5kIGFueSBuZXcgdGFibGUKPiArICogaXMgYXNzdW1lZCB0byBiZSB6ZXJvIGZpbGxlZC4KPiAr
ICoKPiArICogUmVxdWVzdDoKPiArICoKPiArICogIHR5cGUgICAgPSBYRU5fTkVUSUZfQ1RSTF9U
WVBFX1NFVF9IQVNIX01BUFBJTkdfU0laRQo+ICsgKiAgZGF0YVswXSA9IG51bWJlciBvZiBlbnRy
aWVzIGluIG1hcHBpbmcgdGFibGUKPiArICogIGRhdGFbMV0gPSAwCj4gKyAqICBkYXRhWzJdID0g
MAo+ICsgKgo+ICsgKiBSZXNwb25zZToKPiArICoKPiArICogIHN0YXR1cyA9IFhFTl9ORVRJRl9D
VFJMX1NUQVRVU19OT1RfU1VQUE9SVEVEICAgICAtIE9wZXJhdGlvbiBub3QKPiArICogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZAo+
ICsgKiAgICAgICAgICAgWEVOX05FVElGX0NUUkxfU1RBVFVTX0lOVkFMSURfUEFSQU1FVEVSIC0g
VGFibGUgc2l6ZSBpcyBpbnZhbGlkCj4gKyAqICAgICAgICAgICBYRU5fTkVUSUZfQ1RSTF9TVEFU
VVNfU1VDQ0VTUyAgICAgICAgICAgLSBPcGVyYXRpb24gc3VjY2Vzc2Z1bAo+ICsgKiAgZGF0YSAg
ID0gMAo+ICsgKgo+ICsgKiBOT1RFOiBTZXR0aW5nIGRhdGFbMF0gdG8gMCBtZWFucyB0aGF0IGhh
c2ggbWFwcGluZyBzaG91bGQgYmUgZG9uZQo+ICsgKiAgICAgICB1c2luZyBtb2R1bGFyIGFyaXRo
bWV0aWMuCj4gKyAqCj4gKyAqIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfTUFQUElORwo+
ICsgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoKPiArICogVGhp
cyBpcyBzZW50IGJ5IHRoZSBmcm9udGVuZCB0byBzZXQgdGhlIGNvbnRlbnQgb2YgdGhlIHRhYmxl
IG1hcHBpbmcKPiArICogaGFzaCB2YWx1ZSB0byBxdWV1ZSBudW1iZXIuIFRoZSBiYWNrZW5kIHNo
b3VsZCBjYWxjdWxhdGUgdGhlIGhhc2ggZnJvbQo+ICsgKiB0aGUgcGFja2V0IGhlYWRlciwgdXNl
IGl0IGFzIGFuIGluZGV4IGludG8gdGhlIHRhYmxlIChtb2R1bG8gdGhlIHNpemUKPiArICogb2Yg
dGhlIHRhYmxlKSBhbmQgdGhlbiBzdGVlciB0aGUgcGFja2V0IHRvIHRoZSBxdWV1ZSBudW1iZXIg
Zm91bmQgYXQKPiArICogdGhhdCBpbmRleC4KPiArICoKPiArICogUmVxdWVzdDoKPiArICoKPiAr
ICogIHR5cGUgICAgPSBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9IQVNIX01BUFBJTkcKPiArICog
IGRhdGFbMF0gPSBncmFudCByZWZlcmVuY2Ugb2YgcGFnZSBjb250YWluaW5nIHRoZSBtYXBwaW5n
IChzdWItKXRhYmxlCj4gKyAqICAgICAgICAgICAgKGFzc3VtZWQgdG8gc3RhcnQgYXQgYmVnaW5u
aW5nIG9mIGdyYW50KQo+ICsgKiAgZGF0YVsxXSA9IHNpemUgb2YgKHN1Yi0pdGFibGUgaW4gZW50
cmllcwo+ICsgKiAgZGF0YVsyXSA9IG9mZnNldCwgaW4gZW50cmllcywgb2Ygc3ViLXRhYmxlIHdp
dGhpbiBvdmVyYWxsIHRhYmxlCj4gKyAqCj4gKyAqIFJlc3BvbnNlOgo+ICsgKgo+ICsgKiAgc3Rh
dHVzID0gWEVOX05FVElGX0NUUkxfU1RBVFVTX05PVF9TVVBQT1JURUQgICAgIC0gT3BlcmF0aW9u
IG5vdAo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3VwcG9ydGVkCj4gKyAqICAgICAgICAgICBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfSU5W
QUxJRF9QQVJBTUVURVIgLSBUYWJsZSBzaXplIG9yIGNvbnRlbnQKPiArICogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzIGludmFsaWQKPiArICog
ICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19CVUZGRVJfT1ZFUkZMT1cgICAtIFRhYmxl
IHNpemUgaXMgbGFyZ2VyCj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aGFuIHRoZSBiYWNrZW5kCj4gKyAqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0cwo+ICsgKiAgICAgICAg
ICAgWEVOX05FVElGX0NUUkxfU1RBVFVTX1NVQ0NFU1MgICAgICAgICAgIC0gT3BlcmF0aW9uIHN1
Y2Nlc3NmdWwKPiArICogIGRhdGEgICA9IDAKPiArICoKPiArICogTk9URTogVGhlIG92ZXJhbGwg
dGFibGUgaGFzIHRoZSBmb2xsb3dpbmcgZm9ybWF0Ogo+ICsgKgo+ICsgKiAgICAgICAgICAwICAg
ICAxICAgICAyICAgICAzICAgICA0ICAgICA1ICAgICA2ICAgICA3ICBvY3RldAo+ICsgKiAgICAg
ICArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rCj4gKyAq
ICAgICAgIHwgICAgICAgbWFwcGluZ1swXSAgICAgIHwgICAgICAgbWFwcGluZ1sxXSAgICAgIHwK
PiArICogICAgICAgKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0t
LS0tKwo+ICsgKiAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAuICAgICAgICAgICAgICAg
ICAgICAgICB8Cj4gKyAqICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIC4gICAgICAgICAg
ICAgICAgICAgICAgIHwKPiArICogICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgLiAgICAg
ICAgICAgICAgICAgICAgICAgfAo+ICsgKiAgICAgICArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0r
LS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rCj4gKyAqICAgICAgIHwgICAgICBtYXBwaW5nW04tMl0g
ICAgIHwgICAgICBtYXBwaW5nW04tMV0gICAgIHwKPiArICogICAgICAgKy0tLS0tKy0tLS0tKy0t
LS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwo+ICsgKgo+ICsgKiAgICAgICB3aGVy
ZSBOIGlzIHNwZWNpZmllZCBieSBhIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfTUFQUElO
R19TSVpFCj4gKyAqICAgICAgIG1lc3NhZ2UgYW5kIGVhY2ggIG1hcHBpbmcgbXVzdCBzcGVjaWZp
ZXMgYSBxdWV1ZSBiZXR3ZWVuIDAgYW5kCj4gKyAqICAgICAgICJtdWx0aS1xdWV1ZS1udW0tcXVl
dWVzIiAoc2VlIGFib3ZlKS4KPiArICogICAgICAgVGhlIGJhY2tlbmQgbWF5IHN1cHBvcnQgYSBt
YXBwaW5nIHRhYmxlIGxhcmdlciB0aGFuIGNhbiBiZQo+ICsgKiAgICAgICBtYXBwZWQgYnkgYSBz
aW5nbGUgZ3JhbnQgcmVmZXJlbmNlLiBUaHVzIHN1Yi10YWJsZXMgd2l0aGluIGEKPiArICogICAg
ICAgbGFyZ2VyIHRhYmxlIGNhbiBiZSBpbmRpdmlkdWFsbHkgc2V0IGJ5IHNlbmRpbmcgbXVsdGlw
bGUgbWVzc2FnZXMKPiArICogICAgICAgd2l0aCBkaWZmZXJpbmcgb2Zmc2V0IHZhbHVlcy4gU3Bl
Y2lmeWluZyBhIG5ldyBzdWItdGFibGUgZG9lcyBub3QKPiArICogICAgICAgaW52YWxpZGF0ZSBh
bnkgdGFibGUgZGF0YSBvdXRzaWRlIHRoYXQgcmFuZ2UuCj4gKyAqICAgICAgIFRoZSBncmFudCBy
ZWZlcmVuY2UgbWF5IGJlIHJlYWQtb25seSBhbmQgbXVzdCByZW1haW4gdmFsaWQgdW50aWwKPiAr
ICogICAgICAgdGhlIHJlc3BvbnNlIGhhcyBiZWVuIHByb2Nlc3NlZC4KPiArICovCj4gKwo+ICtE
RUZJTkVfUklOR19UWVBFUyh4ZW5fbmV0aWZfY3RybCwKPiArICAgICAgICAgICAgICAgICAgc3Ry
dWN0IHhlbl9uZXRpZl9jdHJsX3JlcXVlc3QsCj4gKyAgICAgICAgICAgICAgICAgIHN0cnVjdCB4
ZW5fbmV0aWZfY3RybF9yZXNwb25zZSk7Cj4gKwo+ICsvKgo+ICsgKiBHdWVzdCB0cmFuc21pdAo+
ICsgKiA9PT09PT09PT09PT09PQo+ICsgKgo+ICsgKiBUaGlzIGlzIHRoZSAnd2lyZScgZm9ybWF0
IGZvciB0cmFuc21pdCAoZnJvbnRlbmQgLT4gYmFja2VuZCkgcGFja2V0czoKPiArICoKPiArICog
IEZyYWdtZW50IDE6IG5ldGlmX3R4X3JlcXVlc3RfdCAgLSBmbGFncyA9IE5FVFRYRl8qCj4gKyAq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IHRvdGFsIHBhY2tldCBz
aXplCj4gKyAqIFtFeHRyYSAxOiBuZXRpZl9leHRyYV9pbmZvX3RdICAgIC0gKG9ubHkgaWYgZnJh
Z21lbnQgMSBmbGFncyBpbmNsdWRlCj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE5FVFRYRl9leHRyYV9pbmZvKQo+ICsgKiAgLi4uCj4gKyAqIFtFeHRyYSBOOiBuZXRp
Zl9leHRyYV9pbmZvX3RdICAgIC0gKG9ubHkgaWYgZXh0cmEgTi0xIGZsYWdzIGluY2x1ZGUKPiAr
ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX05FVElGX0VYVFJBX01P
UkUpCj4gKyAqICAuLi4KPiArICogIEZyYWdtZW50IE46IG5ldGlmX3R4X3JlcXVlc3RfdCAgLSAo
b25seSBpZiBmcmFnbWVudCBOLTEgZmxhZ3MgaW5jbHVkZQo+ICsgKiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBORVRUWEZfbW9yZV9kYXRhIC0gZmxhZ3Mgb24gcHJlY2VkaW5n
Cj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhcyBhcmUgbm90
IHJlbGV2YW50IGhlcmUpCj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmxhZ3MgPSAwCj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSA9
IGZyYWdtZW50IHNpemUKPiArICoKPiArICogTk9URToKPiArICoKPiArICogVGhpcyBmb3JtYXQg
c2xpZ2h0bHkgaXMgZGlmZmVyZW50IGZyb20gdGhhdCB1c2VkIGZvciByZWNlaXZlCj4gKyAqIChi
YWNrZW5kIC0+IGZyb250ZW5kKSBwYWNrZXRzLiBTcGVjaWZpY2FsbHksIGluIGEgbXVsdGktZnJh
Z21lbnQKPiArICogcGFja2V0IHRoZSBhY3R1YWwgc2l6ZSBvZiBmcmFnbWVudCAxIGNhbiBvbmx5
IGJlIGRldGVybWluZWQgYnkKPiArICogc3VidHJhY3RpbmcgdGhlIHNpemVzIG9mIGZyYWdtZW50
cyAyLi5OIGZyb20gdGhlIHRvdGFsIHBhY2tldCBzaXplLgo+ICsgKgo+ICsgKiBSaW5nIHNsb3Qg
c2l6ZSBpcyAxMiBvY3RldHMsIGhvd2V2ZXIgbm90IGFsbCByZXF1ZXN0L3Jlc3BvbnNlCj4gKyAq
IHN0cnVjdHMgdXNlIHRoZSBmdWxsIHNpemUuCj4gKyAqCj4gKyAqIHR4IHJlcXVlc3QgZGF0YSAo
bmV0aWZfdHhfcmVxdWVzdF90KQo+ICsgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KPiArICoKPiArICogICAgMCAgICAgMSAgICAgMiAgICAgMyAgICAgNCAgICAgNSAgICAg
NiAgICAgNyAgb2N0ZXQKPiArICogKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0t
Ky0tLS0tKy0tLS0tKwo+ICsgKiB8IGdyYW50IHJlZiAgICAgICAgICAgICB8IG9mZnNldCAgICB8
IGZsYWdzICAgICB8Cj4gKyAqICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSst
LS0tLSstLS0tLSsKPiArICogfCBpZCAgICAgICAgfCBzaXplICAgICAgfAo+ICsgKiArLS0tLS0r
LS0tLS0rLS0tLS0rLS0tLS0rCj4gKyAqCj4gKyAqIGdyYW50IHJlZjogUmVmZXJlbmNlIHRvIGJ1
ZmZlciBwYWdlLgo+ICsgKiBvZmZzZXQ6IE9mZnNldCB3aXRoaW4gYnVmZmVyIHBhZ2UuCj4gKyAq
IGZsYWdzOiBORVRUWEZfKi4KPiArICogaWQ6IHJlcXVlc3QgaWRlbnRpZmllciwgZWNob2VkIGlu
IHJlc3BvbnNlLgo+ICsgKiBzaXplOiBwYWNrZXQgc2l6ZSBpbiBieXRlcy4KPiArICoKPiArICog
dHggcmVzcG9uc2UgKG5ldGlmX3R4X3Jlc3BvbnNlX3QpCj4gKyAqIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQo+ICsgKgo+ICsgKiAgICAwICAgICAxICAgICAyICAgICAzICAgICA0
ICAgICA1ICAgICA2ICAgICA3ICBvY3RldAo+ICsgKiArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0r
LS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rCj4gKyAqIHwgaWQgICAgICAgIHwgc3RhdHVzICAgIHwg
dW51c2VkICAgICAgICAgICAgICAgIHwKPiArICogKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0t
LS0tKy0tLS0tKy0tLS0tKy0tLS0tKwo+ICsgKiB8IHVudXNlZCAgICAgICAgICAgICAgICB8Cj4g
KyAqICstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKPiArICoKPiArICogaWQ6IHJlZmxlY3RzIGlk
IGluIHRyYW5zbWl0IHJlcXVlc3QKPiArICogc3RhdHVzOiBORVRJRl9SU1BfKgo+ICsgKgo+ICsg
KiBHdWVzdCByZWNlaXZlCj4gKyAqID09PT09PT09PT09PT0KPiArICoKPiArICogVGhpcyBpcyB0
aGUgJ3dpcmUnIGZvcm1hdCBmb3IgcmVjZWl2ZSAoYmFja2VuZCAtPiBmcm9udGVuZCkgcGFja2V0
czoKPiArICoKPiArICogIEZyYWdtZW50IDE6IG5ldGlmX3J4X3JlcXVlc3RfdCAgLSBmbGFncyA9
IE5FVFJYRl8qCj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSA9
IGZyYWdtZW50IHNpemUKPiArICogW0V4dHJhIDE6IG5ldGlmX2V4dHJhX2luZm9fdF0gICAgLSAo
b25seSBpZiBmcmFnbWVudCAxIGZsYWdzIGluY2x1ZGUKPiArICogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTkVUUlhGX2V4dHJhX2luZm8pCj4gKyAqICAuLi4KPiArICogW0V4
dHJhIE46IG5ldGlmX2V4dHJhX2luZm9fdF0gICAgLSAob25seSBpZiBleHRyYSBOLTEgZmxhZ3Mg
aW5jbHVkZQo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5fTkVU
SUZfRVhUUkFfTU9SRSkKPiAgICogIC4uLgo+IC0gKiAgUmVxdWVzdCBOOiBuZXRpZl90eF9yZXF1
ZXN0IC0tIDAKPiArICogIEZyYWdtZW50IE46IG5ldGlmX3J4X3JlcXVlc3RfdCAgLSAob25seSBp
ZiBmcmFnbWVudCBOLTEgZmxhZ3MgaW5jbHVkZQo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBORVRSWEZfbW9yZV9kYXRhIC0gZmxhZ3Mgb24gcHJlY2VkaW5nCj4gKyAq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhcyBhcmUgbm90IHJlbGV2
YW50IGhlcmUpCj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3Mg
PSAwCj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IGZyYWdt
ZW50IHNpemUKPiArICoKPiArICogTk9URToKPiArICoKPiArICogVGhpcyBmb3JtYXQgc2xpZ2h0
bHkgaXMgZGlmZmVyZW50IGZyb20gdGhhdCB1c2VkIGZvciB0cmFuc21pdAo+ICsgKiAoZnJvbnRl
bmQgLT4gYmFja2VuZCkgcGFja2V0cy4gU3BlY2lmaWNhbGx5LCBpbiBhIG11bHRpLWZyYWdtZW50
Cj4gKyAqIHBhY2tldCB0aGUgc2l6ZSBvZiB0aGUgcGFja2V0IGNhbiBvbmx5IGJlIGRldGVybWlu
ZWQgYnkgc3VtbWluZyB0aGUKPiArICogc2l6ZXMgb2YgZnJhZ21lbnRzIDEuLk4uCj4gKyAqCj4g
KyAqIFJpbmcgc2xvdCBzaXplIGlzIDggb2N0ZXRzLgo+ICsgKgo+ICsgKiByeCByZXF1ZXN0IChu
ZXRpZl9yeF9yZXF1ZXN0X3QpCj4gKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
PiArICoKPiArICogICAgMCAgICAgMSAgICAgMiAgICAgMyAgICAgNCAgICAgNSAgICAgNiAgICAg
NyAgb2N0ZXQKPiArICogKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0t
Ky0tLS0tKwo+ICsgKiB8IGlkICAgICAgICB8IHBhZCAgICAgICB8IGdyZWYgICAgICAgICAgICAg
ICAgICB8Cj4gKyAqICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSst
LS0tLSsKPiArICoKPiArICogaWQ6IHJlcXVlc3QgaWRlbnRpZmllciwgZWNob2VkIGluIHJlc3Bv
bnNlLgo+ICsgKiBncmVmOiByZWZlcmVuY2UgdG8gaW5jb21pbmcgZ3JhbnRlZCBmcmFtZS4KPiAr
ICoKPiArICogcnggcmVzcG9uc2UgKG5ldGlmX3J4X3Jlc3BvbnNlX3QpCj4gKyAqIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsgKgo+ICsgKiAgICAwICAgICAxICAgICAyICAg
ICAzICAgICA0ICAgICA1ICAgICA2ICAgICA3ICBvY3RldAo+ICsgKiArLS0tLS0rLS0tLS0rLS0t
LS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rCj4gKyAqIHwgaWQgICAgICAgIHwgb2Zm
c2V0ICAgIHwgZmxhZ3MgICAgIHwgc3RhdHVzICAgIHwKPiArICogKy0tLS0tKy0tLS0tKy0tLS0t
Ky0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwo+ICsgKgo+ICsgKiBpZDogcmVmbGVjdHMg
aWQgaW4gcmVjZWl2ZSByZXF1ZXN0Cj4gKyAqIG9mZnNldDogb2Zmc2V0IGluIHBhZ2Ugb2Ygc3Rh
cnQgb2YgcmVjZWl2ZWQgcGFja2V0Cj4gKyAqIGZsYWdzOiBORVRSWEZfKgo+ICsgKiBzdGF0dXM6
IC12ZTogTkVUSUZfUlNQXyo7ICt2ZTogUngnZWQgcGt0IHNpemUuCj4gKyAqCj4gKyAqIE5PVEU6
IEhpc3RvcmljYWxseSwgdG8gc3VwcG9ydCBHU08gb24gdGhlIGZyb250ZW5kIHJlY2VpdmUgc2lk
ZSwgTGludXgKPiArICogICAgICAgbmV0ZnJvbnQgZG9lcyBub3QgbWFrZSB1c2Ugb2YgdGhlIHJ4
IHJlc3BvbnNlIGlkIChiZWNhdXNlLCBhcwo+ICsgKiAgICAgICBkZXNjcmliZWQgYmVsb3csIGV4
dHJhIGluZm8gc3RydWN0dXJlcyBvdmVybGF5IHRoZSBpZCBmaWVsZCkuCj4gKyAqICAgICAgIElu
c3RlYWQgaXQgYXNzdW1lcyB0aGF0IHJlc3BvbnNlcyBhbHdheXMgYXBwZWFyIGluIHRoZSBzYW1l
IHJpbmcKPiArICogICAgICAgc2xvdCBhcyB0aGVpciBjb3JyZXNwb25kaW5nIHJlcXVlc3QuIFRo
dXMsIHRvIG1haW50YWluCj4gKyAqICAgICAgIGNvbXBhdGliaWxpdHksIGJhY2tlbmRzIG11c3Qg
bWFrZSBzdXJlIHRoaXMgaXMgdGhlIGNhc2UuCj4gKyAqCj4gKyAqIEV4dHJhIEluZm8KPiArICog
PT09PT09PT09PQo+ICsgKgo+ICsgKiBDYW4gYmUgcHJlc2VudCBpZiBpbml0aWFsIHJlcXVlc3Qg
b3IgcmVzcG9uc2UgaGFzIE5FVHtULFJ9WEZfZXh0cmFfaW5mbywKPiArICogb3IgcHJldmlvdXMg
ZXh0cmEgcmVxdWVzdCBoYXMgWEVOX05FVElGX0VYVFJBX01PUkUuCj4gKyAqCj4gKyAqIFRoZSBz
dHJ1Y3QgdGhlcmVmb3JlIG5lZWRzIHRvIGZpdCBpbnRvIGVpdGhlciBhIHR4IG9yIHJ4IHNsb3Qg
YW5kCj4gKyAqIGlzIHRoZXJlZm9yZSBsaW1pdGVkIHRvIDggb2N0ZXRzLgo+ICsgKgo+ICsgKiBO
T1RFOiBCZWNhdXNlIGV4dHJhIGluZm8gZGF0YSBvdmVybGF5cyB0aGUgdXN1YWwgcmVxdWVzdC9y
ZXNwb25zZQo+ICsgKiAgICAgICBzdHJ1Y3R1cmVzLCB0aGVyZSBpcyBubyBpZCBpbmZvcm1hdGlv
biBpbiB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uLgo+ICsgKiAgICAgICBTbywgaWYgYW4gZXh0cmEg
aW5mbyBvdmVybGF5cyBhbiByeCByZXNwb25zZSB0aGUgZnJvbnRlbmQgY2FuCj4gKyAqICAgICAg
IGFzc3VtZSB0aGF0IGl0IGlzIGluIHRoZSBzYW1lIHJpbmcgc2xvdCBhcyB0aGUgcmVxdWVzdCB0
aGF0IHdhcwo+ICsgKiAgICAgICBjb25zdW1lZCB0byBtYWtlIHRoZSBzbG90IGF2YWlsYWJsZSwg
YW5kIHRoZSBiYWNrZW5kIG11c3QgZW5zdXJlCj4gKyAqICAgICAgIHRoaXMgYXNzdW1wdGlvbiBp
cyB0cnVlLgo+ICsgKgo+ICsgKiBleHRyYSBpbmZvIChuZXRpZl9leHRyYV9pbmZvX3QpCj4gKyAq
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoKPiArICogR2VuZXJhbCBmb3Jt
YXQ6Cj4gKyAqCj4gKyAqICAgIDAgICAgIDEgICAgIDIgICAgIDMgICAgIDQgICAgIDUgICAgIDYg
ICAgIDcgIG9jdGV0Cj4gKyAqICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSst
LS0tLSstLS0tLSsKPiArICogfHR5cGUgfGZsYWdzfCB0eXBlIHNwZWNpZmljIGRhdGEgICAgICAg
ICAgICAgICAgfAo+ICsgKiArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0t
LS0rLS0tLS0rCj4gKyAqIHwgcGFkZGluZyBmb3IgdHggICAgICAgIHwKPiArICogKy0tLS0tKy0t
LS0tKy0tLS0tKy0tLS0tKwo+ICsgKgo+ICsgKiB0eXBlOiBYRU5fTkVUSUZfRVhUUkFfVFlQRV8q
Cj4gKyAqIGZsYWdzOiBYRU5fTkVUSUZfRVhUUkFfRkxBR18qCj4gKyAqIHBhZGRpbmcgZm9yIHR4
OiBwcmVzZW50IG9ubHkgaW4gdGhlIHR4IGNhc2UgZHVlIHRvIDggb2N0ZXQgbGltaXQKPiArICog
ICAgICAgICAgICAgICAgIGZyb20gcnggY2FzZS4gTm90IHNob3duIGluIHR5cGUgc3BlY2lmaWMg
ZW50cmllcwo+ICsgKiAgICAgICAgICAgICAgICAgYmVsb3cuCj4gKyAqCj4gKyAqIFhFTl9ORVRJ
Rl9FWFRSQV9UWVBFX0dTTzoKPiArICoKPiArICogICAgMCAgICAgMSAgICAgMiAgICAgMyAgICAg
NCAgICAgNSAgICAgNiAgICAgNyAgb2N0ZXQKPiArICogKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0t
Ky0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwo+ICsgKiB8dHlwZSB8ZmxhZ3N8IHNpemUgICAgICB8
dHlwZSB8IHBhZCB8IGZlYXR1cmVzICB8Cj4gKyAqICstLS0tLSstLS0tLSstLS0tLSstLS0tLSst
LS0tLSstLS0tLSstLS0tLSstLS0tLSsKPiArICoKPiArICogdHlwZTogTXVzdCBiZSBYRU5fTkVU
SUZfRVhUUkFfVFlQRV9HU08KPiArICogZmxhZ3M6IFhFTl9ORVRJRl9FWFRSQV9GTEFHXyoKPiAr
ICogc2l6ZTogTWF4aW11bSBwYXlsb2FkIHNpemUgb2YgZWFjaCBzZWdtZW50LiBGb3IgZXhhbXBs
ZSwKPiArICogICAgICAgZm9yIFRDUCB0aGlzIGlzIGp1c3QgdGhlIHBhdGggTVNTLgo+ICsgKiB0
eXBlOiBYRU5fTkVUSUZfR1NPX1RZUEVfKjogVGhpcyBkZXRlcm1pbmVzIHRoZSBwcm90b2NvbCBv
Zgo+ICsgKiAgICAgICB0aGUgcGFja2V0IGFuZCBhbnkgZXh0cmEgZmVhdHVyZXMgcmVxdWlyZWQg
dG8gc2VnbWVudCB0aGUKPiArICogICAgICAgcGFja2V0IHByb3Blcmx5Lgo+ICsgKiBmZWF0dXJl
czogRU5fTkVUSUZfR1NPX0ZFQVRfKjogVGhpcyBzcGVjaWZpZXMgYW55IGV4dHJhIEdTTwo+ICsg
KiAgICAgICAgICAgZmVhdHVyZXMgcmVxdWlyZWQgdG8gcHJvY2VzcyB0aGlzIHBhY2tldCwgc3Vj
aCBhcyBFQ04KPiArICogICAgICAgICAgIHN1cHBvcnQgZm9yIFRDUHY0Lgo+ICsgKgo+ICsgKiBY
RU5fTkVUSUZfRVhUUkFfVFlQRV9NQ0FTVF97QURELERFTH06Cj4gKyAqCj4gKyAqICAgIDAgICAg
IDEgICAgIDIgICAgIDMgICAgIDQgICAgIDUgICAgIDYgICAgIDcgIG9jdGV0Cj4gKyAqICstLS0t
LSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKPiArICogfHR5cGUg
fGZsYWdzfCBhZGRyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+ICsgKiArLS0tLS0r
LS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rCj4gKyAqCj4gKyAqIHR5
cGU6IE11c3QgYmUgWEVOX05FVElGX0VYVFJBX1RZUEVfTUNBU1Rfe0FERCxERUx9Cj4gKyAqIGZs
YWdzOiBYRU5fTkVUSUZfRVhUUkFfRkxBR18qCj4gKyAqIGFkZHI6IGFkZHJlc3MgdG8gYWRkL3Jl
bW92ZQo+ICsgKgo+ICsgKiBYRU5fTkVUSUZfRVhUUkFfVFlQRV9IQVNIOgo+ICsgKgo+ICsgKiBB
IGJhY2tlbmQgdGhhdCBzdXBwb3J0cyB0ZW9wbGl0eiBoYXNoaW5nIGlzIGFzc3VtZWQgdG8gYWNj
ZXB0Cj4gKyAqIHRoaXMgdHlwZSBvZiBleHRyYSBpbmZvIGluIHRyYW5zbWl0IHBhY2tldHMuCj4g
KyAqIEEgZnJvbnRlbmQgdGhhdCBlbmFibGVzIGhhc2hpbmcgaXMgYXNzdW1lZCB0byBhY2NlcHQK
PiArICogdGhpcyB0eXBlIG9mIGV4dHJhIGluZm8gaW4gcmVjZWl2ZSBwYWNrZXRzLgo+ICsgKgo+
ICsgKiAgICAwICAgICAxICAgICAyICAgICAzICAgICA0ICAgICA1ICAgICA2ICAgICA3ICBvY3Rl
dAo+ICsgKiArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0r
Cj4gKyAqIHx0eXBlIHxmbGFnc3xodHlwZXwgYWxnIHxMU0IgLS0tLSB2YWx1ZSAtLS0tIE1TQnwK
PiArICogKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwo+
ICsgKgo+ICsgKiB0eXBlOiBNdXN0IGJlIFhFTl9ORVRJRl9FWFRSQV9UWVBFX0hBU0gKPiArICog
ZmxhZ3M6IFhFTl9ORVRJRl9FWFRSQV9GTEFHXyoKPiArICogaHR5cGU6IEhhc2ggdHlwZSAob25l
IG9mIF9YRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfKiAtIHNlZSBhYm92ZSkKPiArICogYWxnOiBU
aGUgYWxnb3JpdGhtIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSBoYXNoIChvbmUgb2YKPiArICogICAg
ICBYRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfQUxHT1JJVEhNXyogLSBzZWUgYWJvdmUpCj4gKyAq
IHZhbHVlOiBIYXNoIHZhbHVlCj4gICAqLwo+ICAKPiAgLyogUHJvdG9jb2wgY2hlY2tzdW0gZmll
bGQgaXMgYmxhbmsgaW4gdGhlIHBhY2tldCAoaGFyZHdhcmUgb2ZmbG9hZCk/ICovCj4gQEAgLTE2
NCwxMSArODM0LDExIEBACj4gIAo+ICAjZGVmaW5lIFhFTl9ORVRJRl9NQVhfVFhfU0laRSAweEZG
RkYKPiAgc3RydWN0IG5ldGlmX3R4X3JlcXVlc3Qgewo+IC0gICAgZ3JhbnRfcmVmX3QgZ3JlZjsg
ICAgICAvKiBSZWZlcmVuY2UgdG8gYnVmZmVyIHBhZ2UgKi8KPiAtICAgIHVpbnQxNl90IG9mZnNl
dDsgICAgICAgLyogT2Zmc2V0IHdpdGhpbiBidWZmZXIgcGFnZSAqLwo+IC0gICAgdWludDE2X3Qg
ZmxhZ3M7ICAgICAgICAvKiBORVRUWEZfKiAqLwo+IC0gICAgdWludDE2X3QgaWQ7ICAgICAgICAg
ICAvKiBFY2hvZWQgaW4gcmVzcG9uc2UgbWVzc2FnZS4gKi8KPiAtICAgIHVpbnQxNl90IHNpemU7
ICAgICAgICAgLyogUGFja2V0IHNpemUgaW4gYnl0ZXMuICAgICAgICovCj4gKyAgICBncmFudF9y
ZWZfdCBncmVmOwo+ICsgICAgdWludDE2X3Qgb2Zmc2V0Owo+ICsgICAgdWludDE2X3QgZmxhZ3M7
Cj4gKyAgICB1aW50MTZfdCBpZDsKPiArICAgIHVpbnQxNl90IHNpemU7Cj4gIH07Cj4gIHR5cGVk
ZWYgc3RydWN0IG5ldGlmX3R4X3JlcXVlc3QgbmV0aWZfdHhfcmVxdWVzdF90Owo+ICAKPiBAQCAt
MTc3LDkgKzg0NywxMCBAQCB0eXBlZGVmIHN0cnVjdCBuZXRpZl90eF9yZXF1ZXN0IG5ldGlmX3R4
X3JlcXVlc3RfdDsKPiAgI2RlZmluZSBYRU5fTkVUSUZfRVhUUkFfVFlQRV9HU08gICAgICAgKDEp
ICAvKiB1LmdzbyAqLwo+ICAjZGVmaW5lIFhFTl9ORVRJRl9FWFRSQV9UWVBFX01DQVNUX0FERCAo
MikgIC8qIHUubWNhc3QgKi8KPiAgI2RlZmluZSBYRU5fTkVUSUZfRVhUUkFfVFlQRV9NQ0FTVF9E
RUwgKDMpICAvKiB1Lm1jYXN0ICovCj4gLSNkZWZpbmUgWEVOX05FVElGX0VYVFJBX1RZUEVfTUFY
ICAgICAgICg0KQo+ICsjZGVmaW5lIFhFTl9ORVRJRl9FWFRSQV9UWVBFX0hBU0ggICAgICAoNCkg
IC8qIHUuaGFzaCAqLwo+ICsjZGVmaW5lIFhFTl9ORVRJRl9FWFRSQV9UWVBFX01BWCAgICAgICAo
NSkKPiAgCj4gLS8qIG5ldGlmX2V4dHJhX2luZm8gZmxhZ3MuICovCj4gKy8qIG5ldGlmX2V4dHJh
X2luZm9fdCBmbGFncy4gKi8KPiAgI2RlZmluZSBfWEVOX05FVElGX0VYVFJBX0ZMQUdfTU9SRSAo
MCkKPiAgI2RlZmluZSBYRU5fTkVUSUZfRVhUUkFfRkxBR19NT1JFICAoMVU8PF9YRU5fTkVUSUZf
RVhUUkFfRkxBR19NT1JFKQo+ICAKPiBAQCAtMTg5LDU1ICs4NjAsMjcgQEAgdHlwZWRlZiBzdHJ1
Y3QgbmV0aWZfdHhfcmVxdWVzdCBuZXRpZl90eF9yZXF1ZXN0X3Q7Cj4gICNkZWZpbmUgWEVOX05F
VElGX0dTT19UWVBFX1RDUFY2ICAgICAgICAoMikKPiAgCj4gIC8qCj4gLSAqIFRoaXMgc3RydWN0
dXJlIG5lZWRzIHRvIGZpdCB3aXRoaW4gYm90aCBuZXRpZl90eF9yZXF1ZXN0IGFuZAo+IC0gKiBu
ZXRpZl9yeF9yZXNwb25zZSBmb3IgY29tcGF0aWJpbGl0eS4KPiArICogVGhpcyBzdHJ1Y3R1cmUg
bmVlZHMgdG8gZml0IHdpdGhpbiBib3RoIG5ldGlmX3R4X3JlcXVlc3RfdCBhbmQKPiArICogbmV0
aWZfcnhfcmVzcG9uc2VfdCBmb3IgY29tcGF0aWJpbGl0eS4KPiAgICovCj4gIHN0cnVjdCBuZXRp
Zl9leHRyYV9pbmZvIHsKPiAtICAgIHVpbnQ4X3QgdHlwZTsgIC8qIFhFTl9ORVRJRl9FWFRSQV9U
WVBFXyogKi8KPiAtICAgIHVpbnQ4X3QgZmxhZ3M7IC8qIFhFTl9ORVRJRl9FWFRSQV9GTEFHXyog
Ki8KPiAtCj4gKyAgICB1aW50OF90IHR5cGU7Cj4gKyAgICB1aW50OF90IGZsYWdzOwo+ICAgICAg
dW5pb24gewo+IC0gICAgICAgIC8qCj4gLSAgICAgICAgICogWEVOX05FVElGX0VYVFJBX1RZUEVf
R1NPOgo+IC0gICAgICAgICAqLwo+ICAgICAgICAgIHN0cnVjdCB7Cj4gLSAgICAgICAgICAgIC8q
Cj4gLSAgICAgICAgICAgICAqIE1heGltdW0gcGF5bG9hZCBzaXplIG9mIGVhY2ggc2VnbWVudC4g
Rm9yIGV4YW1wbGUsIGZvciBUQ1AgdGhpcwo+IC0gICAgICAgICAgICAgKiBpcyBqdXN0IHRoZSBw
YXRoIE1TUy4KPiAtICAgICAgICAgICAgICovCj4gICAgICAgICAgICAgIHVpbnQxNl90IHNpemU7
Cj4gLQo+IC0gICAgICAgICAgICAvKgo+IC0gICAgICAgICAgICAgKiBHU08gdHlwZS4gVGhpcyBk
ZXRlcm1pbmVzIHRoZSBwcm90b2NvbCBvZiB0aGUgcGFja2V0IGFuZCBhbnkKPiAtICAgICAgICAg
ICAgICogZXh0cmEgZmVhdHVyZXMgcmVxdWlyZWQgdG8gc2VnbWVudCB0aGUgcGFja2V0IHByb3Bl
cmx5Lgo+IC0gICAgICAgICAgICAgKi8KPiAtICAgICAgICAgICAgdWludDhfdCB0eXBlOyAvKiBY
RU5fTkVUSUZfR1NPX1RZUEVfKiAqLwo+IC0KPiAtICAgICAgICAgICAgLyogRnV0dXJlIGV4cGFu
c2lvbi4gKi8KPiArICAgICAgICAgICAgdWludDhfdCB0eXBlOwo+ICAgICAgICAgICAgICB1aW50
OF90IHBhZDsKPiAtCj4gLSAgICAgICAgICAgIC8qCj4gLSAgICAgICAgICAgICAqIEdTTyBmZWF0
dXJlcy4gVGhpcyBzcGVjaWZpZXMgYW55IGV4dHJhIEdTTyBmZWF0dXJlcyByZXF1aXJlZAo+IC0g
ICAgICAgICAgICAgKiB0byBwcm9jZXNzIHRoaXMgcGFja2V0LCBzdWNoIGFzIEVDTiBzdXBwb3J0
IGZvciBUQ1B2NC4KPiAtICAgICAgICAgICAgICovCj4gLSAgICAgICAgICAgIHVpbnQxNl90IGZl
YXR1cmVzOyAvKiBYRU5fTkVUSUZfR1NPX0ZFQVRfKiAqLwo+ICsgICAgICAgICAgICB1aW50MTZf
dCBmZWF0dXJlczsKPiAgICAgICAgICB9IGdzbzsKPiAtCj4gLSAgICAgICAgLyoKPiAtICAgICAg
ICAgKiBYRU5fTkVUSUZfRVhUUkFfVFlQRV9NQ0FTVF97QURELERFTH06Cj4gLSAgICAgICAgICog
QmFja2VuZCBhZHZlcnRpc2VzIGF2YWlsYWJpbGl0eSB2aWEgJ2ZlYXR1cmUtbXVsdGljYXN0LWNv
bnRyb2wnCj4gLSAgICAgICAgICogeGVuYnVzIG5vZGUgY29udGFpbmluZyB2YWx1ZSAnMScuCj4g
LSAgICAgICAgICogRnJvbnRlbmQgcmVxdWVzdHMgdGhpcyBmZWF0dXJlIGJ5IGFkdmVydGlzaW5n
Cj4gLSAgICAgICAgICogJ3JlcXVlc3QtbXVsdGljYXN0LWNvbnRyb2wnIHhlbmJ1cyBub2RlIGNv
bnRhaW5pbmcgdmFsdWUgJzEnLgo+IC0gICAgICAgICAqIElmIG11bHRpY2FzdCBjb250cm9sIGlz
IHJlcXVlc3RlZCB0aGVuIG11bHRpY2FzdCBmbG9vZGluZyBpcwo+IC0gICAgICAgICAqIGRpc2Fi
bGVkIGFuZCB0aGUgZnJvbnRlbmQgbXVzdCBleHBsaWNpdGx5IHJlZ2lzdGVyIGl0cyBpbnRlcmVz
dAo+IC0gICAgICAgICAqIGluIG11bHRpY2FzdCBncm91cHMgdXNpbmcgZHVtbXkgdHJhbnNtaXQg
cmVxdWVzdHMgY29udGFpbmluZwo+IC0gICAgICAgICAqIE1DQVNUX3tBREQsREVMfSBleHRyYS1p
bmZvIGZyYWdtZW50cy4KPiAtICAgICAgICAgKi8KPiAgICAgICAgICBzdHJ1Y3Qgewo+IC0gICAg
ICAgICAgICB1aW50OF90IGFkZHJbNl07IC8qIEFkZHJlc3MgdG8gYWRkL3JlbW92ZS4gKi8KPiAr
ICAgICAgICAgICAgdWludDhfdCBhZGRyWzZdOwo+ICAgICAgICAgIH0gbWNhc3Q7Cj4gLQo+ICsg
ICAgICAgIHN0cnVjdCB7Cj4gKyAgICAgICAgICAgIHVpbnQ4X3QgdHlwZTsKPiArICAgICAgICAg
ICAgdWludDhfdCBhbGdvcml0aG07Cj4gKyAgICAgICAgICAgIHVpbnQ4X3QgdmFsdWVbNF07Cj4g
KyAgICAgICAgfSBoYXNoOwo+ICAgICAgICAgIHVpbnQxNl90IHBhZFszXTsKPiAgICAgIH0gdTsK
PiAgfTsKPiBAQCAtMjQ1LDEzICs4ODgsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgbmV0aWZfZXh0cmFf
aW5mbyBuZXRpZl9leHRyYV9pbmZvX3Q7Cj4gIAo+ICBzdHJ1Y3QgbmV0aWZfdHhfcmVzcG9uc2Ug
ewo+ICAgICAgdWludDE2X3QgaWQ7Cj4gLSAgICBpbnQxNl90ICBzdGF0dXM7ICAgICAgIC8qIE5F
VElGX1JTUF8qICovCj4gKyAgICBpbnQxNl90ICBzdGF0dXM7Cj4gIH07Cj4gIHR5cGVkZWYgc3Ry
dWN0IG5ldGlmX3R4X3Jlc3BvbnNlIG5ldGlmX3R4X3Jlc3BvbnNlX3Q7Cj4gIAo+ICBzdHJ1Y3Qg
bmV0aWZfcnhfcmVxdWVzdCB7Cj4gICAgICB1aW50MTZfdCAgICBpZDsgICAgICAgIC8qIEVjaG9l
ZCBpbiByZXNwb25zZSBtZXNzYWdlLiAgICAgICAgKi8KPiAtICAgIGdyYW50X3JlZl90IGdyZWY7
ICAgICAgLyogUmVmZXJlbmNlIHRvIGluY29taW5nIGdyYW50ZWQgZnJhbWUgKi8KPiArICAgIHVp
bnQxNl90ICAgIHBhZDsKPiArICAgIGdyYW50X3JlZl90IGdyZWY7Cj4gIH07Cj4gIHR5cGVkZWYg
c3RydWN0IG5ldGlmX3J4X3JlcXVlc3QgbmV0aWZfcnhfcmVxdWVzdF90Owo+ICAKPiBAQCAtMjcx
LDExICs5MTUsMTUgQEAgdHlwZWRlZiBzdHJ1Y3QgbmV0aWZfcnhfcmVxdWVzdCBuZXRpZl9yeF9y
ZXF1ZXN0X3Q7Cj4gICNkZWZpbmUgX05FVFJYRl9leHRyYV9pbmZvICAgICAoMykKPiAgI2RlZmlu
ZSAgTkVUUlhGX2V4dHJhX2luZm8gICAgICgxVTw8X05FVFJYRl9leHRyYV9pbmZvKQo+ICAKPiAr
LyogUGFja2V0IGhhcyBHU08gcHJlZml4LiBEZXByZWNhdGVkIGJ1dCBpbmNsdWRlZCBmb3IgY29t
cGF0aWJpbGl0eSAqLwo+ICsjZGVmaW5lIF9ORVRSWEZfZ3NvX3ByZWZpeCAgICAgKDQpCj4gKyNk
ZWZpbmUgIE5FVFJYRl9nc29fcHJlZml4ICAgICAoMVU8PF9ORVRSWEZfZ3NvX3ByZWZpeCkKPiAr
Cj4gIHN0cnVjdCBuZXRpZl9yeF9yZXNwb25zZSB7Cj4gICAgICB1aW50MTZfdCBpZDsKPiAtICAg
IHVpbnQxNl90IG9mZnNldDsgICAgICAgLyogT2Zmc2V0IGluIHBhZ2Ugb2Ygc3RhcnQgb2YgcmVj
ZWl2ZWQgcGFja2V0ICAqLwo+IC0gICAgdWludDE2X3QgZmxhZ3M7ICAgICAgICAvKiBORVRSWEZf
KiAqLwo+IC0gICAgaW50MTZfdCAgc3RhdHVzOyAgICAgICAvKiAtdmU6IE5FVElGX1JTUF8qIDsg
K3ZlOiBSeCdlZCBwa3Qgc2l6ZS4gKi8KPiArICAgIHVpbnQxNl90IG9mZnNldDsKPiArICAgIHVp
bnQxNl90IGZsYWdzOwo+ICsgICAgaW50MTZfdCAgc3RhdHVzOwo+ICB9Owo+ICB0eXBlZGVmIHN0
cnVjdCBuZXRpZl9yeF9yZXNwb25zZSBuZXRpZl9yeF9yZXNwb25zZV90Owo+ICAKPiBAQCAtMjg5
LDcgKzkzNyw3IEBAIERFRklORV9SSU5HX1RZUEVTKG5ldGlmX3J4LCBzdHJ1Y3QgbmV0aWZfcnhf
cmVxdWVzdCwgc3RydWN0IG5ldGlmX3J4X3Jlc3BvbnNlKTsKPiAgI2RlZmluZSBORVRJRl9SU1Bf
RFJPUFBFRCAgICAgICAgIC0yCj4gICNkZWZpbmUgTkVUSUZfUlNQX0VSUk9SICAgICAgICAgICAt
MQo+ICAjZGVmaW5lIE5FVElGX1JTUF9PS0FZICAgICAgICAgICAgIDAKPiAtLyogTm8gcmVzcG9u
c2U6IHVzZWQgZm9yIGF1eGlsaWFyeSByZXF1ZXN0cyAoZS5nLiwgbmV0aWZfdHhfZXh0cmEpLiAq
Lwo+ICsvKiBObyByZXNwb25zZTogdXNlZCBmb3IgYXV4aWxpYXJ5IHJlcXVlc3RzIChlLmcuLCBu
ZXRpZl9leHRyYV9pbmZvX3QpLiAqLwo+ICAjZGVmaW5lIE5FVElGX1JTUF9OVUxMICAgICAgICAg
ICAgIDEKPiAgCj4gICNlbmRpZgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9pby9wcm90b2Nv
bHMuaCBiL2luY2x1ZGUveGVuL2lvL3Byb3RvY29scy5oCj4gaW5kZXggODBiMTk2Yi4uNDBhOWIz
MCAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3hlbi9pby9wcm90b2NvbHMuaAo+ICsrKyBiL2luY2x1
ZGUveGVuL2lvL3Byb3RvY29scy5oCj4gQEAgLTE4LDYgKzE4LDggQEAKPiAgICogTElBQklMSVRZ
LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS
SVNJTkcKPiAgICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdB
UkUgT1IgVEhFIFVTRSBPUiBPVEhFUgo+ICAgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4g
KyAqCj4gKyAqIENvcHlyaWdodCAoYykgMjAwOCwgS2VpciBGcmFzZXIKPiAgICovCj4gIAo+ICAj
aWZuZGVmIF9fWEVOX1BST1RPQ09MU19IX18KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vaW8v
cHZjYWxscy5oIGIvaW5jbHVkZS94ZW4vaW8vcHZjYWxscy5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2
NDQKPiBpbmRleCAwMDAwMDAwLi5jYjgxNzEyCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2luY2x1
ZGUveGVuL2lvL3B2Y2FsbHMuaAo+IEBAIC0wLDAgKzEsMTUzIEBACj4gKy8qCj4gKyAqIHB2Y2Fs
bHMuaCAtLSBYZW4gUFYgQ2FsbHMgUHJvdG9jb2wKPiArICoKPiArICogUmVmZXIgdG8gZG9jcy9t
aXNjL3B2Y2FsbHMubWFya2Rvd24gZm9yIHRoZSBzcGVjaWZpY2F0aW9uCj4gKyAqCj4gKyAqIFBl
cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u
IG9idGFpbmluZyBhIGNvcHkKPiArICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBk
b2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCj4gKyAqIGRlYWwgaW4gdGhl
IFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRp
b24gdGhlCj4gKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs
IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgo+ICsgKiBzZWxsIGNvcGllcyBvZiB0aGUg
U29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwo+
ICsgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zOgo+ICsgKgo+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJt
aXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgo+ICsgKiBhbGwgY29waWVzIG9yIHN1
YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KPiArICoKPiArICogVEhFIFNPRlRX
QVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVY
UFJFU1MgT1IKPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQo+
ICsgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlN
LCBEQU1BR0VTIE9SIE9USEVSCj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04g
T0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4gKyAqIEZST00sIE9VVCBP
RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIK
PiArICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+ICsgKgo+ICsgKiBDb3B5cmlnaHQgKEMp
IDIwMTcgU3RlZmFubyBTdGFiZWxsaW5pIDxzdGVmYW5vQGFwb3JldG8uY29tPgo+ICsgKi8KPiAr
Cj4gKyNpZm5kZWYgX19YRU5fUFVCTElDX0lPX1BWQ0FMTFNfSF9fCj4gKyNkZWZpbmUgX19YRU5f
UFVCTElDX0lPX1BWQ0FMTFNfSF9fCj4gKwo+ICsjaW5jbHVkZSAiLi4vZ3JhbnRfdGFibGUuaCIK
PiArI2luY2x1ZGUgInJpbmcuaCIKPiArCj4gKy8qCj4gKyAqIFNlZSBkb2NzL21pc2MvcHZjYWxs
cy5tYXJrZG93biBpbiB4ZW4uZ2l0IGZvciB0aGUgZnVsbCBzcGVjaWZpY2F0aW9uOgo+ICsgKiBo
dHRwczovL3hlbmJpdHMueGVuLm9yZy9kb2NzL3Vuc3RhYmxlL21pc2MvcHZjYWxscy5odG1sCj4g
KyAqLwo+ICtzdHJ1Y3QgcHZjYWxsc19kYXRhX2ludGYgewo+ICsgICAgUklOR19JRFggaW5fY29u
cywgaW5fcHJvZCwgaW5fZXJyb3I7Cj4gKwo+ICsgICAgdWludDhfdCBwYWQxWzUyXTsKPiArCj4g
KyAgICBSSU5HX0lEWCBvdXRfY29ucywgb3V0X3Byb2QsIG91dF9lcnJvcjsKPiArCj4gKyAgICB1
aW50OF90IHBhZDJbNTJdOwo+ICsKPiArICAgIFJJTkdfSURYIHJpbmdfb3JkZXI7Cj4gKyAgICBn
cmFudF9yZWZfdCByZWZbXTsKPiArfTsKPiArREVGSU5FX1hFTl9GTEVYX1JJTkcocHZjYWxscyk7
Cj4gKwo+ICsjZGVmaW5lIFBWQ0FMTFNfU09DS0VUICAgICAgICAgMAo+ICsjZGVmaW5lIFBWQ0FM
TFNfQ09OTkVDVCAgICAgICAgMQo+ICsjZGVmaW5lIFBWQ0FMTFNfUkVMRUFTRSAgICAgICAgMgo+
ICsjZGVmaW5lIFBWQ0FMTFNfQklORCAgICAgICAgICAgMwo+ICsjZGVmaW5lIFBWQ0FMTFNfTElT
VEVOICAgICAgICAgNAo+ICsjZGVmaW5lIFBWQ0FMTFNfQUNDRVBUICAgICAgICAgNQo+ICsjZGVm
aW5lIFBWQ0FMTFNfUE9MTCAgICAgICAgICAgNgo+ICsKPiArc3RydWN0IHhlbl9wdmNhbGxzX3Jl
cXVlc3Qgewo+ICsgICAgdWludDMyX3QgcmVxX2lkOyAvKiBwcml2YXRlIHRvIGd1ZXN0LCBlY2hv
ZWQgaW4gcmVzcG9uc2UgKi8KPiArICAgIHVpbnQzMl90IGNtZDsgICAgLyogY29tbWFuZCB0byBl
eGVjdXRlICovCj4gKyAgICB1bmlvbiB7Cj4gKyAgICAgICAgc3RydWN0IHhlbl9wdmNhbGxzX3Nv
Y2tldCB7Cj4gKyAgICAgICAgICAgIHVpbnQ2NF90IGlkOwo+ICsgICAgICAgICAgICB1aW50MzJf
dCBkb21haW47Cj4gKyAgICAgICAgICAgIHVpbnQzMl90IHR5cGU7Cj4gKyAgICAgICAgICAgIHVp
bnQzMl90IHByb3RvY29sOwo+ICsgICAgICAgIH0gc29ja2V0Owo+ICsgICAgICAgIHN0cnVjdCB4
ZW5fcHZjYWxsc19jb25uZWN0IHsKPiArICAgICAgICAgICAgdWludDY0X3QgaWQ7Cj4gKyAgICAg
ICAgICAgIHVpbnQ4X3QgYWRkclsyOF07Cj4gKyAgICAgICAgICAgIHVpbnQzMl90IGxlbjsKPiAr
ICAgICAgICAgICAgdWludDMyX3QgZmxhZ3M7Cj4gKyAgICAgICAgICAgIGdyYW50X3JlZl90IHJl
ZjsKPiArICAgICAgICAgICAgdWludDMyX3QgZXZ0Y2huOwo+ICsgICAgICAgIH0gY29ubmVjdDsK
PiArICAgICAgICBzdHJ1Y3QgeGVuX3B2Y2FsbHNfcmVsZWFzZSB7Cj4gKyAgICAgICAgICAgIHVp
bnQ2NF90IGlkOwo+ICsgICAgICAgICAgICB1aW50OF90IHJldXNlOwo+ICsgICAgICAgIH0gcmVs
ZWFzZTsKPiArICAgICAgICBzdHJ1Y3QgeGVuX3B2Y2FsbHNfYmluZCB7Cj4gKyAgICAgICAgICAg
IHVpbnQ2NF90IGlkOwo+ICsgICAgICAgICAgICB1aW50OF90IGFkZHJbMjhdOwo+ICsgICAgICAg
ICAgICB1aW50MzJfdCBsZW47Cj4gKyAgICAgICAgfSBiaW5kOwo+ICsgICAgICAgIHN0cnVjdCB4
ZW5fcHZjYWxsc19saXN0ZW4gewo+ICsgICAgICAgICAgICB1aW50NjRfdCBpZDsKPiArICAgICAg
ICAgICAgdWludDMyX3QgYmFja2xvZzsKPiArICAgICAgICB9IGxpc3RlbjsKPiArICAgICAgICBz
dHJ1Y3QgeGVuX3B2Y2FsbHNfYWNjZXB0IHsKPiArICAgICAgICAgICAgdWludDY0X3QgaWQ7Cj4g
KyAgICAgICAgICAgIHVpbnQ2NF90IGlkX25ldzsKPiArICAgICAgICAgICAgZ3JhbnRfcmVmX3Qg
cmVmOwo+ICsgICAgICAgICAgICB1aW50MzJfdCBldnRjaG47Cj4gKyAgICAgICAgfSBhY2NlcHQ7
Cj4gKyAgICAgICAgc3RydWN0IHhlbl9wdmNhbGxzX3BvbGwgewo+ICsgICAgICAgICAgICB1aW50
NjRfdCBpZDsKPiArICAgICAgICB9IHBvbGw7Cj4gKyAgICAgICAgLyogZHVtbXkgbWVtYmVyIHRv
IGZvcmNlIHNpemVvZihzdHJ1Y3QgeGVuX3B2Y2FsbHNfcmVxdWVzdCkKPiArICAgICAgICAgKiB0
byBtYXRjaCBhY3Jvc3MgYXJjaHMgKi8KPiArICAgICAgICBzdHJ1Y3QgeGVuX3B2Y2FsbHNfZHVt
bXkgewo+ICsgICAgICAgICAgICB1aW50OF90IGR1bW15WzU2XTsKPiArICAgICAgICB9IGR1bW15
Owo+ICsgICAgfSB1Owo+ICt9Owo+ICsKPiArc3RydWN0IHhlbl9wdmNhbGxzX3Jlc3BvbnNlIHsK
PiArICAgIHVpbnQzMl90IHJlcV9pZDsKPiArICAgIHVpbnQzMl90IGNtZDsKPiArICAgIGludDMy
X3QgcmV0Owo+ICsgICAgdWludDMyX3QgcGFkOwo+ICsgICAgdW5pb24gewo+ICsgICAgICAgIHN0
cnVjdCBfeGVuX3B2Y2FsbHNfc29ja2V0IHsKPiArICAgICAgICAgICAgdWludDY0X3QgaWQ7Cj4g
KyAgICAgICAgfSBzb2NrZXQ7Cj4gKyAgICAgICAgc3RydWN0IF94ZW5fcHZjYWxsc19jb25uZWN0
IHsKPiArICAgICAgICAgICAgdWludDY0X3QgaWQ7Cj4gKyAgICAgICAgfSBjb25uZWN0Owo+ICsg
ICAgICAgIHN0cnVjdCBfeGVuX3B2Y2FsbHNfcmVsZWFzZSB7Cj4gKyAgICAgICAgICAgIHVpbnQ2
NF90IGlkOwo+ICsgICAgICAgIH0gcmVsZWFzZTsKPiArICAgICAgICBzdHJ1Y3QgX3hlbl9wdmNh
bGxzX2JpbmQgewo+ICsgICAgICAgICAgICB1aW50NjRfdCBpZDsKPiArICAgICAgICB9IGJpbmQ7
Cj4gKyAgICAgICAgc3RydWN0IF94ZW5fcHZjYWxsc19saXN0ZW4gewo+ICsgICAgICAgICAgICB1
aW50NjRfdCBpZDsKPiArICAgICAgICB9IGxpc3RlbjsKPiArICAgICAgICBzdHJ1Y3QgX3hlbl9w
dmNhbGxzX2FjY2VwdCB7Cj4gKyAgICAgICAgICAgIHVpbnQ2NF90IGlkOwo+ICsgICAgICAgIH0g
YWNjZXB0Owo+ICsgICAgICAgIHN0cnVjdCBfeGVuX3B2Y2FsbHNfcG9sbCB7Cj4gKyAgICAgICAg
ICAgIHVpbnQ2NF90IGlkOwo+ICsgICAgICAgIH0gcG9sbDsKPiArICAgICAgICBzdHJ1Y3QgX3hl
bl9wdmNhbGxzX2R1bW15IHsKPiArICAgICAgICAgICAgdWludDhfdCBkdW1teVs4XTsKPiArICAg
ICAgICB9IGR1bW15Owo+ICsgICAgfSB1Owo+ICt9Owo+ICsKPiArREVGSU5FX1JJTkdfVFlQRVMo
eGVuX3B2Y2FsbHMsIHN0cnVjdCB4ZW5fcHZjYWxsc19yZXF1ZXN0LAo+ICsgICAgICAgICAgICAg
ICAgICBzdHJ1Y3QgeGVuX3B2Y2FsbHNfcmVzcG9uc2UpOwo+ICsKPiArI2VuZGlmCj4gKwo+ICsv
Kgo+ICsgKiBMb2NhbCB2YXJpYWJsZXM6Cj4gKyAqIG1vZGU6IEMKPiArICogYy1maWxlLXN0eWxl
OiAiQlNEIgo+ICsgKiBjLWJhc2ljLW9mZnNldDogNAo+ICsgKiB0YWItd2lkdGg6IDQKPiArICog
aW5kZW50LXRhYnMtbW9kZTogbmlsCj4gKyAqIEVuZDoKPiArICovCj4gZGlmZiAtLWdpdCBhL2lu
Y2x1ZGUveGVuL2lvL3JpbmcuaCBiL2luY2x1ZGUveGVuL2lvL3JpbmcuaAo+IGluZGV4IDczZTEz
ZDcuLjMwMzQyZmMgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS94ZW4vaW8vcmluZy5oCj4gKysrIGIv
aW5jbHVkZS94ZW4vaW8vcmluZy5oCj4gQEAgLTI3LDYgKzI3LDIxIEBACj4gICNpZm5kZWYgX19Y
RU5fUFVCTElDX0lPX1JJTkdfSF9fCj4gICNkZWZpbmUgX19YRU5fUFVCTElDX0lPX1JJTkdfSF9f
Cj4gIAo+ICsvKgo+ICsgKiBXaGVuICNpbmNsdWRlJ2luZyB0aGlzIGhlYWRlciwgeW91IG5lZWQg
dG8gcHJvdmlkZSB0aGUgZm9sbG93aW5nCj4gKyAqIGRlY2xhcmF0aW9uIHVwZnJvbnQ6Cj4gKyAq
IC0gc3RhbmRhcmQgaW50ZWdlcnMgdHlwZXMgKHVpbnQ4X3QsIHVpbnQxNl90LCBldGMpCj4gKyAq
IFRoZXkgYXJlIHByb3ZpZGVkIGJ5IHN0ZGludC5oIG9mIHRoZSBzdGFuZGFyZCBoZWFkZXJzLgo+
ICsgKgo+ICsgKiBJbiBhZGRpdGlvbiwgaWYgeW91IGludGVuZCB0byB1c2UgdGhlIEZMRVggbWFj
cm9zLCB5b3UgYWxzbyBuZWVkIHRvCj4gKyAqIHByb3ZpZGUgdGhlIGZvbGxvd2luZywgYmVmb3Jl
IGludm9raW5nIHRoZSBGTEVYIG1hY3JvczoKPiArICogLSBzaXplX3QKPiArICogLSBtZW1jcHkK
PiArICogLSBncmFudF9yZWZfdAo+ICsgKiBUaGVzZSBkZWNsYXJhdGlvbnMgYXJlIHByb3ZpZGVk
IGJ5IHN0cmluZy5oIG9mIHRoZSBzdGFuZGFyZCBoZWFkZXJzLAo+ICsgKiBhbmQgZ3JhbnRfdGFi
bGUuaCBmcm9tIHRoZSBYZW4gcHVibGljIGhlYWRlcnMuCj4gKyAqLwo+ICsKPiAgI2luY2x1ZGUg
Ii4uL3hlbi1jb21wYXQuaCIKPiAgCj4gICNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwg
MHgwMDAzMDIwOAo+IEBAIC0xMTEsNyArMTI2LDcgQEAgc3RydWN0IF9fbmFtZSMjX3NyaW5nIHsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICAgICAg
ICAgICAgICB1aW50OF90IG1zZzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCj4gICAgICAgICAgfSB0YXBpZl91c2VyOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiAgICAgICAgICB1aW50OF90IHB2dF9w
YWRbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+IC0g
ICAgfSBwcml2YXRlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCj4gKyAgICB9IHB2dDsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiAgICAgIHVpbnQ4X3QgX19wYWRb
NDRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+
ICAgICAgdW5pb24gX19uYW1lIyNfc3JpbmdfZW50cnkgcmluZ1sxXTsgLyogdmFyaWFibGUtbGVu
Z3RoICovICAgICAgICAgICBcCj4gIH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiBAQCAtMTU2LDcgKzE3MSw3
IEBAIHR5cGVkZWYgc3RydWN0IF9fbmFtZSMjX2JhY2tfcmluZyBfX25hbWUjI19iYWNrX3Jpbmdf
dAo+ICAjZGVmaW5lIFNIQVJFRF9SSU5HX0lOSVQoX3MpIGRvIHsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCj4gICAgICAoX3MpLT5yZXFfcHJvZCAgPSAoX3MpLT5yc3Bf
cHJvZCAgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiAgICAgIChfcyktPnJl
cV9ldmVudCA9IChfcyktPnJzcF9ldmVudCA9IDE7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAo+IC0gICAgKHZvaWQpbWVtc2V0KChfcyktPnByaXZhdGUucHZ0X3BhZCwgMCwgc2l6ZW9m
KChfcyktPnByaXZhdGUucHZ0X3BhZCkpOyBcCj4gKyAgICAodm9pZCltZW1zZXQoKF9zKS0+cHZ0
LnB2dF9wYWQsIDAsIHNpemVvZigoX3MpLT5wdnQucHZ0X3BhZCkpOyAgICAgIFwKPiAgICAgICh2
b2lkKW1lbXNldCgoX3MpLT5fX3BhZCwgMCwgc2l6ZW9mKChfcyktPl9fcGFkKSk7ICAgICAgICAg
ICAgICAgICAgXAo+ICB9IHdoaWxlKDApCj4gIAo+IEBAIC0yMTIsNiArMjI3LDIwIEBAIHR5cGVk
ZWYgc3RydWN0IF9fbmFtZSMjX2JhY2tfcmluZyBfX25hbWUjI19iYWNrX3JpbmdfdAo+ICAjZGVm
aW5lIFJJTkdfR0VUX1JFUVVFU1QoX3IsIF9pZHgpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCj4gICAgICAoJigoX3IpLT5zcmluZy0+cmluZ1soKF9pZHgpICYgKFJJTkdf
U0laRShfcikgLSAxKSldLnJlcSkpCj4gIAo+ICsvKgo+ICsgKiBHZXQgYSBsb2NhbCBjb3B5IG9m
IGEgcmVxdWVzdC4KPiArICoKPiArICogVXNlIHRoaXMgaW4gcHJlZmVyZW5jZSB0byBSSU5HX0dF
VF9SRVFVRVNUKCkgc28gYWxsIHByb2Nlc3NpbmcgaXMKPiArICogZG9uZSBvbiBhIGxvY2FsIGNv
cHkgdGhhdCBjYW5ub3QgYmUgbW9kaWZpZWQgYnkgdGhlIG90aGVyIGVuZC4KPiArICoKPiArICog
Tm90ZSB0aGF0IGh0dHBzOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTU4
MTQ1IG1heSBjYXVzZSB0aGlzCj4gKyAqIHRvIGJlIGluZWZmZWN0aXZlIHdoZXJlIF9yZXEgaXMg
YSBzdHJ1Y3Qgd2hpY2ggY29uc2lzdHMgb2Ygb25seSBiaXRmaWVsZHMuCj4gKyAqLwo+ICsjZGVm
aW5lIFJJTkdfQ09QWV9SRVFVRVNUKF9yLCBfaWR4LCBfcmVxKSBkbyB7CQkJCVwKPiArCS8qIFVz
ZSB2b2xhdGlsZSB0byBmb3JjZSB0aGUgY29weSBpbnRvIF9yZXEuICovCQkJXAo+ICsJKihfcmVx
KSA9ICoodm9sYXRpbGUgdHlwZW9mKF9yZXEpKVJJTkdfR0VUX1JFUVVFU1QoX3IsIF9pZHgpOwlc
Cj4gK30gd2hpbGUgKDApCj4gKwo+ICAjZGVmaW5lIFJJTkdfR0VUX1JFU1BPTlNFKF9yLCBfaWR4
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gICAgICAoJigoX3IpLT5z
cmluZy0+cmluZ1soKF9pZHgpICYgKFJJTkdfU0laRShfcikgLSAxKSldLnJzcCkpCj4gIAo+IEBA
IC0yOTksNiArMzI4LDE0OSBAQCB0eXBlZGVmIHN0cnVjdCBfX25hbWUjI19iYWNrX3JpbmcgX19u
YW1lIyNfYmFja19yaW5nX3QKPiAgICAgIChfd29ya190b19kbykgPSBSSU5HX0hBU19VTkNPTlNV
TUVEX1JFU1BPTlNFUyhfcik7ICAgICAgICAgICAgICAgICAgXAo+ICB9IHdoaWxlICgwKQo+ICAK
PiArCj4gKy8qCj4gKyAqIERFRklORV9YRU5fRkxFWF9SSU5HX0FORF9JTlRGIGRlZmluZXMgdHdv
IG1vbm9kaXJlY3Rpb25hbCByaW5ncyBhbmQKPiArICogZnVuY3Rpb25zIHRvIGNoZWNrIGlmIHRo
ZXJlIGlzIGRhdGEgb24gdGhlIHJpbmcsIGFuZCB0byByZWFkIGFuZAo+ICsgKiB3cml0ZSB0byB0
aGVtLgo+ICsgKgo+ICsgKiBERUZJTkVfWEVOX0ZMRVhfUklORyBpcyBzaW1pbGFyIHRvIERFRklO
RV9YRU5fRkxFWF9SSU5HX0FORF9JTlRGLCBidXQKPiArICogZG9lcyBub3QgZGVmaW5lIHRoZSBp
bmRleGVzIHBhZ2UuIEFzIGRpZmZlcmVudCBwcm90b2NvbHMgY2FuIGhhdmUKPiArICogZXh0ZW5z
aW9ucyB0byB0aGUgYmFzaWMgZm9ybWF0LCB0aGlzIG1hY3JvIGFsbG93IHRoZW0gdG8gZGVmaW5l
IHRoZWlyCj4gKyAqIG93biBzdHJ1Y3QuCj4gKyAqCj4gKyAqIFhFTl9GTEVYX1JJTkdfU0laRQo+
ICsgKiAgIENvbnZlbmllbmNlIG1hY3JvIHRvIGNhbGN1bGF0ZSB0aGUgc2l6ZSBvZiBvbmUgb2Yg
dGhlIHR3byByaW5ncwo+ICsgKiAgIGZyb20gdGhlIG92ZXJhbGwgb3JkZXIuCj4gKyAqCj4gKyAq
ICROQU1FX21hc2sKPiArICogICBGdW5jdGlvbiB0byBhcHBseSB0aGUgc2l6ZSBtYXNrIHRvIGFu
IGluZGV4LCB0byByZWR1Y2UgdGhlIGluZGV4Cj4gKyAqICAgd2l0aGluIHRoZSByYW5nZSBbMC1z
aXplXS4KPiArICoKPiArICogJE5BTUVfcmVhZF9wYWNrZXQKPiArICogICBGdW5jdGlvbiB0byBy
ZWFkIGRhdGEgZnJvbSB0aGUgcmluZy4gVGhlIGFtb3VudCBvZiBkYXRhIHRvIHJlYWQgaXMKPiAr
ICogICBzcGVjaWZpZWQgYnkgdGhlICJzaXplIiBhcmd1bWVudC4KPiArICoKPiArICogJE5BTUVf
d3JpdGVfcGFja2V0Cj4gKyAqICAgRnVuY3Rpb24gdG8gd3JpdGUgZGF0YSB0byB0aGUgcmluZy4g
VGhlIGFtb3VudCBvZiBkYXRhIHRvIHdyaXRlIGlzCj4gKyAqICAgc3BlY2lmaWVkIGJ5IHRoZSAi
c2l6ZSIgYXJndW1lbnQuCj4gKyAqCj4gKyAqICROQU1FX2dldF9yaW5nX3B0cgo+ICsgKiAgIENv
bnZlbmllbmNlIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHBvaW50ZXIgdG8gcmVhZC93cml0ZSB0
byB0aGUKPiArICogICByaW5nIGF0IHRoZSByaWdodCBsb2NhdGlvbi4KPiArICoKPiArICogJE5B
TUVfZGF0YV9pbnRmCj4gKyAqICAgSW5kZXhlcyBwYWdlLCBzaGFyZWQgYmV0d2VlbiBmcm9udGVu
ZCBhbmQgYmFja2VuZC4gSXQgYWxzbwo+ICsgKiAgIGNvbnRhaW5zIHRoZSBhcnJheSBvZiBncmFu
dCByZWZzLgo+ICsgKgo+ICsgKiAkTkFNRV9xdWV1ZWQKPiArICogICBGdW5jdGlvbiB0byBjYWxj
dWxhdGUgaG93IG1hbnkgYnl0ZXMgYXJlIGN1cnJlbnRseSBvbiB0aGUgcmluZywKPiArICogICBy
ZWFkeSB0byBiZSByZWFkLiBJdCBjYW4gYWxzbyBiZSB1c2VkIHRvIGNhbGN1bGF0ZSBob3cgbXVj
aCBmcmVlCj4gKyAqICAgc3BhY2UgaXMgY3VycmVudGx5IG9uIHRoZSByaW5nIChYRU5fRkxFWF9S
SU5HX1NJWkUoKSAtCj4gKyAqICAgJE5BTUVfcXVldWVkKCkpLgo+ICsgKi8KPiArCj4gKyNpZm5k
ZWYgWEVOX1BBR0VfU0hJRlQKPiArLyogVGhlIFBBR0VfU0laRSBmb3IgcmluZyBwcm90b2NvbHMg
YW5kIGh5cGVyY2FsbCBpbnRlcmZhY2VzIGlzIGFsd2F5cwo+ICsgKiA0SywgcmVnYXJkbGVzcyBv
ZiB0aGUgYXJjaGl0ZWN0dXJlLCBhbmQgcGFnZSBncmFudWxhcml0eSBjaG9zZW4gYnkKPiArICog
b3BlcmF0aW5nIHN5c3RlbXMuCj4gKyAqLwo+ICsjZGVmaW5lIFhFTl9QQUdFX1NISUZUIDEyCj4g
KyNlbmRpZgo+ICsjZGVmaW5lIFhFTl9GTEVYX1JJTkdfU0laRShvcmRlcikgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAoMVVMIDw8ICgob3JkZXIp
ICsgWEVOX1BBR0VfU0hJRlQgLSAxKSkKPiArCj4gKyNkZWZpbmUgREVGSU5FX1hFTl9GTEVYX1JJ
TkcobmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiAr
c3RhdGljIGlubGluZSBSSU5HX0lEWCBuYW1lIyNfbWFzayhSSU5HX0lEWCBpZHgsIFJJTkdfSURY
IHJpbmdfc2l6ZSkgICAgICAgICAgXAo+ICt7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICBy
ZXR1cm4gaWR4ICYgKHJpbmdfc2l6ZSAtIDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKPiArfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCj4gK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hhciAqbmFtZSMjX2dldF9y
aW5nX3B0cih1bnNpZ25lZCBjaGFyICpidWYsICAgICAgICAgIFwKPiArICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJJTkdfSURYIGlkeCwgICAgICAgICAg
ICAgICAgXAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUklOR19JRFggcmluZ19zaXplKSAgICAgICAgICBcCj4gK3sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKPiArICAgIHJldHVybiBidWYgKyBuYW1lIyNfbWFzayhpZHgsIHJpbmdfc2l6ZSk7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICt9ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKPiArc3RhdGljIGlubGluZSB2b2lkIG5hbWUjI19yZWFk
X3BhY2tldCh2b2lkICpvcGFxdWUsICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1
ZiwgICAgICAgICAgICAgICBcCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2l6ZV90IHNpemUsICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSSU5HX0lEWCBtYXNrZWRfcHJvZCwgICAgICAg
ICAgICAgICAgICAgXAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJJ
TkdfSURYICptYXNrZWRfY29ucywgICAgICAgICAgICAgICAgICBcCj4gKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUklOR19JRFggcmluZ19zaXplKSAgICAgICAgICAgICAg
ICAgICAgIFwKPiAreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgaWYgKCptYXNrZWRfY29u
cyA8IG1hc2tlZF9wcm9kIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCj4gKyAgICAgICAgc2l6ZSA8PSByaW5nX3NpemUgLSAqbWFza2VkX2NvbnMpIHsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgICAgICBtZW1jcHkob3BhcXVlLCBi
dWYgKyAqbWFza2VkX2NvbnMsIHNpemUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+
ICsgICAgfSBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAgICAgbWVtY3B5KG9wYXF1ZSwgYnVmICsg
Km1hc2tlZF9jb25zLCByaW5nX3NpemUgLSAqbWFza2VkX2NvbnMpOyAgICAgICAgIFwKPiArICAg
ICAgICBtZW1jcHkoKHVuc2lnbmVkIGNoYXIgKilvcGFxdWUgKyByaW5nX3NpemUgLSAqbWFza2Vk
X2NvbnMsIGJ1ZiwgICAgICAgXAo+ICsgICAgICAgICAgICAgICBzaXplIC0gKHJpbmdfc2l6ZSAt
ICptYXNrZWRfY29ucykpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICB9ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKPiArICAgICptYXNrZWRfY29ucyA9IG5hbWUjI19tYXNrKCptYXNrZWRf
Y29ucyArIHNpemUsIHJpbmdfc2l6ZSk7ICAgICAgICAgICAgICAgXAo+ICt9ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArc3RhdGljIGlubGluZSB2b2lk
IG5hbWUjI193cml0ZV9wYWNrZXQodW5zaWduZWQgY2hhciAqYnVmLCAgICAgICAgICAgICAgICAg
ICAgXAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lk
ICpvcGFxdWUsICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNpemVfdCBzaXplLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUklOR19JRFggKm1hc2tl
ZF9wcm9kLCAgICAgICAgICAgICAgICAgXAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBSSU5HX0lEWCBtYXNrZWRfY29ucywgICAgICAgICAgICAgICAgICBcCj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJJTkdfSURYIHJpbmdfc2l6ZSkg
ICAgICAgICAgICAgICAgICAgIFwKPiAreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgaWYg
KCptYXNrZWRfcHJvZCA8IG1hc2tlZF9jb25zIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCj4gKyAgICAgICAgc2l6ZSA8PSByaW5nX3NpemUgLSAqbWFza2VkX3By
b2QpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgICAgICBtZW1j
cHkoYnVmICsgKm1hc2tlZF9wcm9kLCBvcGFxdWUsIHNpemUpOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAo+ICsgICAgfSBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAgICAgbWVtY3B5KGJ1
ZiArICptYXNrZWRfcHJvZCwgb3BhcXVlLCByaW5nX3NpemUgLSAqbWFza2VkX3Byb2QpOyAgICAg
ICAgIFwKPiArICAgICAgICBtZW1jcHkoYnVmLCAodW5zaWduZWQgY2hhciAqKW9wYXF1ZSArIChy
aW5nX3NpemUgLSAqbWFza2VkX3Byb2QpLCAgICAgXAo+ICsgICAgICAgICAgICAgICBzaXplIC0g
KHJpbmdfc2l6ZSAtICptYXNrZWRfcHJvZCkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Cj4gKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgICptYXNrZWRfcHJvZCA9IG5hbWUjI19t
YXNrKCptYXNrZWRfcHJvZCArIHNpemUsIHJpbmdfc2l6ZSk7ICAgICAgICAgICAgICAgXAo+ICt9
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArc3RhdGlj
IGlubGluZSBSSU5HX0lEWCBuYW1lIyNfcXVldWVkKFJJTkdfSURYIHByb2QsICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UklOR19JRFggY29ucywgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBSSU5HX0lEWCByaW5nX3NpemUpICAgICAgICAgICAg
ICAgICAgICAgIFwKPiAreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgUklOR19JRFggc2l6
ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIGlmIChwcm9kID09IGNvbnMp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAo+ICsgICAgICAgIHJldHVybiAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiAr
ICAgIHByb2QgPSBuYW1lIyNfbWFzayhwcm9kLCByaW5nX3NpemUpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgY29ucyA9IG5hbWUjI19tYXNrKGNvbnMsIHJp
bmdfc2l6ZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKPiArICAgIGlmIChwcm9kID09IGNvbnMpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgICAgIHJl
dHVybiByaW5nX3NpemU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIGlmIChwcm9kID4g
Y29ucykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAo+ICsgICAgICAgIHNpemUgPSBwcm9kIC0gY29uczsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICBlbHNlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKPiArICAgICAgICBzaXplID0gcmluZ19zaXplIC0gKGNvbnMgLSBwcm9kKTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgcmV0dXJuIHNpemU7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4g
K30gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICtzdHJ1
Y3QgbmFtZSMjX2RhdGEgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCj4gKyAgICB1bnNpZ25lZCBjaGFyICppbjsgLyogaGFsZiBvZiB0
aGUgYWxsb2NhdGlvbiAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIHVuc2ln
bmVkIGNoYXIgKm91dDsgLyogaGFsZiBvZiB0aGUgYWxsb2NhdGlvbiAqLyAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAo+ICt9Cj4gKwo+ICsjZGVmaW5lIERFRklORV9YRU5fRkxFWF9SSU5HX0FO
RF9JTlRGKG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gK3N0cnVj
dCBuYW1lIyNfZGF0YV9pbnRmIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKPiArICAgIFJJTkdfSURYIGluX2NvbnMsIGluX3Byb2Q7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCj4gKyAgICB1aW50OF90IHBhZDFbNTZdOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAo+ICsgICAgUklOR19JRFggb3V0X2NvbnMsIG91dF9wcm9kOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKPiArICAgIHVpbnQ4X3QgcGFkMls1Nl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4g
KyAgICBSSU5HX0lEWCByaW5nX29yZGVyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIGdyYW50X3JlZl90IHJlZltdOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICt9OyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCj4gK0RFRklORV9YRU5fRkxFWF9SSU5HKG5hbWUpCj4gKwo+ICAj
ZW5kaWYgLyogX19YRU5fUFVCTElDX0lPX1JJTkdfSF9fICovCj4gIAo+ICAvKgo+IGRpZmYgLS1n
aXQgYS9pbmNsdWRlL3hlbi9pby9zbmRpZi5oIGIvaW5jbHVkZS94ZW4vaW8vc25kaWYuaAo+IG5l
dyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uYzVjMTk3OAo+IC0tLSAvZGV2L251
bGwKPiArKysgYi9pbmNsdWRlL3hlbi9pby9zbmRpZi5oCj4gQEAgLTAsMCArMSw4MDMgQEAKPiAr
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgo+ICsgKiBzbmRpZi5oCj4gKyAqCj4gKyAqIFVuaWZpZWQg
c291bmQtZGV2aWNlIEkvTyBpbnRlcmZhY2UgZm9yIFhlbiBndWVzdCBPU2VzLgo+ICsgKgo+ICsg
KiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBl
cnNvbiBvYnRhaW5pbmcgYSBjb3B5Cj4gKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0
ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bwo+ICsgKiBkZWFsIGlu
IHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1p
dGF0aW9uIHRoZQo+ICsgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJs
aXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKPiArICogc2VsbCBjb3BpZXMgb2Yg
dGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUg
aXMKPiArICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9uczoKPiArICoKPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg
cGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KPiArICogYWxsIGNvcGllcyBv
ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCj4gKyAqCj4gKyAqIFRIRSBT
T0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5E
LCBFWFBSRVNTIE9SCj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8g
VEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+ICsgKiBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUKPiArICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBD
TEFJTSwgREFNQUdFUyBPUiBPVEhFUgo+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNU
SU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwo+ICsgKiBGUk9NLCBP
VVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9U
SEVSCj4gKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KPiArICoKPiArICogQ29weXJpZ2h0
IChDKSAyMDEzLTIwMTUgR2xvYmFsTG9naWMgSW5jLgo+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTYt
MjAxNyBFUEFNIFN5c3RlbXMgSW5jLgo+ICsgKgo+ICsgKiBBdXRob3JzOiBPbGVrc2FuZHIgQW5k
cnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+Cj4gKyAqICAgICAg
ICAgIE9sZWtzYW5kciBHcnl0c292IDxvbGVrc2FuZHJfZ3J5dHNvdkBlcGFtLmNvbT4KPiArICog
ICAgICAgICAgT2xla3NhbmRyIERteXRyeXNoeW4gPG9sZWtzYW5kci5kbXl0cnlzaHluQGdsb2Jh
bGxvZ2ljLmNvbT4KPiArICogICAgICAgICAgSXVyaWkgS29ub3ZhbGVua28gPGl1cmlpLmtvbm92
YWxlbmtvQGdsb2JhbGxvZ2ljLmNvbT4KPiArICovCj4gKwo+ICsjaWZuZGVmIF9fWEVOX1BVQkxJ
Q19JT19TTkRJRl9IX18KPiArI2RlZmluZSBfX1hFTl9QVUJMSUNfSU9fU05ESUZfSF9fCj4gKwo+
ICsjaW5jbHVkZSAicmluZy5oIgo+ICsjaW5jbHVkZSAiLi4vZ3JhbnRfdGFibGUuaCIKPiArCj4g
Ky8qCj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiArICogICAgICAgICAgICAgICAgICBGZWF0
dXJlIGFuZCBQYXJhbWV0ZXIgTmVnb3RpYXRpb24KPiArICoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+
ICsgKgo+ICsgKiBGcm9udC0+YmFjayBub3RpZmljYXRpb25zOiB3aGVuIGVucXVldWluZyBhIG5l
dyByZXF1ZXN0LCBzZW5kaW5nIGEKPiArICogbm90aWZpY2F0aW9uIGNhbiBiZSBtYWRlIGNvbmRp
dGlvbmFsIG9uIHhlbnNuZF9yZXEgKGkuZS4sIHRoZSBnZW5lcmljCj4gKyAqIGhvbGQtb2ZmIG1l
Y2hhbmlzbSBwcm92aWRlZCBieSB0aGUgcmluZyBtYWNyb3MpLiBCYWNrZW5kcyBtdXN0IHNldAo+
ICsgKiB4ZW5zbmRfcmVxIGFwcHJvcHJpYXRlbHkgKGUuZy4sIHVzaW5nIFJJTkdfRklOQUxfQ0hF
Q0tfRk9SX1JFUVVFU1RTKCkpLgo+ICsgKgo+ICsgKiBCYWNrLT5mcm9udCBub3RpZmljYXRpb25z
OiB3aGVuIGVucXVldWluZyBhIG5ldyByZXNwb25zZSwgc2VuZGluZyBhCj4gKyAqIG5vdGlmaWNh
dGlvbiBjYW4gYmUgbWFkZSBjb25kaXRpb25hbCBvbiB4ZW5zbmRfcmVzcCAoaS5lLiwgdGhlIGdl
bmVyaWMKPiArICogaG9sZC1vZmYgbWVjaGFuaXNtIHByb3ZpZGVkIGJ5IHRoZSByaW5nIG1hY3Jv
cykuIEZyb250ZW5kcyBtdXN0IHNldAo+ICsgKiB4ZW5zbmRfcmVzcCBhcHByb3ByaWF0ZWx5IChl
LmcuLCB1c2luZyBSSU5HX0ZJTkFMX0NIRUNLX0ZPUl9SRVNQT05TRVMoKSkuCj4gKyAqCj4gKyAq
IFRoZSB0d28gaGFsdmVzIG9mIGEgcGFyYS12aXJ0dWFsIHNvdW5kIGNhcmQgZHJpdmVyIHV0aWxp
emUgbm9kZXMgd2l0aGluCj4gKyAqIFhlblN0b3JlIHRvIGNvbW11bmljYXRlIGNhcGFiaWxpdGll
cyBhbmQgdG8gbmVnb3RpYXRlIG9wZXJhdGluZyBwYXJhbWV0ZXJzLgo+ICsgKiBUaGlzIHNlY3Rp
b24gZW51bWVyYXRlcyB0aGVzZSBub2RlcyB3aGljaCByZXNpZGUgaW4gdGhlIHJlc3BlY3RpdmUg
ZnJvbnQgYW5kCj4gKyAqIGJhY2tlbmQgcG9ydGlvbnMgb2YgWGVuU3RvcmUsIGZvbGxvd2luZyB0
aGUgWGVuQnVzIGNvbnZlbnRpb24uCj4gKyAqCj4gKyAqIEFsbCBkYXRhIGluIFhlblN0b3JlIGlz
IHN0b3JlZCBhcyBzdHJpbmdzLiBOb2RlcyBzcGVjaWZ5aW5nIG51bWVyaWMKPiArICogdmFsdWVz
IGFyZSBlbmNvZGVkIGluIGRlY2ltYWwuIEludGVnZXIgdmFsdWUgcmFuZ2VzIGxpc3RlZCBiZWxv
dyBhcmUKPiArICogZXhwcmVzc2VkIGFzIGZpeGVkIHNpemVkIGludGVnZXIgdHlwZXMgY2FwYWJs
ZSBvZiBzdG9yaW5nIHRoZSBjb252ZXJzaW9uCj4gKyAqIG9mIGEgcHJvcGVybHkgZm9ybWF0ZWQg
bm9kZSBzdHJpbmcsIHdpdGhvdXQgbG9zcyBvZiBpbmZvcm1hdGlvbi4KPiArICoKPiArICoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgIEV4YW1wbGUgY29u
ZmlndXJhdGlvbgo+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAqCj4gKyAqIE5vdGU6IGRl
cGVuZGluZyBvbiB0aGUgdXNlLWNhc2UgYmFja2VuZCBjYW4gZXhwb3NlIG1vcmUgc291bmQgY2Fy
ZHMgYW5kCj4gKyAqIFBDTSBkZXZpY2VzL3N0cmVhbXMgdGhhbiB0aGUgdW5kZXJseWluZyBIVyBw
aHlzaWNhbGx5IGhhcyBieSBlbXBsb3lpbmcKPiArICogU1cgbWl4ZXJzLCBjb25maWd1cmluZyB2
aXJ0dWFsIHNvdW5kIHN0cmVhbXMsIGNoYW5uZWxzIGV0Yy4KPiArICoKPiArICogVGhpcyBpcyBh
biBleGFtcGxlIG9mIGJhY2tlbmQgYW5kIGZyb250ZW5kIGNvbmZpZ3VyYXRpb246Cj4gKyAqCj4g
KyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEJhY2tlbmQgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoKPiArICogL2xvY2FsL2RvbWFpbi8wL2JhY2tl
bmQvdnNuZC8xLzAvZnJvbnRlbmQtaWQgPSAiMSIKPiArICogL2xvY2FsL2RvbWFpbi8wL2JhY2tl
bmQvdnNuZC8xLzAvZnJvbnRlbmQgPSAiL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAiCj4g
KyAqIC9sb2NhbC9kb21haW4vMC9iYWNrZW5kL3ZzbmQvMS8wL3N0YXRlID0gIjQiCj4gKyAqIC9s
b2NhbC9kb21haW4vMC9iYWNrZW5kL3ZzbmQvMS8wL3ZlcnNpb25zID0gIjEsMiIKPiArICoKPiAr
ICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnJvbnRlbmQgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsgKgo+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNl
L3ZzbmQvMC9iYWNrZW5kLWlkID0gIjAiCj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNu
ZC8wL2JhY2tlbmQgPSAiL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQvdnNuZC8xLzAiCj4gKyAqIC9s
b2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wL3N0YXRlID0gIjQiCj4gKyAqIC9sb2NhbC9kb21h
aW4vMS9kZXZpY2UvdnNuZC8wL3ZlcnNpb24gPSAiMSIKPiArICoKPiArICotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSBDYXJkIGNvbmZpZ3VyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQo+ICsgKgo+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC9zaG9ydC1u
YW1lID0gIkNhcmQgc2hvcnQgbmFtZSIKPiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25k
LzAvbG9uZy1uYW1lID0gIkNhcmQgbG9uZyBuYW1lIgo+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2
aWNlL3ZzbmQvMC9zYW1wbGUtcmF0ZXMgPSAiODAwMCwzMjAwMCw0NDEwMCw0ODAwMCw5NjAwMCIK
PiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvc2FtcGxlLWZvcm1hdHMgPSAiczgs
dTgsczE2X2xlLHMxNl9iZSIKPiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvYnVm
ZmVyLXNpemUgPSAiMjYyMTQ0Igo+ICsgKgo+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gUENNIGRldmljZSAwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gKyAq
Cj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzAvbmFtZSA9ICJHZW5lcmFsIGFu
YWxvZyIKPiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMC9jaGFubmVscy1tYXgg
PSAiNSIKPiArICoKPiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTdHJlYW0gMCwg
cGxheWJhY2sgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsgKgo+ICsgKiAvbG9jYWwv
ZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC8wLzAvdHlwZSA9ICJwIgo+ICsgKiAvbG9jYWwvZG9tYWlu
LzEvZGV2aWNlL3ZzbmQvMC8wLzAvc2FtcGxlLWZvcm1hdHMgPSAiczgsdTgiCj4gKyAqIC9sb2Nh
bC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzAvMC91bmlxdWUtaWQgPSAiMCIKPiArICoKPiArICog
L2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMC8wL3JpbmctcmVmID0gIjM4NiIKPiArICog
L2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMC8wL2V2ZW50LWNoYW5uZWwgPSAiMTUiCj4g
KyAqCj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFN0cmVhbSAxLCBjYXB0dXJl
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoKPiArICogL2xvY2FsL2RvbWFpbi8x
L2RldmljZS92c25kLzAvMC8xL3R5cGUgPSAiYyIKPiArICogL2xvY2FsL2RvbWFpbi8xL2Rldmlj
ZS92c25kLzAvMC8xL2NoYW5uZWxzLW1heCA9ICIyIgo+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2
aWNlL3ZzbmQvMC8wLzEvdW5pcXVlLWlkID0gIjEiCj4gKyAqCj4gKyAqIC9sb2NhbC9kb21haW4v
MS9kZXZpY2UvdnNuZC8wLzAvMS9yaW5nLXJlZiA9ICIzODQiCj4gKyAqIC9sb2NhbC9kb21haW4v
MS9kZXZpY2UvdnNuZC8wLzAvMS9ldmVudC1jaGFubmVsID0gIjEzIgo+ICsgKgo+ICsgKi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUENNIGRldmljZSAxIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCj4gKyAqCj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8w
LzEvbmFtZSA9ICJIRE1JLTAiCj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzEv
c2FtcGxlLXJhdGVzID0gIjgwMDAsMzIwMDAsNDQxMDAiCj4gKyAqCj4gKyAqLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIFN0cmVhbSAwLCBjYXB0dXJlIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KPiArICoKPiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMS8wL3R5
cGUgPSAiYyIKPiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMS8wL3VuaXF1ZS1p
ZCA9ICIyIgo+ICsgKgo+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC8xLzAvcmlu
Zy1yZWYgPSAiMzg3Igo+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC8xLzAvZXZl
bnQtY2hhbm5lbCA9ICIxNTEiCj4gKyAqCj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSBQQ00gZGV2aWNlIDIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoK
PiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMi9uYW1lID0gIlNQRElGIgo+ICsg
Kgo+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFN0cmVhbSAwLCBwbGF5YmFjayAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gKyAqCj4gKyAqIC9sb2NhbC9kb21haW4vMS9k
ZXZpY2UvdnNuZC8wLzIvMC90eXBlID0gInAiCj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2Uv
dnNuZC8wLzIvMC91bmlxdWUtaWQgPSAiMyIKPiArICoKPiArICogL2xvY2FsL2RvbWFpbi8xL2Rl
dmljZS92c25kLzAvMi8wL3JpbmctcmVmID0gIjM4OSIKPiArICogL2xvY2FsL2RvbWFpbi8xL2Rl
dmljZS92c25kLzAvMi8wL2V2ZW50LWNoYW5uZWwgPSAiMTUyIgo+ICsgKgo+ICsgKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqCj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhY2tlbmQgWGVu
QnVzIE5vZGVzCj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiArICoKPiArICotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSBQcm90b2NvbCB2ZXJzaW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQo+ICsgKgo+ICsgKiB2ZXJzaW9ucwo+ICsgKiAgICAgIFZhbHVlczogICAgICAg
ICA8c3RyaW5nPgo+ICsgKgo+ICsgKiAgICAgIExpc3Qgb2YgWEVOU05EX0xJU1RfU0VQQVJBVE9S
IHNlcGFyYXRlZCBwcm90b2NvbCB2ZXJzaW9ucyBzdXBwb3J0ZWQKPiArICogICAgICBieSB0aGUg
YmFja2VuZC4gRm9yIGV4YW1wbGUgIjEsMiwzIi4KPiArICoKPiArICoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVuZCBYZW5CdXMgTm9k
ZXMKPiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsgKgo+ICsgKi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tIEFkZHJlc3NpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCj4gKyAqCj4gKyAqIGRvbS1pZAo+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludDE2
X3Q+Cj4gKyAqCj4gKyAqICAgICAgRG9tYWluIGlkZW50aWZpZXIuCj4gKyAqCj4gKyAqIGRldi1p
ZAo+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludDE2X3Q+Cj4gKyAqCj4gKyAqICAgICAg
RGV2aWNlIGlkZW50aWZpZXIuCj4gKyAqCj4gKyAqIHBjbS1kZXYtaWR4Cj4gKyAqICAgICAgVmFs
dWVzOiAgICAgICAgIDx1aW50OF90Pgo+ICsgKgo+ICsgKiAgICAgIFplcm8gYmFzZWQgY29udGln
b3VzIGluZGV4IG9mIHRoZSBQQ00gZGV2aWNlLgo+ICsgKgo+ICsgKiBzdHJlYW0taWR4Cj4gKyAq
ICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50OF90Pgo+ICsgKgo+ICsgKiAgICAgIFplcm8gYmFz
ZWQgY29udGlnb3VzIGluZGV4IG9mIHRoZSBzdHJlYW0gb2YgdGhlIFBDTSBkZXZpY2UuCj4gKyAq
Cj4gKyAqIFRoZSBmb2xsb3dpbmcgcGF0dGVybiBpcyB1c2VkIGZvciBhZGRyZXNzaW5nOgo+ICsg
KiAgIC9sb2NhbC9kb21haW4vPGRvbS1pZD4vZGV2aWNlL3ZzbmQvPGRldi1pZD4vPHBjbS1kZXYt
aWR4Pi88c3RyZWFtLWlkeD4vLi4uCj4gKyAqCj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gUHJvdG9jb2wgdmVyc2lvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAr
ICoKPiArICogdmVyc2lvbgo+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8c3RyaW5nPgo+ICsg
Kgo+ICsgKiAgICAgIFByb3RvY29sIHZlcnNpb24sIGNob3NlbiBhbW9uZyB0aGUgb25lcyBzdXBw
b3J0ZWQgYnkgdGhlIGJhY2tlbmQuCj4gKyAqCj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSBQQ00gc2V0dGluZ3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAr
ICoKPiArICogRXZlcnkgdmlydHVhbGl6ZWQgc291bmQgZnJvbnRlbmQgaGFzIGEgc2V0IG9mIFBD
TSBkZXZpY2VzIGFuZCBzdHJlYW1zLCBlYWNoCj4gKyAqIGNvdWxkIGJlIGluZGl2aWR1YWxseSBj
b25maWd1cmVkLiBQYXJ0IG9mIHRoZSBQQ00gY29uZmlndXJhdGlvbiBjYW4gYmUKPiArICogZGVm
aW5lZCBhdCBoaWdoZXIgbGV2ZWwgb2YgdGhlIGhpZXJhcmNoeSBhbmQgYmUgZnVsbHkgb3IgcGFy
dGlhbGx5IHJlLXVzZWQKPiArICogYnkgdGhlIHVuZGVybHlpbmcgbGF5ZXJzLiBUaGVzZSBjb25m
aWd1cmF0aW9uIHZhbHVlcyBhcmU6Cj4gKyAqICBvIG51bWJlciBvZiBjaGFubmVscyAobWluL21h
eCkKPiArICogIG8gc3VwcG9ydGVkIHNhbXBsZSByYXRlcwo+ICsgKiAgbyBzdXBwb3J0ZWQgc2Ft
cGxlIGZvcm1hdHMuCj4gKyAqIEUuZy4gb25lIGNhbiBkZWZpbmUgdGhlc2UgdmFsdWVzIGZvciB0
aGUgd2hvbGUgY2FyZCwgZGV2aWNlIG9yIHN0cmVhbS4KPiArICogRXZlcnkgdW5kZXJseWluZyBs
YXllciBpbiB0dXJuIGNhbiByZS1kZWZpbmUgc29tZSBvciBhbGwgb2YgdGhlbSB0byBiZXR0ZXIK
PiArICogZml0IGl0cyBuZWVkcy4gRm9yIGV4YW1wbGUsIGNhcmQgbWF5IGRlZmluZSBudW1iZXIg
b2YgY2hhbm5lbHMgdG8gYmUKPiArICogaW4gWzE7IDhdIHJhbmdlLCBhbmQgc29tZSBwYXJ0aWN1
bGFyIHN0cmVhbSBtYXkgYmUgbGltaXRlZCB0byBbMTsgMl0gb25seS4KPiArICogVGhlIHJ1bGUg
aXMgdGhhdCB0aGUgdW5kZXJseWluZyBsYXllciBtdXN0IGJlIGEgc3Vic2V0IG9mIHRoZSB1cHBl
ciBsYXllcgo+ICsgKiByYW5nZS4KPiArICoKPiArICogY2hhbm5lbHMtbWluCj4gKyAqICAgICAg
VmFsdWVzOiAgICAgICAgIDx1aW50OF90Pgo+ICsgKgo+ICsgKiAgICAgIFRoZSBtaW5pbXVtIGFt
b3VudCBvZiBjaGFubmVscyB0aGF0IGlzIHN1cHBvcnRlZCwgWzE7IGNoYW5uZWxzLW1heF0uCj4g
KyAqICAgICAgT3B0aW9uYWwsIGlmIG5vdCBzZXQgb3Igb21pdHRlZCBhIHZhbHVlIG9mIDEgaXMg
dXNlZC4KPiArICoKPiArICogY2hhbm5lbHMtbWF4Cj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAg
IDx1aW50OF90Pgo+ICsgKgo+ICsgKiAgICAgIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBjaGFubmVs
cyB0aGF0IGlzIHN1cHBvcnRlZC4KPiArICogICAgICBNdXN0IGJlIGF0IGxlYXN0IDxjaGFubmVs
cy1taW4+Lgo+ICsgKgo+ICsgKiBzYW1wbGUtcmF0ZXMKPiArICogICAgICBWYWx1ZXM6ICAgICAg
ICAgPGxpc3Qgb2YgdWludDMyX3Q+Cj4gKyAqCj4gKyAqICAgICAgTGlzdCBvZiBzdXBwb3J0ZWQg
c2FtcGxlIHJhdGVzIHNlcGFyYXRlZCBieSBYRU5TTkRfTElTVF9TRVBBUkFUT1IuCj4gKyAqICAg
ICAgU2FtcGxlIHJhdGVzIGFyZSBleHByZXNzZWQgYXMgYSBsaXN0IG9mIGRlY2ltYWwgdmFsdWVz
IHcvbyBhbnkKPiArICogICAgICBvcmRlcmluZyByZXF1aXJlbWVudC4KPiArICoKPiArICogc2Ft
cGxlLWZvcm1hdHMKPiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPGxpc3Qgb2YgWEVOU05EX1BD
TV9GT1JNQVRfWFhYX1NUUj4KPiArICoKPiArICogICAgICBMaXN0IG9mIHN1cHBvcnRlZCBzYW1w
bGUgZm9ybWF0cyBzZXBhcmF0ZWQgYnkgWEVOU05EX0xJU1RfU0VQQVJBVE9SLgo+ICsgKiAgICAg
IEl0ZW1zIG11c3Qgbm90IGV4Y2VlZCBYRU5TTkRfU0FNUExFX0ZPUk1BVF9NQVhfTEVOIGxlbmd0
aC4KPiArICoKPiArICogYnVmZmVyLXNpemUKPiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVp
bnQzMl90Pgo+ICsgKgo+ICsgKiAgICAgIFRoZSBtYXhpbXVtIHNpemUgaW4gb2N0ZXRzIG9mIHRo
ZSBidWZmZXIgdG8gYWxsb2NhdGUgcGVyIHN0cmVhbS4KPiArICoKPiArICotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSBWaXJ0dWFsIHNvdW5kIGNhcmQgc2V0dGluZ3MgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQo+ICsgKiBzaG9ydC1uYW1lCj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDxjaGFy
WzMyXT4KPiArICoKPiArICogICAgICBTaG9ydCBuYW1lIG9mIHRoZSB2aXJ0dWFsIHNvdW5kIGNh
cmQuIE9wdGlvbmFsLgo+ICsgKgo+ICsgKiBsb25nLW5hbWUKPiArICogICAgICBWYWx1ZXM6ICAg
ICAgICAgPGNoYXJbODBdPgo+ICsgKgo+ICsgKiAgICAgIExvbmcgbmFtZSBvZiB0aGUgdmlydHVh
bCBzb3VuZCBjYXJkLiBPcHRpb25hbC4KPiArICoKPiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSBEZXZpY2Ugc2V0dGluZ3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+
ICsgKiBuYW1lCj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDxjaGFyWzgwXT4KPiArICoKPiAr
ICogICAgICBOYW1lIG9mIHRoZSBzb3VuZCBkZXZpY2Ugd2l0aGluIHRoZSB2aXJ0dWFsIHNvdW5k
IGNhcmQuIE9wdGlvbmFsLgo+ICsgKgo+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
IFN0cmVhbSBzZXR0aW5ncyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gKyAqCj4g
KyAqIHR5cGUKPiArICogICAgICBWYWx1ZXM6ICAgICAgICAgInAiLCAiYyIKPiArICoKPiArICog
ICAgICBTdHJlYW0gdHlwZTogInAiIC0gcGxheWJhY2sgc3RyZWFtLCAiYyIgLSBjYXB0dXJlIHN0
cmVhbQo+ICsgKgo+ICsgKiAgICAgIElmIGJvdGggY2FwdHVyZSBhbmQgcGxheWJhY2sgYXJlIG5l
ZWRlZCB0aGVuIHR3byBzdHJlYW1zIG5lZWQgdG8gYmUKPiArICogICAgICBkZWZpbmVkIHVuZGVy
IHRoZSBzYW1lIGRldmljZS4KPiArICoKPiArICogdW5pcXVlLWlkCj4gKyAqICAgICAgVmFsdWVz
OiAgICAgICAgIDx1aW50MzJfdD4KPiArICoKPiArICogICAgICBBZnRlciBzdHJlYW0gaW5pdGlh
bGl6YXRpb24gaXQgaXMgYXNzaWduZWQgYSB1bmlxdWUgSUQgKHdpdGhpbiB0aGUgZnJvbnQKPiAr
ICogICAgICBkcml2ZXIpLCBzbyBldmVyeSBzdHJlYW0gb2YgdGhlIGZyb250ZW5kIGNhbiBiZSBp
ZGVudGlmaWVkIGJ5IHRoZQo+ICsgKiAgICAgIGJhY2tlbmQgYnkgdGhpcyBJRC4gVGhpcyBpcyBu
b3QgZXF1YWwgdG8gc3RyZWFtLWlkeCBhcyB0aGUgbGF0ZXIgaXMKPiArICogICAgICB6ZXJvIGJh
c2VkIHdpdGhpbiB0aGUgZGV2aWNlLCBidXQgdGhpcyBpbmRleCBpcyBjb250aWdvdXMgd2l0aGlu
IHRoZQo+ICsgKiAgICAgIGRyaXZlci4KPiArICoKPiArICotLS0tLS0tLS0tLS0tLS0tLS0tLSBT
dHJlYW0gUmVxdWVzdCBUcmFuc3BvcnQgUGFyYW1ldGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLQo+
ICsgKgo+ICsgKiBldmVudC1jaGFubmVsCj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50
MzJfdD4KPiArICoKPiArICogICAgICBUaGUgaWRlbnRpZmllciBvZiB0aGUgWGVuIGV2ZW50IGNo
YW5uZWwgdXNlZCB0byBzaWduYWwgYWN0aXZpdHkKPiArICogICAgICBpbiB0aGUgcmluZyBidWZm
ZXIuCj4gKyAqCj4gKyAqIHJpbmctcmVmCj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50
MzJfdD4KPiArICoKPiArICogICAgICBUaGUgWGVuIGdyYW50IHJlZmVyZW5jZSBncmFudGluZyBw
ZXJtaXNzaW9uIGZvciB0aGUgYmFja2VuZCB0byBtYXAKPiArICogICAgICBhIHNvbGUgcGFnZSBp
biBhIHNpbmdsZSBwYWdlIHNpemVkIHJpbmcgYnVmZmVyLgo+ICsgKgo+ICsgKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNUQVRFIERJQUdS
QU1TCj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiArICoKPiArICogVG9vbCBzdGFjayBjcmVh
dGVzIGZyb250IGFuZCBiYWNrIHN0YXRlIG5vZGVzIHdpdGggaW5pdGlhbCBzdGF0ZQo+ICsgKiBY
ZW5idXNTdGF0ZUluaXRpYWxpc2luZy4KPiArICogVG9vbCBzdGFjayBjcmVhdGVzIGFuZCBzZXRz
IHVwIGZyb250ZW5kIHNvdW5kIGNvbmZpZ3VyYXRpb24gbm9kZXMgcGVyIGRvbWFpbi4KPiArICoK
PiArICogRnJvbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhY2sKPiArICogPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAgID09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KPiArICogWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcgICAgICAgICAgICAg
IFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nCj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbyBRdWVyeSBiYWNrZW5kIGRldmljZSBpZGVudGlmaWNhdGlvbgo+ICsgKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS4KPiArICogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvIE9wZW4gYW5kIHZhbGlkYXRlIGJhY2tl
bmQgZGV2aWNlLgo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwKPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8Cj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVgo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgWGVuYnVzU3RhdGVJbml0V2FpdAo+ICsgKgo+ICsgKiBvIFF1ZXJ5IGZyb250ZW5k
IGNvbmZpZ3VyYXRpb24KPiArICogbyBBbGxvY2F0ZSBhbmQgaW5pdGlhbGl6ZQo+ICsgKiAgIGV2
ZW50IGNoYW5uZWxzIHBlciBjb25maWd1cmVkCj4gKyAqICAgcGxheWJhY2svY2FwdHVyZSBzdHJl
YW0uCj4gKyAqIG8gUHVibGlzaCB0cmFuc3BvcnQgcGFyYW1ldGVycwo+ICsgKiAgIHRoYXQgd2ls
bCBiZSBpbiBlZmZlY3QgZHVyaW5nCj4gKyAqICAgdGhpcyBjb25uZWN0aW9uLgo+ICsgKiAgICAg
ICAgICAgICAgfAo+ICsgKiAgICAgICAgICAgICAgfAo+ICsgKiAgICAgICAgICAgICAgVgo+ICsg
KiBYZW5idXNTdGF0ZUluaXRpYWxpc2VkCj4gKyAqCj4gKyAqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbyBRdWVyeSBmcm9udGVuZCB0cmFuc3BvcnQgcGFyYW1ldGVycy4K
PiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvIENvbm5lY3QgdG8g
dGhlIGV2ZW50IGNoYW5uZWxzLgo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwKPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVgo+ICsgKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVDb25uZWN0ZWQKPiArICoKPiArICogIG8gQ3Jl
YXRlIGFuZCBpbml0aWFsaXplIE9TCj4gKyAqICAgIHZpcnR1YWwgc291bmQgZGV2aWNlIGluc3Rh
bmNlcwo+ICsgKiAgICBhcyBwZXIgY29uZmlndXJhdGlvbi4KPiArICogICAgICAgICAgICAgIHwK
PiArICogICAgICAgICAgICAgIHwKPiArICogICAgICAgICAgICAgIFYKPiArICogWGVuYnVzU3Rh
dGVDb25uZWN0ZWQKPiArICoKPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFhlbmJ1c1N0YXRlVW5rbm93bgo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgWGVuYnVzU3RhdGVDbG9zZWQKPiArICogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFhlbmJ1c1N0YXRlQ2xvc2luZwo+ICsgKiBvIFJlbW92ZSB2aXJ0dWFsIHNv
dW5kIGRldmljZQo+ICsgKiBvIFJlbW92ZSBldmVudCBjaGFubmVscwo+ICsgKiAgICAgICAgICAg
ICAgfAo+ICsgKiAgICAgICAgICAgICAgfAo+ICsgKiAgICAgICAgICAgICAgVgo+ICsgKiBYZW5i
dXNTdGF0ZUNsb3NlZAo+ICsgKgo+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
UmVjb3ZlcnkgZmxvdyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gKyAqCj4gKyAq
IEluIGNhc2Ugb2YgZnJvbnRlbmQgdW5yZWNvdmVyYWJsZSBlcnJvcnMgYmFja2VuZCBoYW5kbGVz
IHRoYXQgYXMKPiArICogaWYgZnJvbnRlbmQgZ29lcyBpbnRvIHRoZSBYZW5idXNTdGF0ZUNsb3Nl
ZCBzdGF0ZS4KPiArICoKPiArICogSW4gY2FzZSBvZiBiYWNrZW5kIHVucmVjb3ZlcmFibGUgZXJy
b3JzIGZyb250ZW5kIHRyaWVzIHJlbW92aW5nCj4gKyAqIHRoZSB2aXJ0dWFsaXplZCBkZXZpY2Uu
IElmIHRoaXMgaXMgcG9zc2libGUgYXQgdGhlIG1vbWVudCBvZiBlcnJvciwKPiArICogdGhlbiBm
cm9udGVuZCBnb2VzIGludG8gdGhlIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nIHN0YXRlIGFuZCBp
cyByZWFkeSBmb3IKPiArICogbmV3IGNvbm5lY3Rpb24gd2l0aCBiYWNrZW5kLiBJZiB0aGUgdmly
dHVhbGl6ZWQgZGV2aWNlIGlzIHN0aWxsIGluIHVzZSBhbmQKPiArICogY2Fubm90IGJlIHJlbW92
ZWQsIHRoZW4gZnJvbnRlbmQgZ29lcyBpbnRvIHRoZSBYZW5idXNTdGF0ZVJlY29uZmlndXJpbmcg
c3RhdGUKPiArICogdW50aWwgZWl0aGVyIHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UgcmVtb3ZlZCBv
ciBiYWNrZW5kIGluaXRpYXRlcyBhIG5ldwo+ICsgKiBjb25uZWN0aW9uLiBPbiB0aGUgdmlydHVh
bGl6ZWQgZGV2aWNlIHJlbW92YWwgZnJvbnRlbmQgZ29lcyBpbnRvIHRoZQo+ICsgKiBYZW5idXNT
dGF0ZUluaXRpYWxpc2luZyBzdGF0ZS4KPiArICoKPiArICogTm90ZSBvbiBYZW5idXNTdGF0ZVJl
Y29uZmlndXJpbmcgc3RhdGUgb2YgdGhlIGZyb250ZW5kOiBpZiBiYWNrZW5kIGhhcwo+ICsgKiB1
bnJlY292ZXJhYmxlIGVycm9ycyB0aGVuIGZyb250ZW5kIGNhbm5vdCBzZW5kIHJlcXVlc3RzIHRv
IHRoZSBiYWNrZW5kCj4gKyAqIGFuZCB0aHVzIGNhbm5vdCBwcm92aWRlIGZ1bmN0aW9uYWxpdHkg
b2YgdGhlIHZpcnR1YWxpemVkIGRldmljZSBhbnltb3JlLgo+ICsgKiBBZnRlciBiYWNrZW5kIGlz
IGJhY2sgdG8gbm9ybWFsIHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UgbWF5IHN0aWxsIGhvbGQgc29t
ZQo+ICsgKiBzdGF0ZTogY29uZmlndXJhdGlvbiBpbiB1c2UsIGFsbG9jYXRlZCBidWZmZXJzLCBj
bGllbnQgYXBwbGljYXRpb24gc3RhdGUgZXRjLgo+ICsgKiBTbywgaW4gbW9zdCBjYXNlcywgdGhp
cyB3aWxsIHJlcXVpcmUgZnJvbnRlbmQgdG8gaW1wbGVtZW50IGNvbXBsZXggcmVjb3ZlcnkKPiAr
ICogcmVjb25uZWN0IGxvZ2ljLiBJbnN0ZWFkLCBieSBnb2luZyBpbnRvIFhlbmJ1c1N0YXRlUmVj
b25maWd1cmluZyBzdGF0ZSwKPiArICogZnJvbnRlbmQgd2lsbCBtYWtlIHN1cmUgbm8gbmV3IGNs
aWVudHMgb2YgdGhlIHZpcnR1YWxpemVkIGRldmljZSBhcmUKPiArICogYWNjZXB0ZWQsIGFsbG93
IGV4aXN0aW5nIGNsaWVudChzKSB0byBleGl0IGdyYWNlZnVsbHkgYnkgc2lnbmFsaW5nIGVycm9y
Cj4gKyAqIHN0YXRlIGV0Yy4KPiArICogT25jZSBhbGwgdGhlIGNsaWVudHMgYXJlIGdvbmUgZnJv
bnRlbmQgY2FuIHJlaW5pdGlhbGl6ZSB0aGUgdmlydHVhbGl6ZWQKPiArICogZGV2aWNlIGFuZCBn
ZXQgaW50byBYZW5idXNTdGF0ZUluaXRpYWxpc2luZyBzdGF0ZSBhZ2FpbiBzaWduYWxpbmcgdGhl
Cj4gKyAqIGJhY2tlbmQgdGhhdCBhIG5ldyBjb25uZWN0aW9uIGNhbiBiZSBtYWRlLgo+ICsgKgo+
ICsgKiBUaGVyZSBhcmUgbXVsdGlwbGUgY29uZGl0aW9ucyBwb3NzaWJsZSB1bmRlciB3aGljaCBm
cm9udGVuZCB3aWxsIGdvIGZyb20KPiArICogWGVuYnVzU3RhdGVSZWNvbmZpZ3VyaW5nIGludG8g
WGVuYnVzU3RhdGVJbml0aWFsaXNpbmcsIHNvbWUgb2YgdGhlbSBhcmUgT1MKPiArICogc3BlY2lm
aWMuIEZvciBleGFtcGxlOgo+ICsgKiAxLiBUaGUgdW5kZXJseWluZyBPUyBmcmFtZXdvcmsgbWF5
IHByb3ZpZGUgY2FsbGJhY2tzIHRvIHNpZ25hbCB0aGF0IHRoZSBsYXN0Cj4gKyAqICAgIGNsaWVu
dCBvZiB0aGUgdmlydHVhbGl6ZWQgZGV2aWNlIGhhcyBnb25lIGFuZCB0aGUgZGV2aWNlIGNhbiBi
ZSByZW1vdmVkCj4gKyAqIDIuIEZyb250ZW5kIGNhbiBzY2hlZHVsZSBhIGRlZmVycmVkIHdvcmsg
KHRpbWVyL3Rhc2tsZXQvd29ya3F1ZXVlKQo+ICsgKiAgICB0byBwZXJpb2RpY2FsbHkgY2hlY2sg
aWYgdGhpcyBpcyB0aGUgcmlnaHQgdGltZSB0byByZS10cnkgcmVtb3ZhbCBvZgo+ICsgKiAgICB0
aGUgdmlydHVhbGl6ZWQgZGV2aWNlLgo+ICsgKiAzLiBCeSBhbnkgb3RoZXIgbWVhbnMuCj4gKyAq
Cj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKPiArICogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFBDTSBGT1JNQVRTCj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiArICoKPiArICogWEVO
U05EX1BDTV9GT1JNQVRfPGZvcm1hdD5bXzxlbmRpYW4+XQo+ICsgKgo+ICsgKiBmb3JtYXQ6IDxT
L1UvRj48Yml0cz4gb3IgPG5hbWU+Cj4gKyAqICAgICBTIC0gc2lnbmVkLCBVIC0gdW5zaWduZWQs
IEYgLSBmbG9hdAo+ICsgKiAgICAgYml0cyAtIDgsIDE2LCAyNCwgMzIKPiArICogICAgIG5hbWUg
LSBNVV9MQVcsIEdTTSwgZXRjLgo+ICsgKgo+ICsgKiBlbmRpYW46IDxMRS9CRT4sIG1heSBiZSBh
YnNlbnQKPiArICogICAgIExFIC0gTGl0dGxlIGVuZGlhbiwgQkUgLSBCaWcgZW5kaWFuCj4gKyAq
Lwo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1M4ICAgICAgICAgICAgMAo+ICsjZGVmaW5l
IFhFTlNORF9QQ01fRk9STUFUX1U4ICAgICAgICAgICAgMQo+ICsjZGVmaW5lIFhFTlNORF9QQ01f
Rk9STUFUX1MxNl9MRSAgICAgICAgMgo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MxNl9C
RSAgICAgICAgMwo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UxNl9MRSAgICAgICAgNAo+
ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UxNl9CRSAgICAgICAgNQo+ICsjZGVmaW5lIFhF
TlNORF9QQ01fRk9STUFUX1MyNF9MRSAgICAgICAgNgo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9S
TUFUX1MyNF9CRSAgICAgICAgNwo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UyNF9MRSAg
ICAgICAgOAo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UyNF9CRSAgICAgICAgOQo+ICsj
ZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MzMl9MRSAgICAgICAgMTAKPiArI2RlZmluZSBYRU5T
TkRfUENNX0ZPUk1BVF9TMzJfQkUgICAgICAgIDExCj4gKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JN
QVRfVTMyX0xFICAgICAgICAxMgo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UzMl9CRSAg
ICAgICAgMTMKPiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9GMzJfTEUgICAgICAgIDE0IC8q
IDQtYnl0ZSBmbG9hdCwgSUVFRS03NTQgMzItYml0LCAqLwo+ICsjZGVmaW5lIFhFTlNORF9QQ01f
Rk9STUFUX0YzMl9CRSAgICAgICAgMTUgLyogcmFuZ2UgLTEuMCB0byAxLjAgICAgICAgICAgICAg
ICovCj4gKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfRjY0X0xFICAgICAgICAxNiAvKiA4LWJ5
dGUgZmxvYXQsIElFRUUtNzU0IDY0LWJpdCwgKi8KPiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1B
VF9GNjRfQkUgICAgICAgIDE3IC8qIHJhbmdlIC0xLjAgdG8gMS4wICAgICAgICAgICAgICAqLwo+
ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0lFQzk1OF9TVUJGUkFNRV9MRSAxOAo+ICsjZGVm
aW5lIFhFTlNORF9QQ01fRk9STUFUX0lFQzk1OF9TVUJGUkFNRV9CRSAxOQo+ICsjZGVmaW5lIFhF
TlNORF9QQ01fRk9STUFUX01VX0xBVyAgICAgICAgMjAKPiArI2RlZmluZSBYRU5TTkRfUENNX0ZP
Uk1BVF9BX0xBVyAgICAgICAgIDIxCj4gKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfSU1BX0FE
UENNICAgICAyMgo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX01QRUcgICAgICAgICAgMjMK
PiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9HU00gICAgICAgICAgIDI0Cj4gKwo+ICsvKgo+
ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSRVFVRVNUIENPREVTCj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiArICovCj4gKyNkZWZp
bmUgWEVOU05EX09QX09QRU4gICAgICAgICAgICAgICAgICAwCj4gKyNkZWZpbmUgWEVOU05EX09Q
X0NMT1NFICAgICAgICAgICAgICAgICAxCj4gKyNkZWZpbmUgWEVOU05EX09QX1JFQUQgICAgICAg
ICAgICAgICAgICAyCj4gKyNkZWZpbmUgWEVOU05EX09QX1dSSVRFICAgICAgICAgICAgICAgICAz
Cj4gKyNkZWZpbmUgWEVOU05EX09QX1NFVF9WT0xVTUUgICAgICAgICAgICA0Cj4gKyNkZWZpbmUg
WEVOU05EX09QX0dFVF9WT0xVTUUgICAgICAgICAgICA1Cj4gKyNkZWZpbmUgWEVOU05EX09QX01V
VEUgICAgICAgICAgICAgICAgICA2Cj4gKyNkZWZpbmUgWEVOU05EX09QX1VOTVVURSAgICAgICAg
ICAgICAgICA3Cj4gKwo+ICsvKgo+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAqICAgICAg
ICAgICAgICAgWEVOU1RPUkUgRklFTEQgQU5EIFBBVEggTkFNRSBTVFJJTkdTLCBIRUxQRVJTCj4g
KyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKPiArICovCj4gKyNkZWZpbmUgWEVOU05EX0RSSVZFUl9O
QU1FICAgICAgICAgICAgICAidnNuZCIKPiArCj4gKyNkZWZpbmUgWEVOU05EX0xJU1RfU0VQQVJB
VE9SICAgICAgICAgICAiLCIKPiArLyogRmllbGQgbmFtZXMgKi8KPiArI2RlZmluZSBYRU5TTkRf
RklFTERfQkVfVkVSU0lPTlMgICAgICAgICJ2ZXJzaW9ucyIKPiArI2RlZmluZSBYRU5TTkRfRklF
TERfRkVfVkVSU0lPTiAgICAgICAgICJ2ZXJzaW9uIgo+ICsjZGVmaW5lIFhFTlNORF9GSUVMRF9W
Q0FSRF9TSE9SVF9OQU1FICAgInNob3J0LW5hbWUiCj4gKyNkZWZpbmUgWEVOU05EX0ZJRUxEX1ZD
QVJEX0xPTkdfTkFNRSAgICAibG9uZy1uYW1lIgo+ICsjZGVmaW5lIFhFTlNORF9GSUVMRF9SSU5H
X1JFRiAgICAgICAgICAgInJpbmctcmVmIgo+ICsjZGVmaW5lIFhFTlNORF9GSUVMRF9FVlRfQ0hO
TCAgICAgICAgICAgImV2ZW50LWNoYW5uZWwiCj4gKyNkZWZpbmUgWEVOU05EX0ZJRUxEX0RFVklD
RV9OQU1FICAgICAgICAibmFtZSIKPiArI2RlZmluZSBYRU5TTkRfRklFTERfVFlQRSAgICAgICAg
ICAgICAgICJ0eXBlIgo+ICsjZGVmaW5lIFhFTlNORF9GSUVMRF9TVFJFQU1fVU5JUVVFX0lEICAg
InVuaXF1ZS1pZCIKPiArI2RlZmluZSBYRU5TTkRfRklFTERfQ0hBTk5FTFNfTUlOICAgICAgICJj
aGFubmVscy1taW4iCj4gKyNkZWZpbmUgWEVOU05EX0ZJRUxEX0NIQU5ORUxTX01BWCAgICAgICAi
Y2hhbm5lbHMtbWF4Igo+ICsjZGVmaW5lIFhFTlNORF9GSUVMRF9TQU1QTEVfUkFURVMgICAgICAg
InNhbXBsZS1yYXRlcyIKPiArI2RlZmluZSBYRU5TTkRfRklFTERfU0FNUExFX0ZPUk1BVFMgICAg
ICJzYW1wbGUtZm9ybWF0cyIKPiArI2RlZmluZSBYRU5TTkRfRklFTERfQlVGRkVSX1NJWkUgICAg
ICAgICJidWZmZXItc2l6ZSIKPiArCj4gKy8qIFN0cmVhbSB0eXBlIGZpZWxkIHZhbHVlcy4gKi8K
PiArI2RlZmluZSBYRU5TTkRfU1RSRUFNX1RZUEVfUExBWUJBQ0sgICAgICJwIgo+ICsjZGVmaW5l
IFhFTlNORF9TVFJFQU1fVFlQRV9DQVBUVVJFICAgICAgImMiCj4gKy8qIFNhbXBsZSByYXRlIG1h
eCBzdHJpbmcgbGVuZ3RoICovCj4gKyNkZWZpbmUgWEVOU05EX1NBTVBMRV9SQVRFX01BWF9MRU4g
ICAgICAxMQo+ICsvKiBTYW1wbGUgZm9ybWF0IGZpZWxkIHZhbHVlcyAqLwo+ICsjZGVmaW5lIFhF
TlNORF9TQU1QTEVfRk9STUFUX01BWF9MRU4gICAgMjQKPiArCj4gKyNkZWZpbmUgWEVOU05EX1BD
TV9GT1JNQVRfUzhfU1RSICAgICAgICAiczgiCj4gKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRf
VThfU1RSICAgICAgICAidTgiCj4gKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzE2X0xFX1NU
UiAgICAiczE2X2xlIgo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MxNl9CRV9TVFIgICAg
InMxNl9iZSIKPiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VMTZfTEVfU1RSICAgICJ1MTZf
bGUiCj4gKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTE2X0JFX1NUUiAgICAidTE2X2JlIgo+
ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MyNF9MRV9TVFIgICAgInMyNF9sZSIKPiArI2Rl
ZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMjRfQkVfU1RSICAgICJzMjRfYmUiCj4gKyNkZWZpbmUg
WEVOU05EX1BDTV9GT1JNQVRfVTI0X0xFX1NUUiAgICAidTI0X2xlIgo+ICsjZGVmaW5lIFhFTlNO
RF9QQ01fRk9STUFUX1UyNF9CRV9TVFIgICAgInUyNF9iZSIKPiArI2RlZmluZSBYRU5TTkRfUENN
X0ZPUk1BVF9TMzJfTEVfU1RSICAgICJzMzJfbGUiCj4gKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JN
QVRfUzMyX0JFX1NUUiAgICAiczMyX2JlIgo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1Uz
Ml9MRV9TVFIgICAgInUzMl9sZSIKPiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VMzJfQkVf
U1RSICAgICJ1MzJfYmUiCj4gKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfRjMyX0xFX1NUUiAg
ICAiZmxvYXRfbGUiCj4gKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfRjMyX0JFX1NUUiAgICAi
ZmxvYXRfYmUiCj4gKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfRjY0X0xFX1NUUiAgICAiZmxv
YXQ2NF9sZSIKPiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9GNjRfQkVfU1RSICAgICJmbG9h
dDY0X2JlIgo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0lFQzk1OF9TVUJGUkFNRV9MRV9T
VFIgImllYzk1OF9zdWJmcmFtZV9sZSIKPiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9JRUM5
NThfU1VCRlJBTUVfQkVfU1RSICJpZWM5NThfc3ViZnJhbWVfYmUiCj4gKyNkZWZpbmUgWEVOU05E
X1BDTV9GT1JNQVRfTVVfTEFXX1NUUiAgICAibXVfbGF3Igo+ICsjZGVmaW5lIFhFTlNORF9QQ01f
Rk9STUFUX0FfTEFXX1NUUiAgICAgImFfbGF3Igo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFU
X0lNQV9BRFBDTV9TVFIgImltYV9hZHBjbSIKPiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9N
UEVHX1NUUiAgICAgICJtcGVnIgo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0dTTV9TVFIg
ICAgICAgImdzbSIKPiArCj4gKwo+ICsvKgo+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAq
ICAgICAgICAgICAgICAgICAgICAgICAgICBTVEFUVVMgUkVUVVJOIENPREVTCj4gKyAqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKPiArICoKPiArICogU3RhdHVzIHJldHVybiBjb2RlIGlzIHplcm8gb24g
c3VjY2VzcyBhbmQgLVhFTl9FWFggb24gZmFpbHVyZS4KPiArICoKPiArICoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFzc3VtcHRpb25zCj4g
KyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKPiArICogbyB1c2FnZSBvZiBncmFudCByZWZlcmVuY2Ug
MCBhcyBpbnZhbGlkIGdyYW50IHJlZmVyZW5jZToKPiArICogICBncmFudCByZWZlcmVuY2UgMCBp
cyB2YWxpZCwgYnV0IG5ldmVyIGV4cG9zZWQgdG8gYSBQViBkcml2ZXIsCj4gKyAqICAgYmVjYXVz
ZSBvZiB0aGUgZmFjdCBpdCBpcyBhbHJlYWR5IGluIHVzZS9yZXNlcnZlZCBieSB0aGUgUFYgY29u
c29sZS4KPiArICogbyBhbGwgcmVmZXJlbmNlcyBpbiB0aGlzIGRvY3VtZW50IHRvIHBhZ2Ugc2l6
ZXMgbXVzdCBiZSB0cmVhdGVkCj4gKyAqICAgYXMgcGFnZXMgb2Ygc2l6ZSBYRU5fUEFHRV9TSVpF
IHVubGVzcyBvdGhlcndpc2Ugbm90ZWQuCj4gKyAqCj4gKyAqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
PiArICogICAgICAgRGVzY3JpcHRpb24gb2YgdGhlIHByb3RvY29sIGJldHdlZW4gZnJvbnRlbmQg
YW5kIGJhY2tlbmQgZHJpdmVyCj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiArICoKPiArICog
VGhlIHR3byBoYWx2ZXMgb2YgYSBQYXJhLXZpcnR1YWwgc291bmQgZHJpdmVyIGNvbW11bmljYXRl
IHdpdGgKPiArICogZWFjaCBvdGhlciB1c2luZyBzaGFyZWQgcGFnZXMgYW5kIGV2ZW50IGNoYW5u
ZWxzLgo+ICsgKiBTaGFyZWQgcGFnZSBjb250YWlucyBhIHJpbmcgd2l0aCByZXF1ZXN0L3Jlc3Bv
bnNlIHBhY2tldHMuCj4gKyAqCj4gKyAqIFBhY2tldHMsIHVzZWQgZm9yIGlucHV0L291dHB1dCBv
cGVyYXRpb25zLCBlLmcuIHJlYWQvd3JpdGUsIHNldC9nZXQgdm9sdW1lLAo+ICsgKiBldGMuLCBw
cm92aWRlIG9mZnNldC9sZW5ndGggZmllbGRzIGluIG9yZGVyIHRvIGFsbG93IGFzeW5jaHJvbm91
cyBwcm90b2NvbAo+ICsgKiBvcGVyYXRpb24gd2l0aCBidWZmZXIgc3BhY2Ugc2hhcmluZzogcGFy
dCBvZiB0aGUgYnVmZmVyIGFsbG9jYXRlZCBhdAo+ICsgKiBYRU5TTkRfT1BfT1BFTiBjYW4gYmUg
dXNlZCBmb3IgYXVkaW8gc2FtcGxlcyBhbmQgcGFydCwgZm9yIGV4YW1wbGUsCj4gKyAqIGZvciB2
b2x1bWUgY29udHJvbC4KPiArICoKPiArICogQWxsIHJlc2VydmVkIGZpZWxkcyBpbiB0aGUgc3Ry
dWN0dXJlcyBiZWxvdyBtdXN0IGJlIDAuCj4gKyAqCj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSBSZXF1ZXN0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
PiArICoKPiArICogQWxsIHJlcXVlc3QgcGFja2V0cyBoYXZlIHRoZSBzYW1lIGxlbmd0aCAoMzIg
b2N0ZXRzKQo+ICsgKiBBbGwgcmVxdWVzdCBwYWNrZXRzIGhhdmUgY29tbW9uIGhlYWRlcjoKPiAr
ICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAg
ICAgICAzICAgICAgICBvY3RldAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAg
ICAgIGlkICAgICAgICAgICAgICAgIHwgICAgb3BlcmF0aW9uICAgfCAgICByZXNlcnZlZCAgICB8
IDQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4gKyAqICstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKwo+ICsgKiAgIGlkIC0gdWludDE2X3QsIHByaXZhdGUgZ3Vlc3QgdmFsdWUsIGVjaG9lZCBp
biByZXNwb25zZQo+ICsgKiAgIG9wZXJhdGlvbiAtIHVpbnQ4X3QsIG9wZXJhdGlvbiBjb2RlLCBY
RU5TTkRfT1BfPz8/Cj4gKyAqCj4gKyAqIEZvciBhbGwgcGFja2V0cyB3aGljaCB1c2Ugb2Zmc2V0
IGFuZCBsZW5ndGg6Cj4gKyAqICAgb2Zmc2V0IC0gdWludDMyX3QsIHJlYWQgb3Igd3JpdGUgZGF0
YSBvZmZzZXQgd2l0aGluIHRoZSBzaGFyZWQgYnVmZmVyLAo+ICsgKiAgICAgcGFzc2VkIHdpdGgg
WEVOU05EX09QX09QRU4gcmVxdWVzdCwgb2N0ZXRzLAo+ICsgKiAgICAgWzA7IFhFTlNORF9PUF9P
UEVOLmJ1ZmZlcl9zeiAtIDFdLgo+ICsgKiAgIGxlbmd0aCAtIHVpbnQzMl90LCByZWFkIG9yIHdy
aXRlIGRhdGEgbGVuZ3RoLCBvY3RldHMKPiArICoKPiArICogUmVxdWVzdCBvcGVuIC0gb3BlbiBh
IFBDTSBzdHJlYW0gZm9yIHBsYXliYWNrIG9yIGNhcHR1cmU6Cj4gKyAqCj4gKyAqICAgICAgICAg
MCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAg
ICAgb2N0ZXQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICBpZCAgICAg
ICAgICAgICAgICB8IFhFTlNORF9PUF9PUEVOIHwgICAgcmVzZXJ2ZWQgICAgfCA0Cj4gKyAqICst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICog
fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNtX3JhdGUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8IDEyCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICBwY21fZm9ybWF0ICAg
IHwgIHBjbV9jaGFubmVscyAgfCAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgIHwgMTYK
PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1
ZmZlcl9zeiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMAo+ICsgKiArLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZWZfZGlyZWN0b3J5ICAgICAg
ICAgICAgICAgICAgICAgICAgICB8IDI0Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgMjgKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+ICsgKiArLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMyCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKgo+
ICsgKiBwY21fcmF0ZSAtIHVpbnQzMl90LCBzdHJlYW0gZGF0YSByYXRlLCBIego+ICsgKiBwY21f
Zm9ybWF0IC0gdWludDhfdCwgWEVOU05EX1BDTV9GT1JNQVRfWFhYIHZhbHVlCj4gKyAqIHBjbV9j
aGFubmVscyAtIHVpbnQ4X3QsIG51bWJlciBvZiBjaGFubmVscyBvZiB0aGlzIHN0cmVhbSwKPiAr
ICogICBbY2hhbm5lbHMtbWluOyBjaGFubmVscy1tYXhdCj4gKyAqIGJ1ZmZlcl9zeiAtIHVpbnQz
Ml90LCBidWZmZXIgc2l6ZSB0byBiZSBhbGxvY2F0ZWQsIG9jdGV0cwo+ICsgKiBncmVmX2RpcmVj
dG9yeSAtIGdyYW50X3JlZl90LCBhIHJlZmVyZW5jZSB0byB0aGUgZmlyc3Qgc2hhcmVkIHBhZ2UK
PiArICogICBkZXNjcmliaW5nIHNoYXJlZCBidWZmZXIgcmVmZXJlbmNlcy4gQXQgbGVhc3Qgb25l
IHBhZ2UgZXhpc3RzLiBJZiBzaGFyZWQKPiArICogICBidWZmZXIgc2l6ZSAgKGJ1ZmZlcl9zeikg
ZXhjZWVkcyB3aGF0IGNhbiBiZSBhZGRyZXNzZWQgYnkgdGhpcyBzaW5nbGUgcGFnZSwKPiArICog
ICB0aGVuIHJlZmVyZW5jZSB0byB0aGUgbmV4dCBwYWdlIG11c3QgYmUgc3VwcGxpZWQgKHNlZSBn
cmVmX2Rpcl9uZXh0X3BhZ2UKPiArICogICBiZWxvdykKPiArICovCj4gKwo+ICtzdHJ1Y3QgeGVu
c25kX29wZW5fcmVxIHsKPiArICAgIHVpbnQzMl90IHBjbV9yYXRlOwo+ICsgICAgdWludDhfdCBw
Y21fZm9ybWF0Owo+ICsgICAgdWludDhfdCBwY21fY2hhbm5lbHM7Cj4gKyAgICB1aW50MTZfdCBy
ZXNlcnZlZDsKPiArICAgIHVpbnQzMl90IGJ1ZmZlcl9zejsKPiArICAgIGdyYW50X3JlZl90IGdy
ZWZfZGlyZWN0b3J5Owo+ICt9Owo+ICsKPiArLyoKPiArICogU2hhcmVkIHBhZ2UgZm9yIFhFTlNO
RF9PUF9PUEVOIGJ1ZmZlciBkZXNjcmlwdG9yIChncmVmX2RpcmVjdG9yeSBpbiB0aGUKPiArICog
ICByZXF1ZXN0KSBlbXBsb3lzIGEgbGlzdCBvZiBwYWdlcywgZGVzY3JpYmluZyBhbGwgcGFnZXMg
b2YgdGhlIHNoYXJlZCBkYXRhCj4gKyAqICAgYnVmZmVyOgo+ICsgKiAgICAgICAgIDAgICAgICAg
ICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0
Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZl9k
aXJfbmV4dF9wYWdlICAgICAgICAgICAgICAgICAgICAgICAgIHwgNAo+ICsgKiArLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZWZbMF0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8IDgKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvfAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdyZWZbaV0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGkqNCs4Cj4gKyAqICst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKwo+ICsgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZWZbTiAtIDFdICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCBOKjQrOAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICoKPiArICogZ3JlZl9kaXJf
bmV4dF9wYWdlIC0gZ3JhbnRfcmVmX3QsIHJlZmVyZW5jZSB0byB0aGUgbmV4dCBwYWdlIGRlc2Ny
aWJpbmcKPiArICogICBwYWdlIGRpcmVjdG9yeS4gTXVzdCBiZSAwIGlmIHRoZXJlIGFyZSBubyBt
b3JlIHBhZ2VzIGluIHRoZSBsaXN0Lgo+ICsgKiBncmVmW2ldIC0gZ3JhbnRfcmVmX3QsIHJlZmVy
ZW5jZSB0byBhIHNoYXJlZCBwYWdlIG9mIHRoZSBidWZmZXIKPiArICogICBhbGxvY2F0ZWQgYXQg
WEVOU05EX09QX09QRU4KPiArICoKPiArICogTnVtYmVyIG9mIGdyYW50X3JlZl90IGVudHJpZXMg
aW4gdGhlIHdob2xlIHBhZ2UgZGlyZWN0b3J5IGlzIG5vdAo+ICsgKiBwYXNzZWQsIGJ1dCBpbnN0
ZWFkIGNhbiBiZSBjYWxjdWxhdGVkIGFzOgo+ICsgKiAgIG51bV9ncmVmc190b3RhbCA9IChYRU5T
TkRfT1BfT1BFTi5idWZmZXJfc3ogKyBYRU5fUEFHRV9TSVpFIC0gMSkgLwo+ICsgKiAgICAgICBY
RU5fUEFHRV9TSVpFCj4gKyAqLwo+ICsKPiArc3RydWN0IHhlbnNuZF9wYWdlX2RpcmVjdG9yeSB7
Cj4gKyAgICBncmFudF9yZWZfdCBncmVmX2Rpcl9uZXh0X3BhZ2U7Cj4gKyAgICBncmFudF9yZWZf
dCBncmVmWzFdOyAvKiBWYXJpYWJsZSBsZW5ndGggKi8KPiArfTsKPiArCj4gKy8qCj4gKyAqICBS
ZXF1ZXN0IGNsb3NlIC0gY2xvc2UgYW4gb3BlbmVkIHBjbSBzdHJlYW06Cj4gKyAqICAgICAgICAg
MCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAg
ICAgb2N0ZXQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICBpZCAgICAg
ICAgICAgICAgICB8IFhFTlNORF9PUF9DTE9TRXwgICAgcmVzZXJ2ZWQgICAgfCA0Cj4gKyAqICst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICog
fC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC98Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzIKPiAr
ICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rCj4gKyAqCj4gKyAqIFJlcXVlc3QgcmVhZC93cml0ZSAtIHVzZWQgZm9y
IHJlYWQgKGZvciBjYXB0dXJlKSBvciB3cml0ZSAoZm9yIHBsYXliYWNrKToKPiArICogICAgICAg
ICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAg
ICAgICBvY3RldAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgIGlkICAg
ICAgICAgICAgICAgIHwgICBvcGVyYXRpb24gICAgfCAgICByZXNlcnZlZCAgICB8IDQKPiArICog
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsg
KiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgMTIKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZW5ndGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAx
Ngo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIwCj4gKyAqICstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKwo+ICsgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAzMgo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICoKPiArICogb3BlcmF0aW9uIC0gWEVOU05E
X09QX1JFQUQgZm9yIHJlYWQgb3IgWEVOU05EX09QX1dSSVRFIGZvciB3cml0ZQo+ICsgKi8KPiAr
Cj4gK3N0cnVjdCB4ZW5zbmRfcndfcmVxIHsKPiArICAgIHVpbnQzMl90IG9mZnNldDsKPiArICAg
IHVpbnQzMl90IGxlbmd0aDsKPiArfTsKPiArCj4gKy8qCj4gKyAqIFJlcXVlc3Qgc2V0L2dldCB2
b2x1bWUgLSBzZXQvZ2V0IGNoYW5uZWxzJyB2b2x1bWUgb2YgdGhlIHN0cmVhbSBnaXZlbjoKPiAr
ICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAg
ICAgICAzICAgICAgICBvY3RldAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAg
ICAgIGlkICAgICAgICAgICAgICAgIHwgICBvcGVyYXRpb24gICAgfCAgICByZXNlcnZlZCAgICB8
IDQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4gKyAqICstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgMTIKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAxNgo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4gKyAqICst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzIKPiArICogKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAq
Cj4gKyAqIG9wZXJhdGlvbiAtIFhFTlNORF9PUF9TRVRfVk9MVU1FIGZvciB2b2x1bWUgc2V0Cj4g
KyAqICAgb3IgWEVOU05EX09QX0dFVF9WT0xVTUUgZm9yIHZvbHVtZSBnZXQKPiArICogQnVmZmVy
IHBhc3NlZCB3aXRoIFhFTlNORF9PUF9PUEVOIGlzIHVzZWQgdG8gZXhjaGFuZ2Ugdm9sdW1lCj4g
KyAqIHZhbHVlczoKPiArICoKPiArICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAg
ICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAo+ICsgKiArLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbFswXSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8IDQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvfAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2hhbm5lbFtpXSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGkqNAo+ICsgKiArLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSsKPiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbFtOIC0gMV0gICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgKE4tMSkqNAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICoKPiArICogTiA9IFhFTlNO
RF9PUF9PUEVOLnBjbV9jaGFubmVscwo+ICsgKiBpIC0gdWludDhfdCwgaW5kZXggb2YgYSBjaGFu
bmVsCj4gKyAqIGNoYW5uZWxbaV0gLSBzaW50MzJfdCwgdm9sdW1lIG9mIGktdGggY2hhbm5lbAo+
ICsgKiBWb2x1bWUgaXMgZXhwcmVzc2VkIGFzIGEgc2lnbmVkIHZhbHVlIGluIHN0ZXBzIG9mIDAu
MDAxIGRCLAo+ICsgKiB3aGlsZSAwIGJlaW5nIDAgZEIuCj4gKyAqCj4gKyAqIFJlcXVlc3QgbXV0
ZS91bm11dGUgLSBtdXRlL3VubXV0ZSBzdHJlYW06Cj4gKyAqICAgICAgICAgMCAgICAgICAgICAg
ICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPiAr
ICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8
ICAgb3BlcmF0aW9uICAgIHwgICAgcmVzZXJ2ZWQgICAgfCA0Cj4gKyAqICstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+
ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgOAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG9mZnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
IDEyCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGVuZ3RoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYKPiArICogKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rCj4gKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IDMyCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKgo+ICsgKiBvcGVyYXRpb24gLSBYRU5T
TkRfT1BfTVVURSBmb3IgbXV0ZSBvciBYRU5TTkRfT1BfVU5NVVRFIGZvciB1bm11dGUKPiArICog
QnVmZmVyIHBhc3NlZCB3aXRoIFhFTlNORF9PUF9PUEVOIGlzIHVzZWQgdG8gZXhjaGFuZ2UgbXV0
ZS91bm11dGUKPiArICogdmFsdWVzOgo+ICsgKgo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9jdGV0Cj4gKyAq
ICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVs
WzBdICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNAo+ICsgKiArLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiAr
ICogKy9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC98Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjaGFubmVsW2ldICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgaSo0
Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiArL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKPiArICogKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
Cj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsW04gLSAxXSAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAoTi0xKSo0Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKgo+ICsg
KiBOID0gWEVOU05EX09QX09QRU4ucGNtX2NoYW5uZWxzCj4gKyAqIGkgLSB1aW50OF90LCBpbmRl
eCBvZiBhIGNoYW5uZWwKPiArICogY2hhbm5lbFtpXSAtIHVpbnQ4X3QsIG5vbi16ZXJvIGlmIGkt
dGggY2hhbm5lbCBuZWVkcyB0byBiZSBtdXRlZC91bm11dGVkCj4gKyAqCj4gKyAqLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE4uQi4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KPiArICoKPiArICogVGhlICdzdHJ1Y3QgeGVuc25kX3J3X3JlcScgaXMgYWxz
byB1c2VkIGZvciBYRU5TTkRfT1BfU0VUX1ZPTFVNRSwKPiArICogWEVOU05EX09QX0dFVF9WT0xV
TUUsIFhFTlNORF9PUF9NVVRFLCBYRU5TTkRfT1BfVU5NVVRFLgo+ICsgKi8KPiArCj4gKy8qCj4g
KyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSZXNwb25zZXMgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoKPiArICogQWxsIHJlc3BvbnNlIHBhY2tldHMg
aGF2ZSB0aGUgc2FtZSBsZW5ndGggKDMyIG9jdGV0cykKPiArICoKPiArICogUmVzcG9uc2UgZm9y
IGFsbCByZXF1ZXN0czoKPiArICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAg
ICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAo+ICsgKiArLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsK
PiArICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwgICAgb3BlcmF0aW9uICAg
fCAgICByZXNlcnZlZCAgICB8IDQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGF0dXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCA4Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIKPiArICogKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rCj4gKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IDMyCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKgo+ICsgKiBpZCAtIHVpbnQxNl90LCBj
b3BpZWQgZnJvbSB0aGUgcmVxdWVzdAo+ICsgKiBvcGVyYXRpb24gLSB1aW50OF90LCBYRU5TTkRf
T1BfKiAtIGNvcGllZCBmcm9tIHJlcXVlc3QKPiArICogc3RhdHVzIC0gaW50MzJfdCwgcmVzcG9u
c2Ugc3RhdHVzLCB6ZXJvIG9uIHN1Y2Nlc3MgYW5kIC1YRU5fRVhYIG9uIGZhaWx1cmUKPiArICov
Cj4gKwo+ICtzdHJ1Y3QgeGVuc25kX3JlcSB7Cj4gKyAgICB1aW50MTZfdCBpZDsKPiArICAgIHVp
bnQ4X3Qgb3BlcmF0aW9uOwo+ICsgICAgdWludDhfdCByZXNlcnZlZFs1XTsKPiArICAgIHVuaW9u
IHsKPiArICAgICAgICBzdHJ1Y3QgeGVuc25kX29wZW5fcmVxIG9wZW47Cj4gKyAgICAgICAgc3Ry
dWN0IHhlbnNuZF9yd19yZXEgcnc7Cj4gKyAgICAgICAgdWludDhfdCByZXNlcnZlZFsyNF07Cj4g
KyAgICB9IG9wOwo+ICt9Owo+ICsKPiArc3RydWN0IHhlbnNuZF9yZXNwIHsKPiArICAgIHVpbnQx
Nl90IGlkOwo+ICsgICAgdWludDhfdCBvcGVyYXRpb247Cj4gKyAgICB1aW50OF90IHJlc2VydmVk
Owo+ICsgICAgaW50MzJfdCBzdGF0dXM7Cj4gKyAgICB1aW50OF90IHJlc2VydmVkMVsyNF07Cj4g
K307Cj4gKwo+ICtERUZJTkVfUklOR19UWVBFUyh4ZW5fc25kaWYsIHN0cnVjdCB4ZW5zbmRfcmVx
LCBzdHJ1Y3QgeGVuc25kX3Jlc3ApOwo+ICsKPiArI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19JT19T
TkRJRl9IX18gKi8KPiArCj4gKy8qCj4gKyAqIExvY2FsIHZhcmlhYmxlczoKPiArICogbW9kZTog
Qwo+ICsgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCj4gKyAqIGMtYmFzaWMtb2Zmc2V0OiA0Cj4gKyAq
IHRhYi13aWR0aDogNAo+ICsgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKPiArICogRW5kOgo+ICsg
Ki8KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vaW8vdXNiaWYuaCBiL2luY2x1ZGUveGVuL2lv
L3VzYmlmLmgKPiBpbmRleCAwYWYyYTM4Li5jNmE1ODYzIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUv
eGVuL2lvL3VzYmlmLmgKPiArKysgYi9pbmNsdWRlL3hlbi9pby91c2JpZi5oCj4gQEAgLTMxLDYg
KzMxLDc2IEBACj4gICNpbmNsdWRlICJyaW5nLmgiCj4gICNpbmNsdWRlICIuLi9ncmFudF90YWJs
ZS5oIgo+ICAKPiArLyoKPiArICogRmVhdHVyZSBhbmQgUGFyYW1ldGVyIE5lZ290aWF0aW9uCj4g
KyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+ICsgKiBUaGUgdHdvIGhhbHZl
cyBvZiBhIFhlbiBwdlVTQiBkcml2ZXIgdXRpbGl6ZSBub2RlcyB3aXRoaW4gdGhlIFhlblN0b3Jl
IHRvCj4gKyAqIGNvbW11bmljYXRlIGNhcGFiaWxpdGllcyBhbmQgdG8gbmVnb3RpYXRlIG9wZXJh
dGluZyBwYXJhbWV0ZXJzLiBUaGlzCj4gKyAqIHNlY3Rpb24gZW51bWVyYXRlcyB0aGVzZSBub2Rl
cyB3aGljaCByZXNpZGUgaW4gdGhlIHJlc3BlY3RpdmUgZnJvbnQgYW5kCj4gKyAqIGJhY2tlbmQg
cG9ydGlvbnMgb2YgdGhlIFhlblN0b3JlLCBmb2xsb3dpbmcgdGhlIFhlbkJ1cyBjb252ZW50aW9u
Lgo+ICsgKgo+ICsgKiBBbnkgc3BlY2lmaWVkIGRlZmF1bHQgdmFsdWUgaXMgaW4gZWZmZWN0IGlm
IHRoZSBjb3JyZXNwb25kaW5nIFhlbkJ1cyBub2RlCj4gKyAqIGlzIG5vdCBwcmVzZW50IGluIHRo
ZSBYZW5TdG9yZS4KPiArICoKPiArICogWGVuU3RvcmUgbm9kZXMgaW4gc2VjdGlvbnMgbWFya2Vk
ICJQUklWQVRFIiBhcmUgc29sZWx5IGZvciB1c2UgYnkgdGhlCj4gKyAqIGRyaXZlciBzaWRlIHdo
b3NlIFhlbkJ1cyB0cmVlIGNvbnRhaW5zIHRoZW0uCj4gKyAqCj4gKyAqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYWNrZW5kIFhlbkJ1cyBOb2Rl
cwo+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKPiArICoKPiArICotLS0tLS0tLS0tLS0tLS0tLS0g
QmFja2VuZCBEZXZpY2UgSWRlbnRpZmljYXRpb24gKFBSSVZBVEUpIC0tLS0tLS0tLS0tLS0tLS0t
LQo+ICsgKgo+ICsgKiBudW0tcG9ydHMKPiArICogICAgICBWYWx1ZXM6ICAgICAgICAgdW5zaWdu
ZWQgWzEuLi4zMV0KPiArICoKPiArICogICAgICBOdW1iZXIgb2YgcG9ydHMgZm9yIHRoaXMgKHZp
cnR1YWwpIFVTQiBob3N0IGNvbm5lY3Rvci4KPiArICoKPiArICogdXNiLXZlcgo+ICsgKiAgICAg
IFZhbHVlczogICAgICAgICB1bnNpZ25lZCBbMS4uLjJdCj4gKyAqCj4gKyAqICAgICAgVVNCIHZl
cnNpb24gb2YgdGhpcyBob3N0IGNvbm5lY3RvcjogMSA9IFVTQiAxLjEsIDIgPSBVU0IgMi4wLgo+
ICsgKgo+ICsgKiBwb3J0L1sxLi4uMzFdCj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIHN0cmlu
Zwo+ICsgKgo+ICsgKiAgICAgIFBoeXNpY2FsIFVTQiBkZXZpY2UgY29ubmVjdGVkIHRvIHRoZSBn
aXZlbiBwb3J0LCBlLmcuICIzLTEuNSIuCj4gKyAqCj4gKyAqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+
ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVuZCBYZW5CdXMgTm9kZXMKPiAr
ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCj4gKyAqCj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
UmVxdWVzdCBUcmFuc3BvcnQgUGFyYW1ldGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsg
Kgo+ICsgKiBldmVudC1jaGFubmVsCj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIHVuc2lnbmVk
Cj4gKyAqCj4gKyAqICAgICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIFhlbiBldmVudCBjaGFubmVs
IHVzZWQgdG8gc2lnbmFsIGFjdGl2aXR5Cj4gKyAqICAgICAgaW4gdGhlIHJpbmcgYnVmZmVyLgo+
ICsgKgo+ICsgKiB1cmItcmluZy1yZWYKPiArICogICAgICBWYWx1ZXM6ICAgICAgICAgdW5zaWdu
ZWQKPiArICoKPiArICogICAgICBUaGUgWGVuIGdyYW50IHJlZmVyZW5jZSBncmFudGluZyBwZXJt
aXNzaW9uIGZvciB0aGUgYmFja2VuZCB0byBtYXAKPiArICogICAgICB0aGUgc29sZSBwYWdlIGlu
IGEgc2luZ2xlIHBhZ2Ugc2l6ZWQgcmluZyBidWZmZXIuIFRoaXMgaXMgdGhlIHJpbmcKPiArICog
ICAgICBidWZmZXIgZm9yIHVyYiByZXF1ZXN0cy4KPiArICoKPiArICogY29ubi1yaW5nLXJlZgo+
ICsgKiAgICAgIFZhbHVlczogICAgICAgICB1bnNpZ25lZAo+ICsgKgo+ICsgKiAgICAgIFRoZSBY
ZW4gZ3JhbnQgcmVmZXJlbmNlIGdyYW50aW5nIHBlcm1pc3Npb24gZm9yIHRoZSBiYWNrZW5kIHRv
IG1hcAo+ICsgKiAgICAgIHRoZSBzb2xlIHBhZ2UgaW4gYSBzaW5nbGUgcGFnZSBzaXplZCByaW5n
IGJ1ZmZlci4gVGhpcyBpcyB0aGUgcmluZwo+ICsgKiAgICAgIGJ1ZmZlciBmb3IgY29ubmVjdGlv
bi9kaXNjb25uZWN0aW9uIHJlcXVlc3RzLgo+ICsgKgo+ICsgKiBwcm90b2NvbAo+ICsgKiAgICAg
IFZhbHVlczogICAgICAgICBzdHJpbmcgKFhFTl9JT19QUk9UT19BQklfKikKPiArICogICAgICBE
ZWZhdWx0IFZhbHVlOiAgWEVOX0lPX1BST1RPX0FCSV9OQVRJVkUKPiArICoKPiArICogICAgICBU
aGUgbWFjaGluZSBBQkkgcnVsZXMgZ292ZXJuaW5nIHRoZSBmb3JtYXQgb2YgYWxsIHJpbmcgcmVx
dWVzdCBhbmQKPiArICogICAgICByZXNwb25zZSBzdHJ1Y3R1cmVzLgo+ICsgKgo+ICsgKi8KPiAr
Cj4gIGVudW0gdXNiX3NwZWNfdmVyc2lvbiB7Cj4gIAlVU0JfVkVSX1VOS05PV04gPSAwLAo+ICAJ
VVNCX1ZFUl9VU0IxMSwKPiBAQCAtNDEsMzcgKzExMSw2NiBAQCBlbnVtIHVzYl9zcGVjX3ZlcnNp
b24gewo+ICAvKgo+ICAgKiAgVVNCIHBpcGUgaW4gdXNiaWZfcmVxdWVzdAo+ICAgKgo+IC0gKiAg
Yml0cyAwLTUgYXJlIHNwZWNpZmljIGJpdHMgZm9yIHZpcnR1YWwgVVNCIGRyaXZlci4KPiAtICog
IGJpdHMgNy0zMSBhcmUgc3RhbmRhcmQgdXJiIHBpcGUuCj4gLSAqCj4gLSAqICAtIHBvcnQgbnVt
YmVyKE5FVyk6CWJpdHMgMC00Cj4gLSAqICAJCQkJKFVTQl9NQVhDSElMRFJFTiBpcyAzMSkKPiAr
ICogIC0gcG9ydCBudW1iZXI6CWJpdHMgMC00Cj4gKyAqCQkJCShVU0JfTUFYQ0hJTERSRU4gaXMg
MzEpCj4gICAqCj4gLSAqICAtIG9wZXJhdGlvbiBmbGFnKE5FVyk6CWJpdCA1Cj4gLSAqICAJCQkJ
KDAgPSBzdWJtaXQgdXJiLAo+IC0gKiAgCQkJCSAxID0gdW5saW5rIHVyYikKPiArICogIC0gb3Bl
cmF0aW9uIGZsYWc6CWJpdCA1Cj4gKyAqCQkJCSgwID0gc3VibWl0IHVyYiwKPiArICoJCQkJIDEg
PSB1bmxpbmsgdXJiKQo+ICAgKgo+ICAgKiAgLSBkaXJlY3Rpb246CQliaXQgNwo+IC0gKiAgCQkJ
CSgwID0gSG9zdC10by1EZXZpY2UgW091dF0KPiAtICogICAgICAgICAgICAgICAgICAgICAgICAg
ICAxID0gRGV2aWNlLXRvLUhvc3QgW0luXSkKPiArICoJCQkJKDAgPSBIb3N0LXRvLURldmljZSBb
T3V0XQo+ICsgKgkJCQkgMSA9IERldmljZS10by1Ib3N0IFtJbl0pCj4gICAqCj4gICAqICAtIGRl
dmljZSBhZGRyZXNzOgliaXRzIDgtMTQKPiAgICoKPiAgICogIC0gZW5kcG9pbnQ6CQliaXRzIDE1
LTE4Cj4gICAqCj4gLSAqICAtIHBpcGUgdHlwZToJCWJpdHMgMzAtMzEKPiAtICogIAkJCQkoMDAg
PSBpc29jaHJvbm91cywgMDEgPSBpbnRlcnJ1cHQsCj4gLSAqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMTAgPSBjb250cm9sLCAxMSA9IGJ1bGspCj4gKyAqICAtIHBpcGUgdHlwZToJYml0cyAz
MC0zMQo+ICsgKgkJCQkoMDAgPSBpc29jaHJvbm91cywgMDEgPSBpbnRlcnJ1cHQsCj4gKyAqCQkJ
CSAxMCA9IGNvbnRyb2wsIDExID0gYnVsaykKPiAgICovCj4gLSNkZWZpbmUgdXNiaWZfcGlwZXBv
cnRudW0ocGlwZSkgKChwaXBlKSAmIDB4MWYpCj4gLSNkZWZpbmUgdXNiaWZfc2V0cG9ydG51bV9w
aXBlKHBpcGUsIHBvcnRudW0pIFwKPiAtCSgocGlwZSl8KHBvcnRudW0pKQo+ICAKPiAtI2RlZmlu
ZSB1c2JpZl9waXBldW5saW5rKHBpcGUpICgocGlwZSkgJiAweDIwKQo+IC0jZGVmaW5lIHVzYmlm
X3BpcGVzdWJtaXQocGlwZSkgKCF1c2JpZl9waXBldW5saW5rKHBpcGUpKQo+IC0jZGVmaW5lIHVz
YmlmX3NldHVubGlua19waXBlKHBpcGUpICgocGlwZSl8KDB4MjApKQo+ICsjZGVmaW5lIFVTQklG
X1BJUEVfUE9SVF9NQVNLCTB4MDAwMDAwMWYKPiArI2RlZmluZSBVU0JJRl9QSVBFX1VOTElOSwkw
eDAwMDAwMDIwCj4gKyNkZWZpbmUgVVNCSUZfUElQRV9ESVIJCTB4MDAwMDAwODAKPiArI2RlZmlu
ZSBVU0JJRl9QSVBFX0RFVl9NQVNLCTB4MDAwMDAwN2YKPiArI2RlZmluZSBVU0JJRl9QSVBFX0RF
Vl9TSElGVAk4Cj4gKyNkZWZpbmUgVVNCSUZfUElQRV9FUF9NQVNLCTB4MDAwMDAwMGYKPiArI2Rl
ZmluZSBVU0JJRl9QSVBFX0VQX1NISUZUCTE1Cj4gKyNkZWZpbmUgVVNCSUZfUElQRV9UWVBFX01B
U0sJMHgwMDAwMDAwMwo+ICsjZGVmaW5lIFVTQklGX1BJUEVfVFlQRV9TSElGVAkzMAo+ICsjZGVm
aW5lIFVTQklGX1BJUEVfVFlQRV9JU09DCTAKPiArI2RlZmluZSBVU0JJRl9QSVBFX1RZUEVfSU5U
CTEKPiArI2RlZmluZSBVU0JJRl9QSVBFX1RZUEVfQ1RSTAkyCj4gKyNkZWZpbmUgVVNCSUZfUElQ
RV9UWVBFX0JVTEsJMwo+ICsKPiArI2RlZmluZSB1c2JpZl9waXBlcG9ydG51bShwaXBlKQkJCSgo
cGlwZSkgJiBVU0JJRl9QSVBFX1BPUlRfTUFTSykKPiArI2RlZmluZSB1c2JpZl9zZXRwb3J0bnVt
X3BpcGUocGlwZSwgcG9ydG51bSkJKChwaXBlKSB8IChwb3J0bnVtKSkKPiArCj4gKyNkZWZpbmUg
dXNiaWZfcGlwZXVubGluayhwaXBlKQkJCSgocGlwZSkgJiBVU0JJRl9QSVBFX1VOTElOSykKPiAr
I2RlZmluZSB1c2JpZl9waXBlc3VibWl0KHBpcGUpCQkJKCF1c2JpZl9waXBldW5saW5rKHBpcGUp
KQo+ICsjZGVmaW5lIHVzYmlmX3NldHVubGlua19waXBlKHBpcGUpCQkoKHBpcGUpIHwgVVNCSUZf
UElQRV9VTkxJTkspCj4gKwo+ICsjZGVmaW5lIHVzYmlmX3BpcGVpbihwaXBlKQkJCSgocGlwZSkg
JiBVU0JJRl9QSVBFX0RJUikKPiArI2RlZmluZSB1c2JpZl9waXBlb3V0KHBpcGUpCQkJKCF1c2Jp
Zl9waXBlaW4ocGlwZSkpCj4gKwo+ICsjZGVmaW5lIHVzYmlmX3BpcGVkZXZpY2UocGlwZSkJCQlc
Cj4gKwkJKCgocGlwZSkgPj4gVVNCSUZfUElQRV9ERVZfU0hJRlQpICYgVVNCSUZfUElQRV9ERVZf
TUFTSykKPiArCj4gKyNkZWZpbmUgdXNiaWZfcGlwZWVuZHBvaW50KHBpcGUpCQlcCj4gKwkJKCgo
cGlwZSkgPj4gVVNCSUZfUElQRV9FUF9TSElGVCkgJiBVU0JJRl9QSVBFX0VQX01BU0spCj4gKwo+
ICsjZGVmaW5lIHVzYmlmX3BpcGV0eXBlKHBpcGUpCQkJXAo+ICsJCSgoKHBpcGUpID4+IFVTQklG
X1BJUEVfVFlQRV9TSElGVCkgJiBVU0JJRl9QSVBFX1RZUEVfTUFTSykKPiArI2RlZmluZSB1c2Jp
Zl9waXBlaXNvYyhwaXBlKQkodXNiaWZfcGlwZXR5cGUocGlwZSkgPT0gVVNCSUZfUElQRV9UWVBF
X0lTT0MpCj4gKyNkZWZpbmUgdXNiaWZfcGlwZWludChwaXBlKQkodXNiaWZfcGlwZXR5cGUocGlw
ZSkgPT0gVVNCSUZfUElQRV9UWVBFX0lOVCkKPiArI2RlZmluZSB1c2JpZl9waXBlY3RybChwaXBl
KQkodXNiaWZfcGlwZXR5cGUocGlwZSkgPT0gVVNCSUZfUElQRV9UWVBFX0NUUkwpCj4gKyNkZWZp
bmUgdXNiaWZfcGlwZWJ1bGsocGlwZSkJKHVzYmlmX3BpcGV0eXBlKHBpcGUpID09IFVTQklGX1BJ
UEVfVFlQRV9CVUxLKQo+ICAKPiAgI2RlZmluZSBVU0JJRl9NQVhfU0VHTUVOVFNfUEVSX1JFUVVF
U1QgKDE2KQo+ICsjZGVmaW5lIFVTQklGX01BWF9QT1JUTlIJMzEKPiArI2RlZmluZSBVU0JJRl9S
SU5HX1NJWkUJNDA5Ngo+ICAKPiAgLyoKPiAgICogUklORyBmb3IgdHJhbnNmZXJyaW5nIHVyYnMu
Cj4gQEAgLTg5LDYgKzE4OCw3IEBAIHN0cnVjdCB1c2JpZl91cmJfcmVxdWVzdCB7Cj4gIAkvKiBi
YXNpYyB1cmIgcGFyYW1ldGVyICovCj4gIAl1aW50MzJfdCBwaXBlOwo+ICAJdWludDE2X3QgdHJh
bnNmZXJfZmxhZ3M7Cj4gKyNkZWZpbmUgVVNCSUZfU0hPUlRfTk9UX09LCTB4MDAwMQo+ICAJdWlu
dDE2X3QgYnVmZmVyX2xlbmd0aDsKPiAgCXVuaW9uIHsKPiAgCQl1aW50OF90IGN0cmxbOF07IC8q
IHNldHVwX3BhY2tldCAoQ3RybCkgKi8KPiBAQCAtMTI3LDcgKzIyNyw3IEBAIHN0cnVjdCB1c2Jp
Zl91cmJfcmVzcG9uc2Ugewo+ICB0eXBlZGVmIHN0cnVjdCB1c2JpZl91cmJfcmVzcG9uc2UgdXNi
aWZfdXJiX3Jlc3BvbnNlX3Q7Cj4gIAo+ICBERUZJTkVfUklOR19UWVBFUyh1c2JpZl91cmIsIHN0
cnVjdCB1c2JpZl91cmJfcmVxdWVzdCwgc3RydWN0IHVzYmlmX3VyYl9yZXNwb25zZSk7Cj4gLSNk
ZWZpbmUgVVNCX1VSQl9SSU5HX1NJWkUgX19DT05TVF9SSU5HX1NJWkUodXNiaWZfdXJiLCBQQUdF
X1NJWkUpCj4gKyNkZWZpbmUgVVNCX1VSQl9SSU5HX1NJWkUgX19DT05TVF9SSU5HX1NJWkUodXNi
aWZfdXJiLCBVU0JJRl9SSU5HX1NJWkUpCj4gIAo+ICAvKgo+ICAgKiBSSU5HIGZvciBub3RpZnlp
bmcgY29ubmVjdC9kaXNjb25uZWN0IGV2ZW50cyB0byBmcm9udGVuZAo+IEBAIC0xNDEsMTAgKzI0
MSwxNCBAQCBzdHJ1Y3QgdXNiaWZfY29ubl9yZXNwb25zZSB7Cj4gIAl1aW50MTZfdCBpZDsgLyog
cmVxdWVzdCBpZCAqLwo+ICAJdWludDhfdCBwb3J0bnVtOyAvKiBwb3J0IG51bWJlciAqLwo+ICAJ
dWludDhfdCBzcGVlZDsgLyogdXNiX2RldmljZV9zcGVlZCAqLwo+ICsjZGVmaW5lIFVTQklGX1NQ
RUVEX05PTkUJMAo+ICsjZGVmaW5lIFVTQklGX1NQRUVEX0xPVwkJMQo+ICsjZGVmaW5lIFVTQklG
X1NQRUVEX0ZVTEwJMgo+ICsjZGVmaW5lIFVTQklGX1NQRUVEX0hJR0gJMwo+ICB9Owo+ICB0eXBl
ZGVmIHN0cnVjdCB1c2JpZl9jb25uX3Jlc3BvbnNlIHVzYmlmX2Nvbm5fcmVzcG9uc2VfdDsKPiAg
Cj4gIERFRklORV9SSU5HX1RZUEVTKHVzYmlmX2Nvbm4sIHN0cnVjdCB1c2JpZl9jb25uX3JlcXVl
c3QsIHN0cnVjdCB1c2JpZl9jb25uX3Jlc3BvbnNlKTsKPiAtI2RlZmluZSBVU0JfQ09OTl9SSU5H
X1NJWkUgX19DT05TVF9SSU5HX1NJWkUodXNiaWZfY29ubiwgUEFHRV9TSVpFKQo+ICsjZGVmaW5l
IFVTQl9DT05OX1JJTkdfU0laRSBfX0NPTlNUX1JJTkdfU0laRSh1c2JpZl9jb25uLCBVU0JJRl9S
SU5HX1NJWkUpCj4gIAo+ICAjZW5kaWYgLyogX19YRU5fUFVCTElDX0lPX1VTQklGX0hfXyAqLwo+
IGRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9pby92c2NzaWlmLmggYi9pbmNsdWRlL3hlbi9pby92
c2NzaWlmLmgKPiBpbmRleCA3YTFkYjA1Li5kMGJkM2I1IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUv
eGVuL2lvL3ZzY3NpaWYuaAo+ICsrKyBiL2luY2x1ZGUveGVuL2lvL3ZzY3NpaWYuaAo+IEBAIC02
MCw3ICs2MCw3IEBACj4gICAqCj4gICAqICAgICAgQSBzdHJpbmcgc3BlY2lmeWluZyB0aGUgYmFj
a2VuZCBkZXZpY2U6IGVpdGhlciBhIDQtdHVwbGUgImg6Yzp0OmwiCj4gICAqICAgICAgKGhvc3Qs
IGNvbnRyb2xsZXIsIHRhcmdldCwgbHVuLCBhbGwgaW50ZWdlcnMpLCBvciBhIFdXTiAoZS5nLgo+
IC0gKiAgICAgICJuYWEuNjAwMTQwNTRhYzc4MDU4MiIpLgo+ICsgKiAgICAgICJuYWEuNjAwMTQw
NTRhYzc4MDU4MjowIikuCj4gICAqCj4gICAqIHYtZGV2Cj4gICAqICAgICAgVmFsdWVzOiAgICAg
ICAgIHN0cmluZwo+IEBAIC0xMDQsNiArMTA0LDc1IEBACj4gICAqICAgICAgcmVzcG9uc2Ugc3Ry
dWN0dXJlcy4KPiAgICovCj4gIAo+ICsvKgo+ICsgKiBYZW5zdG9yZSBmb3JtYXQgaW4gcHJhY3Rp
Y2UKPiArICogPT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4gKyAqIAo+ICsgKiBUaGUgYmFj
a2VuZCBkcml2ZXIgdXNlcyBhIHNpbmdsZV9ob3N0Om1hbnlfZGV2aWNlcyBub3RhdGlvbiB0byBt
YW5hZ2UgZG9tVQo+ICsgKiBkZXZpY2VzLiBFdmVyeXRoaW5nIGlzIHN0b3JlZCBpbiAvbG9jYWwv
ZG9tYWluLzxiYWNrZW5kX2RvbWlkPi9iYWNrZW5kL3ZzY3NpLy4KPiArICogVGhlIHhlbnN0b3Jl
IGxheW91dCBsb29rcyBsaWtlIHRoaXMgKGRvbTAgaXMgYXNzdW1lZCB0byBiZSB0aGUgYmFja2Vu
ZF9kb21pZCk6Cj4gKyAqIAo+ICsgKiAgICAgPGRvbWlkPi88dmhvc3Q+L2ZlYXR1cmUtaG9zdCA9
ICIwIgo+ICsgKiAgICAgPGRvbWlkPi88dmhvc3Q+L2Zyb250ZW5kID0gIi9sb2NhbC9kb21haW4v
PGRvbWlkPi9kZXZpY2UvdnNjc2kvMCIKPiArICogICAgIDxkb21pZD4vPHZob3N0Pi9mcm9udGVu
ZC1pZCA9ICI8ZG9taWQ+Igo+ICsgKiAgICAgPGRvbWlkPi88dmhvc3Q+L29ubGluZSA9ICIxIgo+
ICsgKiAgICAgPGRvbWlkPi88dmhvc3Q+L3N0YXRlID0gIjQiCj4gKyAqICAgICA8ZG9taWQ+Lzx2
aG9zdD4vdnNjc2ktZGV2cy9kZXYtMC9wLWRldiA9ICI4OjA6MjoxIiBvciAibmFhLnd3bjpsdW4i
Cj4gKyAqICAgICA8ZG9taWQ+Lzx2aG9zdD4vdnNjc2ktZGV2cy9kZXYtMC9zdGF0ZSA9ICI0Igo+
ICsgKiAgICAgPGRvbWlkPi88dmhvc3Q+L3ZzY3NpLWRldnMvZGV2LTAvdi1kZXYgPSAiMDowOjA6
MCIKPiArICogICAgIDxkb21pZD4vPHZob3N0Pi92c2NzaS1kZXZzL2Rldi0xL3AtZGV2ID0gIjg6
MDoyOjIiCj4gKyAqICAgICA8ZG9taWQ+Lzx2aG9zdD4vdnNjc2ktZGV2cy9kZXYtMS9zdGF0ZSA9
ICI0Igo+ICsgKiAgICAgPGRvbWlkPi88dmhvc3Q+L3ZzY3NpLWRldnMvZGV2LTEvdi1kZXYgPSAi
MDowOjE6MCIKPiArICogCj4gKyAqIFRoZSBmcm9udGVuZCBkcml2ZXIgbWFpbnRhaW5zIGl0cyBz
dGF0ZSBpbgo+ICsgKiAvbG9jYWwvZG9tYWluLzxkb21pZD4vZGV2aWNlL3ZzY3NpLy4KPiArICog
Cj4gKyAqICAgICA8dmhvc3Q+L2JhY2tlbmQgPSAiL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQvdnNj
c2kvPGRvbWlkPi88dmhvc3Q+Igo+ICsgKiAgICAgPHZob3N0Pi9iYWNrZW5kLWlkID0gIjAiCj4g
KyAqICAgICA8dmhvc3Q+L2V2ZW50LWNoYW5uZWwgPSAiMjAiCj4gKyAqICAgICA8dmhvc3Q+L3Jp
bmctcmVmID0gIjQzIgo+ICsgKiAgICAgPHZob3N0Pi9zdGF0ZSA9ICI0Igo+ICsgKiAgICAgPHZo
b3N0Pi92c2NzaS1kZXZzL2Rldi0wL3N0YXRlID0gIjQiCj4gKyAqICAgICA8dmhvc3Q+L3ZzY3Np
LWRldnMvZGV2LTEvc3RhdGUgPSAiNCIKPiArICogCj4gKyAqIEluIGFkZGl0aW9uIHRvIHRoZSBl
bnRyaWVzIGZvciBiYWNrZW5kIGFuZCBmcm9udGVuZCB0aGVzZSBmbGFncyBhcmUgc3RvcmVkCj4g
KyAqIGZvciB0aGUgdG9vbHN0YWNrOgo+ICsgKiAKPiArICogICAgIDxkb21pZD4vPHZob3N0Pi92
c2NzaS1kZXZzL2Rldi0xL3AtZGV2bmFtZSA9ICIvZGV2LyRkZXZpY2UiCj4gKyAqICAgICA8ZG9t
aWQ+Lzx2aG9zdD4vbGlieGxfY3RybF9pbmRleCA9ICIwIgo+ICsgKiAKPiArICogCj4gKyAqIEJh
Y2tlbmQvZnJvbnRlbmQgcHJvdG9jb2wKPiArICogPT09PT09PT09PT09PT09PT09PT09PT09PQo+
ICsgKiAKPiArICogVG8gY3JlYXRlIGEgdmhvc3QgYWxvbmcgd2l0aCBhIGRldmljZToKPiArICog
ICAgIDxkb21pZD4vPHZob3N0Pi9mZWF0dXJlLWhvc3QgPSAiMCIKPiArICogICAgIDxkb21pZD4v
PHZob3N0Pi9mcm9udGVuZCA9ICIvbG9jYWwvZG9tYWluLzxkb21pZD4vZGV2aWNlL3ZzY3NpLzAi
Cj4gKyAqICAgICA8ZG9taWQ+Lzx2aG9zdD4vZnJvbnRlbmQtaWQgPSAiPGRvbWlkPiIKPiArICog
ICAgIDxkb21pZD4vPHZob3N0Pi9vbmxpbmUgPSAiMSIKPiArICogICAgIDxkb21pZD4vPHZob3N0
Pi9zdGF0ZSA9ICIxIgo+ICsgKiAgICAgPGRvbWlkPi88dmhvc3Q+L3ZzY3NpLWRldnMvZGV2LTAv
cC1kZXYgPSAiODowOjI6MSIKPiArICogICAgIDxkb21pZD4vPHZob3N0Pi92c2NzaS1kZXZzL2Rl
di0wL3N0YXRlID0gIjEiCj4gKyAqICAgICA8ZG9taWQ+Lzx2aG9zdD4vdnNjc2ktZGV2cy9kZXYt
MC92LWRldiA9ICIwOjA6MDowIgo+ICsgKiBXYWl0IGZvciA8ZG9taWQ+Lzx2aG9zdD4vc3RhdGUg
KyA8ZG9taWQ+Lzx2aG9zdD4vdnNjc2ktZGV2cy9kZXYtMC9zdGF0ZSBiZWNvbWUgNAo+ICsgKiAK
PiArICogVG8gYWRkIGFub3RoZXIgZGV2aWNlIHRvIGEgdmhvc3Q6Cj4gKyAqICAgICA8ZG9taWQ+
Lzx2aG9zdD4vc3RhdGUgPSAiNyIKPiArICogICAgIDxkb21pZD4vPHZob3N0Pi92c2NzaS1kZXZz
L2Rldi0xL3AtZGV2ID0gIjg6MDoyOjIiCj4gKyAqICAgICA8ZG9taWQ+Lzx2aG9zdD4vdnNjc2kt
ZGV2cy9kZXYtMS9zdGF0ZSA9ICIxIgo+ICsgKiAgICAgPGRvbWlkPi88dmhvc3Q+L3ZzY3NpLWRl
dnMvZGV2LTEvdi1kZXYgPSAiMDowOjE6MCIKPiArICogV2FpdCBmb3IgPGRvbWlkPi88dmhvc3Q+
L3N0YXRlICsgPGRvbWlkPi88dmhvc3Q+L3ZzY3NpLWRldnMvZGV2LTEvc3RhdGUgYmVjb21lIDQK
PiArICogCj4gKyAqIFRvIHJlbW92ZSBhIGRldmljZSBmcm9tIGEgdmhvc3Q6Cj4gKyAqICAgICA8
ZG9taWQ+Lzx2aG9zdD4vc3RhdGUgPSAiNyIKPiArICogICAgIDxkb21pZD4vPHZob3N0Pi92c2Nz
aS1kZXZzL2Rldi0xL3N0YXRlID0gIjUiCj4gKyAqIFdhaXQgZm9yIDxkb21pZD4vPHZob3N0Pi9z
dGF0ZSB0byBiZWNvbWUgNAo+ICsgKiBXYWl0IGZvciA8ZG9taWQ+Lzx2aG9zdD4vdnNjc2ktZGV2
cy9kZXYtMS9zdGF0ZSBiZWNvbWUgNgo+ICsgKiBSZW1vdmUgPGRvbWlkPi88dmhvc3Q+L3ZzY3Np
LWRldnMvZGV2LTEve3N0YXRlLHAtZGV2LHYtZGV2LHAtZGV2bmFtZX0KPiArICogUmVtb3ZlIDxk
b21pZD4vPHZob3N0Pi92c2NzaS1kZXZzL2Rldi0xLwo+ICsgKgo+ICsgKi8KPiArCj4gIC8qIFJl
cXVlc3RzIGZyb20gdGhlIGZyb250ZW5kIHRvIHRoZSBiYWNrZW5kICovCj4gIAo+ICAvKgo+IEBA
IC0xNzksNiArMjQ4LDcgQEAKPiAgICovCj4gICNkZWZpbmUgVlNDU0lJRl9NQVhfQ09NTUFORF9T
SVpFICAgICAgICAgMTYKPiAgI2RlZmluZSBWU0NTSUlGX1NFTlNFX0JVRkZFUlNJWkUgICAgICAg
ICA5Ngo+ICsjZGVmaW5lIFZTQ1NJSUZfUEFHRV9TSVpFICAgICAgICAgICAgICA0MDk2Cj4gIAo+
ICBzdHJ1Y3Qgc2NzaWlmX3JlcXVlc3Rfc2VnbWVudCB7Cj4gICAgICBncmFudF9yZWZfdCBncmVm
Owo+IEBAIC0xODcsNyArMjU3LDcgQEAgc3RydWN0IHNjc2lpZl9yZXF1ZXN0X3NlZ21lbnQgewo+
ICB9Owo+ICB0eXBlZGVmIHN0cnVjdCBzY3NpaWZfcmVxdWVzdF9zZWdtZW50IHZzY3NpaWZfc2Vn
bWVudF90Owo+ICAKPiAtI2RlZmluZSBWU0NTSUlGX1NHX1BFUl9QQUdFIChQQUdFX1NJWkUgLyBz
aXplb2Yoc3RydWN0IHNjc2lpZl9yZXF1ZXN0X3NlZ21lbnQpKQo+ICsjZGVmaW5lIFZTQ1NJSUZf
U0dfUEVSX1BBR0UgKFZTQ1NJSUZfUEFHRV9TSVpFIC8gc2l6ZW9mKHN0cnVjdCBzY3NpaWZfcmVx
dWVzdF9zZWdtZW50KSkKPiAgCj4gIC8qIFNpemUgb2Ygb25lIHJlcXVlc3QgaXMgMjUyIGJ5dGVz
ICovCj4gIHN0cnVjdCB2c2NzaWlmX3JlcXVlc3Qgewo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3hl
bi9pby94c193aXJlLmggYi9pbmNsdWRlL3hlbi9pby94c193aXJlLmgKPiBpbmRleCAwYTBjZGJj
Li40ZGQ2NjMyIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUveGVuL2lvL3hzX3dpcmUuaAo+ICsrKyBi
L2luY2x1ZGUveGVuL2lvL3hzX3dpcmUuaAo+IEBAIC0yOCw3ICsyOCw4IEBACj4gIAo+ICBlbnVt
IHhzZF9zb2NrbXNnX3R5cGUKPiAgewo+IC0gICAgWFNfREVCVUcsCj4gKyAgICBYU19DT05UUk9M
LAo+ICsjZGVmaW5lIFhTX0RFQlVHIFhTX0NPTlRST0wKPiAgICAgIFhTX0RJUkVDVE9SWSwKPiAg
ICAgIFhTX1JFQUQsCj4gICAgICBYU19HRVRfUEVSTVMsCj4gQEAgLTQ4LDggKzQ5LDExIEBAIGVu
dW0geHNkX3NvY2ttc2dfdHlwZQo+ICAgICAgWFNfSVNfRE9NQUlOX0lOVFJPRFVDRUQsCj4gICAg
ICBYU19SRVNVTUUsCj4gICAgICBYU19TRVRfVEFSR0VULAo+IC0gICAgWFNfUkVTVFJJQ1QsCj4g
LSAgICBYU19SRVNFVF9XQVRDSEVTLAo+ICsgICAgLyogWFNfUkVTVFJJQ1QgaGFzIGJlZW4gcmVt
b3ZlZCAqLwo+ICsgICAgWFNfUkVTRVRfV0FUQ0hFUyA9IFhTX1NFVF9UQVJHRVQgKyAyLAo+ICsg
ICAgWFNfRElSRUNUT1JZX1BBUlQsCj4gKwo+ICsgICAgWFNfVFlQRV9DT1VOVCwgICAgICAvKiBO
dW1iZXIgb2YgdmFsaWQgdHlwZXMuICovCj4gIAo+ICAgICAgWFNfSU5WQUxJRCA9IDB4ZmZmZiAv
KiBHdWFyYW50ZWVkIHRvIHJlbWFpbiBhbiBpbnZhbGlkIHR5cGUgKi8KPiAgfTsKPiBkaWZmIC0t
Z2l0IGEvaW5jbHVkZS94ZW4va2V4ZWMuaCBiL2luY2x1ZGUveGVuL2tleGVjLmgKPiBpbmRleCBh
NmEwYTg4Li43NGVhOTgxIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUveGVuL2tleGVjLmgKPiArKysg
Yi9pbmNsdWRlL3hlbi9rZXhlYy5oCj4gQEAgLTIyNyw2ICsyMjcsMjAgQEAgdHlwZWRlZiBzdHJ1
Y3QgeGVuX2tleGVjX3VubG9hZCB7Cj4gIH0geGVuX2tleGVjX3VubG9hZF90Owo+ICBERUZJTkVf
WEVOX0dVRVNUX0hBTkRMRSh4ZW5fa2V4ZWNfdW5sb2FkX3QpOwo+ICAKPiArLyoKPiArICogRmln
dXJlIG91dCB3aGV0aGVyIHdlIGhhdmUgYW4gaW1hZ2UgbG9hZGVkLiBBIHJldHVybiB2YWx1ZSBv
Zgo+ICsgKiB6ZXJvIGluZGljYXRlcyBubyBpbWFnZSBsb2FkZWQuIEEgcmV0dXJuIHZhbHVlIG9m
IG9uZQo+ICsgKiBpbmRpY2F0ZXMgYW4gaW1hZ2UgaXMgbG9hZGVkLiBBIG5lZ2F0aXZlIHJldHVy
biB2YWx1ZQo+ICsgKiBpbmRpY2F0ZXMgYW4gZXJyb3IuCj4gKyAqCj4gKyAqIFR5cGUgbXVzdCBi
ZSBvbmUgb2YgS0VYRUNfVFlQRV9ERUZBVUxUIG9yIEtFWEVDX1RZUEVfQ1JBU0guCj4gKyAqLwo+
ICsjZGVmaW5lIEtFWEVDX0NNRF9rZXhlY19zdGF0dXMgNgo+ICt0eXBlZGVmIHN0cnVjdCB4ZW5f
a2V4ZWNfc3RhdHVzIHsKPiArICAgIHVpbnQ4X3QgdHlwZTsKPiArfSB4ZW5fa2V4ZWNfc3RhdHVz
X3Q7Cj4gK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9rZXhlY19zdGF0dXNfdCk7Cj4gKwo+
ICAjZWxzZSAvKiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDA0MDQwMCAqLwo+ICAK
PiAgI2RlZmluZSBLRVhFQ19DTURfa2V4ZWNfbG9hZCBLRVhFQ19DTURfa2V4ZWNfbG9hZF92MQo+
IGRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9tZW1fZXZlbnQuaCBiL2luY2x1ZGUveGVuL21lbV9l
dmVudC5oCj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggNTk5ZjllOC4uMDAwMDAw
MAo+IC0tLSBhL2luY2x1ZGUveGVuL21lbV9ldmVudC5oCj4gKysrIC9kZXYvbnVsbAo+IEBAIC0x
LDEzNCArMCwwIEBACj4gLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiAtICogbWVtX2V2ZW50LmgK
PiAtICoKPiAtICogTWVtb3J5IGV2ZW50IGNvbW1vbiBzdHJ1Y3R1cmVzLgo+IC0gKgo+IC0gKiBD
b3B5cmlnaHQgKGMpIDIwMDkgYnkgQ2l0cml4IFN5c3RlbXMsIEluYy4gKFBhdHJpY2sgQ29scCkK
PiAtICoKPiAtICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us
IHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQo+IC0gKiBvZiB0aGlzIHNvZnR3YXJlIGFu
ZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KPiAt
ICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdp
dGhvdXQgbGltaXRhdGlvbiB0aGUKPiAtICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt
ZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCj4gLSAqIHNlbGwg
Y29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl
IFNvZnR3YXJlIGlzCj4gLSAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnM6Cj4gLSAqCj4gLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl
IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCj4gLSAqIGFs
bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgo+IC0gKgo+
IC0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP
RiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+IC0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBM
SU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiAtICogRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFCj4gLSAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxF
IEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKPiAtICogTElBQklMSVRZLCBXSEVUSEVS
IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiAt
ICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhF
IFVTRSBPUiBPVEhFUgo+IC0gKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4gLSAqLwo+IC0K
PiAtI2lmbmRlZiBfWEVOX1BVQkxJQ19NRU1fRVZFTlRfSAo+IC0jZGVmaW5lIF9YRU5fUFVCTElD
X01FTV9FVkVOVF9ICj4gLQo+IC0jaW5jbHVkZSAieGVuLmgiCj4gLSNpbmNsdWRlICJpby9yaW5n
LmgiCj4gLQo+IC0vKiBNZW1vcnkgZXZlbnQgZmxhZ3MgKi8KPiAtI2RlZmluZSBNRU1fRVZFTlRf
RkxBR19WQ1BVX1BBVVNFRCAgICAgKDEgPDwgMCkKPiAtI2RlZmluZSBNRU1fRVZFTlRfRkxBR19E
Uk9QX1BBR0UgICAgICAgKDEgPDwgMSkKPiAtI2RlZmluZSBNRU1fRVZFTlRfRkxBR19FVklDVF9G
QUlMICAgICAgKDEgPDwgMikKPiAtI2RlZmluZSBNRU1fRVZFTlRfRkxBR19GT1JFSUdOICAgICAg
ICAgKDEgPDwgMykKPiAtI2RlZmluZSBNRU1fRVZFTlRfRkxBR19EVU1NWSAgICAgICAgICAgKDEg
PDwgNCkKPiAtLyoKPiAtICogRW11bGF0ZSB0aGUgZmF1bHQtY2F1c2luZyBpbnN0cnVjdGlvbiAo
aWYgc2V0IGluIHRoZSBldmVudCByZXNwb25zZSBmbGFncykuCj4gLSAqIFRoaXMgd2lsbCBhbGxv
dyB0aGUgZ3Vlc3QgdG8gY29udGludWUgZXhlY3V0aW9uIHdpdGhvdXQgbGlmdGluZyB0aGUgcGFn
ZQo+IC0gKiBhY2Nlc3MgcmVzdHJpY3Rpb25zLgo+IC0gKi8KPiAtI2RlZmluZSBNRU1fRVZFTlRf
RkxBR19FTVVMQVRFICAgICAgICAgKDEgPDwgNSkKPiAtLyoKPiAtICogU2FtZSBhcyBNRU1fRVZF
TlRfRkxBR19FTVVMQVRFLCBidXQgd2l0aCB3cml0ZSBvcGVyYXRpb25zIG9yIG9wZXJhdGlvbnMK
PiAtICogcG90ZW50aWFsbHkgaGF2aW5nIHNpZGUgZWZmZWN0cyAobGlrZSBtZW1vcnkgbWFwcGVk
IG9yIHBvcnQgSS9PKSBkaXNhYmxlZC4KPiAtICovCj4gLSNkZWZpbmUgTUVNX0VWRU5UX0ZMQUdf
RU1VTEFURV9OT1dSSVRFICgxIDw8IDYpCj4gLQo+IC0vKiBSZWFzb25zIGZvciB0aGUgbWVtb3J5
IGV2ZW50IHJlcXVlc3QgKi8KPiAtI2RlZmluZSBNRU1fRVZFTlRfUkVBU09OX1VOS05PV04gICAg
IDAgICAgLyogdHlwaWNhbCByZWFzb24gKi8KPiAtI2RlZmluZSBNRU1fRVZFTlRfUkVBU09OX1ZJ
T0xBVElPTiAgIDEgICAgLyogYWNjZXNzIHZpb2xhdGlvbiwgR0ZOIGlzIGFkZHJlc3MgKi8KPiAt
I2RlZmluZSBNRU1fRVZFTlRfUkVBU09OX0NSMCAgICAgICAgIDIgICAgLyogQ1IwIHdhcyBoaXQ6
IGdmbiBpcyBuZXcgQ1IwIHZhbHVlLCBnbGEgaXMgcHJldmlvdXMgKi8KPiAtI2RlZmluZSBNRU1f
RVZFTlRfUkVBU09OX0NSMyAgICAgICAgIDMgICAgLyogQ1IzIHdhcyBoaXQ6IGdmbiBpcyBuZXcg
Q1IzIHZhbHVlLCBnbGEgaXMgcHJldmlvdXMgKi8KPiAtI2RlZmluZSBNRU1fRVZFTlRfUkVBU09O
X0NSNCAgICAgICAgIDQgICAgLyogQ1I0IHdhcyBoaXQ6IGdmbiBpcyBuZXcgQ1I0IHZhbHVlLCBn
bGEgaXMgcHJldmlvdXMgKi8KPiAtI2RlZmluZSBNRU1fRVZFTlRfUkVBU09OX0lOVDMgICAgICAg
IDUgICAgLyogaW50MyB3YXMgaGl0OiBnbGEvZ2ZuIGFyZSBSSVAgKi8KPiAtI2RlZmluZSBNRU1f
RVZFTlRfUkVBU09OX1NJTkdMRVNURVAgIDYgICAgLyogc2luZ2xlIHN0ZXAgd2FzIGludm9rZWQ6
IGdsYS9nZm4gYXJlIFJJUCAqLwo+IC0jZGVmaW5lIE1FTV9FVkVOVF9SRUFTT05fTVNSICAgICAg
ICAgNyAgICAvKiBNU1Igd2FzIGhpdDogZ2ZuIGlzIE1TUiB2YWx1ZSwgZ2xhIGlzIE1TUiBhZGRy
ZXNzOwo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2Vz
IE5PVCBob25vdXIgSFZNUE1FX29uY2hhbmdlb25seSAqLwo+IC0KPiAtLyogVXNpbmcgYSBjdXN0
b20gc3RydWN0IChub3QgaHZtX2h3X2NwdSkgc28gYXMgdG8gbm90IGZpbGwKPiAtICogdGhlIG1l
bV9ldmVudCByaW5nIGJ1ZmZlciB0b28gcXVpY2tseS4gKi8KPiAtc3RydWN0IG1lbV9ldmVudF9y
ZWdzX3g4NiB7Cj4gLSAgICB1aW50NjRfdCByYXg7Cj4gLSAgICB1aW50NjRfdCByY3g7Cj4gLSAg
ICB1aW50NjRfdCByZHg7Cj4gLSAgICB1aW50NjRfdCByYng7Cj4gLSAgICB1aW50NjRfdCByc3A7
Cj4gLSAgICB1aW50NjRfdCByYnA7Cj4gLSAgICB1aW50NjRfdCByc2k7Cj4gLSAgICB1aW50NjRf
dCByZGk7Cj4gLSAgICB1aW50NjRfdCByODsKPiAtICAgIHVpbnQ2NF90IHI5Owo+IC0gICAgdWlu
dDY0X3QgcjEwOwo+IC0gICAgdWludDY0X3QgcjExOwo+IC0gICAgdWludDY0X3QgcjEyOwo+IC0g
ICAgdWludDY0X3QgcjEzOwo+IC0gICAgdWludDY0X3QgcjE0Owo+IC0gICAgdWludDY0X3QgcjE1
Owo+IC0gICAgdWludDY0X3QgcmZsYWdzOwo+IC0gICAgdWludDY0X3QgZHI3Owo+IC0gICAgdWlu
dDY0X3QgcmlwOwo+IC0gICAgdWludDY0X3QgY3IwOwo+IC0gICAgdWludDY0X3QgY3IyOwo+IC0g
ICAgdWludDY0X3QgY3IzOwo+IC0gICAgdWludDY0X3QgY3I0Owo+IC0gICAgdWludDY0X3Qgc3lz
ZW50ZXJfY3M7Cj4gLSAgICB1aW50NjRfdCBzeXNlbnRlcl9lc3A7Cj4gLSAgICB1aW50NjRfdCBz
eXNlbnRlcl9laXA7Cj4gLSAgICB1aW50NjRfdCBtc3JfZWZlcjsKPiAtICAgIHVpbnQ2NF90IG1z
cl9zdGFyOwo+IC0gICAgdWludDY0X3QgbXNyX2xzdGFyOwo+IC0gICAgdWludDY0X3QgZnNfYmFz
ZTsKPiAtICAgIHVpbnQ2NF90IGdzX2Jhc2U7Cj4gLSAgICB1aW50MzJfdCBjc19hcmJ5dGVzOwo+
IC0gICAgdWludDMyX3QgX3BhZDsKPiAtfTsKPiAtCj4gLXR5cGVkZWYgc3RydWN0IG1lbV9ldmVu
dF9zdCB7Cj4gLSAgICB1aW50MzJfdCBmbGFnczsKPiAtICAgIHVpbnQzMl90IHZjcHVfaWQ7Cj4g
LQo+IC0gICAgdWludDY0X3QgZ2ZuOwo+IC0gICAgdWludDY0X3Qgb2Zmc2V0Owo+IC0gICAgdWlu
dDY0X3QgZ2xhOyAvKiBpZiBnbGFfdmFsaWQgKi8KPiAtCj4gLSAgICB1aW50MzJfdCBwMm10Owo+
IC0KPiAtICAgIHVpbnQxNl90IGFjY2Vzc19yOjE7Cj4gLSAgICB1aW50MTZfdCBhY2Nlc3Nfdzox
Owo+IC0gICAgdWludDE2X3QgYWNjZXNzX3g6MTsKPiAtICAgIHVpbnQxNl90IGdsYV92YWxpZDox
Owo+IC0gICAgdWludDE2X3QgZmF1bHRfd2l0aF9nbGE6MTsKPiAtICAgIHVpbnQxNl90IGZhdWx0
X2luX2dwdDoxOwo+IC0gICAgdWludDE2X3QgYXZhaWxhYmxlOjEwOwo+IC0KPiAtICAgIHVpbnQx
Nl90IHJlYXNvbjsKPiAtICAgIHN0cnVjdCBtZW1fZXZlbnRfcmVnc194ODYgeDg2X3JlZ3M7Cj4g
LX0gbWVtX2V2ZW50X3JlcXVlc3RfdCwgbWVtX2V2ZW50X3Jlc3BvbnNlX3Q7Cj4gLQo+IC1ERUZJ
TkVfUklOR19UWVBFUyhtZW1fZXZlbnQsIG1lbV9ldmVudF9yZXF1ZXN0X3QsIG1lbV9ldmVudF9y
ZXNwb25zZV90KTsKPiAtCj4gLSNlbmRpZgo+IC0KPiAtLyoKPiAtICogTG9jYWwgdmFyaWFibGVz
Ogo+IC0gKiBtb2RlOiBDCj4gLSAqIGMtZmlsZS1zdHlsZTogIkJTRCIKPiAtICogYy1iYXNpYy1v
ZmZzZXQ6IDQKPiAtICogdGFiLXdpZHRoOiA0Cj4gLSAqIGluZGVudC10YWJzLW1vZGU6IG5pbAo+
IC0gKiBFbmQ6Cj4gLSAqLwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9tZW1vcnkuaCBiL2lu
Y2x1ZGUveGVuL21lbW9yeS5oCj4gaW5kZXggNTk1Zjk1My4uMjkzODZkZiAxMDA2NDQKPiAtLS0g
YS9pbmNsdWRlL3hlbi9tZW1vcnkuaAo+ICsrKyBiL2luY2x1ZGUveGVuL21lbW9yeS5oCj4gQEAg
LTI4LDYgKzI4LDcgQEAKPiAgI2RlZmluZSBfX1hFTl9QVUJMSUNfTUVNT1JZX0hfXwo+ICAKPiAg
I2luY2x1ZGUgInhlbi5oIgo+ICsjaW5jbHVkZSAicGh5c2Rldi5oIgo+ICAKPiAgLyoKPiAgICog
SW5jcmVhc2Ugb3IgZGVjcmVhc2UgdGhlIHNwZWNpZmllZCBkb21haW4ncyBtZW1vcnkgcmVzZXJ2
YXRpb24uIFJldHVybnMgdGhlCj4gQEAgLTU1LDYgKzU2LDggQEAKPiAgLyogRmxhZyB0byByZXF1
ZXN0IGFsbG9jYXRpb24gb25seSBmcm9tIHRoZSBub2RlIHNwZWNpZmllZCAqLwo+ICAjZGVmaW5l
IFhFTk1FTUZfZXhhY3Rfbm9kZV9yZXF1ZXN0ICAoMTw8MTcpCj4gICNkZWZpbmUgWEVOTUVNRl9l
eGFjdF9ub2RlKG4pIChYRU5NRU1GX25vZGUobikgfCBYRU5NRU1GX2V4YWN0X25vZGVfcmVxdWVz
dCkKPiArLyogRmxhZyB0byBpbmRpY2F0ZSB0aGUgbm9kZSBzcGVjaWZpZWQgaXMgdmlydHVhbCBu
b2RlICovCj4gKyNkZWZpbmUgWEVOTUVNRl92bm9kZSAgKDE8PDE4KQo+ICAjZW5kaWYKPiAgCj4g
IHN0cnVjdCB4ZW5fbWVtb3J5X3Jlc2VydmF0aW9uIHsKPiBAQCAtOTksNiArMTAyLDggQEAgREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX21lbW9yeV9yZXNlcnZhdGlvbl90KTsKPiAgICogUmV0
dXJucyB6ZXJvIG9uIGNvbXBsZXRlIHN1Y2Nlc3MsIG90aGVyd2lzZSBhIG5lZ2F0aXZlIGVycm9y
IGNvZGUuCj4gICAqIE9uIGNvbXBsZXRlIHN1Y2Nlc3MgdGhlbiBhbHdheXMgQG5yX2V4Y2hhbmdl
ZCA9PSBAaW4ubnJfZXh0ZW50cy4KPiAgICogT24gcGFydGlhbCBzdWNjZXNzIEBucl9leGNoYW5n
ZWQgaW5kaWNhdGVzIGhvdyBtdWNoIHdvcmsgd2FzIGRvbmUuCj4gKyAqCj4gKyAqIE5vdGUgdGhh
dCBvbmx5IFBWIGd1ZXN0cyBjYW4gdXNlIHRoaXMgb3BlcmF0aW9uLgo+ICAgKi8KPiAgI2RlZmlu
ZSBYRU5NRU1fZXhjaGFuZ2UgICAgICAgICAgICAgMTEKPiAgc3RydWN0IHhlbl9tZW1vcnlfZXhj
aGFuZ2Ugewo+IEBAIC0yMTcsNiArMjIyLDExIEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKHhl
bl9tYWNocGh5c19tYXBwaW5nX3QpOwo+ICAjZGVmaW5lIFhFTk1BUFNQQUNFX2dtZm5fcmFuZ2Ug
ICAzIC8qIEdNRk4gcmFuZ2UsIFhFTk1FTV9hZGRfdG9fcGh5c21hcCBvbmx5LiAqLwo+ICAjZGVm
aW5lIFhFTk1BUFNQQUNFX2dtZm5fZm9yZWlnbiA0IC8qIEdNRk4gZnJvbSBhbm90aGVyIGRvbSwK
PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBYRU5NRU1fYWRkX3RvX3Bo
eXNtYXBfYmF0Y2ggb25seS4gKi8KPiArI2RlZmluZSBYRU5NQVBTUEFDRV9kZXZfbW1pbyAgICAg
NSAvKiBkZXZpY2UgbW1pbyByZWdpb24KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBBUk0gb25seTsgdGhlIHJlZ2lvbiBpcyBtYXBwZWQgaW4KPiArICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFnZS0yIHVzaW5nIHRoZSBOb3JtYWwgTWVtb3J5
Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5uZXIvT3V0ZXIgV3Jp
dGUtQmFjayBDYWNoZWFibGUKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtZW1vcnkgYXR0cmlidXRlLiAqLwo+ICAvKiBgIH0gKi8KPiAgCj4gIC8qCj4gQEAgLTI1NSw3
ICsyNjUsMTUgQEAgc3RydWN0IHhlbl9hZGRfdG9fcGh5c21hcF9iYXRjaCB7Cj4gIAo+ICAgICAg
LyogTnVtYmVyIG9mIHBhZ2VzIHRvIGdvIHRocm91Z2ggKi8KPiAgICAgIHVpbnQxNl90IHNpemU7
Cj4gLSAgICBkb21pZF90IGZvcmVpZ25fZG9taWQ7IC8qIElGRiBnbWZuX2ZvcmVpZ24gKi8KPiAr
Cj4gKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDA0MDcwMAo+ICsgICAgZG9t
aWRfdCBmb3JlaWduX2RvbWlkOyAvKiBJRkYgZ21mbl9mb3JlaWduLiBTaG91bGQgYmUgMCBmb3Ig
b3RoZXIgc3BhY2VzLiAqLwo+ICsjZWxzZQo+ICsgICAgdW5pb24geGVuX2FkZF90b19waHlzbWFw
X2JhdGNoX2V4dHJhIHsKPiArICAgICAgICBkb21pZF90IGZvcmVpZ25fZG9taWQ7IC8qIGdtZm5f
Zm9yZWlnbiAqLwo+ICsgICAgICAgIHVpbnQxNl90IHJlczA7ICAvKiBBbGwgdGhlIG90aGVyIHNw
YWNlcy4gU2hvdWxkIGJlIDAgKi8KPiArICAgIH0gdTsKPiArI2VuZGlmCj4gIAo+ICAgICAgLyog
SW5kZXhlcyBpbnRvIHNwYWNlIGJlaW5nIG1hcHBlZC4gKi8KPiAgICAgIFhFTl9HVUVTVF9IQU5E
TEUoeGVuX3Vsb25nX3QpIGlkeHM7Cj4gQEAgLTMyMyw2ICszNDEsOCBAQCBERUZJTkVfWEVOX0dV
RVNUX0hBTkRMRSh4ZW5fbWVtb3J5X21hcF90KTsKPiAgLyoKPiAgICogUmV0dXJucyB0aGUgcmVh
bCBwaHlzaWNhbCBtZW1vcnkgbWFwLiBQYXNzZXMgdGhlIHNhbWUgc3RydWN0dXJlIGFzCj4gICAq
IFhFTk1FTV9tZW1vcnlfbWFwLgo+ICsgKiBTcGVjaWZ5aW5nIGJ1ZmZlciBhcyBOVUxMIHdpbGwg
cmV0dXJuIHRoZSBudW1iZXIgb2YgZW50cmllcyByZXF1aXJlZAo+ICsgKiB0byBzdG9yZSB0aGUg
Y29tcGxldGUgbWVtb3J5IG1hcC4KPiAgICogYXJnID09IGFkZHIgb2YgeGVuX21lbW9yeV9tYXBf
dC4KPiAgICovCj4gICNkZWZpbmUgWEVOTUVNX21hY2hpbmVfbWVtb3J5X21hcCAgIDEwCj4gQEAg
LTM3MiwyMyArMzkyLDI5IEBAIHR5cGVkZWYgc3RydWN0IHhlbl9wb2RfdGFyZ2V0IHhlbl9wb2Rf
dGFyZ2V0X3Q7Cj4gICNkZWZpbmUgWEVOTUVNX3BhZ2luZ19vcF9ldmljdCAgICAgICAgICAgICAg
MQo+ICAjZGVmaW5lIFhFTk1FTV9wYWdpbmdfb3BfcHJlcCAgICAgICAgICAgICAgIDIKPiAgCj4g
LXN0cnVjdCB4ZW5fbWVtX2V2ZW50X29wIHsKPiAtICAgIHVpbnQ4X3QgICAgIG9wOyAgICAgICAg
IC8qIFhFTk1FTV8qX29wXyogKi8KPiArc3RydWN0IHhlbl9tZW1fcGFnaW5nX29wIHsKPiArICAg
IHVpbnQ4X3QgICAgIG9wOyAgICAgICAgIC8qIFhFTk1FTV9wYWdpbmdfb3BfKiAqLwo+ICAgICAg
ZG9taWRfdCAgICAgZG9tYWluOwo+IC0gICAgCj4gIAo+ICAgICAgLyogUEFHSU5HX1BSRVAgSU46
IGJ1ZmZlciB0byBpbW1lZGlhdGVseSBmaWxsIHBhZ2UgaW4gKi8KPiAgICAgIHVpbnQ2NF9hbGln
bmVkX3QgICAgYnVmZmVyOwo+ICAgICAgLyogT3RoZXIgT1BzICovCj4gICAgICB1aW50NjRfYWxp
Z25lZF90ICAgIGdmbjsgICAgICAgICAgIC8qIElOOiAgZ2ZuIG9mIHBhZ2UgYmVpbmcgb3BlcmF0
ZWQgb24gKi8KPiAgfTsKPiAtdHlwZWRlZiBzdHJ1Y3QgeGVuX21lbV9ldmVudF9vcCB4ZW5fbWVt
X2V2ZW50X29wX3Q7Cj4gLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9tZW1fZXZlbnRfb3Bf
dCk7Cj4gK3R5cGVkZWYgc3RydWN0IHhlbl9tZW1fcGFnaW5nX29wIHhlbl9tZW1fcGFnaW5nX29w
X3Q7Cj4gK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9tZW1fcGFnaW5nX29wX3QpOwo+ICAK
PiAgI2RlZmluZSBYRU5NRU1fYWNjZXNzX29wICAgICAgICAgICAgICAgICAgICAyMQo+IC0jZGVm
aW5lIFhFTk1FTV9hY2Nlc3Nfb3BfcmVzdW1lICAgICAgICAgICAgIDAKPiAtI2RlZmluZSBYRU5N
RU1fYWNjZXNzX29wX3NldF9hY2Nlc3MgICAgICAgICAxCj4gLSNkZWZpbmUgWEVOTUVNX2FjY2Vz
c19vcF9nZXRfYWNjZXNzICAgICAgICAgMgo+ICsjZGVmaW5lIFhFTk1FTV9hY2Nlc3Nfb3Bfc2V0
X2FjY2VzcyAgICAgICAgIDAKPiArI2RlZmluZSBYRU5NRU1fYWNjZXNzX29wX2dldF9hY2Nlc3Mg
ICAgICAgICAxCj4gKy8qCj4gKyAqIFhFTk1FTV9hY2Nlc3Nfb3BfZW5hYmxlX2VtdWxhdGUgYW5k
IFhFTk1FTV9hY2Nlc3Nfb3BfZGlzYWJsZV9lbXVsYXRlIGFyZQo+ICsgKiBjdXJyZW50bHkgdW51
c2VkLCBidXQgc2luY2UgdGhleSBoYXZlIGJlZW4gaW4gdXNlIHBsZWFzZSBkbyBub3QgcmV1c2Ug
dGhlbS4KPiArICoKPiArICogI2RlZmluZSBYRU5NRU1fYWNjZXNzX29wX2VuYWJsZV9lbXVsYXRl
ICAgICAyCj4gKyAqICNkZWZpbmUgWEVOTUVNX2FjY2Vzc19vcF9kaXNhYmxlX2VtdWxhdGUgICAg
Mwo+ICsgKi8KPiArI2RlZmluZSBYRU5NRU1fYWNjZXNzX29wX3NldF9hY2Nlc3NfbXVsdGkgICA0
Cj4gIAo+ICB0eXBlZGVmIGVudW0gewo+ICAgICAgWEVOTUVNX2FjY2Vzc19uLAo+IEBAIC00MjEs
NyArNDQ3LDggQEAgc3RydWN0IHhlbl9tZW1fYWNjZXNzX29wIHsKPiAgICAgIHVpbnQ4X3QgYWNj
ZXNzOwo+ICAgICAgZG9taWRfdCBkb21pZDsKPiAgICAgIC8qCj4gLSAgICAgKiBOdW1iZXIgb2Yg
cGFnZXMgZm9yIHNldCBvcAo+ICsgICAgICogTnVtYmVyIG9mIHBhZ2VzIGZvciBzZXQgb3AgKG9y
IHNpemUgb2YgcGZuX2xpc3QgZm9yCj4gKyAgICAgKiBYRU5NRU1fYWNjZXNzX29wX3NldF9hY2Nl
c3NfbXVsdGkpCj4gICAgICAgKiBJZ25vcmVkIG9uIHNldHRpbmcgZGVmYXVsdCBhY2Nlc3MgYW5k
IG90aGVyIG9wcwo+ICAgICAgICovCj4gICAgICB1aW50MzJfdCBucjsKPiBAQCAtNDMxLDYgKzQ1
OCwxNiBAQCBzdHJ1Y3QgeGVuX21lbV9hY2Nlc3Nfb3Agewo+ICAgICAgICogfjB1bGwgaXMgdXNl
ZCB0byBzZXQgYW5kIGdldCB0aGUgZGVmYXVsdCBhY2Nlc3MgZm9yIHBhZ2VzCj4gICAgICAgKi8K
PiAgICAgIHVpbnQ2NF9hbGlnbmVkX3QgcGZuOwo+ICsgICAgLyoKPiArICAgICAqIExpc3Qgb2Yg
cGZucyB0byBzZXQgYWNjZXNzIGZvcgo+ICsgICAgICogVXNlZCBvbmx5IHdpdGggWEVOTUVNX2Fj
Y2Vzc19vcF9zZXRfYWNjZXNzX211bHRpCj4gKyAgICAgKi8KPiArICAgIFhFTl9HVUVTVF9IQU5E
TEUoY29uc3RfdWludDY0KSBwZm5fbGlzdDsKPiArICAgIC8qCj4gKyAgICAgKiBDb3JyZXNwb25k
aW5nIGxpc3Qgb2YgYWNjZXNzIHNldHRpbmdzIGZvciBwZm5fbGlzdAo+ICsgICAgICogVXNlZCBv
bmx5IHdpdGggWEVOTUVNX2FjY2Vzc19vcF9zZXRfYWNjZXNzX211bHRpCj4gKyAgICAgKi8KPiAr
ICAgIFhFTl9HVUVTVF9IQU5ETEUoY29uc3RfdWludDgpIGFjY2Vzc19saXN0Owo+ICB9Owo+ICB0
eXBlZGVmIHN0cnVjdCB4ZW5fbWVtX2FjY2Vzc19vcCB4ZW5fbWVtX2FjY2Vzc19vcF90Owo+ICBE
RUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fbWVtX2FjY2Vzc19vcF90KTsKPiBAQCAtNDM5LDEy
ICs0NzYsMTIgQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX21lbV9hY2Nlc3Nfb3BfdCk7
Cj4gICNkZWZpbmUgWEVOTUVNX3NoYXJpbmdfb3Bfbm9taW5hdGVfZ2ZuICAgICAgMAo+ICAjZGVm
aW5lIFhFTk1FTV9zaGFyaW5nX29wX25vbWluYXRlX2dyZWYgICAgIDEKPiAgI2RlZmluZSBYRU5N
RU1fc2hhcmluZ19vcF9zaGFyZSAgICAgICAgICAgICAyCj4gLSNkZWZpbmUgWEVOTUVNX3NoYXJp
bmdfb3BfcmVzdW1lICAgICAgICAgICAgMwo+IC0jZGVmaW5lIFhFTk1FTV9zaGFyaW5nX29wX2Rl
YnVnX2dmbiAgICAgICAgIDQKPiAtI2RlZmluZSBYRU5NRU1fc2hhcmluZ19vcF9kZWJ1Z19tZm4g
ICAgICAgICA1Cj4gLSNkZWZpbmUgWEVOTUVNX3NoYXJpbmdfb3BfZGVidWdfZ3JlZiAgICAgICAg
Ngo+IC0jZGVmaW5lIFhFTk1FTV9zaGFyaW5nX29wX2FkZF9waHlzbWFwICAgICAgIDcKPiAtI2Rl
ZmluZSBYRU5NRU1fc2hhcmluZ19vcF9hdWRpdCAgICAgICAgICAgICA4Cj4gKyNkZWZpbmUgWEVO
TUVNX3NoYXJpbmdfb3BfZGVidWdfZ2ZuICAgICAgICAgMwo+ICsjZGVmaW5lIFhFTk1FTV9zaGFy
aW5nX29wX2RlYnVnX21mbiAgICAgICAgIDQKPiArI2RlZmluZSBYRU5NRU1fc2hhcmluZ19vcF9k
ZWJ1Z19ncmVmICAgICAgICA1Cj4gKyNkZWZpbmUgWEVOTUVNX3NoYXJpbmdfb3BfYWRkX3BoeXNt
YXAgICAgICAgNgo+ICsjZGVmaW5lIFhFTk1FTV9zaGFyaW5nX29wX2F1ZGl0ICAgICAgICAgICAg
IDcKPiArI2RlZmluZSBYRU5NRU1fc2hhcmluZ19vcF9yYW5nZV9zaGFyZSAgICAgICA4Cj4gIAo+
ICAjZGVmaW5lIFhFTk1FTV9TSEFSSU5HX09QX1NfSEFORExFX0lOVkFMSUQgICgtMTApCj4gICNk
ZWZpbmUgWEVOTUVNX1NIQVJJTkdfT1BfQ19IQU5ETEVfSU5WQUxJRCAgKC05KQo+IEBAIC00NTMs
NyArNDkwLDcgQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX21lbV9hY2Nlc3Nfb3BfdCk7
Cj4gICAqIGZvciBzaGFyaW5nIHV0aWxpdGllcyBzaXR0aW5nIGFzICJmaWx0ZXJzIiBpbiBJTyBi
YWNrZW5kcwo+ICAgKiAoZS5nLiBtZW1zaHIgKyBibGt0YXAoMikpLiBUaGUgSU8gYmFja2VuZCBp
cyBvbmx5IGV4cG9zZWQgCj4gICAqIHRvIGdyYW50IHJlZmVyZW5jZXMsIGFuZCB0aGlzIGFsbG93
cyBzaGFyaW5nIG9mIHRoZSBncmVmcyAqLwo+IC0jZGVmaW5lIFhFTk1FTV9TSEFSSU5HX09QX0ZJ
RUxEX0lTX0dSRUZfRkxBRyAgICgxVUxMIDw8IDYyKQo+ICsjZGVmaW5lIFhFTk1FTV9TSEFSSU5H
X09QX0ZJRUxEX0lTX0dSRUZfRkxBRyAgICh4ZW5fbWtfdWxsb25nKDEpIDw8IDYyKQo+ICAKPiAg
I2RlZmluZSBYRU5NRU1fU0hBUklOR19PUF9GSUVMRF9NQUtFX0dSRUYoZmllbGQsIHZhbCkgIFwK
PiAgICAgIChmaWVsZCkgPSAoWEVOTUVNX1NIQVJJTkdfT1BfRklFTERfSVNfR1JFRl9GTEFHIHwg
dmFsKQo+IEBAIC00ODAsNyArNTE3LDE0IEBAIHN0cnVjdCB4ZW5fbWVtX3NoYXJpbmdfb3Agewo+
ICAgICAgICAgICAgICB1aW50NjRfYWxpZ25lZF90IGNsaWVudF9nZm47ICAgIC8qIElOOiB0aGUg
Y2xpZW50IGdmbiAqLwo+ICAgICAgICAgICAgICB1aW50NjRfYWxpZ25lZF90IGNsaWVudF9oYW5k
bGU7IC8qIElOOiBoYW5kbGUgdG8gdGhlIGNsaWVudCBwYWdlICovCj4gICAgICAgICAgICAgIGRv
bWlkX3QgIGNsaWVudF9kb21haW47IC8qIElOOiB0aGUgY2xpZW50IGRvbWFpbiBpZCAqLwo+IC0g
ICAgICAgIH0gc2hhcmU7IAo+ICsgICAgICAgIH0gc2hhcmU7Cj4gKyAgICAgICAgc3RydWN0IG1l
bV9zaGFyaW5nX29wX3JhbmdlIHsgICAgICAgICAvKiBPUF9SQU5HRV9TSEFSRSAqLwo+ICsgICAg
ICAgICAgICB1aW50NjRfYWxpZ25lZF90IGZpcnN0X2dmbjsgICAgICAvKiBJTjogdGhlIGZpcnN0
IGdmbiAqLwo+ICsgICAgICAgICAgICB1aW50NjRfYWxpZ25lZF90IGxhc3RfZ2ZuOyAgICAgICAv
KiBJTjogdGhlIGxhc3QgZ2ZuICovCj4gKyAgICAgICAgICAgIHVpbnQ2NF9hbGlnbmVkX3Qgb3Bh
cXVlOyAgICAgICAgIC8qIE11c3QgYmUgc2V0IHRvIDAgKi8KPiArICAgICAgICAgICAgZG9taWRf
dCBjbGllbnRfZG9tYWluOyAgICAgICAgICAgLyogSU46IHRoZSBjbGllbnQgZG9tYWluIGlkICov
Cj4gKyAgICAgICAgICAgIHVpbnQxNl90IF9wYWRbM107ICAgICAgICAgICAgICAgIC8qIE11c3Qg
YmUgc2V0IHRvIDAgKi8KPiArICAgICAgICB9IHJhbmdlOwo+ICAgICAgICAgIHN0cnVjdCBtZW1f
c2hhcmluZ19vcF9kZWJ1ZyB7ICAgICAvKiBPUF9ERUJVR194eHggKi8KPiAgICAgICAgICAgICAg
dW5pb24gewo+ICAgICAgICAgICAgICAgICAgdWludDY0X2FsaWduZWRfdCBnZm47ICAgICAgLyog
SU46IGdmbiB0byBkZWJ1ZyAgICAgICAgICAqLwo+IEBAIC01MTgsOSArNTYyLDQzIEBAIERFRklO
RV9YRU5fR1VFU1RfSEFORExFKHhlbl9tZW1fc2hhcmluZ19vcF90KTsKPiAgCj4gIC8qCj4gICAq
IFhFTk1FTV9jbGFpbV9wYWdlcyBmbGFncyAtIHRoZSBhcmUgbm8gZmxhZ3MgYXQgdGhpcyB0aW1l
Lgo+IC0gKiBUaGUgemVybyB2YWx1ZSBpcyBhcHByb3BpYXRlLgo+ICsgKiBUaGUgemVybyB2YWx1
ZSBpcyBhcHByb3ByaWF0ZS4KPiAgICovCj4gIAo+ICsvKgo+ICsgKiBXaXRoIHNvbWUgbGVnYWN5
IGRldmljZXMsIGNlcnRhaW4gZ3Vlc3QtcGh5c2ljYWwgYWRkcmVzc2VzIGNhbm5vdCBzYWZlbHkK
PiArICogYmUgdXNlZCBmb3Igb3RoZXIgcHVycG9zZXMsIGUuZy4gdG8gbWFwIGd1ZXN0IFJBTS4g
IFRoaXMgaHlwZXJjYWxsCj4gKyAqIGVudW1lcmF0ZXMgdGhvc2UgcmVnaW9ucyBzbyB0aGUgdG9v
bHN0YWNrIGNhbiBhdm9pZCB1c2luZyB0aGVtLgo+ICsgKi8KPiArI2RlZmluZSBYRU5NRU1fcmVz
ZXJ2ZWRfZGV2aWNlX21lbW9yeV9tYXAgICAyNwo+ICtzdHJ1Y3QgeGVuX3Jlc2VydmVkX2Rldmlj
ZV9tZW1vcnkgewo+ICsgICAgeGVuX3Bmbl90IHN0YXJ0X3BmbjsKPiArICAgIHhlbl91bG9uZ190
IG5yX3BhZ2VzOwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCB4ZW5fcmVzZXJ2ZWRfZGV2aWNlX21l
bW9yeSB4ZW5fcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeV90Owo+ICtERUZJTkVfWEVOX0dVRVNUX0hB
TkRMRSh4ZW5fcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeV90KTsKPiArCj4gK3N0cnVjdCB4ZW5fcmVz
ZXJ2ZWRfZGV2aWNlX21lbW9yeV9tYXAgewo+ICsjZGVmaW5lIFhFTk1FTV9SRE1fQUxMIDEgLyog
UmVxdWVzdCBhbGwgcmVnaW9ucyAoaWdub3JlIGRldiB1bmlvbikuICovCj4gKyAgICAvKiBJTiAq
Lwo+ICsgICAgdWludDMyX3QgZmxhZ3M7Cj4gKyAgICAvKgo+ICsgICAgICogSU4vT1VUCj4gKyAg
ICAgKgo+ICsgICAgICogR2V0cyBzZXQgdG8gdGhlIHJlcXVpcmVkIG51bWJlciBvZiBlbnRyaWVz
IHdoZW4gdG9vIGxvdywKPiArICAgICAqIHNpZ25hbGVkIGJ5IGVycm9yIGNvZGUgLUVSQU5HRS4K
PiArICAgICAqLwo+ICsgICAgdW5zaWduZWQgaW50IG5yX2VudHJpZXM7Cj4gKyAgICAvKiBPVVQg
Ki8KPiArICAgIFhFTl9HVUVTVF9IQU5ETEUoeGVuX3Jlc2VydmVkX2RldmljZV9tZW1vcnlfdCkg
YnVmZmVyOwo+ICsgICAgLyogSU4gKi8KPiArICAgIHVuaW9uIHsKPiArICAgICAgICBzdHJ1Y3Qg
cGh5c2Rldl9wY2lfZGV2aWNlIHBjaTsKPiArICAgIH0gZGV2Owo+ICt9Owo+ICt0eXBlZGVmIHN0
cnVjdCB4ZW5fcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeV9tYXAgeGVuX3Jlc2VydmVkX2RldmljZV9t
ZW1vcnlfbWFwX3Q7Cj4gK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9yZXNlcnZlZF9kZXZp
Y2VfbWVtb3J5X21hcF90KTsKPiArCj4gICNlbmRpZiAvKiBkZWZpbmVkKF9fWEVOX18pIHx8IGRl
ZmluZWQoX19YRU5fVE9PTFNfXykgKi8KPiAgCj4gIC8qCj4gQEAgLTU3Miw3ICs2NTAsNyBAQCBz
dHJ1Y3QgeGVuX3ZudW1hX3RvcG9sb2d5X2luZm8gewo+ICB0eXBlZGVmIHN0cnVjdCB4ZW5fdm51
bWFfdG9wb2xvZ3lfaW5mbyB4ZW5fdm51bWFfdG9wb2xvZ3lfaW5mb190Owo+ICBERUZJTkVfWEVO
X0dVRVNUX0hBTkRMRSh4ZW5fdm51bWFfdG9wb2xvZ3lfaW5mb190KTsKPiAgCj4gLS8qIE5leHQg
YXZhaWxhYmxlIHN1Ym9wIG51bWJlciBpcyAyNyAqLwo+ICsvKiBOZXh0IGF2YWlsYWJsZSBzdWJv
cCBudW1iZXIgaXMgMjggKi8KPiAgCj4gICNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfTUVNT1JZX0hf
XyAqLwo+ICAKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vcGh5c2Rldi5oIGIvaW5jbHVkZS94
ZW4vcGh5c2Rldi5oCj4gaW5kZXggMjY4MzcxOS4uMGU1NDYzNSAxMDA2NDQKPiAtLS0gYS9pbmNs
dWRlL3hlbi9waHlzZGV2LmgKPiArKysgYi9pbmNsdWRlL3hlbi9waHlzZGV2LmgKPiBAQCAtMTYs
NiArMTYsOCBAQAo+ICAgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRS
QUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwo+ICAgKiBGUk9NLCBPVVQgT0YgT1IgSU4g
Q09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCj4gICAqIERF
QUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KPiArICoKPiArICogQ29weXJpZ2h0IChjKSAyMDA2LCBL
ZWlyIEZyYXNlcgo+ICAgKi8KPiAgCj4gICNpZm5kZWYgX19YRU5fUFVCTElDX1BIWVNERVZfSF9f
Cj4gQEAgLTI5Myw2ICsyOTUsMTEgQEAgc3RydWN0IHBoeXNkZXZfcGNpX2RldmljZV9hZGQgewo+
ICAgICAgICAgIHVpbnQ4X3QgYnVzOwo+ICAgICAgICAgIHVpbnQ4X3QgZGV2Zm47Cj4gICAgICB9
IHBoeXNmbjsKPiArICAgIC8qCj4gKyAgICAgKiBPcHRpb25hbCBwYXJhbWV0ZXJzIGFycmF5Lgo+
ICsgICAgICogRmlyc3QgZWxlbWVudCAoWzBdKSBpcyBQWE0gZG9tYWluIGFzc29jaWF0ZWQgd2l0
aCB0aGUgZGV2aWNlIChpZgo+ICsgICAgICogWEVOX1BDSV9ERVZfUFhNIGlzIHNldCkKPiArICAg
ICAqLwo+ICAjaWYgZGVmaW5lZChfX1NURENfVkVSU0lPTl9fKSAmJiBfX1NURENfVkVSU0lPTl9f
ID49IDE5OTkwMUwKPiAgICAgIHVpbnQzMl90IG9wdGFycltdOwo+ICAjZWxpZiBkZWZpbmVkKF9f
R05VQ19fKQo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9wbGF0Zm9ybS5oIGIvaW5jbHVkZS94
ZW4vcGxhdGZvcm0uaAo+IGluZGV4IDVjNTc2MTUuLjk0ZGJjM2YgMTAwNjQ0Cj4gLS0tIGEvaW5j
bHVkZS94ZW4vcGxhdGZvcm0uaAo+ICsrKyBiL2luY2x1ZGUveGVuL3BsYXRmb3JtLmgKPiBAQCAt
MzUsMTMgKzM1LDI4IEBACj4gICAqIFNldCBjbG9jayBzdWNoIHRoYXQgaXQgd291bGQgcmVhZCA8
c2Vjcyxuc2Vjcz4gYWZ0ZXIgMDA6MDA6MDAgVVRDLAo+ICAgKiAxIEphbnVhcnksIDE5NzAgaWYg
dGhlIGN1cnJlbnQgc3lzdGVtIHRpbWUgd2FzIDxzeXN0ZW1fdGltZT4uCj4gICAqLwo+IC0jZGVm
aW5lIFhFTlBGX3NldHRpbWUgICAgICAgICAgICAgMTcKPiAtc3RydWN0IHhlbnBmX3NldHRpbWUg
ewo+ICsjZGVmaW5lIFhFTlBGX3NldHRpbWUzMiAgICAgICAgICAgMTcKPiArc3RydWN0IHhlbnBm
X3NldHRpbWUzMiB7Cj4gICAgICAvKiBJTiB2YXJpYWJsZXMuICovCj4gICAgICB1aW50MzJfdCBz
ZWNzOwo+ICAgICAgdWludDMyX3QgbnNlY3M7Cj4gICAgICB1aW50NjRfdCBzeXN0ZW1fdGltZTsK
PiAgfTsKPiArI2RlZmluZSBYRU5QRl9zZXR0aW1lNjQgICAgICAgICAgIDYyCj4gK3N0cnVjdCB4
ZW5wZl9zZXR0aW1lNjQgewo+ICsgICAgLyogSU4gdmFyaWFibGVzLiAqLwo+ICsgICAgdWludDY0
X3Qgc2VjczsKPiArICAgIHVpbnQzMl90IG5zZWNzOwo+ICsgICAgdWludDMyX3QgbWJ6Owo+ICsg
ICAgdWludDY0X3Qgc3lzdGVtX3RpbWU7Cj4gK307Cj4gKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVS
U0lPTl9fIDwgMHgwMDA0MDYwMAo+ICsjZGVmaW5lIFhFTlBGX3NldHRpbWUgWEVOUEZfc2V0dGlt
ZTMyCj4gKyNkZWZpbmUgeGVucGZfc2V0dGltZSB4ZW5wZl9zZXR0aW1lMzIKPiArI2Vsc2UKPiAr
I2RlZmluZSBYRU5QRl9zZXR0aW1lIFhFTlBGX3NldHRpbWU2NAo+ICsjZGVmaW5lIHhlbnBmX3Nl
dHRpbWUgeGVucGZfc2V0dGltZTY0Cj4gKyNlbmRpZgo+ICB0eXBlZGVmIHN0cnVjdCB4ZW5wZl9z
ZXR0aW1lIHhlbnBmX3NldHRpbWVfdDsKPiAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVucGZf
c2V0dGltZV90KTsKPiAgCj4gQEAgLTEyNiw2ICsxNDEsMjYgQEAgREVGSU5FX1hFTl9HVUVTVF9I
QU5ETEUoeGVucGZfcGxhdGZvcm1fcXVpcmtfdCk7Cj4gICNkZWZpbmUgWEVOX0VGSV9xdWVyeV92
YXJpYWJsZV9pbmZvICAgICAgICAgICA5Cj4gICNkZWZpbmUgWEVOX0VGSV9xdWVyeV9jYXBzdWxl
X2NhcGFiaWxpdGllcyAgIDEwCj4gICNkZWZpbmUgWEVOX0VGSV91cGRhdGVfY2Fwc3VsZSAgICAg
ICAgICAgICAgIDExCj4gKwo+ICtzdHJ1Y3QgeGVucGZfZWZpX3RpbWUgewo+ICsgICAgdWludDE2
X3QgeWVhcjsKPiArICAgIHVpbnQ4X3QgbW9udGg7Cj4gKyAgICB1aW50OF90IGRheTsKPiArICAg
IHVpbnQ4X3QgaG91cjsKPiArICAgIHVpbnQ4X3QgbWluOwo+ICsgICAgdWludDhfdCBzZWM7Cj4g
KyAgICB1aW50MzJfdCBuczsKPiArICAgIGludDE2X3QgdHo7Cj4gKyAgICB1aW50OF90IGRheWxp
Z2h0Owo+ICt9Owo+ICsKPiArc3RydWN0IHhlbnBmX2VmaV9ndWlkIHsKPiArICAgIHVpbnQzMl90
IGRhdGExOwo+ICsgICAgdWludDE2X3QgZGF0YTI7Cj4gKyAgICB1aW50MTZfdCBkYXRhMzsKPiAr
ICAgIHVpbnQ4X3QgZGF0YTRbOF07Cj4gK307Cj4gKwo+ICBzdHJ1Y3QgeGVucGZfZWZpX3J1bnRp
bWVfY2FsbCB7Cj4gICAgICB1aW50MzJfdCBmdW5jdGlvbjsKPiAgICAgIC8qCj4gQEAgLTEzOCwx
NyArMTczLDcgQEAgc3RydWN0IHhlbnBmX2VmaV9ydW50aW1lX2NhbGwgewo+ICAgICAgdW5pb24g
ewo+ICAjZGVmaW5lIFhFTl9FRklfR0VUX1RJTUVfU0VUX0NMRUFSU19OUyAweDAwMDAwMDAxCj4g
ICAgICAgICAgc3RydWN0IHsKPiAtICAgICAgICAgICAgc3RydWN0IHhlbnBmX2VmaV90aW1lIHsK
PiAtICAgICAgICAgICAgICAgIHVpbnQxNl90IHllYXI7Cj4gLSAgICAgICAgICAgICAgICB1aW50
OF90IG1vbnRoOwo+IC0gICAgICAgICAgICAgICAgdWludDhfdCBkYXk7Cj4gLSAgICAgICAgICAg
ICAgICB1aW50OF90IGhvdXI7Cj4gLSAgICAgICAgICAgICAgICB1aW50OF90IG1pbjsKPiAtICAg
ICAgICAgICAgICAgIHVpbnQ4X3Qgc2VjOwo+IC0gICAgICAgICAgICAgICAgdWludDMyX3QgbnM7
Cj4gLSAgICAgICAgICAgICAgICBpbnQxNl90IHR6Owo+IC0gICAgICAgICAgICAgICAgdWludDhf
dCBkYXlsaWdodDsKPiAtICAgICAgICAgICAgfSB0aW1lOwo+ICsgICAgICAgICAgICBzdHJ1Y3Qg
eGVucGZfZWZpX3RpbWUgdGltZTsKPiAgICAgICAgICAgICAgdWludDMyX3QgcmVzb2x1dGlvbjsK
PiAgICAgICAgICAgICAgdWludDMyX3QgYWNjdXJhY3k7Cj4gICAgICAgICAgfSBnZXRfdGltZTsK
PiBAQCAtMTcwLDEyICsxOTUsNyBAQCBzdHJ1Y3QgeGVucGZfZWZpX3J1bnRpbWVfY2FsbCB7Cj4g
ICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEUodm9pZCkgbmFtZTsgIC8qIFVDUy0yL1VURi0x
NiBzdHJpbmcgKi8KPiAgICAgICAgICAgICAgeGVuX3Vsb25nX3Qgc2l6ZTsKPiAgICAgICAgICAg
ICAgWEVOX0dVRVNUX0hBTkRMRSh2b2lkKSBkYXRhOwo+IC0gICAgICAgICAgICBzdHJ1Y3QgeGVu
cGZfZWZpX2d1aWQgewo+IC0gICAgICAgICAgICAgICAgdWludDMyX3QgZGF0YTE7Cj4gLSAgICAg
ICAgICAgICAgICB1aW50MTZfdCBkYXRhMjsKPiAtICAgICAgICAgICAgICAgIHVpbnQxNl90IGRh
dGEzOwo+IC0gICAgICAgICAgICAgICAgdWludDhfdCBkYXRhNFs4XTsKPiAtICAgICAgICAgICAg
fSB2ZW5kb3JfZ3VpZDsKPiArICAgICAgICAgICAgc3RydWN0IHhlbnBmX2VmaV9ndWlkIHZlbmRv
cl9ndWlkOwo+ICAgICAgICAgIH0gZ2V0X3ZhcmlhYmxlLCBzZXRfdmFyaWFibGU7Cj4gIAo+ICAg
ICAgICAgIHN0cnVjdCB7Cj4gQEAgLTIyMCw2ICsyNDAsNyBAQCBERUZJTkVfWEVOX0dVRVNUX0hB
TkRMRSh4ZW5wZl9lZmlfcnVudGltZV9jYWxsX3QpOwo+ICAjZGVmaW5lICBYRU5fRldfRUZJX01F
TV9JTkZPICAgICAgIDMKPiAgI2RlZmluZSAgWEVOX0ZXX0VGSV9SVF9WRVJTSU9OICAgICA0Cj4g
ICNkZWZpbmUgIFhFTl9GV19FRklfUENJX1JPTSAgICAgICAgNQo+ICsjZGVmaW5lICBYRU5fRldf
RUZJX0FQUExFX1BST1BFUlRJRVMgNgo+ICAjZGVmaW5lIFhFTl9GV19LQkRfU0hJRlRfRkxBR1Mg
ICAgNQo+ICBzdHJ1Y3QgeGVucGZfZmlybXdhcmVfaW5mbyB7Cj4gICAgICAvKiBJTiB2YXJpYWJs
ZXMuICovCj4gQEAgLTI3OSw2ICszMDAsMTEgQEAgc3RydWN0IHhlbnBmX2Zpcm13YXJlX2luZm8g
ewo+ICAgICAgICAgICAgICAgICAgdWludDY0X3QgYWRkcmVzczsKPiAgICAgICAgICAgICAgICAg
IHhlbl91bG9uZ190IHNpemU7Cj4gICAgICAgICAgICAgIH0gcGNpX3JvbTsKPiArICAgICAgICAg
ICAgc3RydWN0IHsKPiArICAgICAgICAgICAgICAgIC8qIE9VVCB2YXJpYWJsZXMgKi8KPiArICAg
ICAgICAgICAgICAgIHVpbnQ2NF90IGFkZHJlc3M7Cj4gKyAgICAgICAgICAgICAgICB4ZW5fdWxv
bmdfdCBzaXplOwo+ICsgICAgICAgICAgICB9IGFwcGxlX3Byb3BlcnRpZXM7Cj4gICAgICAgICAg
fSBlZmlfaW5mbzsgLyogWEVOX0ZXX0VGSV9JTkZPICovCj4gIAo+ICAgICAgICAgIC8qIEludDE2
LCBGbjAyOiBHZXQga2V5Ym9hcmQgc2hpZnQgZmxhZ3MuICovCj4gQEAgLTU0MCw2ICs1NjYsMTYg
QEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVucGZfY29yZV9wYXJraW5nX3QpOwo+ICAjZGVm
aW5lIFhFTl9SRVNPVVJDRV9PUF9NU1JfUkVBRCAgMAo+ICAjZGVmaW5lIFhFTl9SRVNPVVJDRV9P
UF9NU1JfV1JJVEUgMQo+ICAKPiArLyoKPiArICogU3BlY2lhbGx5IGhhbmRsZWQgTVNSczoKPiAr
ICogLSBNU1JfSUEzMl9UU0MKPiArICogUkVBRDogUmV0dXJucyB0aGUgc2NhbGVkIHN5c3RlbSB0
aW1lKG5zKSBpbnN0ZWFkIG9mIHJhdyB0aW1lc3RhbXAuIEluCj4gKyAqICAgICAgIG11bHRpcGxl
IGVudHJ5IGNhc2UsIGlmIG90aGVyIE1TUiByZWFkIGlzIGZvbGxvd2VkIGJ5IGEgTVNSX0lBMzJf
VFNDCj4gKyAqICAgICAgIHJlYWQsIHRoZW4gYm90aCByZWFkcyBhcmUgZ3VhcmFudGVlZCB0byBi
ZSBwZXJmb3JtZWQgYXRvbWljYWxseSAod2l0aAo+ICsgKiAgICAgICBJUlEgZGlzYWJsZWQpLiBU
aGUgcmV0dXJuIHRpbWUgaW5kaWNhdGVzIHRoZSBwb2ludCBvZiByZWFkaW5nIHRoYXQgTVNSLgo+
ICsgKiBXUklURTogTm90IHN1cHBvcnRlZC4KPiArICovCj4gKwo+ICBzdHJ1Y3QgeGVucGZfcmVz
b3VyY2VfZW50cnkgewo+ICAgICAgdW5pb24gewo+ICAgICAgICAgIHVpbnQzMl90IGNtZDsgICAv
KiBJTjogWEVOX1JFU09VUkNFX09QXyogKi8KPiBAQCAtNTYwLDYgKzU5NiwyNCBAQCBzdHJ1Y3Qg
eGVucGZfcmVzb3VyY2Vfb3Agewo+ICB0eXBlZGVmIHN0cnVjdCB4ZW5wZl9yZXNvdXJjZV9vcCB4
ZW5wZl9yZXNvdXJjZV9vcF90Owo+ICBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5wZl9yZXNv
dXJjZV9vcF90KTsKPiAgCj4gKyNkZWZpbmUgWEVOUEZfZ2V0X3N5bWJvbCAgIDYzCj4gK3N0cnVj
dCB4ZW5wZl9zeW1kYXRhIHsKPiArICAgIC8qIElOL09VVCB2YXJpYWJsZXMgKi8KPiArICAgIHVp
bnQzMl90IG5hbWVsZW47IC8qIElOOiAgc2l6ZSBvZiBuYW1lIGJ1ZmZlciAgICAgICAgICAgICAg
ICAgICAgICAgKi8KPiArICAgICAgICAgICAgICAgICAgICAgIC8qIE9VVDogc3RybGVuKG5hbWUp
IG9mIGh5cGVydmlzb3Igc3ltYm9sIChtYXkgYmUgKi8KPiArICAgICAgICAgICAgICAgICAgICAg
IC8qICAgICAgbGFyZ2VyIHRoYW4gd2hhdCdzIGJlZW4gY29waWVkIHRvIGd1ZXN0KSAgKi8KPiAr
ICAgIHVpbnQzMl90IHN5bW51bTsgIC8qIElOOiAgU3ltYm9sIHRvIHJlYWQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKi8KPiArICAgICAgICAgICAgICAgICAgICAgIC8qIE9VVDogTmV4dCBh
dmFpbGFibGUgc3ltYm9sLiBJZiBzYW1lIGFzIElOIHRoZW4gKi8KPiArICAgICAgICAgICAgICAg
ICAgICAgIC8qICAgICAgd2UgcmVhY2hlZCB0aGUgZW5kICAgICAgICAgICAgICAgICAgICAgICAg
Ki8KPiArCj4gKyAgICAvKiBPVVQgdmFyaWFibGVzICovCj4gKyAgICBYRU5fR1VFU1RfSEFORExF
KGNoYXIpIG5hbWU7Cj4gKyAgICB1aW50NjRfdCBhZGRyZXNzOwo+ICsgICAgY2hhciB0eXBlOwo+
ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCB4ZW5wZl9zeW1kYXRhIHhlbnBmX3N5bWRhdGFfdDsKPiAr
REVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVucGZfc3ltZGF0YV90KTsKPiArCj4gIC8qCj4gICAq
IGAgZW51bSBuZWdfZXJybm92YWwKPiAgICogYCBIWVBFUlZJU09SX3BsYXRmb3JtX29wKGNvbnN0
IHN0cnVjdCB4ZW5fcGxhdGZvcm1fb3AqKTsKPiBAQCAtNTY5LDYgKzYyMyw4IEBAIHN0cnVjdCB4
ZW5fcGxhdGZvcm1fb3Agewo+ICAgICAgdWludDMyX3QgaW50ZXJmYWNlX3ZlcnNpb247IC8qIFhF
TlBGX0lOVEVSRkFDRV9WRVJTSU9OICovCj4gICAgICB1bmlvbiB7Cj4gICAgICAgICAgc3RydWN0
IHhlbnBmX3NldHRpbWUgICAgICAgICAgIHNldHRpbWU7Cj4gKyAgICAgICAgc3RydWN0IHhlbnBm
X3NldHRpbWUzMiAgICAgICAgIHNldHRpbWUzMjsKPiArICAgICAgICBzdHJ1Y3QgeGVucGZfc2V0
dGltZTY0ICAgICAgICAgc2V0dGltZTY0Owo+ICAgICAgICAgIHN0cnVjdCB4ZW5wZl9hZGRfbWVt
dHlwZSAgICAgICBhZGRfbWVtdHlwZTsKPiAgICAgICAgICBzdHJ1Y3QgeGVucGZfZGVsX21lbXR5
cGUgICAgICAgZGVsX21lbXR5cGU7Cj4gICAgICAgICAgc3RydWN0IHhlbnBmX3JlYWRfbWVtdHlw
ZSAgICAgIHJlYWRfbWVtdHlwZTsKPiBAQCAtNTg3LDYgKzY0Myw3IEBAIHN0cnVjdCB4ZW5fcGxh
dGZvcm1fb3Agewo+ICAgICAgICAgIHN0cnVjdCB4ZW5wZl9tZW1faG90YWRkICAgICAgICBtZW1f
YWRkOwo+ICAgICAgICAgIHN0cnVjdCB4ZW5wZl9jb3JlX3BhcmtpbmcgICAgICBjb3JlX3Bhcmtp
bmc7Cj4gICAgICAgICAgc3RydWN0IHhlbnBmX3Jlc291cmNlX29wICAgICAgIHJlc291cmNlX29w
Owo+ICsgICAgICAgIHN0cnVjdCB4ZW5wZl9zeW1kYXRhICAgICAgICAgICBzeW1kYXRhOwo+ICAg
ICAgICAgIHVpbnQ4X3QgICAgICAgICAgICAgICAgICAgICAgICBwYWRbMTI4XTsKPiAgICAgIH0g
dTsKPiAgfTsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vcG11LmggYi9pbmNsdWRlL3hlbi9w
bXUuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uMGUxMzEyYwo+IC0t
LSAvZGV2L251bGwKPiArKysgYi9pbmNsdWRlL3hlbi9wbXUuaAo+IEBAIC0wLDAgKzEsMTQzIEBA
Cj4gKy8qCj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl
LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKPiArICogb2YgdGhpcyBzb2Z0d2FyZSBh
bmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCj4g
KyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3
aXRob3V0IGxpbWl0YXRpb24gdGhlCj4gKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwg
bWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgo+ICsgKiBzZWxs
IGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRo
ZSBTb2Z0d2FyZSBpcwo+ICsgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zOgo+ICsgKgo+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj
ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgo+ICsgKiBh
bGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KPiArICoK
PiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkg
T0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg
TElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4gKyAqIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRQo+ICsgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJM
RSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4gKyAqIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4g
KyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRI
RSBVU0UgT1IgT1RIRVIKPiArICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+ICsgKgo+ICsg
KiBDb3B5cmlnaHQgKGMpIDIwMTUgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRlcy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KPiArICovCj4gKwo+ICsjaWZuZGVmIF9fWEVOX1BVQkxJQ19QTVVfSF9f
Cj4gKyNkZWZpbmUgX19YRU5fUFVCTElDX1BNVV9IX18KPiArCj4gKyNpbmNsdWRlICJ4ZW4uaCIK
PiArI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKPiArI2luY2x1
ZGUgImFyY2gteDg2L3BtdS5oIgo+ICsjZWxpZiBkZWZpbmVkIChfX2FybV9fKSB8fCBkZWZpbmVk
IChfX2FhcmNoNjRfXykKPiArI2luY2x1ZGUgImFyY2gtYXJtLmgiCj4gKyNlbHNlCj4gKyNlcnJv
ciAiVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlIgo+ICsjZW5kaWYKPiArCj4gKyNkZWZpbmUgWEVO
UE1VX1ZFUl9NQUogICAgMAo+ICsjZGVmaW5lIFhFTlBNVV9WRVJfTUlOICAgIDEKPiArCj4gKy8q
Cj4gKyAqIGAgZW51bSBuZWdfZXJybm92YWwKPiArICogYCBIWVBFUlZJU09SX3hlbnBtdV9vcChl
bnVtIHhlbnBtdV9vcCBjbWQsIHN0cnVjdCB4ZW5wbXVfcGFyYW1zICphcmdzKTsKPiArICoKPiAr
ICogQGNtZCAgPT0gWEVOUE1VXyogKFBNVSBvcGVyYXRpb24pCj4gKyAqIEBhcmdzID09IHN0cnVj
dCB4ZW5wbXVfcGFyYW1zCj4gKyAqLwo+ICsvKiBgIGVudW0geGVucG11X29wIHsgKi8KPiArI2Rl
ZmluZSBYRU5QTVVfbW9kZV9nZXQgICAgICAgIDAgLyogQWxzbyB1c2VkIGZvciBnZXR0aW5nIFBN
VSB2ZXJzaW9uICovCj4gKyNkZWZpbmUgWEVOUE1VX21vZGVfc2V0ICAgICAgICAxCj4gKyNkZWZp
bmUgWEVOUE1VX2ZlYXR1cmVfZ2V0ICAgICAyCj4gKyNkZWZpbmUgWEVOUE1VX2ZlYXR1cmVfc2V0
ICAgICAzCj4gKyNkZWZpbmUgWEVOUE1VX2luaXQgICAgICAgICAgICA0Cj4gKyNkZWZpbmUgWEVO
UE1VX2ZpbmlzaCAgICAgICAgICA1Cj4gKyNkZWZpbmUgWEVOUE1VX2x2dHBjX3NldCAgICAgICA2
Cj4gKyNkZWZpbmUgWEVOUE1VX2ZsdXNoICAgICAgICAgICA3IC8qIFdyaXRlIGNhY2hlZCBNU1Ig
dmFsdWVzIHRvIEhXICAgICAqLwo+ICsvKiBgIH0gKi8KPiArCj4gKy8qIFBhcmFtZXRlcnMgc3Ry
dWN0dXJlIGZvciBIWVBFUlZJU09SX3hlbnBtdV9vcCBjYWxsICovCj4gK3N0cnVjdCB4ZW5fcG11
X3BhcmFtcyB7Cj4gKyAgICAvKiBJTi9PVVQgcGFyYW1ldGVycyAqLwo+ICsgICAgc3RydWN0IHsK
PiArICAgICAgICB1aW50MzJfdCBtYWo7Cj4gKyAgICAgICAgdWludDMyX3QgbWluOwo+ICsgICAg
fSB2ZXJzaW9uOwo+ICsgICAgdWludDY0X3QgdmFsOwo+ICsKPiArICAgIC8qIElOIHBhcmFtZXRl
cnMgKi8KPiArICAgIHVpbnQzMl90IHZjcHU7Cj4gKyAgICB1aW50MzJfdCBwYWQ7Cj4gK307Cj4g
K3R5cGVkZWYgc3RydWN0IHhlbl9wbXVfcGFyYW1zIHhlbl9wbXVfcGFyYW1zX3Q7Cj4gK0RFRklO
RV9YRU5fR1VFU1RfSEFORExFKHhlbl9wbXVfcGFyYW1zX3QpOwo+ICsKPiArLyogUE1VIG1vZGVz
Ogo+ICsgKiAtIFhFTlBNVV9NT0RFX09GRjogICBObyBQTVUgdmlydHVhbGl6YXRpb24KPiArICog
LSBYRU5QTVVfTU9ERV9TRUxGOiAgR3Vlc3RzIGNhbiBwcm9maWxlIHRoZW1zZWx2ZXMKPiArICog
LSBYRU5QTVVfTU9ERV9IVjogICAgR3Vlc3RzIGNhbiBwcm9maWxlIHRoZW1zZWx2ZXMsIGRvbTAg
cHJvZmlsZXMKPiArICogICAgICAgICAgICAgICAgICAgICAgaXRzZWxmIGFuZCBYZW4KPiArICog
LSBYRU5QTVVfTU9ERV9BTEw6ICAgT25seSBkb20wIGhhcyBhY2Nlc3MgdG8gVlBNVSBhbmQgaXQg
cHJvZmlsZXMKPiArICogICAgICAgICAgICAgICAgICAgICAgZXZlcnlvbmU6IGl0c2VsZiwgdGhl
IGh5cGVydmlzb3IgYW5kIHRoZSBndWVzdHMuCj4gKyAqLwo+ICsjZGVmaW5lIFhFTlBNVV9NT0RF
X09GRiAgICAgICAgICAgMAo+ICsjZGVmaW5lIFhFTlBNVV9NT0RFX1NFTEYgICAgICAgICAgKDE8
PDApCj4gKyNkZWZpbmUgWEVOUE1VX01PREVfSFYgICAgICAgICAgICAoMTw8MSkKPiArI2RlZmlu
ZSBYRU5QTVVfTU9ERV9BTEwgICAgICAgICAgICgxPDwyKQo+ICsKPiArLyoKPiArICogUE1VIGZl
YXR1cmVzOgo+ICsgKiAtIFhFTlBNVV9GRUFUVVJFX0lOVEVMX0JUUzogIEludGVsIEJUUyBzdXBw
b3J0IChpZ25vcmVkIG9uIEFNRCkKPiArICogLSBYRU5QTVVfRkVBVFVSRV9JUENfT05MWTogICBS
ZXN0cmljdCBQTUNzIHRvIHRoZSBtb3N0IG1pbmltdW0gc2V0IHBvc3NpYmxlLgo+ICsgKiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEluc3RydWN0aW9ucywgY3ljbGVzLCBhbmQgcmVmIGN5
Y2xlcy4gQ2FuIGJlCj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlZCB0byBj
YWxjdWxhdGUgaW5zdHJ1Y3Rpb25zLXBlci1jeWNsZSAoSVBDKQo+ICsgKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChpZ25vcmVkIG9uIEFNRCkuCj4gKyAqIC0gWEVOUE1VX0ZFQVRVUkVf
QVJDSF9PTkxZOiAgUmVzdHJpY3QgUE1DcyB0byB0aGUgSW50ZWwgUHJlLURlZmluZWQKPiArICog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcmNoaXRlY3R1cmFsIFBlcmZvcm1hbmNlIEV2
ZW50cyBleHBvc2VkIGJ5Cj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1aWQg
YW5kIGxpc3RlZCBpbiB0aGUgSW50ZWwgZGV2ZWxvcGVyJ3MgbWFudWFsCj4gKyAqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGlnbm9yZWQgb24gQU1EKS4KPiArICovCj4gKyNkZWZpbmUg
WEVOUE1VX0ZFQVRVUkVfSU5URUxfQlRTICAoMTw8MCkKPiArI2RlZmluZSBYRU5QTVVfRkVBVFVS
RV9JUENfT05MWSAgICgxPDwxKQo+ICsjZGVmaW5lIFhFTlBNVV9GRUFUVVJFX0FSQ0hfT05MWSAg
KDE8PDIpCj4gKwo+ICsvKgo+ICsgKiBTaGFyZWQgUE1VIGRhdGEgYmV0d2VlbiBoeXBlcnZpc29y
IGFuZCBQVihIKSBkb21haW5zLgo+ICsgKgo+ICsgKiBUaGUgaHlwZXJ2aXNvciBmaWxscyBvdXQg
dGhpcyBzdHJ1Y3R1cmUgZHVyaW5nIFBNVSBpbnRlcnJ1cHQgYW5kIHNlbmRzIGFuCj4gKyAqIGlu
dGVycnVwdCB0byBhcHByb3ByaWF0ZSBWQ1BVLgo+ICsgKiBBcmNoaXRlY3R1cmUtaW5kZXBlbmRl
bnQgZmllbGRzIG9mIHhlbl9wbXVfZGF0YSBhcmUgV08gZm9yIHRoZSBoeXBlcnZpc29yCj4gKyAq
IGFuZCBSTyBmb3IgdGhlIGd1ZXN0IGJ1dCBzb21lIGZpZWxkcyBpbiB4ZW5fcG11X2FyY2ggY2Fu
IGJlIHdyaXRhYmxlCj4gKyAqIGJ5IGJvdGggdGhlIGh5cGVydmlzb3IgYW5kIHRoZSBndWVzdCAo
c2VlIGFyY2gtJGFyY2gvcG11LmgpLgo+ICsgKi8KPiArc3RydWN0IHhlbl9wbXVfZGF0YSB7Cj4g
KyAgICAvKiBJbnRlcnJ1cHRlZCBWQ1BVICovCj4gKyAgICB1aW50MzJfdCB2Y3B1X2lkOwo+ICsK
PiArICAgIC8qCj4gKyAgICAgKiBQaHlzaWNhbCBwcm9jZXNzb3Igb24gd2hpY2ggdGhlIGludGVy
cnVwdCBvY2N1cnJlZC4gT24gbm9uLXByaXZpbGVnZWQKPiArICAgICAqIGd1ZXN0cyBzZXQgdG8g
dmNwdV9pZDsKPiArICAgICAqLwo+ICsgICAgdWludDMyX3QgcGNwdV9pZDsKPiArCj4gKyAgICAv
Kgo+ICsgICAgICogRG9tYWluIHRoYXQgd2FzIGludGVycnVwdGVkLiBPbiBub24tcHJpdmlsZWdl
ZCBndWVzdHMgc2V0IHRvIERPTUlEX1NFTEYuCj4gKyAgICAgKiBPbiBwcml2aWxlZ2VkIGd1ZXN0
cyBjYW4gYmUgRE9NSURfU0VMRiwgRE9NSURfWEVOLCBvciwgd2hlbiBpbgo+ICsgICAgICogWEVO
UE1VX01PREVfQUxMIG1vZGUsIGRvbWFpbiBJRCBvZiBhbm90aGVyIGRvbWFpbi4KPiArICAgICAq
Lwo+ICsgICAgZG9taWRfdCAgZG9tYWluX2lkOwo+ICsKPiArICAgIHVpbnQ4X3QgcGFkWzZdOwo+
ICsKPiArICAgIC8qIEFyY2hpdGVjdHVyZS1zcGVjaWZpYyBpbmZvcm1hdGlvbiAqLwo+ICsgICAg
c3RydWN0IHhlbl9wbXVfYXJjaCBwbXU7Cj4gK307Cj4gKwo+ICsjZW5kaWYgLyogX19YRU5fUFVC
TElDX1BNVV9IX18gKi8KPiArCj4gKy8qCj4gKyAqIExvY2FsIHZhcmlhYmxlczoKPiArICogbW9k
ZTogQwo+ICsgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCj4gKyAqIGMtYmFzaWMtb2Zmc2V0OiA0Cj4g
KyAqIHRhYi13aWR0aDogNAo+ICsgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKPiArICogRW5kOgo+
ICsgKi8KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vc2NoZWQuaCBiL2luY2x1ZGUveGVuL3Nj
aGVkLmgKPiBpbmRleCA0MDAwYWM5Li44MTFiZDg3IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUveGVu
L3NjaGVkLmgKPiArKysgYi9pbmNsdWRlL3hlbi9zY2hlZC5oCj4gQEAgLTExOCw2ICsxMTgsMTgg
QEAKPiAgICogV2l0aCBpZCAhPSAwIGFuZCB0aW1lb3V0ICE9IDAsIHBva2Ugd2F0Y2hkb2cgdGlt
ZXIgYW5kIHNldCBuZXcgdGltZW91dC4KPiAgICovCj4gICNkZWZpbmUgU0NIRURPUF93YXRjaGRv
ZyAgICA2Cj4gKwo+ICsvKgo+ICsgKiBPdmVycmlkZSB0aGUgY3VycmVudCB2Y3B1IGFmZmluaXR5
IGJ5IHBpbm5pbmcgaXQgdG8gb25lIHBoeXNpY2FsIGNwdSBvcgo+ICsgKiB1bmRvIHRoaXMgb3Zl
cnJpZGUgcmVzdG9yaW5nIHRoZSBwcmV2aW91cyBhZmZpbml0eS4KPiArICogQGFyZyA9PSBwb2lu
dGVyIHRvIHNjaGVkX3Bpbl9vdmVycmlkZV90IHN0cnVjdHVyZS4KPiArICoKPiArICogQSBuZWdh
dGl2ZSBwY3B1IHZhbHVlIHdpbGwgdW5kbyBhIHByZXZpb3VzIHBpbiBvdmVycmlkZSBhbmQgcmVz
dG9yZSB0aGUKPiArICogcHJldmlvdXMgY3B1IGFmZmluaXR5Lgo+ICsgKiBUaGlzIGNhbGwgaXMg
YWxsb3dlZCBmb3IgdGhlIGhhcmR3YXJlIGRvbWFpbiBvbmx5IGFuZCByZXF1aXJlcyB0aGUgY3B1
Cj4gKyAqIHRvIGJlIHBhcnQgb2YgdGhlIGRvbWFpbidzIGNwdXBvb2wuCj4gKyAqLwo+ICsjZGVm
aW5lIFNDSEVET1BfcGluX292ZXJyaWRlIDcKPiAgLyogYCB9ICovCj4gIAo+ICBzdHJ1Y3Qgc2No
ZWRfc2h1dGRvd24gewo+IEBAIC0xNDgsNiArMTYwLDEyIEBAIHN0cnVjdCBzY2hlZF93YXRjaGRv
ZyB7Cj4gIHR5cGVkZWYgc3RydWN0IHNjaGVkX3dhdGNoZG9nIHNjaGVkX3dhdGNoZG9nX3Q7Cj4g
IERFRklORV9YRU5fR1VFU1RfSEFORExFKHNjaGVkX3dhdGNoZG9nX3QpOwo+ICAKPiArc3RydWN0
IHNjaGVkX3Bpbl9vdmVycmlkZSB7Cj4gKyAgICBpbnQzMl90IHBjcHU7Cj4gK307Cj4gK3R5cGVk
ZWYgc3RydWN0IHNjaGVkX3Bpbl9vdmVycmlkZSBzY2hlZF9waW5fb3ZlcnJpZGVfdDsKPiArREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUoc2NoZWRfcGluX292ZXJyaWRlX3QpOwo+ICsKPiAgLyoKPiAg
ICogUmVhc29uIGNvZGVzIGZvciBTQ0hFRE9QX3NodXRkb3duLiBUaGVzZSBtYXkgYmUgaW50ZXJw
cmV0ZWQgYnkgY29udHJvbAo+ICAgKiBzb2Z0d2FyZSB0byBkZXRlcm1pbmUgdGhlIGFwcHJvcHJp
YXRlIGFjdGlvbi4gRm9yIHRoZSBtb3N0IHBhcnQsIFhlbiBkb2VzCj4gQEAgLTE1OSw3ICsxNzcs
MTYgQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoc2NoZWRfd2F0Y2hkb2dfdCk7Cj4gICNkZWZp
bmUgU0hVVERPV05fc3VzcGVuZCAgICAyICAvKiBDbGVhbiB1cCwgc2F2ZSBzdXNwZW5kIGluZm8s
IGtpbGwuICAgICAgICAgKi8KPiAgI2RlZmluZSBTSFVURE9XTl9jcmFzaCAgICAgIDMgIC8qIFRl
bGwgY29udHJvbGxlciB3ZSd2ZSBjcmFzaGVkLiAgICAgICAgICAgICAqLwo+ICAjZGVmaW5lIFNI
VVRET1dOX3dhdGNoZG9nICAgNCAgLyogUmVzdGFydCBiZWNhdXNlIHdhdGNoZG9nIHRpbWUgZXhw
aXJlZC4gICAgICovCj4gLSNkZWZpbmUgU0hVVERPV05fTUFYICAgICAgICA0ICAvKiBNYXhpbXVt
IHZhbGlkIHNodXRkb3duIHJlYXNvbi4gICAgICAgICAgICAgKi8KPiArCj4gKy8qCj4gKyAqIERv
bWFpbiBhc2tlZCB0byBwZXJmb3JtICdzb2Z0IHJlc2V0JyBmb3IgaXQuIFRoZSBleHBlY3RlZCBi
ZWhhdmlvciBpcyB0bwo+ICsgKiByZXNldCBpbnRlcm5hbCBYZW4gc3RhdGUgZm9yIHRoZSBkb21h
aW4gcmV0dXJuaW5nIGl0IHRvIHRoZSBwb2ludCB3aGVyZSBpdAo+ICsgKiB3YXMgY3JlYXRlZCBi
dXQgbGVhdmluZyB0aGUgZG9tYWluJ3MgbWVtb3J5IGNvbnRlbnRzIGFuZCB2Q1BVIGNvbnRleHRz
Cj4gKyAqIGludGFjdC4gVGhpcyB3aWxsIGFsbG93IHRoZSBkb21haW4gdG8gc3RhcnQgb3ZlciBh
bmQgc2V0IHVwIGFsbCBYZW4gc3BlY2lmaWMKPiArICogaW50ZXJmYWNlcyBhZ2Fpbi4KPiArICov
Cj4gKyNkZWZpbmUgU0hVVERPV05fc29mdF9yZXNldCA1Cj4gKyNkZWZpbmUgU0hVVERPV05fTUFY
ICAgICAgICA1ICAvKiBNYXhpbXVtIHZhbGlkIHNodXRkb3duIHJlYXNvbi4gICAgICAgICAgICAg
Ki8KPiAgLyogYCB9ICovCj4gIAo+ICAjZW5kaWYgLyogX19YRU5fUFVCTElDX1NDSEVEX0hfXyAq
Lwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9zeXNjdGwuaCBiL2luY2x1ZGUveGVuL3N5c2N0
bC5oCj4gaW5kZXggODU1MmRjNi4uNjE0MGYxYSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3hlbi9z
eXNjdGwuaAo+ICsrKyBiL2luY2x1ZGUveGVuL3N5c2N0bC5oCj4gQEAgLTMzLDggKzMzLDEwIEBA
Cj4gIAo+ICAjaW5jbHVkZSAieGVuLmgiCj4gICNpbmNsdWRlICJkb21jdGwuaCIKPiArI2luY2x1
ZGUgInBoeXNkZXYuaCIKPiArI2luY2x1ZGUgInRtZW0uaCIKPiAgCj4gLSNkZWZpbmUgWEVOX1NZ
U0NUTF9JTlRFUkZBQ0VfVkVSU0lPTiAweDAwMDAwMDBCCj4gKyNkZWZpbmUgWEVOX1NZU0NUTF9J
TlRFUkZBQ0VfVkVSU0lPTiAweDAwMDAwMDEwCj4gIAo+ICAvKgo+ICAgKiBSZWFkIGNvbnNvbGUg
Y29udGVudCBmcm9tIFhlbiBidWZmZXIgcmluZy4KPiBAQCAtNTYsOCArNTgsNiBAQCBzdHJ1Y3Qg
eGVuX3N5c2N0bF9yZWFkY29uc29sZSB7Cj4gICAgICAvKiBJTjogU2l6ZSBvZiBidWZmZXI7IE9V
VDogQnl0ZXMgd3JpdHRlbiB0byBidWZmZXIuICovCj4gICAgICB1aW50MzJfdCBjb3VudDsKPiAg
fTsKPiAtdHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bF9yZWFkY29uc29sZSB4ZW5fc3lzY3RsX3Jl
YWRjb25zb2xlX3Q7Cj4gLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNjdGxfcmVhZGNv
bnNvbGVfdCk7Cj4gIAo+ICAvKiBHZXQgdHJhY2UgYnVmZmVycyBtYWNoaW5lIGJhc2UgYWRkcmVz
cyAqLwo+ICAvKiBYRU5fU1lTQ1RMX3RidWZfb3AgKi8KPiBAQCAtNzcsOCArNzcsNiBAQCBzdHJ1
Y3QgeGVuX3N5c2N0bF90YnVmX29wIHsKPiAgICAgIHVpbnQ2NF9hbGlnbmVkX3QgYnVmZmVyX21m
bjsKPiAgICAgIHVpbnQzMl90IHNpemU7ICAvKiBBbHNvIGFuIElOIHZhcmlhYmxlISAqLwo+ICB9
Owo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX3RidWZfb3AgeGVuX3N5c2N0bF90YnVmX29w
X3Q7Cj4gLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNjdGxfdGJ1Zl9vcF90KTsKPiAg
Cj4gIC8qCj4gICAqIEdldCBwaHlzaWNhbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgaG9zdCBtYWNo
aW5lCj4gQEAgLTk4LDE3ICs5NiwxNCBAQCBzdHJ1Y3QgeGVuX3N5c2N0bF9waHlzaW5mbyB7Cj4g
ICAgICB1aW50MzJfdCBucl9ub2RlczsgICAgLyogIyBub2RlcyBjdXJyZW50bHkgb25saW5lICov
Cj4gICAgICB1aW50MzJfdCBtYXhfbm9kZV9pZDsgLyogTGFyZ2VzdCBwb3NzaWJsZSBub2RlIElE
IG9uIHRoaXMgaG9zdCAqLwo+ICAgICAgdWludDMyX3QgY3B1X2toejsKPiArICAgIHVpbnQzMl90
IGNhcGFiaWxpdGllczsvKiBYRU5fU1lTQ1RMX1BIWVNDQVBfPz8/ICovCj4gICAgICB1aW50NjRf
YWxpZ25lZF90IHRvdGFsX3BhZ2VzOwo+ICAgICAgdWludDY0X2FsaWduZWRfdCBmcmVlX3BhZ2Vz
Owo+ICAgICAgdWludDY0X2FsaWduZWRfdCBzY3J1Yl9wYWdlczsKPiAgICAgIHVpbnQ2NF9hbGln
bmVkX3Qgb3V0c3RhbmRpbmdfcGFnZXM7Cj4gKyAgICB1aW50NjRfYWxpZ25lZF90IG1heF9tZm47
IC8qIExhcmdlc3QgcG9zc2libGUgTUZOIG9uIHRoaXMgaG9zdCAqLwo+ICAgICAgdWludDMyX3Qg
aHdfY2FwWzhdOwo+IC0KPiAtICAgIC8qIFhFTl9TWVNDVExfUEhZU0NBUF8/Pz8gKi8KPiAtICAg
IHVpbnQzMl90IGNhcGFiaWxpdGllczsKPiAgfTsKPiAtdHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0
bF9waHlzaW5mbyB4ZW5fc3lzY3RsX3BoeXNpbmZvX3Q7Cj4gLURFRklORV9YRU5fR1VFU1RfSEFO
RExFKHhlbl9zeXNjdGxfcGh5c2luZm9fdCk7Cj4gIAo+ICAvKgo+ICAgKiBHZXQgdGhlIElEIG9m
IHRoZSBjdXJyZW50IHNjaGVkdWxlci4KPiBAQCAtMTE4LDggKzExMyw2IEBAIHN0cnVjdCB4ZW5f
c3lzY3RsX3NjaGVkX2lkIHsKPiAgICAgIC8qIE9VVCB2YXJpYWJsZSAqLwo+ICAgICAgdWludDMy
X3Qgc2NoZWRfaWQ7Cj4gIH07Cj4gLXR5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfc2NoZWRfaWQg
eGVuX3N5c2N0bF9zY2hlZF9pZF90Owo+IC1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lz
Y3RsX3NjaGVkX2lkX3QpOwo+ICAKPiAgLyogSW50ZXJmYWNlIGZvciBjb250cm9sbGluZyBYZW4g
c29mdHdhcmUgcGVyZm9ybWFuY2UgY291bnRlcnMuICovCj4gIC8qIFhFTl9TWVNDVExfcGVyZmNf
b3AgKi8KPiBAQCAtMTQ2LDggKzEzOSw2IEBAIHN0cnVjdCB4ZW5fc3lzY3RsX3BlcmZjX29wIHsK
PiAgICAgIC8qIGNvdW50ZXIgdmFsdWVzIChvciBOVUxMKSAqLwo+ICAgICAgWEVOX0dVRVNUX0hB
TkRMRV82NCh4ZW5fc3lzY3RsX3BlcmZjX3ZhbF90KSB2YWw7Cj4gIH07Cj4gLXR5cGVkZWYgc3Ry
dWN0IHhlbl9zeXNjdGxfcGVyZmNfb3AgeGVuX3N5c2N0bF9wZXJmY19vcF90Owo+IC1ERUZJTkVf
WEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX3BlcmZjX29wX3QpOwo+ICAKPiAgLyogWEVOX1NZ
U0NUTF9nZXRkb21haW5pbmZvbGlzdCAqLwo+ICBzdHJ1Y3QgeGVuX3N5c2N0bF9nZXRkb21haW5p
bmZvbGlzdCB7Cj4gQEAgLTE1OCw4ICsxNDksNiBAQCBzdHJ1Y3QgeGVuX3N5c2N0bF9nZXRkb21h
aW5pbmZvbGlzdCB7Cj4gICAgICAvKiBPVVQgdmFyaWFibGVzLiAqLwo+ICAgICAgdWludDMyX3Qg
ICAgICAgICAgICAgIG51bV9kb21haW5zOwo+ICB9Owo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fc3lz
Y3RsX2dldGRvbWFpbmluZm9saXN0IHhlbl9zeXNjdGxfZ2V0ZG9tYWluaW5mb2xpc3RfdDsKPiAt
REVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9nZXRkb21haW5pbmZvbGlzdF90KTsK
PiAgCj4gIC8qIEluamVjdCBkZWJ1ZyBrZXlzIGludG8gWGVuLiAqLwo+ICAvKiBYRU5fU1lTQ1RM
X2RlYnVnX2tleXMgKi8KPiBAQCAtMTY4LDggKzE1Nyw2IEBAIHN0cnVjdCB4ZW5fc3lzY3RsX2Rl
YnVnX2tleXMgewo+ICAgICAgWEVOX0dVRVNUX0hBTkRMRV82NChjaGFyKSBrZXlzOwo+ICAgICAg
dWludDMyX3QgbnJfa2V5czsKPiAgfTsKPiAtdHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bF9kZWJ1
Z19rZXlzIHhlbl9zeXNjdGxfZGVidWdfa2V5c190Owo+IC1ERUZJTkVfWEVOX0dVRVNUX0hBTkRM
RSh4ZW5fc3lzY3RsX2RlYnVnX2tleXNfdCk7Cj4gIAo+ICAvKiBHZXQgcGh5c2ljYWwgQ1BVIGlu
Zm9ybWF0aW9uLiAqLwo+ICAvKiBYRU5fU1lTQ1RMX2dldGNwdWluZm8gKi8KPiBAQCAtMTg1LDgg
KzE3Miw2IEBAIHN0cnVjdCB4ZW5fc3lzY3RsX2dldGNwdWluZm8gewo+ICAgICAgLyogT1VUIHZh
cmlhYmxlcy4gKi8KPiAgICAgIHVpbnQzMl90IG5yX2NwdXM7Cj4gIH07IAo+IC10eXBlZGVmIHN0
cnVjdCB4ZW5fc3lzY3RsX2dldGNwdWluZm8geGVuX3N5c2N0bF9nZXRjcHVpbmZvX3Q7Cj4gLURF
RklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNjdGxfZ2V0Y3B1aW5mb190KTsgCj4gIAo+ICAv
KiBYRU5fU1lTQ1RMX2F2YWlsaGVhcCAqLwo+ICBzdHJ1Y3QgeGVuX3N5c2N0bF9hdmFpbGhlYXAg
ewo+IEBAIC0xOTcsOCArMTgyLDYgQEAgc3RydWN0IHhlbl9zeXNjdGxfYXZhaWxoZWFwIHsKPiAg
ICAgIC8qIE9VVCB2YXJpYWJsZXMuICovCj4gICAgICB1aW50NjRfYWxpZ25lZF90IGF2YWlsX2J5
dGVzOy8qIEJ5dGVzIGF2YWlsYWJsZSBpbiB0aGUgc3BlY2lmaWVkIHJlZ2lvbi4gKi8KPiAgfTsK
PiAtdHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bF9hdmFpbGhlYXAgeGVuX3N5c2N0bF9hdmFpbGhl
YXBfdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9hdmFpbGhlYXBfdCk7
Cj4gIAo+ICAvKiBYRU5fU1lTQ1RMX2dldF9wbXN0YXQgKi8KPiAgc3RydWN0IHBtX3B4X3ZhbCB7
Cj4gQEAgLTIxNyw4ICsyMDAsNiBAQCBzdHJ1Y3QgcG1fcHhfc3RhdCB7Cj4gICAgICBYRU5fR1VF
U1RfSEFORExFXzY0KHVpbnQ2NCkgdHJhbnNfcHQ7ICAgLyogUHggdHJhbnNpdGlvbiB0YWJsZSAq
Lwo+ICAgICAgWEVOX0dVRVNUX0hBTkRMRV82NChwbV9weF92YWxfdCkgcHQ7Cj4gIH07Cj4gLXR5
cGVkZWYgc3RydWN0IHBtX3B4X3N0YXQgcG1fcHhfc3RhdF90Owo+IC1ERUZJTkVfWEVOX0dVRVNU
X0hBTkRMRShwbV9weF9zdGF0X3QpOwo+ICAKPiAgc3RydWN0IHBtX2N4X3N0YXQgewo+ICAgICAg
dWludDMyX3QgbnI7ICAgIC8qIGVudHJ5IG5yIGluIHRyaWdnZXJzICYgcmVzaWRlbmNpZXMsIGlu
Y2x1ZGluZyBDMCAqLwo+IEBAIC0yNTcsOCArMjM4LDYgQEAgc3RydWN0IHhlbl9zeXNjdGxfZ2V0
X3Btc3RhdCB7Cj4gICAgICAgICAgLyogb3RoZXIgc3RydWN0IGZvciB0eCwgZXRjICovCj4gICAg
ICB9IHU7Cj4gIH07Cj4gLXR5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfZ2V0X3Btc3RhdCB4ZW5f
c3lzY3RsX2dldF9wbXN0YXRfdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0
bF9nZXRfcG1zdGF0X3QpOwo+ICAKPiAgLyogWEVOX1NZU0NUTF9jcHVfaG90cGx1ZyAqLwo+ICBz
dHJ1Y3QgeGVuX3N5c2N0bF9jcHVfaG90cGx1ZyB7Cj4gQEAgLTI2OCw4ICsyNDcsNiBAQCBzdHJ1
Y3QgeGVuX3N5c2N0bF9jcHVfaG90cGx1ZyB7Cj4gICNkZWZpbmUgWEVOX1NZU0NUTF9DUFVfSE9U
UExVR19PRkZMSU5FIDEKPiAgICAgIHVpbnQzMl90IG9wOyAgICAvKiBob3RwbHVnIG9wY29kZSAq
Lwo+ICB9Owo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX2NwdV9ob3RwbHVnIHhlbl9zeXNj
dGxfY3B1X2hvdHBsdWdfdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9j
cHVfaG90cGx1Z190KTsKPiAgCj4gIC8qCj4gICAqIEdldC9zZXQgeGVuIHBvd2VyIG1hbmFnZW1l
bnQsIGluY2x1ZGUgCj4gQEAgLTI3OSw3ICsyNTYsNiBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRM
RSh4ZW5fc3lzY3RsX2NwdV9ob3RwbHVnX3QpOwo+ICBzdHJ1Y3QgeGVuX3VzZXJzcGFjZSB7Cj4g
ICAgICB1aW50MzJfdCBzY2FsaW5nX3NldHNwZWVkOwo+ICB9Owo+IC10eXBlZGVmIHN0cnVjdCB4
ZW5fdXNlcnNwYWNlIHhlbl91c2Vyc3BhY2VfdDsKPiAgCj4gIHN0cnVjdCB4ZW5fb25kZW1hbmQg
ewo+ICAgICAgdWludDMyX3Qgc2FtcGxpbmdfcmF0ZV9tYXg7Cj4gQEAgLTI4OCw3ICsyNjQsNiBA
QCBzdHJ1Y3QgeGVuX29uZGVtYW5kIHsKPiAgICAgIHVpbnQzMl90IHNhbXBsaW5nX3JhdGU7Cj4g
ICAgICB1aW50MzJfdCB1cF90aHJlc2hvbGQ7Cj4gIH07Cj4gLXR5cGVkZWYgc3RydWN0IHhlbl9v
bmRlbWFuZCB4ZW5fb25kZW1hbmRfdDsKPiAgCj4gIC8qIAo+ICAgKiBjcHVmcmVxIHBhcmEgbmFt
ZSBvZiB0aGlzIHN0cnVjdHVyZSBuYW1lZCAKPiBAQCAtNDU5LDY3ICs0MzQsNzYgQEAgc3RydWN0
IHhlbl9zeXNjdGxfbG9ja3Byb2Zfb3Agewo+ICAgICAgLyogcHJvZmlsZSBpbmZvcm1hdGlvbiAo
b3IgTlVMTCkgKi8KPiAgICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQoeGVuX3N5c2N0bF9sb2NrcHJv
Zl9kYXRhX3QpIGRhdGE7Cj4gIH07Cj4gLXR5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfbG9ja3By
b2Zfb3AgeGVuX3N5c2N0bF9sb2NrcHJvZl9vcF90Owo+IC1ERUZJTkVfWEVOX0dVRVNUX0hBTkRM
RSh4ZW5fc3lzY3RsX2xvY2twcm9mX29wX3QpOwo+ICAKPiAtLyogWEVOX1NZU0NUTF90b3BvbG9n
eWluZm8gKi8KPiAtI2RlZmluZSBJTlZBTElEX1RPUE9MT0dZX0lEICAofjBVKQo+IC1zdHJ1Y3Qg
eGVuX3N5c2N0bF90b3BvbG9neWluZm8gewo+IC0gICAgLyoKPiAtICAgICAqIElOOiBtYXhpbXVt
IGFkZHJlc3NhYmxlIGVudHJ5IGluIHRoZSBjYWxsZXItcHJvdmlkZWQgYXJyYXlzLgo+IC0gICAg
ICogT1VUOiBsYXJnZXN0IGNwdSBpZGVudGlmaWVyIGluIHRoZSBzeXN0ZW0uCj4gLSAgICAgKiBJ
ZiBPVVQgaXMgZ3JlYXRlciB0aGFuIElOIHRoZW4gdGhlIGFycmF5cyBhcmUgdHJ1bmNhdGVkIQo+
IC0gICAgICogSWYgT1VUIGlzIGxlYXNzIHRoYW4gSU4gdGhlbiB0aGUgYXJyYXkgdGFpbHMgYXJl
IG5vdCB3cml0dGVuIGJ5IHN5c2N0bC4KPiAtICAgICAqLwo+IC0gICAgdWludDMyX3QgbWF4X2Nw
dV9pbmRleDsKPiArLyogWEVOX1NZU0NUTF9jcHV0b3BvaW5mbyAqLwo+ICsjZGVmaW5lIFhFTl9J
TlZBTElEX0NPUkVfSUQgICAgICh+MFUpCj4gKyNkZWZpbmUgWEVOX0lOVkFMSURfU09DS0VUX0lE
ICAgKH4wVSkKPiArI2RlZmluZSBYRU5fSU5WQUxJRF9OT0RFX0lEICAgICAofjBVKQo+ICAKPiAt
ICAgIC8qCj4gLSAgICAgKiBJZiBub3QgTlVMTCwgdGhlc2UgYXJyYXlzIGFyZSBmaWxsZWQgd2l0
aCBjb3JlL3NvY2tldC9ub2RlIGlkZW50aWZpZXIKPiAtICAgICAqIGZvciBlYWNoIGNwdS4KPiAt
ICAgICAqIElmIGEgY3B1IGhhcyBubyBjb3JlL3NvY2tldC9ub2RlIGluZm9ybWF0aW9uIChlLmcu
LCBjcHUgbm90IHByZXNlbnQpIAo+IC0gICAgICogdGhlbiB0aGUgc2VudGluZWwgdmFsdWUgfjB1
IGlzIHdyaXR0ZW4gdG8gZWFjaCBhcnJheS4KPiAtICAgICAqIFRoZSBudW1iZXIgb2YgYXJyYXkg
ZWxlbWVudHMgd3JpdHRlbiBieSB0aGUgc3lzY3RsIGlzOgo+IC0gICAgICogICBtaW4oQG1heF9j
cHVfaW5kZXhfSU4sQG1heF9jcHVfaW5kZXhfT1VUKSsxCj4gLSAgICAgKi8KPiAtICAgIFhFTl9H
VUVTVF9IQU5ETEVfNjQodWludDMyKSBjcHVfdG9fY29yZTsKPiAtICAgIFhFTl9HVUVTVF9IQU5E
TEVfNjQodWludDMyKSBjcHVfdG9fc29ja2V0Owo+IC0gICAgWEVOX0dVRVNUX0hBTkRMRV82NCh1
aW50MzIpIGNwdV90b19ub2RlOwo+ICtzdHJ1Y3QgeGVuX3N5c2N0bF9jcHV0b3BvIHsKPiArICAg
IHVpbnQzMl90IGNvcmU7Cj4gKyAgICB1aW50MzJfdCBzb2NrZXQ7Cj4gKyAgICB1aW50MzJfdCBu
b2RlOwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX2NwdXRvcG8geGVuX3N5c2N0
bF9jcHV0b3BvX3Q7Cj4gK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNjdGxfY3B1dG9w
b190KTsKPiArCj4gKy8qCj4gKyAqIElOOgo+ICsgKiAgLSBhIE5VTEwgJ2NwdXRvcG8nIGhhbmRs
ZSBpcyBhIHJlcXVlc3QgZm9yIG1heGltdW4gJ251bV9jcHVzJy4KPiArICogIC0gb3RoZXJ3aXNl
IGl0J3MgdGhlIG51bWJlciBvZiBlbnRyaWVzIGluICdjcHV0b3BvJwo+ICsgKgo+ICsgKiBPVVQ6
Cj4gKyAqICAtIElmICdudW1fY3B1cycgaXMgbGVzcyB0aGFuIHRoZSBudW1iZXIgWGVuIHdhbnRz
IHRvIHdyaXRlIGJ1dCB0aGUgaGFuZGxlCj4gKyAqICAgIGhhbmRsZSBpcyBub3QgYSBOVUxMIG9u
ZSwgcGFydGlhbCBkYXRhIGdldHMgcmV0dXJuZWQgYW5kICdudW1fY3B1cycgZ2V0cwo+ICsgKiAg
ICB1cGRhdGVkIHRvIHJlZmxlY3QgdGhlIGludGVuZGVkIG51bWJlci4KPiArICogIC0gT3RoZXJ3
aXNlLCAnbnVtX2NwdXMnIHNoYWxsIGluZGljYXRlIHRoZSBudW1iZXIgb2YgZW50cmllcyB3cml0
dGVuLCB3aGljaAo+ICsgKiAgICBtYXkgYmUgbGVzcyB0aGFuIHRoZSBpbnB1dCB2YWx1ZS4KPiAr
ICovCj4gK3N0cnVjdCB4ZW5fc3lzY3RsX2NwdXRvcG9pbmZvIHsKPiArICAgIHVpbnQzMl90IG51
bV9jcHVzOwo+ICsgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh4ZW5fc3lzY3RsX2NwdXRvcG9fdCkg
Y3B1dG9wbzsKPiAgfTsKPiAtdHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bF90b3BvbG9neWluZm8g
eGVuX3N5c2N0bF90b3BvbG9neWluZm9fdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVu
X3N5c2N0bF90b3BvbG9neWluZm9fdCk7Cj4gIAo+ICAvKiBYRU5fU1lTQ1RMX251bWFpbmZvICov
Cj4gLSNkZWZpbmUgSU5WQUxJRF9OVU1BSU5GT19JRCAofjBVKQo+ICsjZGVmaW5lIFhFTl9JTlZB
TElEX01FTV9TWiAgICAgKH4wVSkKPiArI2RlZmluZSBYRU5fSU5WQUxJRF9OT0RFX0RJU1QgICh+
MFUpCj4gKwo+ICtzdHJ1Y3QgeGVuX3N5c2N0bF9tZW1pbmZvIHsKPiArICAgIHVpbnQ2NF90IG1l
bXNpemU7Cj4gKyAgICB1aW50NjRfdCBtZW1mcmVlOwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCB4
ZW5fc3lzY3RsX21lbWluZm8geGVuX3N5c2N0bF9tZW1pbmZvX3Q7Cj4gK0RFRklORV9YRU5fR1VF
U1RfSEFORExFKHhlbl9zeXNjdGxfbWVtaW5mb190KTsKPiArCj4gKy8qCj4gKyAqIElOOgo+ICsg
KiAgLSBCb3RoICdtZW1pbmZvJyBhbmQgJ2Rpc3RhbmNlJyBoYW5kbGVzIGJlaW5nIG51bGwgaXMg
YSByZXF1ZXN0Cj4gKyAqICAgIGZvciBtYXhpbXVtIHZhbHVlIG9mICdudW1fbm9kZXMnLgo+ICsg
KiAgLSBPdGhlcndpc2UgaXQncyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gJ21lbWluZm8nIGFu
ZCBzcXVhcmUgcm9vdAo+ICsgKiAgICBvZiBudW1iZXIgb2YgZW50cmllcyBpbiAnZGlzdGFuY2Un
ICh3aGVuIGNvcnJlc3BvbmRpbmcgaGFuZGxlIGlzCj4gKyAqICAgIG5vbi1udWxsKQo+ICsgKgo+
ICsgKiBPVVQ6Cj4gKyAqICAtIElmICdudW1fbm9kZXMnIGlzIGxlc3MgdGhhbiB0aGUgbnVtYmVy
IFhlbiB3YW50cyB0byB3cml0ZSBidXQgZWl0aGVyCj4gKyAqICAgIGhhbmRsZSBpcyBub3QgYSBO
VUxMIG9uZSwgcGFydGlhbCBkYXRhIGdldHMgcmV0dXJuZWQgYW5kICdudW1fbm9kZXMnCj4gKyAq
ICAgIGdldHMgdXBkYXRlZCB0byByZWZsZWN0IHRoZSBpbnRlbmRlZCBudW1iZXIuCj4gKyAqICAt
IE90aGVyd2lzZSwgJ251bV9ub2Rlcycgc2hhbGwgaW5kaWNhdGUgdGhlIG51bWJlciBvZiBlbnRy
aWVzIHdyaXR0ZW4sIHdoaWNoCj4gKyAqICAgIG1heSBiZSBsZXNzIHRoYW4gdGhlIGlucHV0IHZh
bHVlLgo+ICsgKi8KPiArCj4gIHN0cnVjdCB4ZW5fc3lzY3RsX251bWFpbmZvIHsKPiAtICAgIC8q
Cj4gLSAgICAgKiBJTjogbWF4aW11bSBhZGRyZXNzYWJsZSBlbnRyeSBpbiB0aGUgY2FsbGVyLXBy
b3ZpZGVkIGFycmF5cy4KPiAtICAgICAqIE9VVDogbGFyZ2VzdCBub2RlIGlkZW50aWZpZXIgaW4g
dGhlIHN5c3RlbS4KPiAtICAgICAqIElmIE9VVCBpcyBncmVhdGVyIHRoYW4gSU4gdGhlbiB0aGUg
YXJyYXlzIGFyZSB0cnVuY2F0ZWQhCj4gLSAgICAgKi8KPiAtICAgIHVpbnQzMl90IG1heF9ub2Rl
X2luZGV4Owo+ICsgICAgdWludDMyX3QgbnVtX25vZGVzOwo+ICAKPiAtICAgIC8qIE5CLiBFbnRy
aWVzIGFyZSAwIGlmIG5vZGUgaXMgbm90IHByZXNlbnQuICovCj4gLSAgICBYRU5fR1VFU1RfSEFO
RExFXzY0KHVpbnQ2NCkgbm9kZV90b19tZW1zaXplOwo+IC0gICAgWEVOX0dVRVNUX0hBTkRMRV82
NCh1aW50NjQpIG5vZGVfdG9fbWVtZnJlZTsKPiArICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQoeGVu
X3N5c2N0bF9tZW1pbmZvX3QpIG1lbWluZm87Cj4gIAo+ICAgICAgLyoKPiAtICAgICAqIEFycmF5
LCBvZiBzaXplIChtYXhfbm9kZV9pbmRleCsxKV4yLCBsaXN0aW5nIG1lbW9yeSBhY2Nlc3MgZGlz
dGFuY2VzCj4gLSAgICAgKiBiZXR3ZWVuIG5vZGVzLiBJZiBhbiBlbnRyeSBoYXMgbm8gbm9kZSBk
aXN0YW5jZSBpbmZvcm1hdGlvbiAoZS5nLiwgbm9kZSAKPiAtICAgICAqIG5vdCBwcmVzZW50KSB0
aGVuIHRoZSB2YWx1ZSB+MHUgaXMgd3JpdHRlbi4KPiAtICAgICAqIAo+IC0gICAgICogTm90ZSB0
aGF0IHRoZSBhcnJheSByb3dzIG11c3QgYmUgaW5kZXhlZCBieSBtdWx0aXBseWluZyBieSB0aGUg
bWluaW11bSAKPiAtICAgICAqIG9mIHRoZSBjYWxsZXItcHJvdmlkZWQgbWF4X25vZGVfaW5kZXgg
YW5kIHRoZSByZXR1cm5lZCB2YWx1ZSBvZgo+IC0gICAgICogbWF4X25vZGVfaW5kZXguIFRoYXQg
aXMsIGlmIHRoZSBsYXJnZXN0IG5vZGUgaW5kZXggaW4gdGhlIHN5c3RlbSBpcwo+IC0gICAgICog
c21hbGxlciB0aGFuIHRoZSBjYWxsZXIgY2FuIGhhbmRsZSwgYSBzbWFsbGVyIDItZCBhcnJheSBp
cyBjb25zdHJ1Y3RlZAo+IC0gICAgICogd2l0aGluIHRoZSBzcGFjZSBwcm92aWRlZCBieSB0aGUg
Y2FsbGVyLiBXaGVuIHRoaXMgb2NjdXJzLCB0cmFpbGluZwo+IC0gICAgICogc3BhY2UgcHJvdmlk
ZWQgYnkgdGhlIGNhbGxlciBpcyBub3QgbW9kaWZpZWQuIElmIHRoZSBsYXJnZXN0IG5vZGUgaW5k
ZXgKPiAtICAgICAqIGluIHRoZSBzeXN0ZW0gaXMgbGFyZ2VyIHRoYW4gdGhlIGNhbGxlciBjYW4g
aGFuZGxlLCB0aGVuIGEgMi1kIGFycmF5IG9mCj4gLSAgICAgKiB0aGUgbWF4aW11bSBzaXplIGhh
bmRsZWFibGUgYnkgdGhlIGNhbGxlciBpcyBjb25zdHJ1Y3RlZC4KPiArICAgICAqIERpc3RhbmNl
IGJldHdlZW4gbm9kZXMgJ2knIGFuZCAnaicgaXMgc3RvcmVkIGluIGluZGV4ICdpKk4gKyBqJywK
PiArICAgICAqIHdoZXJlIE4gaXMgdGhlIG51bWJlciBvZiBub2RlcyB0aGF0IHdpbGwgYmUgcmV0
dXJuZWQgaW4gJ251bV9ub2RlcycKPiArICAgICAqIChpLmUuIG5vdCAnbnVtX25vZGVzJyBwcm92
aWRlZCBieSB0aGUgY2FsbGVyKQo+ICAgICAgICovCj4gLSAgICBYRU5fR1VFU1RfSEFORExFXzY0
KHVpbnQzMikgbm9kZV90b19ub2RlX2Rpc3RhbmNlOwo+ICsgICAgWEVOX0dVRVNUX0hBTkRMRV82
NCh1aW50MzIpIGRpc3RhbmNlOwo+ICB9Owo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX251
bWFpbmZvIHhlbl9zeXNjdGxfbnVtYWluZm9fdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo
eGVuX3N5c2N0bF9udW1haW5mb190KTsKPiAgCj4gIC8qIFhFTl9TWVNDVExfY3B1cG9vbF9vcCAq
Lwo+ICAjZGVmaW5lIFhFTl9TWVNDVExfQ1BVUE9PTF9PUF9DUkVBVEUgICAgICAgICAgICAgICAg
MSAgLyogQyAqLwo+IEBAIC01MzksOCArNTIzLDQyIEBAIHN0cnVjdCB4ZW5fc3lzY3RsX2NwdXBv
b2xfb3Agewo+ICAgICAgdWludDMyX3Qgbl9kb207ICAgICAgIC8qICAgICAgICAgICAgT1VUOiBJ
ICAqLwo+ICAgICAgc3RydWN0IHhlbmN0bF9iaXRtYXAgY3B1bWFwOyAvKiAgICAgT1VUOiBJRiAq
Lwo+ICB9Owo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX2NwdXBvb2xfb3AgeGVuX3N5c2N0
bF9jcHVwb29sX29wX3Q7Cj4gLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNjdGxfY3B1
cG9vbF9vcF90KTsKPiArCj4gKy8qCj4gKyAqIEVycm9yIHJldHVybiB2YWx1ZXMgb2YgY3B1cG9v
bCBvcGVyYXRpb25zOgo+ICsgKgo+ICsgKiAtRUFERFJJTlVTRToKPiArICogIFhFTl9TWVNDVExf
Q1BVUE9PTF9PUF9STUNQVTogQSB2Y3B1IGlzIHRlbXBvcmFyaWx5IHBpbm5lZCB0byB0aGUgY3B1
Cj4gKyAqICAgIHdoaWNoIGlzIHRvIGJlIHJlbW92ZWQgZnJvbSBhIGNwdXBvb2wuCj4gKyAqIC1F
QUREUk5PVEFWQUlMOgo+ICsgKiAgWEVOX1NZU0NUTF9DUFVQT09MX09QX0FERENQVSwgWEVOX1NZ
U0NUTF9DUFVQT09MX09QX1JNQ1BVOiBBIHByZXZpb3VzCj4gKyAqICAgIHJlcXVlc3QgdG8gcmVt
b3ZlIGEgY3B1IGZyb20gYSBjcHVwb29sIHdhcyB0ZXJtaW5hdGVkIHdpdGggLUVBR0FJTgo+ICsg
KiAgICBhbmQgaGFzIG5vdCBiZWVuIHJldHJpZWQgdXNpbmcgdGhlIHNhbWUgcGFyYW1ldGVycy4K
PiArICogLUVBR0FJTjoKPiArICogIFhFTl9TWVNDVExfQ1BVUE9PTF9PUF9STUNQVTogVGhlIGNw
dSBjYW4ndCBiZSByZW1vdmVkIGZyb20gdGhlIGNwdXBvb2wKPiArICogICAgYXMgaXQgaXMgYWN0
aXZlIGluIHRoZSBoeXBlcnZpc29yLiBBIHJldHJ5IHdpbGwgc3VjY2VlZCBzb29uLgo+ICsgKiAt
RUJVU1k6Cj4gKyAqICBYRU5fU1lTQ1RMX0NQVVBPT0xfT1BfREVTVFJPWSwgWEVOX1NZU0NUTF9D
UFVQT09MX09QX1JNQ1BVOiBBIGNwdXBvb2wKPiArICogICAgY2FuJ3QgYmUgZGVzdHJveWVkIG9y
IHRoZSBsYXN0IGNwdSBjYW4ndCBiZSByZW1vdmVkIGFzIHRoZXJlIGlzIHN0aWxsCj4gKyAqICAg
IGEgcnVubmluZyBkb21haW4gaW4gdGhhdCBjcHVwb29sLgo+ICsgKiAtRUVYSVNUOgo+ICsgKiAg
WEVOX1NZU0NUTF9DUFVQT09MX09QX0NSRUFURTogQSBjcHVwb29sX2lkIHdhcyBzcGVjaWZpZWQg
YW5kIGlzIGFscmVhZHkKPiArICogICAgZXhpc3RpbmcuCj4gKyAqIC1FSU5WQUw6Cj4gKyAqICBY
RU5fU1lTQ1RMX0NQVVBPT0xfT1BfQUREQ1BVLCBYRU5fU1lTQ1RMX0NQVVBPT0xfT1BfUk1DUFU6
IEFuIGlsbGVnYWwKPiArICogICAgY3B1IHdhcyBzcGVjaWZpZWQgKGNwdSBkb2VzIG5vdCBleGlz
dCkuCj4gKyAqICBYRU5fU1lTQ1RMX0NQVVBPT0xfT1BfTU9WRURPTUFJTjogQW4gaWxsZWdhbCBk
b21haW4gd2FzIHNwZWNpZmllZAo+ICsgKiAgICAoZG9tYWluIGlkIGlsbGVnYWwgb3Igbm90IHN1
aXRhYmxlIGZvciBvcGVyYXRpb24pLgo+ICsgKiAtRU5PREVWOgo+ICsgKiAgWEVOX1NZU0NUTF9D
UFVQT09MX09QX0FERENQVSwgWEVOX1NZU0NUTF9DUFVQT09MX09QX1JNQ1BVOiBUaGUgc3BlY2lm
aWVkCj4gKyAqICAgIGNwdSBpcyBlaXRoZXIgbm90IGZyZWUgKGFkZCkgb3Igbm90IG1lbWJlciBv
ZiB0aGUgc3BlY2lmaWVkIGNwdXBvb2wKPiArICogICAgKHJlbW92ZSkuCj4gKyAqIC1FTk9FTlQ6
Cj4gKyAqICBhbGw6IFRoZSBjcHVwb29sIHdpdGggdGhlIHNwZWNpZmllZCBjcHVwb29sX2lkIGRv
ZXNuJ3QgZXhpc3QuCj4gKyAqCj4gKyAqIFNvbWUgY29tbW9uIGVycm9yIHJldHVybiB2YWx1ZXMg
bGlrZSAtRU5PTUVNIGFuZCAtRUZBVUxUIGFyZSBwb3NzaWJsZSBmb3IKPiArICogYWxsIHRoZSBv
cGVyYXRpb25zLgo+ICsgKi8KPiAgCj4gICNkZWZpbmUgQVJJTkM2NTNfTUFYX0RPTUFJTlNfUEVS
X1NDSEVEVUxFICAgNjQKPiAgLyoKPiBAQCAtNTcwLDE4ICs1ODgsMjQgQEAgc3RydWN0IHhlbl9z
eXNjdGxfYXJpbmM2NTNfc2NoZWR1bGUgewo+ICB0eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX2Fy
aW5jNjUzX3NjaGVkdWxlIHhlbl9zeXNjdGxfYXJpbmM2NTNfc2NoZWR1bGVfdDsKPiAgREVGSU5F
X1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9hcmluYzY1M19zY2hlZHVsZV90KTsKPiAgCj4g
Ky8qCj4gKyAqIFZhbGlkIHJhbmdlIGZvciBjb250ZXh0IHN3aXRjaCByYXRlIGxpbWl0IChpbiBt
aWNyb3NlY29uZHMpLgo+ICsgKiBBcHBsaWNhYmxlIHRvIENyZWRpdCBhbmQgQ3JlZGl0MiBzY2hl
ZHVsZXJzLgo+ICsgKi8KPiArI2RlZmluZSBYRU5fU1lTQ1RMX1NDSEVEX1JBVEVMSU1JVF9NQVgg
NTAwMDAwCj4gKyNkZWZpbmUgWEVOX1NZU0NUTF9TQ0hFRF9SQVRFTElNSVRfTUlOIDEwMAo+ICsK
PiAgc3RydWN0IHhlbl9zeXNjdGxfY3JlZGl0X3NjaGVkdWxlIHsKPiAgICAgIC8qIExlbmd0aCBv
ZiB0aW1lc2xpY2UgaW4gbWlsbGlzZWNvbmRzICovCj4gICNkZWZpbmUgWEVOX1NZU0NUTF9DU0NI
RURfVFNMSUNFX01BWCAxMDAwCj4gICNkZWZpbmUgWEVOX1NZU0NUTF9DU0NIRURfVFNMSUNFX01J
TiAxCj4gICAgICB1bnNpZ25lZCB0c2xpY2VfbXM7Cj4gLSAgICAvKiBSYXRlIGxpbWl0IChtaW5p
bXVtIHRpbWVzbGljZSkgaW4gbWljcm9zZWNvbmRzICovCj4gLSNkZWZpbmUgWEVOX1NZU0NUTF9T
Q0hFRF9SQVRFTElNSVRfTUFYIDUwMDAwMAo+IC0jZGVmaW5lIFhFTl9TWVNDVExfU0NIRURfUkFU
RUxJTUlUX01JTiAxMDAKPiAgICAgIHVuc2lnbmVkIHJhdGVsaW1pdF91czsKPiAgfTsKPiAtdHlw
ZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bF9jcmVkaXRfc2NoZWR1bGUgeGVuX3N5c2N0bF9jcmVkaXRf
c2NoZWR1bGVfdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9jcmVkaXRf
c2NoZWR1bGVfdCk7Cj4gKwo+ICtzdHJ1Y3QgeGVuX3N5c2N0bF9jcmVkaXQyX3NjaGVkdWxlIHsK
PiArICAgIHVuc2lnbmVkIHJhdGVsaW1pdF91czsKPiArfTsKPiAgCj4gIC8qIFhFTl9TWVNDVExf
c2NoZWR1bGVyX29wICovCj4gIC8qIFNldCBvciBnZXQgaW5mbz8gKi8KPiBAQCAtNTk2LDQ1ICs2
MjAsNDEgQEAgc3RydWN0IHhlbl9zeXNjdGxfc2NoZWR1bGVyX29wIHsKPiAgICAgICAgICAgICAg
WEVOX0dVRVNUX0hBTkRMRV82NCh4ZW5fc3lzY3RsX2FyaW5jNjUzX3NjaGVkdWxlX3QpIHNjaGVk
dWxlOwo+ICAgICAgICAgIH0gc2NoZWRfYXJpbmM2NTM7Cj4gICAgICAgICAgc3RydWN0IHhlbl9z
eXNjdGxfY3JlZGl0X3NjaGVkdWxlIHNjaGVkX2NyZWRpdDsKPiArICAgICAgICBzdHJ1Y3QgeGVu
X3N5c2N0bF9jcmVkaXQyX3NjaGVkdWxlIHNjaGVkX2NyZWRpdDI7Cj4gICAgICB9IHU7Cj4gIH07
Cj4gLXR5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfc2NoZWR1bGVyX29wIHhlbl9zeXNjdGxfc2No
ZWR1bGVyX29wX3Q7Cj4gLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNjdGxfc2NoZWR1
bGVyX29wX3QpOwo+IC0KPiAtLyogWEVOX1NZU0NUTF9jb3ZlcmFnZV9vcCAqLwo+IC0vKgo+IC0g
KiBHZXQgdG90YWwgc2l6ZSBvZiBpbmZvcm1hdGlvbiwgdG8gaGVscCBhbGxvY2F0ZQo+IC0gKiB0
aGUgYnVmZmVyLiBUaGUgcG9pbnRlciBwb2ludHMgdG8gYSAzMiBiaXQgdmFsdWUuCj4gLSAqLwo+
IC0jZGVmaW5lIFhFTl9TWVNDVExfQ09WRVJBR0VfZ2V0X3RvdGFsX3NpemUgMAo+ICAKPiAgLyoK
PiAtICogUmVhZCBjb3ZlcmFnZSBpbmZvcm1hdGlvbiBpbiBhIHNpbmdsZSBydW4KPiAtICogWW91
IG11c3QgdXNlIGEgdG9vbCB0byBzcGxpdCB0aGVtLgo+ICsgKiBPdXRwdXQgZm9ybWF0IG9mIGdj
b3YgZGF0YToKPiArICoKPiArICogWEVOX0dDT1ZfRk9STUFUX01BR0lDIFhFTl9HQ09WX1JFQ09S
RCAuLi4gWEVOX0dDT1ZfUkVDT1JECj4gKyAqCj4gKyAqIFRoYXQgaXMsIG9uZSBtYWdpYyBudW1i
ZXIgZm9sbG93ZWQgYnkgMCBvciBtb3JlIHJlY29yZC4KPiArICoKPiArICogVGhlIG1hZ2ljIG51
bWJlciBpcyBzdG9yZWQgYXMgYW4gdWludDMyX3QgZmllbGQuCj4gKyAqCj4gKyAqIFRoZSByZWNv
cmQgaXMgcGFja2VkIGFuZCB2YXJpYWJsZSBpbiBsZW5ndGguIEl0IGhhcyB0aGUgZm9ybToKPiAr
ICoKPiArICogIGZpbGVuYW1lOiBhIE5VTEwgdGVybWluYXRlZCBwYXRoIG5hbWUgZXh0cmFjdGVk
IGZyb20gZ2NvdiwgdXNlZCB0bwo+ICsgKiAgICAgICAgICAgIGNyZWF0ZSB0aGUgbmFtZSBvZiBn
Y2RhIGZpbGUuCj4gKyAqICBzaXplOiAgICAgYSB1aW50MzJfdCBmaWVsZCBpbmRpY2F0aW5nIHRo
ZSBzaXplIG9mIHRoZSBwYXlsb2FkLCB0aGUKPiArICogICAgICAgICAgICB1bml0IGlzIGJ5dGUu
Cj4gKyAqICBwYXlsb2FkOiAgdGhlIGFjdHVhbCBwYXlsb2FkLCBsZW5ndGggaXMgYHNpemUnIGJ5
dGVzLgo+ICsgKgo+ICsgKiBVc2Vyc3BhY2UgdG9vbCB3aWxsIHNwbGl0IHRoZSByZWNvcmQgdG8g
ZGlmZmVyZW50IGZpbGVzLgo+ICAgKi8KPiAtI2RlZmluZSBYRU5fU1lTQ1RMX0NPVkVSQUdFX3Jl
YWQgICAgICAgICAgIDEKPiAgCj4gLS8qCj4gLSAqIFJlc2V0IGFsbCB0aGUgY292ZXJhZ2UgY291
bnRlcnMgdG8gMAo+IC0gKiBObyBwYXJhbWV0ZXJzLgo+IC0gKi8KPiAtI2RlZmluZSBYRU5fU1lT
Q1RMX0NPVkVSQUdFX3Jlc2V0ICAgICAgICAgIDIKPiArI2RlZmluZSBYRU5fR0NPVl9GT1JNQVRf
TUFHSUMgICAgMHg1ODQzNGY1NiAvKiBYQ09WICovCj4gIAo+IC0vKgo+IC0gKiBMaWtlIFhFTl9T
WVNDVExfQ09WRVJBR0VfcmVhZCBidXQgcmVzZXQgYWxzbwo+IC0gKiBjb3VudGVycyB0byAwIGlu
IGEgc2luZ2xlIGNhbGwuCj4gLSAqLwo+IC0jZGVmaW5lIFhFTl9TWVNDVExfQ09WRVJBR0VfcmVh
ZF9hbmRfcmVzZXQgMwo+ICsjZGVmaW5lIFhFTl9TWVNDVExfR0NPVl9nZXRfc2l6ZSAwIC8qIEdl
dCB0b3RhbCBzaXplIG9mIG91dHB1dCBkYXRhICovCj4gKyNkZWZpbmUgWEVOX1NZU0NUTF9HQ09W
X3JlYWQgICAgIDEgLyogUmVhZCBvdXRwdXQgZGF0YSAqLwo+ICsjZGVmaW5lIFhFTl9TWVNDVExf
R0NPVl9yZXNldCAgICAyIC8qIFJlc2V0IGFsbCBjb3VudGVycyAqLwo+ICAKPiAtc3RydWN0IHhl
bl9zeXNjdGxfY292ZXJhZ2Vfb3Agewo+IC0gICAgdWludDMyX3QgY21kOyAgICAgICAgLyogWEVO
X1NZU0NUTF9DT1ZFUkFHRV8qICovCj4gLSAgICB1bmlvbiB7Cj4gLSAgICAgICAgdWludDMyX3Qg
dG90YWxfc2l6ZTsgLyogT1VUICovCj4gLSAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh1aW50
OCkgIHJhd19pbmZvOyAgIC8qIE9VVCAqLwo+IC0gICAgfSB1Owo+ICtzdHJ1Y3QgeGVuX3N5c2N0
bF9nY292X29wIHsKPiArICAgIHVpbnQzMl90IGNtZDsKPiArICAgIHVpbnQzMl90IHNpemU7IC8q
IElOL09VVDogc2l6ZSBvZiB0aGUgYnVmZmVyICAqLwo+ICsgICAgWEVOX0dVRVNUX0hBTkRMRV82
NChjaGFyKSBidWZmZXI7IC8qIE9VVCAqLwo+ICB9Owo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fc3lz
Y3RsX2NvdmVyYWdlX29wIHhlbl9zeXNjdGxfY292ZXJhZ2Vfb3BfdDsKPiAtREVGSU5FX1hFTl9H
VUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9jb3ZlcmFnZV9vcF90KTsKPiAgCj4gICNkZWZpbmUgWEVO
X1NZU0NUTF9QU1JfQ01UX2dldF90b3RhbF9ybWlkICAgICAgICAgICAgMAo+ICAjZGVmaW5lIFhF
Tl9TWVNDVExfUFNSX0NNVF9nZXRfbDNfdXBzY2FsaW5nX2ZhY3RvciAgIDEKPiBAQCAtNjUzLDgg
KzY3MywzNzcgQEAgc3RydWN0IHhlbl9zeXNjdGxfcHNyX2NtdF9vcCB7Cj4gICAgICAgICAgfSBs
M19jYWNoZTsKPiAgICAgIH0gdTsKPiAgfTsKPiAtdHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bF9w
c3JfY210X29wIHhlbl9zeXNjdGxfcHNyX2NtdF9vcF90Owo+IC1ERUZJTkVfWEVOX0dVRVNUX0hB
TkRMRSh4ZW5fc3lzY3RsX3Bzcl9jbXRfb3BfdCk7Cj4gKwo+ICsvKiBYRU5fU1lTQ1RMX3BjaXRv
cG9pbmZvICovCj4gKyNkZWZpbmUgWEVOX0lOVkFMSURfREVWIChYRU5fSU5WQUxJRF9OT0RFX0lE
IC0gMSkKPiArc3RydWN0IHhlbl9zeXNjdGxfcGNpdG9wb2luZm8gewo+ICsgICAgLyoKPiArICAg
ICAqIElOOiBOdW1iZXIgb2YgZWxlbWVudHMgaW4gJ3BjaXRvcG8nIGFuZCAnbm9kZXMnIGFycmF5
cy4KPiArICAgICAqIE9VVDogTnVtYmVyIG9mIHByb2Nlc3NlZCBlbGVtZW50cyBvZiB0aG9zZSBh
cnJheXMuCj4gKyAgICAgKi8KPiArICAgIHVpbnQzMl90IG51bV9kZXZzOwo+ICsKPiArICAgIC8q
IElOOiBsaXN0IG9mIGRldmljZXMgZm9yIHdoaWNoIG5vZGUgSURzIGFyZSByZXF1ZXN0ZWQuICov
Cj4gKyAgICBYRU5fR1VFU1RfSEFORExFXzY0KHBoeXNkZXZfcGNpX2RldmljZV90KSBkZXZzOwo+
ICsKPiArICAgIC8qCj4gKyAgICAgKiBPVVQ6IG5vZGUgaWRlbnRpZmllciBmb3IgZWFjaCBkZXZp
Y2UuCj4gKyAgICAgKiBJZiBpbmZvcm1hdGlvbiBmb3IgYSBwYXJ0aWN1bGFyIGRldmljZSBpcyBu
b3QgYXZhaWxhYmxlIHRoZW4KPiArICAgICAqIGNvcnJlc3BvbmRpbmcgZW50cnkgd2lsbCBiZSBz
ZXQgdG8gWEVOX0lOVkFMSURfTk9ERV9JRC4gSWYKPiArICAgICAqIGRldmljZSBpcyBub3Qga25v
d24gdG8gdGhlIGh5cGVydmlzb3IgdGhlbiBYRU5fSU5WQUxJRF9ERVYKPiArICAgICAqIHdpbGwg
YmUgcHJvdmlkZWQuCj4gKyAgICAgKi8KPiArICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQodWludDMy
KSBub2RlczsKPiArfTsKPiArCj4gKyNkZWZpbmUgWEVOX1NZU0NUTF9QU1JfQ0FUX2dldF9sM19p
bmZvICAgICAgICAgICAgICAgMAo+ICsjZGVmaW5lIFhFTl9TWVNDVExfUFNSX0NBVF9nZXRfbDJf
aW5mbyAgICAgICAgICAgICAgIDEKPiArc3RydWN0IHhlbl9zeXNjdGxfcHNyX2NhdF9vcCB7Cj4g
KyAgICB1aW50MzJfdCBjbWQ7ICAgICAgIC8qIElOOiBYRU5fU1lTQ1RMX1BTUl9DQVRfKiAqLwo+
ICsgICAgdWludDMyX3QgdGFyZ2V0OyAgICAvKiBJTiAqLwo+ICsgICAgdW5pb24gewo+ICsgICAg
ICAgIHN0cnVjdCB7Cj4gKyAgICAgICAgICAgIHVpbnQzMl90IGNibV9sZW47ICAgLyogT1VUOiBD
Qk0gbGVuZ3RoICovCj4gKyAgICAgICAgICAgIHVpbnQzMl90IGNvc19tYXg7ICAgLyogT1VUOiBN
YXhpbXVtIENPUyAqLwo+ICsjZGVmaW5lIFhFTl9TWVNDVExfUFNSX0NBVF9MM19DRFAgICAgICAg
KDF1IDw8IDApCj4gKyAgICAgICAgICAgIHVpbnQzMl90IGZsYWdzOyAgICAgLyogT1VUOiBDQVQg
ZmxhZ3MgKi8KPiArICAgICAgICB9IGNhdF9pbmZvOwo+ICsgICAgfSB1Owo+ICt9Owo+ICsKPiAr
I2RlZmluZSBYRU5fU1lTQ1RMX1RNRU1fT1BfQUxMX0NMSUVOVFMgMHhGRkZGVQo+ICsKPiArI2Rl
ZmluZSBYRU5fU1lTQ1RMX1RNRU1fT1BfVEhBVyAgICAgICAgICAgICAgICAgICAwCj4gKyNkZWZp
bmUgWEVOX1NZU0NUTF9UTUVNX09QX0ZSRUVaRSAgICAgICAgICAgICAgICAgMQo+ICsjZGVmaW5l
IFhFTl9TWVNDVExfVE1FTV9PUF9GTFVTSCAgICAgICAgICAgICAgICAgIDIKPiArI2RlZmluZSBY
RU5fU1lTQ1RMX1RNRU1fT1BfREVTVFJPWSAgICAgICAgICAgICAgICAzCj4gKyNkZWZpbmUgWEVO
X1NZU0NUTF9UTUVNX09QX0xJU1QgICAgICAgICAgICAgICAgICAgNAo+ICsjZGVmaW5lIFhFTl9T
WVNDVExfVE1FTV9PUF9HRVRfQ0xJRU5UX0lORk8gICAgICAgIDUKPiArI2RlZmluZSBYRU5fU1lT
Q1RMX1RNRU1fT1BfU0VUX0NMSUVOVF9JTkZPICAgICAgICA2Cj4gKyNkZWZpbmUgWEVOX1NZU0NU
TF9UTUVNX09QX0dFVF9QT09MUyAgICAgICAgICAgICAgNwo+ICsjZGVmaW5lIFhFTl9TWVNDVExf
VE1FTV9PUF9RVUVSWV9GUkVFQUJMRV9NQiAgICAgIDgKPiArI2RlZmluZSBYRU5fU1lTQ1RMX1RN
RU1fT1BfU0VUX1BPT0xTICAgICAgICAgICAgICA5Cj4gKyNkZWZpbmUgWEVOX1NZU0NUTF9UTUVN
X09QX1NBVkVfQkVHSU4gICAgICAgICAgICAgMTAKPiArI2RlZmluZSBYRU5fU1lTQ1RMX1RNRU1f
T1BfU0VUX0FVVEggICAgICAgICAgICAgICAxMQo+ICsjZGVmaW5lIFhFTl9TWVNDVExfVE1FTV9P
UF9TQVZFX0dFVF9ORVhUX1BBR0UgICAgIDE5Cj4gKyNkZWZpbmUgWEVOX1NZU0NUTF9UTUVNX09Q
X1NBVkVfR0VUX05FWFRfSU5WICAgICAgMjAKPiArI2RlZmluZSBYRU5fU1lTQ1RMX1RNRU1fT1Bf
U0FWRV9FTkQgICAgICAgICAgICAgICAyMQo+ICsjZGVmaW5lIFhFTl9TWVNDVExfVE1FTV9PUF9S
RVNUT1JFX0JFR0lOICAgICAgICAgIDMwCj4gKyNkZWZpbmUgWEVOX1NZU0NUTF9UTUVNX09QX1JF
U1RPUkVfUFVUX1BBR0UgICAgICAgMzIKPiArI2RlZmluZSBYRU5fU1lTQ1RMX1RNRU1fT1BfUkVT
VE9SRV9GTFVTSF9QQUdFICAgICAzMwo+ICsKPiArLyoKPiArICogWEVOX1NZU0NUTF9UTUVNX09Q
X1NBVkVfR0VUX05FWFRfW1BBR0V8SU5WXSBvdmVycmlkZSB0aGUgJ2J1ZicgaW4KPiArICogeGVu
X3N5c2N0bF90bWVtX29wIHdpdGggdGhpcyBzdHJ1Y3R1cmUgLSBzb21ldGltZXMgd2l0aCBhbiBl
eHRyYQo+ICsgKiBwYWdlIHRhY2tsZWQgb24uCj4gKyAqLwo+ICtzdHJ1Y3QgdG1lbV9oYW5kbGUg
ewo+ICsgICAgdWludDMyX3QgcG9vbF9pZDsKPiArICAgIHVpbnQzMl90IGluZGV4Owo+ICsgICAg
eGVuX3RtZW1fb2lkX3Qgb2lkOwo+ICt9Owo+ICsKPiArLyoKPiArICogWEVOX1NZU0NUTF9UTUVN
X09QX1tHRVQsU0FWRV1fQ0xJRU5UIHVzZXMgdGhlICdjbGllbnQnIGluCj4gKyAqIHhlbl90bWVt
X29wIHdpdGggdGhpcyBzdHJ1Y3R1cmUsIHdoaWNoIGlzIG1vc3RseSB1c2VkIGR1cmluZyBtaWdy
YXRpb24uCj4gKyAqLwo+ICtzdHJ1Y3QgeGVuX3RtZW1fY2xpZW50IHsKPiArICAgIHVpbnQzMl90
IHZlcnNpb247ICAgLyogSWYgbWlzbWF0Y2hlZCB3ZSB3aWxsIGdldCBYRU5fRU9QTk9UU1VQUC4g
Ki8KPiArICAgIHVpbnQzMl90IG1heHBvb2xzOyAgLyogSWYgZ3JlYXRlciB0aGFuIHdoYXQgaHlw
ZXJ2aXNvciBzdXBwb3J0cywgd2lsbCBnZXQKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg
WEVOX0VSQU5HRS4gKi8KPiArICAgIHVpbnQzMl90IG5yX3Bvb2xzOyAgLyogQ3VycmVudCBhbW91
bnQgb2YgcG9vbHMuIElnbm9yZWQgb24gU0VUKi8KPiArICAgIHVuaW9uIHsgICAgICAgICAgICAg
LyogU2VlIFRNRU1fQ0xJRU5UX1tDT01QUkVTUyxGUk9aRU5dICovCj4gKyAgICAgICAgdWludDMy
X3QgcmF3Owo+ICsgICAgICAgIHN0cnVjdCB7Cj4gKyAgICAgICAgICAgIHVpbnQ4X3QgZnJvemVu
OjEsCj4gKyAgICAgICAgICAgICAgICAgICAgY29tcHJlc3M6MSwKPiArICAgICAgICAgICAgICAg
ICAgICBtaWdyYXRpbmc6MTsKPiArICAgICAgICB9IHU7Cj4gKyAgICB9IGZsYWdzOwo+ICsgICAg
dWludDMyX3Qgd2VpZ2h0Owo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCB4ZW5fdG1lbV9jbGllbnQg
eGVuX3RtZW1fY2xpZW50X3Q7Cj4gK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl90bWVtX2Ns
aWVudF90KTsKPiArCj4gKy8qCj4gKyAqIFhFTl9TWVNDVExfVE1FTV9PUF9bR0VUfFNFVF1fUE9P
TFMgb3IgWEVOX1NZU0NUTF9UTUVNX09QX1NFVF9BVVRICj4gKyAqIHVzZXMgdGhlICdwb29sJyBh
cnJheSBpbiAqIHhlbl9zeXNjdGxfdG1lbV9vcCB3aXRoIHRoaXMgc3RydWN0dXJlLgo+ICsgKiBU
aGUgWEVOX1NZU0NUTF9UTUVNX09QX0dFVF9QT09MUyBoeXBlcmNhbGwgd2lsbAo+ICsgKiByZXR1
cm4gdGhlIG51bWJlciBvZiBlbnRyaWVzIGluICdwb29sJyBvciBhIG5lZ2F0aXZlIHZhbHVlCj4g
KyAqIGlmIGFuIGVycm9yIHdhcyBlbmNvdW50ZXJlZC4KPiArICogVGhlIFhFTl9TWVNDVExfVE1F
TV9PUF9TRVRfW0FVVEh8UE9PTFNdIHdpbGwgcmV0dXJuIHRoZSBudW1iZXIgb2YKPiArICogZW50
cmllcyBpbiAncG9vbCcgcHJvY2Vzc2VkIG9yIGEgbmVnYXRpdmUgdmFsdWUgaWYgYW4gZXJyb3IK
PiArICogd2FzIGVuY291bnRlcmVkLgo+ICsgKi8KPiArc3RydWN0IHhlbl90bWVtX3Bvb2xfaW5m
byB7Cj4gKyAgICB1bmlvbiB7Cj4gKyAgICAgICAgdWludDMyX3QgcmF3Owo+ICsgICAgICAgIHN0
cnVjdCB7Cj4gKyAgICAgICAgICAgIHVpbnQzMl90IHBlcnNpc3Q6MSwgICAgLyogU2VlIFRNRU1f
UE9PTF9QRVJTSVNULiAqLwo+ICsgICAgICAgICAgICAgICAgICAgICBzaGFyZWQ6MSwgICAgIC8q
IFNlZSBUTUVNX1BPT0xfU0hBUkVELiAqLwo+ICsgICAgICAgICAgICAgICAgICAgICBhdXRoOjEs
ICAgICAgIC8qIFNlZSBUTUVNX1BPT0xfQVVUSC4gKi8KPiArICAgICAgICAgICAgICAgICAgICAg
cnN2MToxLAo+ICsgICAgICAgICAgICAgICAgICAgICBwYWdlYml0czo4LCAgIC8qIFRNRU1fUE9P
TF9QQUdFU0laRV9bU0hJRlQsTUFTS10uICovCj4gKyAgICAgICAgICAgICAgICAgICAgIHJzdjI6
MTIsCj4gKyAgICAgICAgICAgICAgICAgICAgIHZlcnNpb246ODsgICAgLyogVE1FTV9QT09MX1ZF
UlNJT05fW1NISUZULE1BU0tdLiAqLwo+ICsgICAgICAgIH0gdTsKPiArICAgIH0gZmxhZ3M7Cj4g
KyAgICB1aW50MzJfdCBpZDsgICAgICAgICAgICAgICAgICAvKiBMZXNzIHRoYW4gdG1lbV9jbGll
bnQubWF4cG9vbHMuICovCj4gKyAgICB1aW50NjRfdCBuX3BhZ2VzOyAgICAgICAgICAgICAvKiBa
ZXJvIG9uIFhFTl9TWVNDVExfVE1FTV9PUF9TRVRfW0FVVEh8UE9PTFNdLiAqLwo+ICsgICAgdWlu
dDY0X2FsaWduZWRfdCB1dWlkWzJdOwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCB4ZW5fdG1lbV9w
b29sX2luZm8geGVuX3RtZW1fcG9vbF9pbmZvX3Q7Cj4gK0RFRklORV9YRU5fR1VFU1RfSEFORExF
KHhlbl90bWVtX3Bvb2xfaW5mb190KTsKPiArCj4gK3N0cnVjdCB4ZW5fc3lzY3RsX3RtZW1fb3Ag
ewo+ICsgICAgdWludDMyX3QgY21kOyAgICAgICAvKiBJTjogWEVOX1NZU0NUTF9UTUVNX09QXyog
LiAqLwo+ICsgICAgaW50MzJfdCBwb29sX2lkOyAgICAvKiBJTjogMCBieSBkZWZhdWx0IHVubGVz
cyBfU0FWRV8qLCBSRVNUT1JFXyogLiovCj4gKyAgICB1aW50MzJfdCBjbGlfaWQ7ICAgIC8qIElO
OiBjbGllbnQgaWQsIDAgZm9yIFhFTl9TWVNDVExfVE1FTV9RVUVSWV9GUkVFQUJMRV9NQgo+ICsg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgYWxsIG90aGVycyBjYW4gYmUgdGhlIGRvbWFp
biBpZCBvcgo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5fU1lTQ1RMX1RNRU1fT1Bf
QUxMX0NMSUVOVFMgZm9yIGFsbC4gKi8KPiArICAgIHVpbnQzMl90IGxlbjsgICAgICAgLyogSU46
IGxlbmd0aCBvZiAnYnVmJy4gSWYgbm90IGFwcGxpY2FibGUgdG8gdXNlIDAuICovCj4gKyAgICB1
aW50MzJfdCBhcmc7ICAgICAgIC8qIElOOiBJZiBub3QgYXBwbGljYWJsZSB0byBjb21tYW5kIHVz
ZSAwLiAqLwo+ICsgICAgdWludDMyX3QgcGFkOyAgICAgICAvKiBQYWRkaW5nIHNvIHN0cnVjdHVy
ZSBpcyB0aGUgc2FtZSB1bmRlciAzMiBhbmQgNjQuICovCj4gKyAgICB4ZW5fdG1lbV9vaWRfdCBv
aWQ7IC8qIElOOiBJZiBub3QgYXBwbGljYWJsZSB0byBjb21tYW5kIHVzZSAwcy4gKi8KPiArICAg
IHVuaW9uIHsKPiArICAgICAgICBYRU5fR1VFU1RfSEFORExFXzY0KGNoYXIpIGJ1ZjsgLyogSU4v
T1VUOiBCdWZmZXIgdG8gc2F2ZS9yZXN0b3JlICovCj4gKyAgICAgICAgWEVOX0dVRVNUX0hBTkRM
RV82NCh4ZW5fdG1lbV9jbGllbnRfdCkgY2xpZW50OyAvKiBJTi9PVVQgZm9yICovCj4gKyAgICAg
ICAgICAgICAgICAgICAgICAgIC8qICBYRU5fU1lTQ1RMX1RNRU1fT1BfW0dFVCxTQVZFXV9DTElF
TlQuICovCj4gKyAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh4ZW5fdG1lbV9wb29sX2luZm9f
dCkgcG9vbDsgLyogT1VUIGZvciAqLwo+ICsgICAgICAgICAgICAgICAgICAgICAgICAvKiBYRU5f
U1lTQ1RMX1RNRU1fT1BfR0VUX1BPT0xTLiBNdXN0IGhhdmUgJ2xlbicgKi8KPiArICAgICAgICAg
ICAgICAgICAgICAgICAgLyogb2YgdGhlbS4gKi8KPiArICAgIH0gdTsKPiArfTsKPiArCj4gKy8q
Cj4gKyAqIFhFTl9TWVNDVExfZ2V0X2NwdV9sZXZlbGxpbmdfY2FwcyAoeDg2IHNwZWNpZmljKQo+
ICsgKgo+ICsgKiBSZXR1cm4gaGFyZHdhcmUgY2FwYWJpbGl0aWVzIGNvbmNlcm5pbmcgbWFza2lu
ZyBvciBmYXVsdGluZyBvZiB0aGUgY3B1aWQKPiArICogaW5zdHJ1Y3Rpb24gZm9yIFBWIGd1ZXN0
cy4KPiArICovCj4gK3N0cnVjdCB4ZW5fc3lzY3RsX2NwdV9sZXZlbGxpbmdfY2FwcyB7Cj4gKyNk
ZWZpbmUgWEVOX1NZU0NUTF9DUFVfTEVWRUxDQVBfZmF1bHRpbmcgICAgKDF1bCA8PCAgMCkgLyog
Q1BVSUQgZmF1bHRpbmcgICAgKi8KPiArI2RlZmluZSBYRU5fU1lTQ1RMX0NQVV9MRVZFTENBUF9l
Y3ggICAgICAgICAoMXVsIDw8ICAxKSAvKiAweDAwMDAwMDAxLmVjeCAgICAqLwo+ICsjZGVmaW5l
IFhFTl9TWVNDVExfQ1BVX0xFVkVMQ0FQX2VkeCAgICAgICAgICgxdWwgPDwgIDIpIC8qIDB4MDAw
MDAwMDEuZWR4ICAgICovCj4gKyNkZWZpbmUgWEVOX1NZU0NUTF9DUFVfTEVWRUxDQVBfZXh0ZF9l
Y3ggICAgKDF1bCA8PCAgMykgLyogMHg4MDAwMDAwMS5lY3ggICAgKi8KPiArI2RlZmluZSBYRU5f
U1lTQ1RMX0NQVV9MRVZFTENBUF9leHRkX2VkeCAgICAoMXVsIDw8ICA0KSAvKiAweDgwMDAwMDAx
LmVkeCAgICAqLwo+ICsjZGVmaW5lIFhFTl9TWVNDVExfQ1BVX0xFVkVMQ0FQX3hzYXZlX2VheCAg
ICgxdWwgPDwgIDUpIC8qIDB4MDAwMDAwMEQ6MS5lYXggICovCj4gKyNkZWZpbmUgWEVOX1NZU0NU
TF9DUFVfTEVWRUxDQVBfdGhlcm1hbF9lY3ggKDF1bCA8PCAgNikgLyogMHgwMDAwMDAwNi5lY3gg
ICAgKi8KPiArI2RlZmluZSBYRU5fU1lTQ1RMX0NQVV9MRVZFTENBUF9sN3MwX2VheCAgICAoMXVs
IDw8ICA3KSAvKiAweDAwMDAwMDA3OjAuZWF4ICAqLwo+ICsjZGVmaW5lIFhFTl9TWVNDVExfQ1BV
X0xFVkVMQ0FQX2w3czBfZWJ4ICAgICgxdWwgPDwgIDgpIC8qIDB4MDAwMDAwMDc6MC5lYnggICov
Cj4gKyAgICB1aW50MzJfdCBjYXBzOwo+ICt9Owo+ICsKPiArLyoKPiArICogWEVOX1NZU0NUTF9n
ZXRfY3B1X2ZlYXR1cmVzZXQgKHg4NiBzcGVjaWZpYykKPiArICoKPiArICogUmV0dXJuIGluZm9y
bWF0aW9uIGFib3V0IGZlYXR1cmVzZXRzIGF2YWlsYWJsZSBvbiB0aGlzIGhvc3QuCj4gKyAqICAt
ICBSYXc6IFRoZSByZWFsIGNwdWlkIHZhbHVlcy4KPiArICogIC0gSG9zdDogVGhlIHZhbHVlcyBY
ZW4gaXMgdXNpbmcsIChhZnRlciBjb21tYW5kIGxpbmUgb3ZlcnJpZGVzLCBldGMpLgo+ICsgKiAg
LSAgIFBWOiBNYXhpbXVtIHNldCBvZiBmZWF0dXJlcyB3aGljaCBjYW4gYmUgZ2l2ZW4gdG8gYSBQ
ViBndWVzdC4KPiArICogIC0gIEhWTTogTWF4aW11bSBzZXQgb2YgZmVhdHVyZXMgd2hpY2ggY2Fu
IGJlIGdpdmVuIHRvIGEgSFZNIGd1ZXN0Lgo+ICsgKi8KPiArc3RydWN0IHhlbl9zeXNjdGxfY3B1
X2ZlYXR1cmVzZXQgewo+ICsjZGVmaW5lIFhFTl9TWVNDVExfY3B1X2ZlYXR1cmVzZXRfcmF3ICAg
ICAgMAo+ICsjZGVmaW5lIFhFTl9TWVNDVExfY3B1X2ZlYXR1cmVzZXRfaG9zdCAgICAgMQo+ICsj
ZGVmaW5lIFhFTl9TWVNDVExfY3B1X2ZlYXR1cmVzZXRfcHYgICAgICAgMgo+ICsjZGVmaW5lIFhF
Tl9TWVNDVExfY3B1X2ZlYXR1cmVzZXRfaHZtICAgICAgMwo+ICsgICAgdWludDMyX3QgaW5kZXg7
ICAgICAgIC8qIElOOiBXaGljaCBmZWF0dXJlc2V0IHRvIHF1ZXJ5PyAqLwo+ICsgICAgdWludDMy
X3QgbnJfZmVhdHVyZXM7IC8qIElOL09VVDogTnVtYmVyIG9mIGVudHJpZXMgaW4vd3JpdHRlbiB0
bwo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAqICdmZWF0dXJlcycsIG9yIHRoZSBtYXhp
bXVtIG51bWJlciBvZiBmZWF0dXJlcyBpZgo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAq
IHRoZSBndWVzdCBoYW5kbGUgaXMgTlVMTC4gIE5CLiBBbGwgZmVhdHVyZXNldHMKPiArICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKiBjb21lIGZyb20gdGhlIHNhbWUgbnVtYmVyc3BhY2UsIHNv
IGhhdmUgdGhlIHNhbWUKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBtYXhpbXVtIGxl
bmd0aC4gKi8KPiArICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQodWludDMyKSBmZWF0dXJlczsgLyog
T1VUOiAqLwo+ICt9Owo+ICsKPiArLyoKPiArICogWEVOX1NZU0NUTF9MSVZFUEFUQ0hfb3AKPiAr
ICoKPiArICogUmVmZXIgdG8gdGhlIGRvY3MvdW5zdGFibGUvbWlzYy9saXZlcGF0Y2gubWFya2Rv
d24KPiArICogZm9yIHRoZSBkZXNpZ24gZGV0YWlscyBvZiB0aGlzIGh5cGVyY2FsbC4KPiArICoK
PiArICogVGhlcmUgYXJlIGZvdXIgc3ViLW9wczoKPiArICogIFhFTl9TWVNDVExfTElWRVBBVENI
X1VQTE9BRCAoMCkKPiArICogIFhFTl9TWVNDVExfTElWRVBBVENIX0dFVCAoMSkKPiArICogIFhF
Tl9TWVNDVExfTElWRVBBVENIX0xJU1QgKDIpCj4gKyAqICBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9B
Q1RJT04gKDMpCj4gKyAqCj4gKyAqIFRoZSBub3JtYWwgc2VxdWVuY2Ugb2Ygc3ViLW9wcyBpcyB0
bzoKPiArICogIDEpIFhFTl9TWVNDVExfTElWRVBBVENIX1VQTE9BRCB0byB1cGxvYWQgdGhlIHBh
eWxvYWQuIElmIGVycm9ycyBTVE9QLgo+ICsgKiAgMikgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfR0VU
IHRvIGNoZWNrIHRoZSBgLT5yY2AuIElmIC1YRU5fRUFHQUlOIHNwaW4uCj4gKyAqICAgICBJZiB6
ZXJvIGdvIHRvIG5leHQgc3RlcC4KPiArICogIDMpIFhFTl9TWVNDVExfTElWRVBBVENIX0FDVElP
TiB3aXRoIExJVkVQQVRDSF9BQ1RJT05fQVBQTFkgdG8gYXBwbHkgdGhlIHBhdGNoLgo+ICsgKiAg
NCkgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfR0VUIHRvIGNoZWNrIHRoZSBgLT5yY2AuIElmIGluIC1Y
RU5fRUFHQUlOIHNwaW4uCj4gKyAqICAgICBJZiB6ZXJvIGV4aXQgd2l0aCBzdWNjZXNzLgo+ICsg
Ki8KPiArCj4gKyNkZWZpbmUgTElWRVBBVENIX1BBWUxPQURfVkVSU0lPTiAxCj4gKy8qCj4gKyAq
IC5saXZlcGF0Y2guZnVuY3Mgc3RydWN0dXJlIGxheW91dCBkZWZpbmVkIGluIHRoZSBgUGF5bG9h
ZCBmb3JtYXRgCj4gKyAqIHNlY3Rpb24gaW4gdGhlIExpdmUgUGF0Y2ggZGVzaWduIGRvY3VtZW50
Lgo+ICsgKgo+ICsgKiBXZSBndWFyZCB0aGlzIHdpdGggX19YRU5fXyBhcyB0b29sc3RhY2tzIFNI
T1VMRCBub3QgdXNlIGl0Lgo+ICsgKi8KPiArI2lmZGVmIF9fWEVOX18KPiArc3RydWN0IGxpdmVw
YXRjaF9mdW5jIHsKPiArICAgIGNvbnN0IGNoYXIgKm5hbWU7ICAgICAgIC8qIE5hbWUgb2YgZnVu
Y3Rpb24gdG8gYmUgcGF0Y2hlZC4gKi8KPiArICAgIHZvaWQgKm5ld19hZGRyOwo+ICsgICAgdm9p
ZCAqb2xkX2FkZHI7Cj4gKyAgICB1aW50MzJfdCBuZXdfc2l6ZTsKPiArICAgIHVpbnQzMl90IG9s
ZF9zaXplOwo+ICsgICAgdWludDhfdCB2ZXJzaW9uOyAgICAgICAgLyogTVVTVCBiZSBMSVZFUEFU
Q0hfUEFZTE9BRF9WRVJTSU9OLiAqLwo+ICsgICAgdWludDhfdCBvcGFxdWVbMzFdOwo+ICt9Owo+
ICt0eXBlZGVmIHN0cnVjdCBsaXZlcGF0Y2hfZnVuYyBsaXZlcGF0Y2hfZnVuY190Owo+ICsjZW5k
aWYKPiArCj4gKy8qCj4gKyAqIFN0cnVjdHVyZSBkZXNjcmliaW5nIGFuIEVMRiBwYXlsb2FkLiBV
bmlxdWVseSBpZGVudGlmaWVzIHRoZQo+ICsgKiBwYXlsb2FkLiBTaG91bGQgYmUgaHVtYW4gcmVh
ZGFibGUuCj4gKyAqIFJlY29tbWVuZGVkIGxlbmd0aCBpcyB1cHRvIFhFTl9MSVZFUEFUQ0hfTkFN
RV9TSVpFLgo+ICsgKiBJbmNsdWRlcyB0aGUgTlVMIHRlcm1pbmF0b3IuCj4gKyAqLwo+ICsjZGVm
aW5lIFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFIDEyOAo+ICtzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9u
YW1lIHsKPiArICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQoY2hhcikgbmFtZTsgICAgICAgICAvKiBJ
TjogcG9pbnRlciB0byBuYW1lLiAqLwo+ICsgICAgdWludDE2X3Qgc2l6ZTsgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8qIElOOiBzaXplIG9mIG5hbWUuIE1heSBiZSB1cHRvCj4gKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0xJVkVQQVRDSF9OQU1F
X1NJWkUuICovCj4gKyAgICB1aW50MTZfdCBwYWRbM107ICAgICAgICAgICAgICAgICAgICAgICAg
LyogSU46IE1VU1QgYmUgemVyby4gKi8KPiArfTsKPiArCj4gKy8qCj4gKyAqIFVwbG9hZCBhIHBh
eWxvYWQgdG8gdGhlIGh5cGVydmlzb3IuIFRoZSBwYXlsb2FkIGlzIHZlcmlmaWVkCj4gKyAqIGFn
YWluc3QgYmFzaWMgY2hlY2tzIGFuZCBpZiB0aGVyZSBhcmUgYW55IGlzc3VlcyB0aGUgcHJvcGVy
IHJldHVybiBjb2RlCj4gKyAqIHdpbGwgYmUgcmV0dXJuZWQuIFRoZSBwYXlsb2FkIGlzIG5vdCBh
cHBsaWVkIGF0IHRoaXMgdGltZSAtIHRoYXQgaXMKPiArICogY29udHJvbGxlZCBieSBYRU5fU1lT
Q1RMX0xJVkVQQVRDSF9BQ1RJT04uCj4gKyAqCj4gKyAqIFRoZSByZXR1cm4gdmFsdWUgaXMgemVy
byBpZiB0aGUgcGF5bG9hZCB3YXMgc3VjY2VzZnVsbHkgdXBsb2FkZWQuCj4gKyAqIE90aGVyd2lz
ZSBhbiBFWFggcmV0dXJuIHZhbHVlIGlzIHByb3ZpZGVkLiBEdXBsaWNhdGUgYG5hbWVgIGFyZSBu
b3QKPiArICogc3VwcG9ydGVkLgo+ICsgKgo+ICsgKiBUaGUgcGF5bG9hZCBhdCB0aGlzIHBvaW50
IGlzIHZlcmlmaWVkIGFnYWluc3QgYmFzaWMgY2hlY2tzLgo+ICsgKgo+ICsgKiBUaGUgYHBheWxv
YWRgIGlzIHRoZSBFTEYgcGF5bG9hZCBhcyBtZW50aW9uZWQgaW4gdGhlIGBQYXlsb2FkIGZvcm1h
dGAKPiArICogc2VjdGlvbiBpbiB0aGUgTGl2ZSBQYXRjaCBkZXNpZ24gZG9jdW1lbnQuCj4gKyAq
Lwo+ICsjZGVmaW5lIFhFTl9TWVNDVExfTElWRVBBVENIX1VQTE9BRCAwCj4gK3N0cnVjdCB4ZW5f
c3lzY3RsX2xpdmVwYXRjaF91cGxvYWQgewo+ICsgICAgc3RydWN0IHhlbl9saXZlcGF0Y2hfbmFt
ZSBuYW1lOyAgICAgICAgIC8qIElOLCBuYW1lIG9mIHRoZSBwYXRjaC4gKi8KPiArICAgIHVpbnQ2
NF90IHNpemU7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJTiwgc2l6ZSBvZiB0aGUgRUxG
IGZpbGUuICovCj4gKyAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQ4KSBwYXlsb2FkOyAgICAg
LyogSU4sIHRoZSBFTEYgZmlsZS4gKi8KPiArfTsKPiArCj4gKy8qCj4gKyAqIFJldHJpZXZlIGFu
IHN0YXR1cyBvZiBhbiBzcGVjaWZpYyBwYXlsb2FkLgo+ICsgKgo+ICsgKiBVcG9uIGNvbXBsZXRp
b24gdGhlIGBzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9zdGF0dXNgIGlzIHVwZGF0ZWQuCj4gKyAqCj4g
KyAqIFRoZSByZXR1cm4gdmFsdWUgaXMgemVybyBvbiBzdWNjZXNzIGFuZCBYRU5fRVhYIG9uIGZh
aWx1cmUuIFRoaXMgb3BlcmF0aW9uCj4gKyAqIGlzIHN5bmNocm9ub3VzIGFuZCBkb2VzIG5vdCBy
ZXF1aXJlIHByZWVtcHRpb24uCj4gKyAqLwo+ICsjZGVmaW5lIFhFTl9TWVNDVExfTElWRVBBVENI
X0dFVCAxCj4gKwo+ICtzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9zdGF0dXMgewo+ICsjZGVmaW5lIExJ
VkVQQVRDSF9TVEFURV9DSEVDS0VEICAgICAgMQo+ICsjZGVmaW5lIExJVkVQQVRDSF9TVEFURV9B
UFBMSUVEICAgICAgMgo+ICsgICAgdWludDMyX3Qgc3RhdGU7ICAgICAgICAgICAgICAgIC8qIE9V
VDogTElWRVBBVENIX1NUQVRFXyouICovCj4gKyAgICBpbnQzMl90IHJjOyAgICAgICAgICAgICAg
ICAgICAgLyogT1VUOiAwIGlmIG5vIGVycm9yLCBvdGhlcndpc2UgLVhFTl9FWFguICovCj4gK307
Cj4gK3R5cGVkZWYgc3RydWN0IHhlbl9saXZlcGF0Y2hfc3RhdHVzIHhlbl9saXZlcGF0Y2hfc3Rh
dHVzX3Q7Cj4gK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9saXZlcGF0Y2hfc3RhdHVzX3Qp
Owo+ICsKPiArc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2dldCB7Cj4gKyAgICBzdHJ1Y3Qg
eGVuX2xpdmVwYXRjaF9uYW1lIG5hbWU7ICAgICAgICAgLyogSU4sIG5hbWUgb2YgdGhlIHBheWxv
YWQuICovCj4gKyAgICBzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9zdGF0dXMgc3RhdHVzOyAgICAgLyog
SU4vT1VULCBzdGF0ZSBvZiBpdC4gKi8KPiArfTsKPiArCj4gKy8qCj4gKyAqIFJldHJpZXZlIGFu
IGFycmF5IG9mIGFiYnJldmlhdGVkIHN0YXR1cyBhbmQgbmFtZXMgb2YgcGF5bG9hZHMgdGhhdCBh
cmUKPiArICogbG9hZGVkIGluIHRoZSBoeXBlcnZpc29yLgo+ICsgKgo+ICsgKiBJZiB0aGUgaHlw
ZXJjYWxsIHJldHVybnMgYW4gcG9zaXRpdmUgbnVtYmVyLCBpdCBpcyB0aGUgbnVtYmVyICh1cCB0
byBgbnJgKQo+ICsgKiBvZiB0aGUgcGF5bG9hZHMgcmV0dXJuZWQsIGFsb25nIHdpdGggYG5yYCB1
cGRhdGVkIHdpdGggdGhlIG51bWJlciBvZiByZW1haW5pbmcKPiArICogcGF5bG9hZHMsIGB2ZXJz
aW9uYCB1cGRhdGVkIChpdCBtYXkgYmUgdGhlIHNhbWUgYWNyb3NzIGh5cGVyY2FsbHMuIElmIGl0
Cj4gKyAqIHZhcmllcyB0aGUgZGF0YSBpcyBzdGFsZSBhbmQgZnVydGhlciBjYWxscyBjb3VsZCBm
YWlsKS4gVGhlIGBzdGF0dXNgLAo+ICsgKiBgbmFtZWAsIGFuZCBgbGVuYCcgYXJlIHVwZGF0ZWQg
YXQgdGhlaXIgZGVzaWduZWQgaW5kZXggdmFsdWUgKGBpZHhgKSB3aXRoCj4gKyAqIHRoZSByZXR1
cm5lZCB2YWx1ZSBvZiBkYXRhLgo+ICsgKgo+ICsgKiBJZiB0aGUgaHlwZXJjYWxsIHJldHVybnMg
RTJCSUcgdGhlIGBucmAgaXMgdG9vIGJpZyBhbmQgc2hvdWxkIGJlCj4gKyAqIGxvd2VyZWQuIFRo
ZSB1cHBlciBsaW1pdCBvZiBgbnJgIGlzIGxlZnQgdG8gdGhlIGltcGxlbWVudGlvbi4KPiArICoK
PiArICogTm90ZSB0aGF0IGR1ZSB0byB0aGUgYXN5bmNocm9ub3VzIG5hdHVyZSBvZiBoeXBlcmNh
bGxzIHRoZSBkb21haW4gbWlnaHQgaGF2ZQo+ICsgKiBhZGRlZCBvciByZW1vdmVkIHRoZSBudW1i
ZXIgb2YgcGF5bG9hZHMgbWFraW5nIHRoaXMgaW5mb3JtYXRpb24gc3RhbGUuIEl0IGlzCj4gKyAq
IHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgdG9vbHN0YWNrIHRvIHVzZSB0aGUgYHZlcnNpb25g
IGZpZWxkIHRvIGNoZWNrCj4gKyAqIGJldHdlZW4gZWFjaCBpbnZvY2F0aW9uLiBpZiB0aGUgdmVy
c2lvbiBkaWZmZXJzIGl0IHNob3VsZCBkaXNjYXJkIHRoZSBzdGFsZQo+ICsgKiBkYXRhIGFuZCBz
dGFydCBmcm9tIHNjcmF0Y2guIEl0IGlzIE9LIGZvciB0aGUgdG9vbHN0YWNrIHRvIHVzZSB0aGUg
bmV3Cj4gKyAqIGB2ZXJzaW9uYCBmaWVsZC4KPiArICovCj4gKyNkZWZpbmUgWEVOX1NZU0NUTF9M
SVZFUEFUQ0hfTElTVCAyCj4gK3N0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9saXN0IHsKPiAr
ICAgIHVpbnQzMl90IHZlcnNpb247ICAgICAgICAgICAgICAgICAgICAgICAvKiBPVVQ6IEh5cGVy
dmlzb3Igc3RhbXBzIHZhbHVlLgo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIElmIHZhcmllcyBiZXR3ZWVuIGNhbGxzLCB3ZSBhcmUKPiArICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBnZXR0aW5nIHN0YWxlIGRhdGEu
ICovCj4gKyAgICB1aW50MzJfdCBpZHg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSU46
IEluZGV4IGludG8gaHlwZXJ2aXNvciBsaXN0LiAqLwo+ICsgICAgdWludDMyX3QgbnI7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBIb3cgbWFueSBzdGF0dXMsIG5hbWUsIGFuZCBs
ZW4KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91
bGQgZmlsbCBvdXQuIENhbiBiZSB6ZXJvIHRvIGdldAo+ICsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCBvZiBwYXlsb2FkcyBhbmQgdmVyc2lvbi4K
PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPVVQ6IEhv
dyBtYW55IHBheWxvYWRzIGxlZnQuICovCj4gKyAgICB1aW50MzJfdCBwYWQ7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLyogSU46IE11c3QgYmUgemVyby4gKi8KPiArICAgIFhFTl9HVUVTVF9I
QU5ETEVfNjQoeGVuX2xpdmVwYXRjaF9zdGF0dXNfdCkgc3RhdHVzOyAgLyogT1VULiBNdXN0IGhh
dmUgZW5vdWdoCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3BhY2UgYWxsb2NhdGUgZm9yIG5yIG9mIHRoZW0uICovCj4gKyAgICBYRU5fR1VFU1RfSEFO
RExFXzY0KGNoYXIpIG5hbWU7ICAgICAgICAgLyogT1VUOiBBcnJheSBvZiBuYW1lcy4gRWFjaCBt
ZW1iZXIKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBN
VVNUIFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFIGluIHNpemUuCj4gKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTXVzdCBoYXZlIG5yIG9mIHRoZW0uICovCj4g
KyAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQzMikgbGVuOyAgICAgICAgLyogT1VUOiBBcnJh
eSBvZiBsZW5ndGhzIG9mIG5hbWUncy4KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBNdXN0IGhhdmUgbnIgb2YgdGhlbS4gKi8KPiArfTsKPiArCj4gKy8q
Cj4gKyAqIFBlcmZvcm0gYW4gb3BlcmF0aW9uIG9uIHRoZSBwYXlsb2FkIHN0cnVjdHVyZSByZWZl
cmVuY2VkIGJ5IHRoZSBgbmFtZWAgZmllbGQuCj4gKyAqIFRoZSBvcGVyYXRpb24gcmVxdWVzdCBp
cyBhc3luY2hyb25vdXMgYW5kIHRoZSBzdGF0dXMgc2hvdWxkIGJlIHJldHJpZXZlZAo+ICsgKiBi
eSB1c2luZyBlaXRoZXIgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfR0VUIG9yIFhFTl9TWVNDVExfTElW
RVBBVENIX0xJU1QgaHlwZXJjYWxsLgo+ICsgKi8KPiArI2RlZmluZSBYRU5fU1lTQ1RMX0xJVkVQ
QVRDSF9BQ1RJT04gMwo+ICtzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfYWN0aW9uIHsKPiAr
ICAgIHN0cnVjdCB4ZW5fbGl2ZXBhdGNoX25hbWUgbmFtZTsgICAgICAgICAvKiBJTiwgbmFtZSBv
ZiB0aGUgcGF0Y2guICovCj4gKyNkZWZpbmUgTElWRVBBVENIX0FDVElPTl9VTkxPQUQgICAgICAg
MQo+ICsjZGVmaW5lIExJVkVQQVRDSF9BQ1RJT05fUkVWRVJUICAgICAgIDIKPiArI2RlZmluZSBM
SVZFUEFUQ0hfQUNUSU9OX0FQUExZICAgICAgICAzCj4gKyNkZWZpbmUgTElWRVBBVENIX0FDVElP
Tl9SRVBMQUNFICAgICAgNAo+ICsgICAgdWludDMyX3QgY21kOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8qIElOOiBMSVZFUEFUQ0hfQUNUSU9OXyouICovCj4gKyAgICB1aW50MzJfdCB0aW1l
b3V0OyAgICAgICAgICAgICAgICAgICAgICAgLyogSU46IElmIHplcm8gdGhlbiB1c2VzICovCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaHlwZXJ2aXNv
ciBkZWZhdWx0LiAqLwo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8qIE9yIHVwcGVyIGJvdW5kIG9mIHRpbWUgKG5zKSAqLwo+ICsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZvciBvcGVyYXRpb24gdG8gdGFrZS4gKi8K
PiArfTsKPiArCj4gK3N0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9vcCB7Cj4gKyAgICB1aW50
MzJfdCBjbWQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSU46IFhFTl9TWVNDVExfTElW
RVBBVENIXyouICovCj4gKyAgICB1aW50MzJfdCBwYWQ7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLyogSU46IEFsd2F5cyB6ZXJvLiAqLwo+ICsgICAgdW5pb24gewo+ICsgICAgICAgIHN0cnVj
dCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF91cGxvYWQgdXBsb2FkOwo+ICsgICAgICAgIHN0cnVjdCB4
ZW5fc3lzY3RsX2xpdmVwYXRjaF9saXN0IGxpc3Q7Cj4gKyAgICAgICAgc3RydWN0IHhlbl9zeXNj
dGxfbGl2ZXBhdGNoX2dldCBnZXQ7Cj4gKyAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBh
dGNoX2FjdGlvbiBhY3Rpb247Cj4gKyAgICB9IHU7Cj4gK307Cj4gKwo+ICsvKgo+ICsgKiBYRU5f
U1lTQ1RMX3NldF9wYXJhbWV0ZXIKPiArICoKPiArICogQ2hhbmdlIGh5cGVydmlzb3IgcGFyYW1l
dGVycyBhdCBydW50aW1lLgo+ICsgKiBUaGUgaW5wdXQgc3RyaW5nIGlzIHBhcnNlZCBzaW1pbGFy
IHRvIHRoZSBib290IHBhcmFtZXRlcnMuCj4gKyAqIFBhcmFtZXRlcnMgYXJlIGEgc2luZ2xlIHN0
cmluZyB0ZXJtaW5hdGVkIGJ5IGEgTlVMIGJ5dGUgb2YgbWF4LiBzaXplCj4gKyAqIGNoYXJhY3Rl
cnMuIE11bHRpcGxlIHNldHRpbmdzIGNhbiBiZSBzcGVjaWZpZWQgYnkgc2VwYXJhdGluZyB0aGVt
Cj4gKyAqIHdpdGggYmxhbmtzLgo+ICsgKi8KPiArCj4gK3N0cnVjdCB4ZW5fc3lzY3RsX3NldF9w
YXJhbWV0ZXIgewo+ICsgICAgWEVOX0dVRVNUX0hBTkRMRV82NChjaGFyKSBwYXJhbXM7ICAgICAg
IC8qIElOOiBwb2ludGVyIHRvIHBhcmFtZXRlcnMuICovCj4gKyAgICB1aW50MTZfdCBzaXplOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgLyogSU46IHNpemUgb2YgcGFyYW1ldGVycy4gKi8KPiAr
ICAgIHVpbnQxNl90IHBhZFszXTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBJTjogTVVTVCBi
ZSB6ZXJvLiAqLwo+ICt9Owo+ICAKPiAgc3RydWN0IHhlbl9zeXNjdGwgewo+ICAgICAgdWludDMy
X3QgY21kOwo+IEBAIC02NzIsMTggKzEwNjEsMjYgQEAgc3RydWN0IHhlbl9zeXNjdGwgewo+ICAj
ZGVmaW5lIFhFTl9TWVNDVExfcG1fb3AgICAgICAgICAgICAgICAgICAgICAgICAgMTIKPiAgI2Rl
ZmluZSBYRU5fU1lTQ1RMX3BhZ2Vfb2ZmbGluZV9vcCAgICAgICAgICAgICAgIDE0Cj4gICNkZWZp
bmUgWEVOX1NZU0NUTF9sb2NrcHJvZl9vcCAgICAgICAgICAgICAgICAgICAxNQo+IC0jZGVmaW5l
IFhFTl9TWVNDVExfdG9wb2xvZ3lpbmZvICAgICAgICAgICAgICAgICAgMTYgCj4gKyNkZWZpbmUg
WEVOX1NZU0NUTF9jcHV0b3BvaW5mbyAgICAgICAgICAgICAgICAgICAxNgo+ICAjZGVmaW5lIFhF
Tl9TWVNDVExfbnVtYWluZm8gICAgICAgICAgICAgICAgICAgICAgMTcKPiAgI2RlZmluZSBYRU5f
U1lTQ1RMX2NwdXBvb2xfb3AgICAgICAgICAgICAgICAgICAgIDE4Cj4gICNkZWZpbmUgWEVOX1NZ
U0NUTF9zY2hlZHVsZXJfb3AgICAgICAgICAgICAgICAgICAxOQo+IC0jZGVmaW5lIFhFTl9TWVND
VExfY292ZXJhZ2Vfb3AgICAgICAgICAgICAgICAgICAgMjAKPiArI2RlZmluZSBYRU5fU1lTQ1RM
X2djb3Zfb3AgICAgICAgICAgICAgICAgICAgICAgIDIwCj4gICNkZWZpbmUgWEVOX1NZU0NUTF9w
c3JfY210X29wICAgICAgICAgICAgICAgICAgICAyMQo+ICsjZGVmaW5lIFhFTl9TWVNDVExfcGNp
dG9wb2luZm8gICAgICAgICAgICAgICAgICAgMjIKPiArI2RlZmluZSBYRU5fU1lTQ1RMX3Bzcl9j
YXRfb3AgICAgICAgICAgICAgICAgICAgIDIzCj4gKyNkZWZpbmUgWEVOX1NZU0NUTF90bWVtX29w
ICAgICAgICAgICAgICAgICAgICAgICAyNAo+ICsjZGVmaW5lIFhFTl9TWVNDVExfZ2V0X2NwdV9s
ZXZlbGxpbmdfY2FwcyAgICAgICAgMjUKPiArI2RlZmluZSBYRU5fU1lTQ1RMX2dldF9jcHVfZmVh
dHVyZXNldCAgICAgICAgICAgIDI2Cj4gKyNkZWZpbmUgWEVOX1NZU0NUTF9saXZlcGF0Y2hfb3Ag
ICAgICAgICAgICAgICAgICAyNwo+ICsjZGVmaW5lIFhFTl9TWVNDVExfc2V0X3BhcmFtZXRlciAg
ICAgICAgICAgICAgICAgMjgKPiAgICAgIHVpbnQzMl90IGludGVyZmFjZV92ZXJzaW9uOyAvKiBY
RU5fU1lTQ1RMX0lOVEVSRkFDRV9WRVJTSU9OICovCj4gICAgICB1bmlvbiB7Cj4gICAgICAgICAg
c3RydWN0IHhlbl9zeXNjdGxfcmVhZGNvbnNvbGUgICAgICAgcmVhZGNvbnNvbGU7Cj4gICAgICAg
ICAgc3RydWN0IHhlbl9zeXNjdGxfdGJ1Zl9vcCAgICAgICAgICAgdGJ1Zl9vcDsKPiAgICAgICAg
ICBzdHJ1Y3QgeGVuX3N5c2N0bF9waHlzaW5mbyAgICAgICAgICBwaHlzaW5mbzsKPiAtICAgICAg
ICBzdHJ1Y3QgeGVuX3N5c2N0bF90b3BvbG9neWluZm8gICAgICB0b3BvbG9neWluZm87Cj4gKyAg
ICAgICAgc3RydWN0IHhlbl9zeXNjdGxfY3B1dG9wb2luZm8gICAgICAgY3B1dG9wb2luZm87Cj4g
KyAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfcGNpdG9wb2luZm8gICAgICAgcGNpdG9wb2luZm87
Cj4gICAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfbnVtYWluZm8gICAgICAgICAgbnVtYWluZm87
Cj4gICAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfc2NoZWRfaWQgICAgICAgICAgc2NoZWRfaWQ7
Cj4gICAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfcGVyZmNfb3AgICAgICAgICAgcGVyZmNfb3A7
Cj4gQEAgLTY5OCw4ICsxMDk1LDE0IEBAIHN0cnVjdCB4ZW5fc3lzY3RsIHsKPiAgICAgICAgICBz
dHJ1Y3QgeGVuX3N5c2N0bF9sb2NrcHJvZl9vcCAgICAgICBsb2NrcHJvZl9vcDsKPiAgICAgICAg
ICBzdHJ1Y3QgeGVuX3N5c2N0bF9jcHVwb29sX29wICAgICAgICBjcHVwb29sX29wOwo+ICAgICAg
ICAgIHN0cnVjdCB4ZW5fc3lzY3RsX3NjaGVkdWxlcl9vcCAgICAgIHNjaGVkdWxlcl9vcDsKPiAt
ICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9jb3ZlcmFnZV9vcCAgICAgICBjb3ZlcmFnZV9vcDsK
PiArICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9nY292X29wICAgICAgICAgICBnY292X29wOwo+
ICAgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX3Bzcl9jbXRfb3AgICAgICAgIHBzcl9jbXRfb3A7
Cj4gKyAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfcHNyX2NhdF9vcCAgICAgICAgcHNyX2NhdF9v
cDsKPiArICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF90bWVtX29wICAgICAgICAgICB0bWVtX29w
Owo+ICsgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX2NwdV9sZXZlbGxpbmdfY2FwcyBjcHVfbGV2
ZWxsaW5nX2NhcHM7Cj4gKyAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfY3B1X2ZlYXR1cmVzZXQg
ICAgY3B1X2ZlYXR1cmVzZXQ7Cj4gKyAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNo
X29wICAgICAgbGl2ZXBhdGNoOwo+ICsgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX3NldF9wYXJh
bWV0ZXIgICAgIHNldF9wYXJhbWV0ZXI7Cj4gICAgICAgICAgdWludDhfdCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFkWzEyOF07Cj4gICAgICB9IHU7Cj4gIH07Cj4gZGlmZiAtLWdpdCBh
L2luY2x1ZGUveGVuL3RtZW0uaCBiL2luY2x1ZGUveGVuL3RtZW0uaAo+IGluZGV4IDRmZDJmYzYu
LmFhMGFhZmEgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS94ZW4vdG1lbS5oCj4gKysrIGIvaW5jbHVk
ZS94ZW4vdG1lbS5oCj4gQEAgLTMzLDcgKzMzLDExIEBACj4gICNkZWZpbmUgVE1FTV9TUEVDX1ZF
UlNJT04gICAgICAgICAgMQo+ICAKPiAgLyogQ29tbWFuZHMgdG8gSFlQRVJWSVNPUl90bWVtX29w
KCkgKi8KPiAtI2RlZmluZSBUTUVNX0NPTlRST0wgICAgICAgICAgICAgICAwCj4gKyNpZmRlZiBf
X1hFTl9fCj4gKyNkZWZpbmUgVE1FTV9DT05UUk9MICAgICAgICAgICAgICAgMCAvKiBOb3cgY2Fs
bGVkIFhFTl9TWVNDVExfdG1lbV9vcCAqLwo+ICsjZWxzZQo+ICsjdW5kZWYgVE1FTV9DT05UUk9M
Cj4gKyNlbmRpZgo+ICAjZGVmaW5lIFRNRU1fTkVXX1BPT0wgICAgICAgICAgICAgIDEKPiAgI2Rl
ZmluZSBUTUVNX0RFU1RST1lfUE9PTCAgICAgICAgICAyCj4gICNkZWZpbmUgVE1FTV9QVVRfUEFH
RSAgICAgICAgICAgICAgNAo+IEBAIC00NywzNSArNTEsOSBAQAo+ICAjZGVmaW5lIFRNRU1fWENI
RyAgICAgICAgICAgICAgICAgMTAKPiAgI2VuZGlmCj4gIAo+IC0vKiBQcml2aWxlZ2VkIGNvbW1h
bmRzIHRvIEhZUEVSVklTT1JfdG1lbV9vcCgpICovCj4gLSNkZWZpbmUgVE1FTV9BVVRIICAgICAg
ICAgICAgICAgICAxMDEgCj4gLSNkZWZpbmUgVE1FTV9SRVNUT1JFX05FVyAgICAgICAgICAxMDIK
PiAtCj4gLS8qIFN1Ym9wcyBmb3IgSFlQRVJWSVNPUl90bWVtX29wKFRNRU1fQ09OVFJPTCkgKi8K
PiAtI2RlZmluZSBUTUVNQ19USEFXICAgICAgICAgICAgICAgICAgIDAKPiAtI2RlZmluZSBUTUVN
Q19GUkVFWkUgICAgICAgICAgICAgICAgIDEKPiAtI2RlZmluZSBUTUVNQ19GTFVTSCAgICAgICAg
ICAgICAgICAgIDIKPiAtI2RlZmluZSBUTUVNQ19ERVNUUk9ZICAgICAgICAgICAgICAgIDMKPiAt
I2RlZmluZSBUTUVNQ19MSVNUICAgICAgICAgICAgICAgICAgIDQKPiAtI2RlZmluZSBUTUVNQ19T
RVRfV0VJR0hUICAgICAgICAgICAgIDUKPiAtI2RlZmluZSBUTUVNQ19TRVRfQ0FQICAgICAgICAg
ICAgICAgIDYKPiAtI2RlZmluZSBUTUVNQ19TRVRfQ09NUFJFU1MgICAgICAgICAgIDcKPiAtI2Rl
ZmluZSBUTUVNQ19RVUVSWV9GUkVFQUJMRV9NQiAgICAgIDgKPiAtI2RlZmluZSBUTUVNQ19TQVZF
X0JFR0lOICAgICAgICAgICAgIDEwCj4gLSNkZWZpbmUgVE1FTUNfU0FWRV9HRVRfVkVSU0lPTiAg
ICAgICAxMQo+IC0jZGVmaW5lIFRNRU1DX1NBVkVfR0VUX01BWFBPT0xTICAgICAgMTIKPiAtI2Rl
ZmluZSBUTUVNQ19TQVZFX0dFVF9DTElFTlRfV0VJR0hUIDEzCj4gLSNkZWZpbmUgVE1FTUNfU0FW
RV9HRVRfQ0xJRU5UX0NBUCAgICAxNAo+IC0jZGVmaW5lIFRNRU1DX1NBVkVfR0VUX0NMSUVOVF9G
TEFHUyAgMTUKPiAtI2RlZmluZSBUTUVNQ19TQVZFX0dFVF9QT09MX0ZMQUdTICAgIDE2Cj4gLSNk
ZWZpbmUgVE1FTUNfU0FWRV9HRVRfUE9PTF9OUEFHRVMgICAxNwo+IC0jZGVmaW5lIFRNRU1DX1NB
VkVfR0VUX1BPT0xfVVVJRCAgICAgMTgKPiAtI2RlZmluZSBUTUVNQ19TQVZFX0dFVF9ORVhUX1BB
R0UgICAgIDE5Cj4gLSNkZWZpbmUgVE1FTUNfU0FWRV9HRVRfTkVYVF9JTlYgICAgICAyMAo+IC0j
ZGVmaW5lIFRNRU1DX1NBVkVfRU5EICAgICAgICAgICAgICAgMjEKPiAtI2RlZmluZSBUTUVNQ19S
RVNUT1JFX0JFR0lOICAgICAgICAgIDMwCj4gLSNkZWZpbmUgVE1FTUNfUkVTVE9SRV9QVVRfUEFH
RSAgICAgICAzMgo+IC0jZGVmaW5lIFRNRU1DX1JFU1RPUkVfRkxVU0hfUEFHRSAgICAgMzMKPiAr
LyogUHJpdmlsZWdlZCBjb21tYW5kcyBub3cgY2FsbGVkIHZpYSBYRU5fU1lTQ1RMX3RtZW1fb3Au
ICovCj4gKyNkZWZpbmUgVE1FTV9BVVRIICAgICAgICAgICAgICAgICAxMDEgLyogYXMgWEVOX1NZ
U0NUTF9UTUVNX09QX1NFVF9BVVRILiAqLwo+ICsjZGVmaW5lIFRNRU1fUkVTVE9SRV9ORVcgICAg
ICAgICAgMTAyIC8qIGFzIFhFTl9TWVNDVExfVE1FTV9PUF9TRVRfUE9PTC4gKi8KPiAgCj4gIC8q
IEJpdHMgZm9yIEhZUEVSVklTT1JfdG1lbV9vcChUTUVNX05FV19QT09MKSAqLwo+ICAjZGVmaW5l
IFRNRU1fUE9PTF9QRVJTSVNUICAgICAgICAgIDEKPiBAQCAtOTUsNiArNzMsMTEgQEAKPiAgI2Rl
ZmluZSBFRlJPWkVOICAgICAgICAgICAgICAgICAxMDAwCj4gICNkZWZpbmUgRUVNUFRZICAgICAg
ICAgICAgICAgICAgMTAwMQo+ICAKPiArc3RydWN0IHhlbl90bWVtX29pZCB7Cj4gKyAgICB1aW50
NjRfdCBvaWRbM107Cj4gK307Cj4gK3R5cGVkZWYgc3RydWN0IHhlbl90bWVtX29pZCB4ZW5fdG1l
bV9vaWRfdDsKPiArREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3RtZW1fb2lkX3QpOwo+ICAK
PiAgI2lmbmRlZiBfX0FTU0VNQkxZX18KPiAgI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18g
PCAweDAwMDQwNDAwCj4gQEAgLTEwOSwxOCArOTIsMTMgQEAgc3RydWN0IHRtZW1fb3Agewo+ICAg
ICAgICAgICAgICB1aW50NjRfdCB1dWlkWzJdOwo+ICAgICAgICAgICAgICB1aW50MzJfdCBmbGFn
czsKPiAgICAgICAgICAgICAgdWludDMyX3QgYXJnMTsKPiAtICAgICAgICB9IGNyZWF0OyAvKiBm
b3IgY21kID09IFRNRU1fTkVXX1BPT0wsIFRNRU1fQVVUSCwgVE1FTV9SRVNUT1JFX05FVyAqLwo+
IC0gICAgICAgIHN0cnVjdCB7IAo+IC0gICAgICAgICAgICB1aW50MzJfdCBzdWJvcDsKPiAtICAg
ICAgICAgICAgdWludDMyX3QgY2xpX2lkOwo+IC0gICAgICAgICAgICB1aW50MzJfdCBhcmcxOwo+
IC0gICAgICAgICAgICB1aW50MzJfdCBhcmcyOwo+IC0gICAgICAgICAgICB1aW50NjRfdCBvaWRb
M107Cj4gLSAgICAgICAgICAgIHRtZW1fY2xpX3ZhX3QgYnVmOwo+IC0gICAgICAgIH0gY3RybDsg
LyogZm9yIGNtZCA9PSBUTUVNX0NPTlRST0wgKi8KPiArICAgICAgICB9IGNyZWF0OyAvKiBmb3Ig
Y21kID09IFRNRU1fTkVXX1BPT0wuICovCj4gICAgICAgICAgc3RydWN0IHsKPiAtICAgICAgICAg
ICAgCj4gKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDA0MDYwMAo+ICAgICAg
ICAgICAgICB1aW50NjRfdCBvaWRbM107Cj4gKyNlbHNlCj4gKyAgICAgICAgICAgIHhlbl90bWVt
X29pZF90IG9pZDsKPiArI2VuZGlmCj4gICAgICAgICAgICAgIHVpbnQzMl90IGluZGV4Owo+ICAg
ICAgICAgICAgICB1aW50MzJfdCB0bWVtX29mZnNldDsKPiAgICAgICAgICAgICAgdWludDMyX3Qg
cGZuX29mZnNldDsKPiBAQCAtMTMxLDEyICsxMDksNiBAQCBzdHJ1Y3QgdG1lbV9vcCB7Cj4gIH07
Cj4gIHR5cGVkZWYgc3RydWN0IHRtZW1fb3AgdG1lbV9vcF90Owo+ICBERUZJTkVfWEVOX0dVRVNU
X0hBTkRMRSh0bWVtX29wX3QpOwo+IC0KPiAtc3RydWN0IHRtZW1faGFuZGxlIHsKPiAtICAgIHVp
bnQzMl90IHBvb2xfaWQ7Cj4gLSAgICB1aW50MzJfdCBpbmRleDsKPiAtICAgIHVpbnQ2NF90IG9p
ZFszXTsKPiAtfTsKPiAgI2VuZGlmCj4gIAo+ICAjZW5kaWYgLyogX19YRU5fUFVCTElDX1RNRU1f
SF9fICovCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3RyYWNlLmggYi9pbmNsdWRlL3hlbi90
cmFjZS5oCj4gaW5kZXggNTIxMWFlNy4uMzc0NmJmZiAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3hl
bi90cmFjZS5oCj4gKysrIGIvaW5jbHVkZS94ZW4vdHJhY2UuaAo+IEBAIC03NSw5ICs3NSwxMCBA
QAo+ICAvKiBQZXItc2NoZWR1bGVyIElEcywgdG8gaWRlbnRpZnkgc2NoZWR1bGVyIHNwZWNpZmlj
IGV2ZW50cyAqLwo+ICAjZGVmaW5lIFRSQ19TQ0hFRF9DU0NIRUQgICAwCj4gICNkZWZpbmUgVFJD
X1NDSEVEX0NTQ0hFRDIgIDEKPiAtI2RlZmluZSBUUkNfU0NIRURfU0VERiAgICAgMgo+ICsvKiAj
ZGVmaW5lIFhFTl9TQ0hFRFVMRVJfU0VERiAyIChSZW1vdmVkKSAqLwo+ICAjZGVmaW5lIFRSQ19T
Q0hFRF9BUklOQzY1MyAzCj4gICNkZWZpbmUgVFJDX1NDSEVEX1JURFMgICAgIDQKPiArI2RlZmlu
ZSBUUkNfU0NIRURfU05VTEwgICAgNQo+ICAKPiAgLyogUGVyLXNjaGVkdWxlciB0cmFjaW5nICov
Cj4gICNkZWZpbmUgVFJDX1NDSEVEX0NMQVNTX0VWVChfYywgX2UpIFwKPiBAQCAtODUsNiArODYs
OSBAQAo+ICAgICAgICAoKFRSQ19TQ0hFRF8jI19jIDw8IFRSQ19TQ0hFRF9JRF9TSElGVCkgJiBU
UkNfU0NIRURfSURfTUFTSykgKSArIFwKPiAgICAgIChfZSAmIFRSQ19TQ0hFRF9FVlRfTUFTSykg
KQo+ICAKPiArLyogVHJhY2UgY2xhc3NlcyBmb3IgRE9NMCBvcGVyYXRpb25zICovCj4gKyNkZWZp
bmUgVFJDX0RPTTBfRE9NT1BTICAgICAweDAwMDQxMDAwICAgLyogRG9tYWlucyBtYW5pcHVsYXRp
b25zICovCj4gKwo+ICAvKiBUcmFjZSBjbGFzc2VzIGZvciBIYXJkd2FyZSAqLwo+ICAjZGVmaW5l
IFRSQ19IV19QTSAgICAgICAgICAgMHgwMDgwMTAwMCAgIC8qIFBvd2VyIG1hbmFnZW1lbnQgdHJh
Y2VzICovCj4gICNkZWZpbmUgVFJDX0hXX0lSUSAgICAgICAgICAweDAwODAyMDAwICAgLyogVHJh
Y2VzIHJlbGF0aW5nIHRvIHRoZSBoYW5kbGluZyBvZiBJUlFzICovCj4gQEAgLTExMiw2ICsxMTYs
MTAgQEAKPiAgI2RlZmluZSBUUkNfU0NIRURfU1dJVENIX0lORlBSRVYgKFRSQ19TQ0hFRF9WRVJC
T1NFICsgMTQpCj4gICNkZWZpbmUgVFJDX1NDSEVEX1NXSVRDSF9JTkZORVhUIChUUkNfU0NIRURf
VkVSQk9TRSArIDE1KQo+ICAjZGVmaW5lIFRSQ19TQ0hFRF9TSFVURE9XTl9DT0RFICAoVFJDX1ND
SEVEX1ZFUkJPU0UgKyAxNikKPiArI2RlZmluZSBUUkNfU0NIRURfU1dJVENIX0lORkNPTlQgKFRS
Q19TQ0hFRF9WRVJCT1NFICsgMTcpCj4gKwo+ICsjZGVmaW5lIFRSQ19ET00wX0RPTV9BREQgICAg
ICAgICAoVFJDX0RPTTBfRE9NT1BTICsgMSkKPiArI2RlZmluZSBUUkNfRE9NMF9ET01fUkVNICAg
ICAgICAgKFRSQ19ET00wX0RPTU9QUyArIDIpCj4gIAo+ICAjZGVmaW5lIFRSQ19NRU1fUEFHRV9H
UkFOVF9NQVAgICAgICAoVFJDX01FTSArIDEpCj4gICNkZWZpbmUgVFJDX01FTV9QQUdFX0dSQU5U
X1VOTUFQICAgIChUUkNfTUVNICsgMikKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vdmNwdS5o
IGIvaW5jbHVkZS94ZW4vdmNwdS5oCj4gaW5kZXggODk4Yjg5Zi4uOGE5ZTMwZCAxMDA2NDQKPiAt
LS0gYS9pbmNsdWRlL3hlbi92Y3B1LmgKPiArKysgYi9pbmNsdWRlL3hlbi92Y3B1LmgKPiBAQCAt
NDEsOCArNDEsMTAgQEAKPiAgICogSW5pdGlhbGlzZSBhIFZDUFUuIEVhY2ggVkNQVSBjYW4gYmUg
aW5pdGlhbGlzZWQgb25seSBvbmNlLiBBIAo+ICAgKiBuZXdseS1pbml0aWFsaXNlZCBWQ1BVIHdp
bGwgbm90IHJ1biB1bnRpbCBpdCBpcyBicm91Z2h0IHVwIGJ5IFZDUFVPUF91cC4KPiAgICogCj4g
LSAqIEBleHRyYV9hcmcgPT0gcG9pbnRlciB0byB2Y3B1X2d1ZXN0X2NvbnRleHQgc3RydWN0dXJl
IGNvbnRhaW5pbmcgaW5pdGlhbAo+IC0gKiAgICAgICAgICAgICAgIHN0YXRlIGZvciB0aGUgVkNQ
VS4KPiArICogQGV4dHJhX2FyZyA9PSBGb3IgUFYgb3IgQVJNIGd1ZXN0cyB0aGlzIGlzIGEgcG9p
bnRlciB0byBhIHZjcHVfZ3Vlc3RfY29udGV4dAo+ICsgKiAgICAgICAgICAgICAgIHN0cnVjdHVy
ZSBjb250YWluaW5nIHRoZSBpbml0aWFsIHN0YXRlIGZvciB0aGUgVkNQVS4gRm9yIHg4Ngo+ICsg
KiAgICAgICAgICAgICAgIEhWTSBiYXNlZCBndWVzdHMgdGhpcyBpcyBhIHBvaW50ZXIgdG8gYSB2
Y3B1X2h2bV9jb250ZXh0Cj4gKyAqICAgICAgICAgICAgICAgc3RydWN0dXJlLgo+ICAgKi8KPiAg
I2RlZmluZSBWQ1BVT1BfaW5pdGlhbGlzZSAgICAgICAgICAgIDAKPiAgCj4gQEAgLTgyLDYgKzg0
LDEyIEBAIHN0cnVjdCB2Y3B1X3J1bnN0YXRlX2luZm8gewo+ICAgICAgLyogV2hlbiB3YXMgY3Vy
cmVudCBzdGF0ZSBlbnRlcmVkIChzeXN0ZW0gdGltZSwgbnMpPyAqLwo+ICAgICAgdWludDY0X3Qg
c3RhdGVfZW50cnlfdGltZTsKPiAgICAgIC8qCj4gKyAgICAgKiBVcGRhdGUgaW5kaWNhdG9yIHNl
dCBpbiBzdGF0ZV9lbnRyeV90aW1lOgo+ICsgICAgICogV2hlbiBhY3RpdmF0ZWQgdmlhIFZNQVNT
VF9UWVBFX3J1bnN0YXRlX3VwZGF0ZV9mbGFnLCBzZXQgZHVyaW5nCj4gKyAgICAgKiB1cGRhdGVz
IGluIGd1ZXN0IG1lbW9yeSBtYXBwZWQgY29weSBvZiB2Y3B1X3J1bnN0YXRlX2luZm8uCj4gKyAg
ICAgKi8KPiArI2RlZmluZSBYRU5fUlVOU1RBVEVfVVBEQVRFICAgICAgICAgICh4ZW5fbWtfdWxs
b25nKDEpIDw8IDYzKQo+ICsgICAgLyoKPiAgICAgICAqIFRpbWUgc3BlbnQgaW4gZWFjaCBSVU5T
VEFURV8qIChucykuIFRoZSBzdW0gb2YgdGhlc2UgdGltZXMgaXMKPiAgICAgICAqIGd1YXJhbnRl
ZWQgbm90IHRvIGRyaWZ0IGZyb20gc3lzdGVtIHRpbWUuCj4gICAgICAgKi8KPiBkaWZmIC0tZ2l0
IGEvaW5jbHVkZS94ZW4vdmVyc2lvbi5oIGIvaW5jbHVkZS94ZW4vdmVyc2lvbi5oCj4gaW5kZXgg
NDRmMjZiMC4uY2I4NDU2NSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3hlbi92ZXJzaW9uLmgKPiAr
KysgYi9pbmNsdWRlL3hlbi92ZXJzaW9uLmgKPiBAQCAtMzAsNyArMzAsOCBAQAo+ICAKPiAgI2lu
Y2x1ZGUgInhlbi5oIgo+ICAKPiAtLyogTkIuIEFsbCBvcHMgcmV0dXJuIHplcm8gb24gc3VjY2Vz
cywgZXhjZXB0IFhFTlZFUl97dmVyc2lvbixwYWdlc2l6ZX0gKi8KPiArLyogTkIuIEFsbCBvcHMg
cmV0dXJuIHplcm8gb24gc3VjY2VzcywgZXhjZXB0IFhFTlZFUl97dmVyc2lvbixwYWdlc2l6ZX0K
PiArICogWEVOVkVSX3t2ZXJzaW9uLHBhZ2VzaXplLGJ1aWxkX2lkfSAqLwo+ICAKPiAgLyogYXJn
ID09IE5VTEw7IHJldHVybnMgbWFqb3I6bWlub3IgKDE2OjE2KS4gKi8KPiAgI2RlZmluZSBYRU5W
RVJfdmVyc2lvbiAgICAgIDAKPiBAQCAtNzcsMTIgKzc4LDMxIEBAIHR5cGVkZWYgc3RydWN0IHhl
bl9mZWF0dXJlX2luZm8geGVuX2ZlYXR1cmVfaW5mb190Owo+ICAvKiBhcmcgPT0gTlVMTDsgcmV0
dXJucyBob3N0IG1lbW9yeSBwYWdlIHNpemUuICovCj4gICNkZWZpbmUgWEVOVkVSX3BhZ2VzaXpl
IDcKPiAgCj4gLS8qIGFyZyA9PSB4ZW5fZG9tYWluX2hhbmRsZV90LiAqLwo+ICsvKiBhcmcgPT0g
eGVuX2RvbWFpbl9oYW5kbGVfdC4KPiArICoKPiArICogVGhlIHRvb2xzdGFjayBmaWxscyBpdCBv
dXQgZm9yIGd1ZXN0IGNvbnN1bXB0aW9uLiBJdCBpcyBpbnRlbmRlZCB0byBob2xkCj4gKyAqIHRo
ZSBVVUlEIG9mIHRoZSBndWVzdC4KPiArICovCj4gICNkZWZpbmUgWEVOVkVSX2d1ZXN0X2hhbmRs
ZSA4Cj4gIAo+ICAjZGVmaW5lIFhFTlZFUl9jb21tYW5kbGluZSA5Cj4gIHR5cGVkZWYgY2hhciB4
ZW5fY29tbWFuZGxpbmVfdFsxMDI0XTsKPiAgCj4gKy8qCj4gKyAqIFJldHVybiB2YWx1ZSBpcyB0
aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4sIG9yIFhFTl9FeHggb24gZXJyb3IuCj4gKyAqIENh
bGxpbmcgd2l0aCBlbXB0eSBwYXJhbWV0ZXIgcmV0dXJucyB0aGUgc2l6ZSBvZiBidWlsZF9pZC4K
PiArICovCj4gKyNkZWZpbmUgWEVOVkVSX2J1aWxkX2lkIDEwCj4gK3N0cnVjdCB4ZW5fYnVpbGRf
aWQgewo+ICsgICAgICAgIHVpbnQzMl90ICAgICAgICBsZW47IC8qIElOOiBzaXplIG9mIGJ1Zltd
LiAqLwo+ICsjaWYgZGVmaW5lZChfX1NURENfVkVSU0lPTl9fKSAmJiBfX1NURENfVkVSU0lPTl9f
ID49IDE5OTkwMUwKPiArICAgICAgICB1bnNpZ25lZCBjaGFyICAgYnVmW107Cj4gKyNlbGlmIGRl
ZmluZWQoX19HTlVDX18pCj4gKyAgICAgICAgdW5zaWduZWQgY2hhciAgIGJ1ZlsxXTsgLyogT1VU
OiBWYXJpYWJsZSBsZW5ndGggYnVmZmVyIHdpdGggYnVpbGRfaWQuICovCj4gKyNlbmRpZgo+ICt9
Owo+ICt0eXBlZGVmIHN0cnVjdCB4ZW5fYnVpbGRfaWQgeGVuX2J1aWxkX2lkX3Q7Cj4gKwo+ICAj
ZW5kaWYgLyogX19YRU5fUFVCTElDX1ZFUlNJT05fSF9fICovCj4gIAo+ICAvKgo+IGRpZmYgLS1n
aXQgYS9pbmNsdWRlL3hlbi92bV9ldmVudC5oIGIvaW5jbHVkZS94ZW4vdm1fZXZlbnQuaAo+IG5l
dyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uYjUzMWY3MQo+IC0tLSAvZGV2L251
bGwKPiArKysgYi9pbmNsdWRlL3hlbi92bV9ldmVudC5oCj4gQEAgLTAsMCArMSwzNzggQEAKPiAr
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgo+ICsgKiB2bV9ldmVudC5oCj4gKyAqCj4gKyAqIE1lbW9y
eSBldmVudCBjb21tb24gc3RydWN0dXJlcy4KPiArICoKPiArICogQ29weXJpZ2h0IChjKSAyMDA5
IGJ5IENpdHJpeCBTeXN0ZW1zLCBJbmMuIChQYXRyaWNrIENvbHApCj4gKyAqCj4gKyAqIFBlcm1p
c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i
dGFpbmluZyBhIGNvcHkKPiArICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1
bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCj4gKyAqIGRlYWwgaW4gdGhlIFNv
ZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24g
dGhlCj4gKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRp
c3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgo+ICsgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29m
dHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwo+ICsg
KiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ogo+ICsgKgo+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNz
aW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgo+ICsgKiBhbGwgY29waWVzIG9yIHN1YnN0
YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KPiArICoKPiArICogVEhFIFNPRlRXQVJF
IElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJF
U1MgT1IKPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQo+ICsg
KiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBE
QU1BR0VTIE9SIE9USEVSCj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0Yg
Q09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4gKyAqIEZST00sIE9VVCBPRiBP
UiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKPiAr
ICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+ICsgKi8KPiArCj4gKyNpZm5kZWYgX1hFTl9Q
VUJMSUNfVk1fRVZFTlRfSAo+ICsjZGVmaW5lIF9YRU5fUFVCTElDX1ZNX0VWRU5UX0gKPiArCj4g
KyNpbmNsdWRlICJ4ZW4uaCIKPiArCj4gKyNkZWZpbmUgVk1fRVZFTlRfSU5URVJGQUNFX1ZFUlNJ
T04gMHgwMDAwMDAwMgo+ICsKPiArI2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hF
Tl9UT09MU19fKQo+ICsKPiArI2luY2x1ZGUgImlvL3JpbmcuaCIKPiArCj4gKy8qCj4gKyAqIE1l
bW9yeSBldmVudCBmbGFncwo+ICsgKi8KPiArCj4gKy8qCj4gKyAqIFZDUFVfUEFVU0VEIGluIGEg
cmVxdWVzdCBzaWduYWxzIHRoYXQgdGhlIHZDUFUgdHJpZ2dlcmluZyB0aGUgZXZlbnQgaGFzIGJl
ZW4KPiArICogIHBhdXNlZAo+ICsgKiBWQ1BVX1BBVVNFRCBpbiBhIHJlc3BvbnNlIHNpZ25hbHMg
dG8gdW5wYXVzZSB0aGUgdkNQVQo+ICsgKi8KPiArI2RlZmluZSBWTV9FVkVOVF9GTEFHX1ZDUFVf
UEFVU0VEICAgICAgICAoMSA8PCAwKQo+ICsvKiBGbGFncyB0byBhaWQgZGVidWdnaW5nIHZtX2V2
ZW50ICovCj4gKyNkZWZpbmUgVk1fRVZFTlRfRkxBR19GT1JFSUdOICAgICAgICAgICAgKDEgPDwg
MSkKPiArLyoKPiArICogVGhlIGZvbGxvd2luZyBmbGFncyBjYW4gYmUgc2V0IGluIHJlc3BvbnNl
IHRvIGEgbWVtX2FjY2VzcyBldmVudC4KPiArICoKPiArICogRW11bGF0ZSB0aGUgZmF1bHQtY2F1
c2luZyBpbnN0cnVjdGlvbiAoaWYgc2V0IGluIHRoZSBldmVudCByZXNwb25zZSBmbGFncykuCj4g
KyAqIFRoaXMgd2lsbCBhbGxvdyB0aGUgZ3Vlc3QgdG8gY29udGludWUgZXhlY3V0aW9uIHdpdGhv
dXQgbGlmdGluZyB0aGUgcGFnZQo+ICsgKiBhY2Nlc3MgcmVzdHJpY3Rpb25zLgo+ICsgKi8KPiAr
I2RlZmluZSBWTV9FVkVOVF9GTEFHX0VNVUxBVEUgICAgICAgICAgICAoMSA8PCAyKQo+ICsvKgo+
ICsgKiBTYW1lIGFzIFZNX0VWRU5UX0ZMQUdfRU1VTEFURSwgYnV0IHdpdGggd3JpdGUgb3BlcmF0
aW9ucyBvciBvcGVyYXRpb25zCj4gKyAqIHBvdGVudGlhbGx5IGhhdmluZyBzaWRlIGVmZmVjdHMg
KGxpa2UgbWVtb3J5IG1hcHBlZCBvciBwb3J0IEkvTykgZGlzYWJsZWQuCj4gKyAqLwo+ICsjZGVm
aW5lIFZNX0VWRU5UX0ZMQUdfRU1VTEFURV9OT1dSSVRFICAgICgxIDw8IDMpCj4gKy8qCj4gKyAq
IFRvZ2dsZSBzaW5nbGVzdGVwcGluZyBvbiB2bV9ldmVudCByZXNwb25zZS4KPiArICogUmVxdWly
ZXMgdGhlIHZDUFUgdG8gYmUgcGF1c2VkIGFscmVhZHkgKHN5bmNocm9ub3VzIGV2ZW50cyBvbmx5
KS4KPiArICovCj4gKyNkZWZpbmUgVk1fRVZFTlRfRkxBR19UT0dHTEVfU0lOR0xFU1RFUCAgKDEg
PDwgNCkKPiArLyoKPiArICogRGF0YSBpcyBiZWluZyBzZW50IGJhY2sgdG8gdGhlIGh5cGVydmlz
b3IgaW4gdGhlIGV2ZW50IHJlc3BvbnNlLCB0byBiZQo+ICsgKiByZXR1cm5lZCBieSB0aGUgcmVh
ZCBmdW5jdGlvbiB3aGVuIGVtdWxhdGluZyBhbiBpbnN0cnVjdGlvbi4KPiArICogVGhpcyBmbGFn
IGlzIG9ubHkgdXNlZnVsIHdoZW4gY29tYmluZWQgd2l0aCBWTV9FVkVOVF9GTEFHX0VNVUxBVEUK
PiArICogYW5kIHRha2VzIHByZWNlZGVuY2UgaWYgY29tYmluZWQgd2l0aCBWTV9FVkVOVF9GTEFH
X0VNVUxBVEVfTk9XUklURQo+ICsgKiAoaS5lLiBpZiBib3RoIFZNX0VWRU5UX0ZMQUdfRU1VTEFU
RV9OT1dSSVRFIGFuZAo+ICsgKiBWTV9FVkVOVF9GTEFHX1NFVF9FTVVMX1JFQURfREFUQSBhcmUg
c2V0LCBvbmx5IHRoZSBsYXR0ZXIgd2lsbCBiZSBob25vcmVkKS4KPiArICovCj4gKyNkZWZpbmUg
Vk1fRVZFTlRfRkxBR19TRVRfRU1VTF9SRUFEX0RBVEEgKDEgPDwgNSkKPiArLyoKPiArICogRGVu
eSBjb21wbGV0aW9uIG9mIHRoZSBvcGVyYXRpb24gdGhhdCB0cmlnZ2VyZWQgdGhlIGV2ZW50Lgo+
ICsgKiBDdXJyZW50bHkgb25seSB1c2VmdWwgZm9yIE1TUiBhbmQgY29udHJvbC1yZWdpc3RlciB3
cml0ZSBldmVudHMuCj4gKyAqIFJlcXVpcmVzIHRoZSB2Q1BVIHRvIGJlIHBhdXNlZCBhbHJlYWR5
IChzeW5jaHJvbm91cyBldmVudHMgb25seSkuCj4gKyAqLwo+ICsjZGVmaW5lIFZNX0VWRU5UX0ZM
QUdfREVOWSAgICAgICAgICAgICAgICgxIDw8IDYpCj4gKy8qCj4gKyAqIFRoaXMgZmxhZyBjYW4g
YmUgc2V0IGluIGEgcmVxdWVzdCBvciBhIHJlc3BvbnNlCj4gKyAqCj4gKyAqIE9uIGEgcmVxdWVz
dCwgaW5kaWNhdGVzIHRoYXQgdGhlIGV2ZW50IG9jY3VycmVkIGluIHRoZSBhbHRlcm5hdGUgcDJt
Cj4gKyAqIHNwZWNpZmllZCBieSB0aGUgYWx0cDJtX2lkeCByZXF1ZXN0IGZpZWxkLgo+ICsgKgo+
ICsgKiBPbiBhIHJlc3BvbnNlLCBpbmRpY2F0ZXMgdGhhdCB0aGUgVkNQVSBzaG91bGQgcmVzdW1l
IGluIHRoZSBhbHRlcm5hdGUgcDJtCj4gKyAqIHNwZWNpZmllZCBieSB0aGUgYWx0cDJtX2lkeCBy
ZXNwb25zZSBmaWVsZCBpZiBwb3NzaWJsZS4KPiArICovCj4gKyNkZWZpbmUgVk1fRVZFTlRfRkxB
R19BTFRFUk5BVEVfUDJNICAgICAgKDEgPDwgNykKPiArLyoKPiArICogU2V0IHRoZSB2Q1BVIHJl
Z2lzdGVycyB0byB0aGUgdmFsdWVzIGluIHRoZSAgdm1fZXZlbnQgcmVzcG9uc2UuCj4gKyAqIEF0
IHRoZSBtb21lbnQgeDg2LW9ubHksIGFwcGxpZXMgdG8gRUFYLUVEWCwgRVNQLCBFQlAsIEVTSSwg
RURJLCBSOC1SMTUsCj4gKyAqIEVGTEFHUywgYW5kIEVJUC4KPiArICogUmVxdWlyZXMgdGhlIHZD
UFUgdG8gYmUgcGF1c2VkIGFscmVhZHkgKHN5bmNocm9ub3VzIGV2ZW50cyBvbmx5KS4KPiArICov
Cj4gKyNkZWZpbmUgVk1fRVZFTlRfRkxBR19TRVRfUkVHSVNURVJTICAgICAgKDEgPDwgOCkKPiAr
LyoKPiArICogSW5zdHJ1Y3Rpb24gY2FjaGUgaXMgYmVpbmcgc2VudCBiYWNrIHRvIHRoZSBoeXBl
cnZpc29yIGluIHRoZSBldmVudCByZXNwb25zZQo+ICsgKiB0byBiZSB1c2VkIGJ5IHRoZSBlbXVs
YXRvci4gVGhpcyBmbGFnIGlzIG9ubHkgdXNlZnVsIHdoZW4gY29tYmluZWQgd2l0aAo+ICsgKiBW
TV9FVkVOVF9GTEFHX0VNVUxBVEUgYW5kIGRvZXMgbm90IHRha2UgcHJlc2VkZW5jZSBpZiBjb21i
aW5lZCB3aXRoCj4gKyAqIFZNX0VWRU5UX0ZMQUdfRU1VTEFURV9OT1dSSVRFIG9yIFZNX0VWRU5U
X0ZMQUdfU0VUX0VNVUxfUkVBRF9EQVRBLCAoaS5lLgo+ICsgKiBpZiBhbnkgb2YgdGhvc2UgZmxh
Z3MgYXJlIHNldCwgb25seSB0aG9zZSB3aWxsIGJlIGhvbm9yZWQpLgo+ICsgKi8KPiArI2RlZmlu
ZSBWTV9FVkVOVF9GTEFHX1NFVF9FTVVMX0lOU05fREFUQSAoMSA8PCA5KQo+ICsvKgo+ICsgKiBI
YXZlIGEgb25lLXNob3QgVk1fRVZFTlRfUkVBU09OX0lOVEVSUlVQVCBldmVudCBzZW50IGZvciB0
aGUgZmlyc3QKPiArICogaW50ZXJydXB0IHBlbmRpbmcgYWZ0ZXIgcmVzdW1pbmcgdGhlIFZDUFUu
Cj4gKyAqLwo+ICsjZGVmaW5lIFZNX0VWRU5UX0ZMQUdfR0VUX05FWFRfSU5URVJSVVBUICgxIDw8
IDEwKQo+ICsKPiArLyoKPiArICogUmVhc29ucyBmb3IgdGhlIHZtIGV2ZW50IHJlcXVlc3QKPiAr
ICovCj4gKwo+ICsvKiBEZWZhdWx0IGNhc2UgKi8KPiArI2RlZmluZSBWTV9FVkVOVF9SRUFTT05f
VU5LTk9XTiAgICAgICAgICAgICAgICAgMAo+ICsvKiBNZW1vcnkgYWNjZXNzIHZpb2xhdGlvbiAq
Lwo+ICsjZGVmaW5lIFZNX0VWRU5UX1JFQVNPTl9NRU1fQUNDRVNTICAgICAgICAgICAgICAxCj4g
Ky8qIE1lbW9yeSBzaGFyaW5nIGV2ZW50ICovCj4gKyNkZWZpbmUgVk1fRVZFTlRfUkVBU09OX01F
TV9TSEFSSU5HICAgICAgICAgICAgIDIKPiArLyogTWVtb3J5IHBhZ2luZyBldmVudCAqLwo+ICsj
ZGVmaW5lIFZNX0VWRU5UX1JFQVNPTl9NRU1fUEFHSU5HICAgICAgICAgICAgICAzCj4gKy8qIEEg
Y29udHJvbCByZWdpc3RlciB3YXMgdXBkYXRlZCAqLwo+ICsjZGVmaW5lIFZNX0VWRU5UX1JFQVNP
Tl9XUklURV9DVFJMUkVHICAgICAgICAgICA0Cj4gKy8qIEFuIE1TUiB3YXMgdXBkYXRlZC4gKi8K
PiArI2RlZmluZSBWTV9FVkVOVF9SRUFTT05fTU9WX1RPX01TUiAgICAgICAgICAgICAgNQo+ICsv
KiBEZWJ1ZyBvcGVyYXRpb24gZXhlY3V0ZWQgKGUuZy4gaW50MykgKi8KPiArI2RlZmluZSBWTV9F
VkVOVF9SRUFTT05fU09GVFdBUkVfQlJFQUtQT0lOVCAgICAgNgo+ICsvKiBTaW5nbGUtc3RlcCAo
ZS5nLiBNVEYpICovCj4gKyNkZWZpbmUgVk1fRVZFTlRfUkVBU09OX1NJTkdMRVNURVAgICAgICAg
ICAgICAgIDcKPiArLyogQW4gZXZlbnQgaGFzIGJlZW4gcmVxdWVzdGVkIHZpYSBIVk1PUF9ndWVz
dF9yZXF1ZXN0X3ZtX2V2ZW50LiAqLwo+ICsjZGVmaW5lIFZNX0VWRU5UX1JFQVNPTl9HVUVTVF9S
RVFVRVNUICAgICAgICAgICA4Cj4gKy8qIEEgZGVidWcgZXhjZXB0aW9uIHdhcyBjYXVnaHQgKi8K
PiArI2RlZmluZSBWTV9FVkVOVF9SRUFTT05fREVCVUdfRVhDRVBUSU9OICAgICAgICAgOQo+ICsv
KiBDUFVJRCBleGVjdXRlZCAqLwo+ICsjZGVmaW5lIFZNX0VWRU5UX1JFQVNPTl9DUFVJRCAgICAg
ICAgICAgICAgICAgICAxMAo+ICsvKgo+ICsgKiBQcml2aWxlZ2VkIGNhbGwgZXhlY3V0ZWQgKGUu
Zy4gU01DKS4KPiArICogTm90ZTogZXZlbnQgbWF5IGJlIGdlbmVyYXRlZCBldmVuIGlmIFNNQyBj
b25kaXRpb24gY2hlY2sgZmFpbHMgb24gc29tZSBDUFVzLgo+ICsgKiAgICAgICBBcyB0aGlzIGJl
aGF2aW9yIGlzIENQVS1zcGVjaWZpYywgdXNlcnMgYXJlIGFkdmlzZWQgdG8gbm90IHJlbHkgb24g
aXQuCj4gKyAqICAgICAgIFRoZXNlIGtpbmRzIG9mIGV2ZW50cyB3aWxsIGJlIGZpbHRlcmVkIG91
dCBpbiBmdXR1cmUgdmVyc2lvbnMuCj4gKyAqLwo+ICsjZGVmaW5lIFZNX0VWRU5UX1JFQVNPTl9Q
UklWSUxFR0VEX0NBTEwgICAgICAgICAxMQo+ICsvKiBBbiBpbnRlcnJ1cHQgaGFzIGJlZW4gZGVs
aXZlcmVkLiAqLwo+ICsjZGVmaW5lIFZNX0VWRU5UX1JFQVNPTl9JTlRFUlJVUFQgICAgICAgICAg
ICAgICAxMgo+ICsvKiBBIGRlc2NyaXB0b3IgdGFibGUgcmVnaXN0ZXIgd2FzIGFjY2Vzc2VkLiAq
Lwo+ICsjZGVmaW5lIFZNX0VWRU5UX1JFQVNPTl9ERVNDUklQVE9SX0FDQ0VTUyAgICAgICAxMwo+
ICsvKiBDdXJyZW50IGluc3RydWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBieSB0aGUgZW11bGF0
b3IgKi8KPiArI2RlZmluZSBWTV9FVkVOVF9SRUFTT05fRU1VTF9VTklNUExFTUVOVEVEICAgICAg
MTQKPiArCj4gKy8qIFN1cHBvcnRlZCB2YWx1ZXMgZm9yIHRoZSB2bV9ldmVudF93cml0ZV9jdHJs
cmVnIGluZGV4LiAqLwo+ICsjZGVmaW5lIFZNX0VWRU5UX1g4Nl9DUjAgICAgMAo+ICsjZGVmaW5l
IFZNX0VWRU5UX1g4Nl9DUjMgICAgMQo+ICsjZGVmaW5lIFZNX0VWRU5UX1g4Nl9DUjQgICAgMgo+
ICsjZGVmaW5lIFZNX0VWRU5UX1g4Nl9YQ1IwICAgMwo+ICsKPiArLyoKPiArICogVXNpbmcgY3Vz
dG9tIHZDUFUgc3RydWN0cyAoaS5lLiBub3QgaHZtX2h3X2NwdSkgZm9yIGJvdGggeDg2IGFuZCBB
Uk0KPiArICogc28gYXMgdG8gbm90IGZpbGwgdGhlIHZtX2V2ZW50IHJpbmcgYnVmZmVyIHRvbyBx
dWlja2x5Lgo+ICsgKi8KPiArc3RydWN0IHZtX2V2ZW50X3JlZ3NfeDg2IHsKPiArICAgIHVpbnQ2
NF90IHJheDsKPiArICAgIHVpbnQ2NF90IHJjeDsKPiArICAgIHVpbnQ2NF90IHJkeDsKPiArICAg
IHVpbnQ2NF90IHJieDsKPiArICAgIHVpbnQ2NF90IHJzcDsKPiArICAgIHVpbnQ2NF90IHJicDsK
PiArICAgIHVpbnQ2NF90IHJzaTsKPiArICAgIHVpbnQ2NF90IHJkaTsKPiArICAgIHVpbnQ2NF90
IHI4Owo+ICsgICAgdWludDY0X3Qgcjk7Cj4gKyAgICB1aW50NjRfdCByMTA7Cj4gKyAgICB1aW50
NjRfdCByMTE7Cj4gKyAgICB1aW50NjRfdCByMTI7Cj4gKyAgICB1aW50NjRfdCByMTM7Cj4gKyAg
ICB1aW50NjRfdCByMTQ7Cj4gKyAgICB1aW50NjRfdCByMTU7Cj4gKyAgICB1aW50NjRfdCByZmxh
Z3M7Cj4gKyAgICB1aW50NjRfdCBkcjc7Cj4gKyAgICB1aW50NjRfdCByaXA7Cj4gKyAgICB1aW50
NjRfdCBjcjA7Cj4gKyAgICB1aW50NjRfdCBjcjI7Cj4gKyAgICB1aW50NjRfdCBjcjM7Cj4gKyAg
ICB1aW50NjRfdCBjcjQ7Cj4gKyAgICB1aW50NjRfdCBzeXNlbnRlcl9jczsKPiArICAgIHVpbnQ2
NF90IHN5c2VudGVyX2VzcDsKPiArICAgIHVpbnQ2NF90IHN5c2VudGVyX2VpcDsKPiArICAgIHVp
bnQ2NF90IG1zcl9lZmVyOwo+ICsgICAgdWludDY0X3QgbXNyX3N0YXI7Cj4gKyAgICB1aW50NjRf
dCBtc3JfbHN0YXI7Cj4gKyAgICB1aW50NjRfdCBmc19iYXNlOwo+ICsgICAgdWludDY0X3QgZ3Nf
YmFzZTsKPiArICAgIHVpbnQzMl90IGNzX2FyYnl0ZXM7Cj4gKyAgICB1aW50MzJfdCBfcGFkOwo+
ICt9Owo+ICsKPiArLyoKPiArICogT25seSB0aGUgcmVnaXN0ZXIgJ3BjJyBjYW4gYmUgc2V0IG9u
IGEgdm1fZXZlbnQgcmVzcG9uc2UgdXNpbmcgdGhlCj4gKyAqIFZNX0VWRU5UX0ZMQUdfU0VUX1JF
R0lTVEVSUyBmbGFnLgo+ICsgKi8KPiArc3RydWN0IHZtX2V2ZW50X3JlZ3NfYXJtIHsKPiArICAg
IHVpbnQ2NF90IHR0YnIwOwo+ICsgICAgdWludDY0X3QgdHRicjE7Cj4gKyAgICB1aW50NjRfdCB0
dGJjcjsKPiArICAgIHVpbnQ2NF90IHBjOwo+ICsgICAgdWludDMyX3QgY3BzcjsKPiArICAgIHVp
bnQzMl90IF9wYWQ7Cj4gK307Cj4gKwo+ICsvKgo+ICsgKiBtZW1fYWNjZXNzIGZsYWcgZGVmaW5p
dGlvbnMKPiArICoKPiArICogVGhlc2UgZmxhZ3MgYXJlIHNldCBvbmx5IGFzIHBhcnQgb2YgYSBt
ZW1fZXZlbnQgcmVxdWVzdC4KPiArICoKPiArICogUi9XL1g6IERlZmluZXMgdGhlIHR5cGUgb2Yg
dmlvbGF0aW9uIHRoYXQgaGFzIHRyaWdnZXJlZCB0aGUgZXZlbnQKPiArICogICAgICAgIE11bHRp
cGxlIHR5cGVzIGNhbiBiZSBzZXQgaW4gYSBzaW5nbGUgdmlvbGF0aW9uIQo+ICsgKiBHTEFfVkFM
SUQ6IElmIHRoZSBnbGEgZmllbGQgaG9sZHMgYSBndWVzdCBWQSBhc3NvY2lhdGVkIHdpdGggdGhl
IGV2ZW50Cj4gKyAqIEZBVUxUX1dJVEhfR0xBOiBJZiB0aGUgdmlvbGF0aW9uIHdhcyB0cmlnZ2Vy
ZWQgYnkgYWNjZXNzaW5nIGdsYQo+ICsgKiBGQVVMVF9JTl9HUFQ6IElmIHRoZSB2aW9sYXRpb24g
d2FzIHRyaWdnZXJlZCBkdXJpbmcgdHJhbnNsYXRpbmcgZ2xhCj4gKyAqLwo+ICsjZGVmaW5lIE1F
TV9BQ0NFU1NfUiAgICAgICAgICAgICAgICAoMSA8PCAwKQo+ICsjZGVmaW5lIE1FTV9BQ0NFU1Nf
VyAgICAgICAgICAgICAgICAoMSA8PCAxKQo+ICsjZGVmaW5lIE1FTV9BQ0NFU1NfWCAgICAgICAg
ICAgICAgICAoMSA8PCAyKQo+ICsjZGVmaW5lIE1FTV9BQ0NFU1NfUldYICAgICAgICAgICAgICAo
TUVNX0FDQ0VTU19SIHwgTUVNX0FDQ0VTU19XIHwgTUVNX0FDQ0VTU19YKQo+ICsjZGVmaW5lIE1F
TV9BQ0NFU1NfUlcgICAgICAgICAgICAgICAoTUVNX0FDQ0VTU19SIHwgTUVNX0FDQ0VTU19XKQo+
ICsjZGVmaW5lIE1FTV9BQ0NFU1NfUlggICAgICAgICAgICAgICAoTUVNX0FDQ0VTU19SIHwgTUVN
X0FDQ0VTU19YKQo+ICsjZGVmaW5lIE1FTV9BQ0NFU1NfV1ggICAgICAgICAgICAgICAoTUVNX0FD
Q0VTU19XIHwgTUVNX0FDQ0VTU19YKQo+ICsjZGVmaW5lIE1FTV9BQ0NFU1NfR0xBX1ZBTElEICAg
ICAgICAoMSA8PCAzKQo+ICsjZGVmaW5lIE1FTV9BQ0NFU1NfRkFVTFRfV0lUSF9HTEEgICAoMSA8
PCA0KQo+ICsjZGVmaW5lIE1FTV9BQ0NFU1NfRkFVTFRfSU5fR1BUICAgICAoMSA8PCA1KQo+ICsK
PiArc3RydWN0IHZtX2V2ZW50X21lbV9hY2Nlc3Mgewo+ICsgICAgdWludDY0X3QgZ2ZuOwo+ICsg
ICAgdWludDY0X3Qgb2Zmc2V0Owo+ICsgICAgdWludDY0X3QgZ2xhOyAgIC8qIGlmIGZsYWdzIGhh
cyBNRU1fQUNDRVNTX0dMQV9WQUxJRCBzZXQgKi8KPiArICAgIHVpbnQzMl90IGZsYWdzOyAvKiBN
RU1fQUNDRVNTXyogKi8KPiArICAgIHVpbnQzMl90IF9wYWQ7Cj4gK307Cj4gKwo+ICtzdHJ1Y3Qg
dm1fZXZlbnRfd3JpdGVfY3RybHJlZyB7Cj4gKyAgICB1aW50MzJfdCBpbmRleDsKPiArICAgIHVp
bnQzMl90IF9wYWQ7Cj4gKyAgICB1aW50NjRfdCBuZXdfdmFsdWU7Cj4gKyAgICB1aW50NjRfdCBv
bGRfdmFsdWU7Cj4gK307Cj4gKwo+ICtzdHJ1Y3Qgdm1fZXZlbnRfc2luZ2xlc3RlcCB7Cj4gKyAg
ICB1aW50NjRfdCBnZm47Cj4gK307Cj4gKwo+ICtzdHJ1Y3Qgdm1fZXZlbnRfZGVidWcgewo+ICsg
ICAgdWludDY0X3QgZ2ZuOwo+ICsgICAgdWludDMyX3QgaW5zbl9sZW5ndGg7Cj4gKyAgICB1aW50
OF90IHR5cGU7ICAgICAgICAvKiBIVk1PUF9UUkFQXyogKi8KPiArICAgIHVpbnQ4X3QgX3BhZFsz
XTsKPiArfTsKPiArCj4gK3N0cnVjdCB2bV9ldmVudF9tb3ZfdG9fbXNyIHsKPiArICAgIHVpbnQ2
NF90IG1zcjsKPiArICAgIHVpbnQ2NF90IHZhbHVlOwo+ICt9Owo+ICsKPiArI2RlZmluZSBWTV9F
VkVOVF9ERVNDX0lEVFIgICAgICAgICAgIDEKPiArI2RlZmluZSBWTV9FVkVOVF9ERVNDX0dEVFIg
ICAgICAgICAgIDIKPiArI2RlZmluZSBWTV9FVkVOVF9ERVNDX0xEVFIgICAgICAgICAgIDMKPiAr
I2RlZmluZSBWTV9FVkVOVF9ERVNDX1RSICAgICAgICAgICAgIDQKPiArCj4gK3N0cnVjdCB2bV9l
dmVudF9kZXNjX2FjY2VzcyB7Cj4gKyAgICB1bmlvbiB7Cj4gKyAgICAgICAgc3RydWN0IHsKPiAr
ICAgICAgICAgICAgdWludDMyX3QgaW5zdHJfaW5mbzsgICAgICAgICAvKiBWTVg6IFZNQ1MgSW5z
dHJ1Y3Rpb24tSW5mb3JtYXRpb24gKi8KPiArICAgICAgICAgICAgdWludDMyX3QgX3BhZDE7Cj4g
KyAgICAgICAgICAgIHVpbnQ2NF90IGV4aXRfcXVhbGlmaWNhdGlvbjsgLyogVk1YOiBWTUNTIEV4
aXQgUXVhbGlmaWNhdGlvbiAqLwo+ICsgICAgICAgIH0gdm14Owo+ICsgICAgICAgIHN0cnVjdCB7
Cj4gKyAgICAgICAgICAgIHVpbnQ2NF90IGV4aXRpbmZvOyAgICAgICAgICAgLyogU1ZNOiBWTUNC
IEVYSVRJTkZPICovCj4gKyAgICAgICAgICAgIHVpbnQ2NF90IF9wYWQyOwo+ICsgICAgICAgIH0g
c3ZtOwo+ICsgICAgfSBhcmNoOwo+ICsgICAgdWludDhfdCBkZXNjcmlwdG9yOyAgICAgICAgICAg
ICAgICAgIC8qIFZNX0VWRU5UX0RFU0NfKiAqLwo+ICsgICAgdWludDhfdCBpc193cml0ZTsKPiAr
ICAgIHVpbnQ4X3QgX3BhZFs2XTsKPiArfTsKPiArCj4gK3N0cnVjdCB2bV9ldmVudF9jcHVpZCB7
Cj4gKyAgICB1aW50MzJfdCBpbnNuX2xlbmd0aDsKPiArICAgIHVpbnQzMl90IGxlYWY7Cj4gKyAg
ICB1aW50MzJfdCBzdWJsZWFmOwo+ICsgICAgdWludDMyX3QgX3BhZDsKPiArfTsKPiArCj4gK3N0
cnVjdCB2bV9ldmVudF9pbnRlcnJ1cHRfeDg2IHsKPiArICAgIHVpbnQzMl90IHZlY3RvcjsKPiAr
ICAgIHVpbnQzMl90IHR5cGU7Cj4gKyAgICB1aW50MzJfdCBlcnJvcl9jb2RlOwo+ICsgICAgdWlu
dDMyX3QgX3BhZDsKPiArICAgIHVpbnQ2NF90IGNyMjsKPiArfTsKPiArCj4gKyNkZWZpbmUgTUVN
X1BBR0lOR19EUk9QX1BBR0UgICAgICAgKDEgPDwgMCkKPiArI2RlZmluZSBNRU1fUEFHSU5HX0VW
SUNUX0ZBSUwgICAgICAoMSA8PCAxKQo+ICsKPiArc3RydWN0IHZtX2V2ZW50X3BhZ2luZyB7Cj4g
KyAgICB1aW50NjRfdCBnZm47Cj4gKyAgICB1aW50MzJfdCBwMm10Owo+ICsgICAgdWludDMyX3Qg
ZmxhZ3M7Cj4gK307Cj4gKwo+ICtzdHJ1Y3Qgdm1fZXZlbnRfc2hhcmluZyB7Cj4gKyAgICB1aW50
NjRfdCBnZm47Cj4gKyAgICB1aW50MzJfdCBwMm10Owo+ICsgICAgdWludDMyX3QgX3BhZDsKPiAr
fTsKPiArCj4gK3N0cnVjdCB2bV9ldmVudF9lbXVsX3JlYWRfZGF0YSB7Cj4gKyAgICB1aW50MzJf
dCBzaXplOwo+ICsgICAgLyogVGhlIHN0cnVjdCBpcyB1c2VkIGluIGEgdW5pb24gd2l0aCB2bV9l
dmVudF9yZWdzX3g4Ni4gKi8KPiArICAgIHVpbnQ4X3QgIGRhdGFbc2l6ZW9mKHN0cnVjdCB2bV9l
dmVudF9yZWdzX3g4NikgLSBzaXplb2YodWludDMyX3QpXTsKPiArfTsKPiArCj4gK3N0cnVjdCB2
bV9ldmVudF9lbXVsX2luc25fZGF0YSB7Cj4gKyAgICB1aW50OF90IGRhdGFbMTZdOyAvKiBIYXMg
dG8gYmUgY29tcGxldGVseSBmaWxsZWQgKi8KPiArfTsKPiArCj4gK3R5cGVkZWYgc3RydWN0IHZt
X2V2ZW50X3N0IHsKPiArICAgIHVpbnQzMl90IHZlcnNpb247ICAgLyogVk1fRVZFTlRfSU5URVJG
QUNFX1ZFUlNJT04gKi8KPiArICAgIHVpbnQzMl90IGZsYWdzOyAgICAgLyogVk1fRVZFTlRfRkxB
R18qICovCj4gKyAgICB1aW50MzJfdCByZWFzb247ICAgIC8qIFZNX0VWRU5UX1JFQVNPTl8qICov
Cj4gKyAgICB1aW50MzJfdCB2Y3B1X2lkOwo+ICsgICAgdWludDE2X3QgYWx0cDJtX2lkeDsgLyog
bWF5IGJlIHVzZWQgZHVyaW5nIHJlcXVlc3QgYW5kIHJlc3BvbnNlICovCj4gKyAgICB1aW50MTZf
dCBfcGFkWzNdOwo+ICsKPiArICAgIHVuaW9uIHsKPiArICAgICAgICBzdHJ1Y3Qgdm1fZXZlbnRf
cGFnaW5nICAgICAgICAgICAgICAgIG1lbV9wYWdpbmc7Cj4gKyAgICAgICAgc3RydWN0IHZtX2V2
ZW50X3NoYXJpbmcgICAgICAgICAgICAgICBtZW1fc2hhcmluZzsKPiArICAgICAgICBzdHJ1Y3Qg
dm1fZXZlbnRfbWVtX2FjY2VzcyAgICAgICAgICAgIG1lbV9hY2Nlc3M7Cj4gKyAgICAgICAgc3Ry
dWN0IHZtX2V2ZW50X3dyaXRlX2N0cmxyZWcgICAgICAgICB3cml0ZV9jdHJscmVnOwo+ICsgICAg
ICAgIHN0cnVjdCB2bV9ldmVudF9tb3ZfdG9fbXNyICAgICAgICAgICAgbW92X3RvX21zcjsKPiAr
ICAgICAgICBzdHJ1Y3Qgdm1fZXZlbnRfZGVzY19hY2Nlc3MgICAgICAgICAgIGRlc2NfYWNjZXNz
Owo+ICsgICAgICAgIHN0cnVjdCB2bV9ldmVudF9zaW5nbGVzdGVwICAgICAgICAgICAgc2luZ2xl
c3RlcDsKPiArICAgICAgICBzdHJ1Y3Qgdm1fZXZlbnRfZGVidWcgICAgICAgICAgICAgICAgIHNv
ZnR3YXJlX2JyZWFrcG9pbnQ7Cj4gKyAgICAgICAgc3RydWN0IHZtX2V2ZW50X2RlYnVnICAgICAg
ICAgICAgICAgICBkZWJ1Z19leGNlcHRpb247Cj4gKyAgICAgICAgc3RydWN0IHZtX2V2ZW50X2Nw
dWlkICAgICAgICAgICAgICAgICBjcHVpZDsKPiArICAgICAgICB1bmlvbiB7Cj4gKyAgICAgICAg
ICAgIHN0cnVjdCB2bV9ldmVudF9pbnRlcnJ1cHRfeDg2ICAgICB4ODY7Cj4gKyAgICAgICAgfSBp
bnRlcnJ1cHQ7Cj4gKyAgICB9IHU7Cj4gKwo+ICsgICAgdW5pb24gewo+ICsgICAgICAgIHVuaW9u
IHsKPiArICAgICAgICAgICAgc3RydWN0IHZtX2V2ZW50X3JlZ3NfeDg2IHg4NjsKPiArICAgICAg
ICAgICAgc3RydWN0IHZtX2V2ZW50X3JlZ3NfYXJtIGFybTsKPiArICAgICAgICB9IHJlZ3M7Cj4g
Kwo+ICsgICAgICAgIHVuaW9uIHsKPiArICAgICAgICAgICAgc3RydWN0IHZtX2V2ZW50X2VtdWxf
cmVhZF9kYXRhIHJlYWQ7Cj4gKyAgICAgICAgICAgIHN0cnVjdCB2bV9ldmVudF9lbXVsX2luc25f
ZGF0YSBpbnNuOwo+ICsgICAgICAgIH0gZW11bDsKPiArICAgIH0gZGF0YTsKPiArfSB2bV9ldmVu
dF9yZXF1ZXN0X3QsIHZtX2V2ZW50X3Jlc3BvbnNlX3Q7Cj4gKwo+ICtERUZJTkVfUklOR19UWVBF
Uyh2bV9ldmVudCwgdm1fZXZlbnRfcmVxdWVzdF90LCB2bV9ldmVudF9yZXNwb25zZV90KTsKPiAr
Cj4gKyNlbmRpZiAvKiBkZWZpbmVkKF9fWEVOX18pIHx8IGRlZmluZWQoX19YRU5fVE9PTFNfXykg
Ki8KPiArI2VuZGlmIC8qIF9YRU5fUFVCTElDX1ZNX0VWRU5UX0ggKi8KPiArCj4gKy8qCj4gKyAq
IExvY2FsIHZhcmlhYmxlczoKPiArICogbW9kZTogQwo+ICsgKiBjLWZpbGUtc3R5bGU6ICJCU0Qi
Cj4gKyAqIGMtYmFzaWMtb2Zmc2V0OiA0Cj4gKyAqIHRhYi13aWR0aDogNAo+ICsgKiBpbmRlbnQt
dGFicy1tb2RlOiBuaWwKPiArICogRW5kOgo+ICsgKi8KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS94
ZW4veGVuLWNvbXBhdC5oIGIvaW5jbHVkZS94ZW4veGVuLWNvbXBhdC5oCj4gaW5kZXggMWU2MmRj
MS4uYjY3MzY1MyAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3hlbi94ZW4tY29tcGF0LmgKPiArKysg
Yi9pbmNsdWRlL3hlbi94ZW4tY29tcGF0LmgKPiBAQCAtMjcsNyArMjcsNyBAQAo+ICAjaWZuZGVm
IF9fWEVOX1BVQkxJQ19YRU5fQ09NUEFUX0hfXwo+ICAjZGVmaW5lIF9fWEVOX1BVQkxJQ19YRU5f
Q09NUEFUX0hfXwo+ICAKPiAtI2RlZmluZSBfX1hFTl9MQVRFU1RfSU5URVJGQUNFX1ZFUlNJT05f
XyAweDAwMDQwNjAwCj4gKyNkZWZpbmUgX19YRU5fTEFURVNUX0lOVEVSRkFDRV9WRVJTSU9OX18g
MHgwMDA0MDkwMAo+ICAKPiAgI2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9U
T09MU19fKQo+ICAvKiBYZW4gaXMgYnVpbHQgd2l0aCBtYXRjaGluZyBoZWFkZXJzIGFuZCBpbXBs
ZW1lbnRzIHRoZSBsYXRlc3QgaW50ZXJmYWNlLiAqLwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3hl
bi94ZW4uaCBiL2luY2x1ZGUveGVuL3hlbi5oCj4gaW5kZXggYTZhMjA5Mi4uMmFjNmIxZSAxMDA2
NDQKPiAtLS0gYS9pbmNsdWRlL3hlbi94ZW4uaAo+ICsrKyBiL2luY2x1ZGUveGVuL3hlbi5oCj4g
QEAgLTUyLDYgKzUyLDI0IEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKHZvaWQpOwo+ICBERUZJ
TkVfWEVOX0dVRVNUX0hBTkRMRSh1aW50NjRfdCk7Cj4gIERFRklORV9YRU5fR1VFU1RfSEFORExF
KHhlbl9wZm5fdCk7Cj4gIERFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl91bG9uZ190KTsKPiAr
Cj4gKy8qIFR1cm4gYSBwbGFpbiBudW1iZXIgaW50byBhIEMgdW5zaWduZWQgKGxvbmcgKGxvbmcp
KSBjb25zdGFudC4gKi8KPiArI2RlZmluZSBfX3hlbl9ta191aW50KHgpICB4ICMjIFUKPiArI2Rl
ZmluZSBfX3hlbl9ta191bG9uZyh4KSB4ICMjIFVMCj4gKyNpZm5kZWYgX194ZW5fbWtfdWxsb25n
Cj4gKyMgZGVmaW5lIF9feGVuX21rX3VsbG9uZyh4KSB4ICMjIFVMTAo+ICsjZW5kaWYKPiArI2Rl
ZmluZSB4ZW5fbWtfdWludCh4KSAgICBfX3hlbl9ta191aW50KHgpCj4gKyNkZWZpbmUgeGVuX21r
X3Vsb25nKHgpICAgX194ZW5fbWtfdWxvbmcoeCkKPiArI2RlZmluZSB4ZW5fbWtfdWxsb25nKHgp
ICBfX3hlbl9ta191bGxvbmcoeCkKPiArCj4gKyNlbHNlCj4gKwo+ICsvKiBJbiBhc3NlbWJseSBj
b2RlIHdlIGNhbm5vdCB1c2UgQyBudW1lcmljIGNvbnN0YW50IHN1ZmZpeGVzLiAqLwo+ICsjZGVm
aW5lIHhlbl9ta191aW50KHgpICAgeAo+ICsjZGVmaW5lIHhlbl9ta191bG9uZyh4KSAgeAo+ICsj
ZGVmaW5lIHhlbl9ta191bGxvbmcoeCkgeAo+ICsKPiAgI2VuZGlmCj4gIAo+ICAvKgo+IEBAIC0x
MDEsNiArMTE5LDggQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3Vsb25nX3QpOwo+ICAj
ZGVmaW5lIF9fSFlQRVJWSVNPUl9rZXhlY19vcCAgICAgICAgICAgICAzNwo+ICAjZGVmaW5lIF9f
SFlQRVJWSVNPUl90bWVtX29wICAgICAgICAgICAgICAzOAo+ICAjZGVmaW5lIF9fSFlQRVJWSVNP
Ul94Y19yZXNlcnZlZF9vcCAgICAgICAzOSAvKiByZXNlcnZlZCBmb3IgWGVuQ2xpZW50ICovCj4g
KyNkZWZpbmUgX19IWVBFUlZJU09SX3hlbnBtdV9vcCAgICAgICAgICAgIDQwCj4gKyNkZWZpbmUg
X19IWVBFUlZJU09SX2RtX29wICAgICAgICAgICAgICAgIDQxCj4gIAo+ICAvKiBBcmNoaXRlY3R1
cmUtc3BlY2lmaWMgaHlwZXJjYWxsIGRlZmluaXRpb25zLiAqLwo+ICAjZGVmaW5lIF9fSFlQRVJW
SVNPUl9hcmNoXzAgICAgICAgICAgICAgICA0OAo+IEBAIC0xNjAsNiArMTgwLDcgQEAgREVGSU5F
X1hFTl9HVUVTVF9IQU5ETEUoeGVuX3Vsb25nX3QpOwo+ICAjZGVmaW5lIFZJUlFfTUVNX0VWRU5U
ICAxMCAvKiBHLiAoRE9NMCkgQSBtZW1vcnkgZXZlbnQgaGFzIG9jY3VyZWQgICAgICAgICAgICov
Cj4gICNkZWZpbmUgVklSUV9YQ19SRVNFUlZFRCAxMSAvKiBHLiBSZXNlcnZlZCBmb3IgWGVuQ2xp
ZW50ICAgICAgICAgICAgICAgICAgICAgKi8KPiAgI2RlZmluZSBWSVJRX0VOT01FTSAgICAgMTIg
LyogRy4gKERPTTApIExvdyBvbiBoZWFwIG1lbW9yeSAgICAgICAqLwo+ICsjZGVmaW5lIFZJUlFf
WEVOUE1VICAgICAxMyAvKiBWLiAgUE1DIGludGVycnVwdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICovCj4gIAo+ICAvKiBBcmNoaXRlY3R1cmUtc3BlY2lmaWMgVklSUSBkZWZpbml0aW9u
cy4gKi8KPiAgI2RlZmluZSBWSVJRX0FSQ0hfMCAgICAxNgo+IEBAIC00NDksMTMgKzQ3MCwxMyBA
QCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShtbXVleHRfb3BfdCk7Cj4gIC8qIFdoZW4gc3BlY2lm
eWluZyBVVk1GX01VTFRJLCBhbHNvIE9SIGluIGEgcG9pbnRlciB0byBhIENQVSBiaXRtYXAuICAg
Ki8KPiAgLyogVVZNRl9MT0NBTCBpcyBtZXJlbHkgVVZNRl9NVUxUSSB3aXRoIGEgTlVMTCBiaXRt
YXAgcG9pbnRlci4gICAgICAgICAqLwo+ICAvKiBgIGVudW0gdXZtX2ZsYWdzIHsgKi8KPiAtI2Rl
ZmluZSBVVk1GX05PTkUgICAgICAgICAgICAgICAoMFVMPDwwKSAvKiBObyBmbHVzaGluZyBhdCBh
bGwuICAgKi8KPiAtI2RlZmluZSBVVk1GX1RMQl9GTFVTSCAgICAgICAgICAoMVVMPDwwKSAvKiBG
bHVzaCBlbnRpcmUgVExCKHMpLiAgKi8KPiAtI2RlZmluZSBVVk1GX0lOVkxQRyAgICAgICAgICAg
ICAoMlVMPDwwKSAvKiBGbHVzaCBvbmx5IG9uZSBlbnRyeS4gKi8KPiAtI2RlZmluZSBVVk1GX0ZM
VVNIVFlQRV9NQVNLICAgICAoM1VMPDwwKQo+IC0jZGVmaW5lIFVWTUZfTVVMVEkgICAgICAgICAg
ICAgICgwVUw8PDIpIC8qIEZsdXNoIHN1YnNldCBvZiBUTEJzLiAqLwo+IC0jZGVmaW5lIFVWTUZf
TE9DQUwgICAgICAgICAgICAgICgwVUw8PDIpIC8qIEZsdXNoIGxvY2FsIFRMQi4gICAgICAqLwo+
IC0jZGVmaW5lIFVWTUZfQUxMICAgICAgICAgICAgICAgICgxVUw8PDIpIC8qIEZsdXNoIGFsbCBU
TEJzLiAgICAgICAqLwo+ICsjZGVmaW5lIFVWTUZfTk9ORSAgICAgICAgICAgKHhlbl9ta191bG9u
ZygwKTw8MCkgLyogTm8gZmx1c2hpbmcgYXQgYWxsLiAgICovCj4gKyNkZWZpbmUgVVZNRl9UTEJf
RkxVU0ggICAgICAoeGVuX21rX3Vsb25nKDEpPDwwKSAvKiBGbHVzaCBlbnRpcmUgVExCKHMpLiAg
Ki8KPiArI2RlZmluZSBVVk1GX0lOVkxQRyAgICAgICAgICh4ZW5fbWtfdWxvbmcoMik8PDApIC8q
IEZsdXNoIG9ubHkgb25lIGVudHJ5LiAqLwo+ICsjZGVmaW5lIFVWTUZfRkxVU0hUWVBFX01BU0sg
KHhlbl9ta191bG9uZygzKTw8MCkKPiArI2RlZmluZSBVVk1GX01VTFRJICAgICAgICAgICh4ZW5f
bWtfdWxvbmcoMCk8PDIpIC8qIEZsdXNoIHN1YnNldCBvZiBUTEJzLiAqLwo+ICsjZGVmaW5lIFVW
TUZfTE9DQUwgICAgICAgICAgKHhlbl9ta191bG9uZygwKTw8MikgLyogRmx1c2ggbG9jYWwgVExC
LiAgICAgICovCj4gKyNkZWZpbmUgVVZNRl9BTEwgICAgICAgICAgICAoeGVuX21rX3Vsb25nKDEp
PDwyKSAvKiBGbHVzaCBhbGwgVExCcy4gICAgICAgKi8KPiAgLyogYCB9ICovCj4gIAo+ICAvKgo+
IEBAIC00ODYsMTcgKzUwNyw0MiBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShtbXVleHRfb3Bf
dCk7Cj4gIC8qIHg4Ni9QQUUgZ3Vlc3RzOiBzdXBwb3J0IFBEUFRzIGFib3ZlIDRHQi4gKi8KPiAg
I2RlZmluZSBWTUFTU1RfVFlQRV9wYWVfZXh0ZW5kZWRfY3IzICAgICAzCj4gIAo+IC0jZGVmaW5l
IE1BWF9WTUFTU1RfVFlQRSAgICAgICAgICAgICAgICAgIDMKPiArLyoKPiArICogeDg2IGd1ZXN0
czogU2FuZSBiZWhhdmlvdXIgZm9yIHZpcnR1YWwgaW9wbAo+ICsgKiAgLSB2aXJ0dWFsIGlvcGwg
dXBkYXRlZCBmcm9tIGRvX2lyZXQoKSBoeXBlcmNhbGxzLgo+ICsgKiAgLSB2aXJ0dWFsIGlvcGwg
cmVwb3J0ZWQgaW4gYm91bmNlIGZyYW1lcy4KPiArICogIC0gZ3Vlc3Qga2VybmVscyBhc3N1bWVk
IHRvIGJlIGxldmVsIDAgZm9yIHRoZSBwdXJwb3NlIG9mIGlvcGwgY2hlY2tzLgo+ICsgKi8KPiAr
I2RlZmluZSBWTUFTU1RfVFlQRV9hcmNoaXRlY3R1cmFsX2lvcGwgICA0Cj4gIAo+IC0jaWZuZGVm
IF9fQVNTRU1CTFlfXwo+ICsvKgo+ICsgKiBBbGwgZ3Vlc3RzOiBhY3RpdmF0ZSB1cGRhdGUgaW5k
aWNhdG9yIGluIHZjcHVfcnVuc3RhdGVfaW5mbwo+ICsgKiBFbmFibGUgc2V0dGluZyB0aGUgWEVO
X1JVTlNUQVRFX1VQREFURSBmbGFnIGluIGd1ZXN0IG1lbW9yeSBtYXBwZWQKPiArICogdmNwdV9y
dW5zdGF0ZV9pbmZvIGR1cmluZyB1cGRhdGVzIG9mIHRoZSBydW5zdGF0ZSBpbmZvcm1hdGlvbi4K
PiArICovCj4gKyNkZWZpbmUgVk1BU1NUX1RZUEVfcnVuc3RhdGVfdXBkYXRlX2ZsYWcgNQo+ICAK
PiAtdHlwZWRlZiB1aW50MTZfdCBkb21pZF90Owo+ICsvKgo+ICsgKiB4ODYvNjQgZ3Vlc3RzOiBz
dHJpY3RseSBoaWRlIE0yUCBmcm9tIHVzZXIgbW9kZS4KPiArICogVGhpcyBhbGxvd3MgdGhlIGd1
ZXN0IHRvIGNvbnRyb2wgcmVzcGVjdGl2ZSBoeXBlcnZpc29yIGJlaGF2aW9yOgo+ICsgKiAtIHdo
ZW4gbm90IHNldCwgTDQgdGFibGVzIGdldCBjcmVhdGVkIHdpdGggdGhlIHJlc3BlY3RpdmUgc2xv
dCBibGFuaywKPiArICogICBhbmQgd2hlbmV2ZXIgdGhlIEw0IHRhYmxlIGdldHMgdXNlZCBhcyBh
IGtlcm5lbCBvbmUgdGhlIG1pc3NpbmcKPiArICogICBtYXBwaW5nIGdldHMgaW5zZXJ0ZWQsCj4g
KyAqIC0gd2hlbiBzZXQsIEw0IHRhYmxlcyBnZXQgY3JlYXRlZCB3aXRoIHRoZSByZXNwZWN0aXZl
IHNsb3QgaW5pdGlhbGl6ZWQKPiArICogICBhcyBiZWZvcmUsIGFuZCB3aGVuZXZlciB0aGUgTDQg
dGFibGUgZ2V0cyB1c2VkIGFzIGEgdXNlciBvbmUgdGhlCj4gKyAqICAgbWFwcGluZyBnZXRzIHph
cHBlZC4KPiArICovCj4gKyNkZWZpbmUgVk1BU1NUX1RZUEVfbTJwX3N0cmljdCAgICAgICAgICAg
MzIKPiArCj4gKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDA0MDYwMAo+ICsj
ZGVmaW5lIE1BWF9WTUFTU1RfVFlQRSAgICAgICAgICAgICAgICAgIDMKPiArI2VuZGlmCj4gIAo+
ICAvKiBEb21haW4gaWRzID49IERPTUlEX0ZJUlNUX1JFU0VSVkVEIGNhbm5vdCBiZSB1c2VkIGZv
ciBvcmRpbmFyeSBkb21haW5zLiAqLwo+IC0jZGVmaW5lIERPTUlEX0ZJUlNUX1JFU0VSVkVEICgw
eDdGRjBVKQo+ICsjZGVmaW5lIERPTUlEX0ZJUlNUX1JFU0VSVkVEIHhlbl9ta191aW50KDB4N0ZG
MCkKPiAgCj4gIC8qIERPTUlEX1NFTEYgaXMgdXNlZCBpbiBjZXJ0YWluIGNvbnRleHRzIHRvIHJl
ZmVyIHRvIG9uZXNlbGYuICovCj4gLSNkZWZpbmUgRE9NSURfU0VMRiAoMHg3RkYwVSkKPiArI2Rl
ZmluZSBET01JRF9TRUxGICAgICAgICAgICB4ZW5fbWtfdWludCgweDdGRjApCj4gIAo+ICAvKgo+
ICAgKiBET01JRF9JTyBpcyB1c2VkIHRvIHJlc3RyaWN0IHBhZ2UtdGFibGUgdXBkYXRlcyB0byBt
YXBwaW5nIEkvTyBtZW1vcnkuCj4gQEAgLTUwNCwyOCArNTUwLDM3IEBAIHR5cGVkZWYgdWludDE2
X3QgZG9taWRfdDsKPiAgICogaXMgdXNlZnVsIHRvIGVuc3VyZSB0aGF0IG5vIG1hcHBpbmdzIHRv
IHRoZSBPUydzIG93biBoZWFwIGFyZSBhY2NpZGVudGFsbHkKPiAgICogaW5zdGFsbGVkLiAoZS5n
LiwgaW4gTGludXggdGhpcyBjb3VsZCBjYXVzZSBoYXZvYyBhcyByZWZlcmVuY2UgY291bnRzCj4g
ICAqIGFyZW4ndCBhZGp1c3RlZCBvbiB0aGUgSS9PLW1hcHBpbmcgY29kZSBwYXRoKS4KPiAtICog
VGhpcyBvbmx5IG1ha2VzIHNlbnNlIGluIE1NVUVYVF9TRVRfRk9SRUlHTkRPTSwgYnV0IGluIHRo
YXQgY29udGV4dCBjYW4KPiAtICogYmUgc3BlY2lmaWVkIGJ5IGFueSBjYWxsaW5nIGRvbWFpbi4K
PiArICogVGhpcyBvbmx5IG1ha2VzIHNlbnNlIGFzIEhZUEVSVklTT1JfbW11X3VwZGF0ZSgpJ3Mg
YW5kCj4gKyAqIEhZUEVSVklTT1JfdXBkYXRlX3ZhX21hcHBpbmdfb3RoZXJkb21haW4oKSdzICJm
b3JlaWduZG9tIiBhcmd1bWVudC4gRm9yCj4gKyAqIEhZUEVSVklTT1JfbW11X3VwZGF0ZSgpIGNv
bnRleHQgaXQgY2FuIGJlIHNwZWNpZmllZCBieSBhbnkgY2FsbGluZyBkb21haW4sCj4gKyAqIG90
aGVyd2lzZSBpdCdzIG9ubHkgcGVybWl0dGVkIGlmIHRoZSBjYWxsZXIgaXMgcHJpdmlsZWdlZC4K
PiAgICovCj4gLSNkZWZpbmUgRE9NSURfSU8gICAoMHg3RkYxVSkKPiArI2RlZmluZSBET01JRF9J
TyAgICAgICAgICAgICB4ZW5fbWtfdWludCgweDdGRjEpCj4gIAo+ICAvKgo+ICAgKiBET01JRF9Y
RU4gaXMgdXNlZCB0byBhbGxvdyBwcml2aWxlZ2VkIGRvbWFpbnMgdG8gbWFwIHJlc3RyaWN0ZWQg
cGFydHMgb2YKPiAgICogWGVuJ3MgaGVhcCBzcGFjZSAoZS5nLiwgdGhlIG1hY2hpbmVfdG9fcGh5
cyB0YWJsZSkuCj4gLSAqIFRoaXMgb25seSBtYWtlcyBzZW5zZSBpbiBNTVVFWFRfU0VUX0ZPUkVJ
R05ET00sIGFuZCBpcyBvbmx5IHBlcm1pdHRlZCBpZgo+IC0gKiB0aGUgY2FsbGVyIGlzIHByaXZp
bGVnZWQuCj4gKyAqIFRoaXMgb25seSBtYWtlcyBzZW5zZSBhcwo+ICsgKiAtIEhZUEVSVklTT1Jf
bW11X3VwZGF0ZSgpJ3MsIEhZUEVSVklTT1JfbW11ZXh0X29wKCkncywgb3IKPiArICogICBIWVBF
UlZJU09SX3VwZGF0ZV92YV9tYXBwaW5nX290aGVyZG9tYWluKCkncyAiZm9yZWlnbmRvbSIgYXJn
dW1lbnQsCj4gKyAqIC0gd2l0aCBYRU5NQVBTUEFDRV9nbWZuX2ZvcmVpZ24sCj4gKyAqIGFuZCBp
cyBvbmx5IHBlcm1pdHRlZCBpZiB0aGUgY2FsbGVyIGlzIHByaXZpbGVnZWQuCj4gICAqLwo+IC0j
ZGVmaW5lIERPTUlEX1hFTiAgKDB4N0ZGMlUpCj4gKyNkZWZpbmUgRE9NSURfWEVOICAgICAgICAg
ICAgeGVuX21rX3VpbnQoMHg3RkYyKQo+ICAKPiAgLyoKPiAgICogRE9NSURfQ09XIGlzIHVzZWQg
YXMgdGhlIG93bmVyIG9mIHNoYXJhYmxlIHBhZ2VzICovCj4gLSNkZWZpbmUgRE9NSURfQ09XICAo
MHg3RkYzVSkKPiArI2RlZmluZSBET01JRF9DT1cgICAgICAgICAgICB4ZW5fbWtfdWludCgweDdG
RjMpCj4gIAo+ICAvKiBET01JRF9JTlZBTElEIGlzIHVzZWQgdG8gaWRlbnRpZnkgcGFnZXMgd2l0
aCB1bmtub3duIG93bmVyLiAqLwo+IC0jZGVmaW5lIERPTUlEX0lOVkFMSUQgKDB4N0ZGNFUpCj4g
KyNkZWZpbmUgRE9NSURfSU5WQUxJRCAgICAgICAgeGVuX21rX3VpbnQoMHg3RkY0KQo+ICAKPiAg
LyogSWRsZSBkb21haW4uICovCj4gLSNkZWZpbmUgRE9NSURfSURMRSAoMHg3RkZGVSkKPiArI2Rl
ZmluZSBET01JRF9JRExFICAgICAgICAgICB4ZW5fbWtfdWludCgweDdGRkYpCj4gKwo+ICsjaWZu
ZGVmIF9fQVNTRU1CTFlfXwo+ICsKPiArdHlwZWRlZiB1aW50MTZfdCBkb21pZF90Owo+ICAKPiAg
LyoKPiAgICogU2VuZCBhbiBhcnJheSBvZiB0aGVzZSB0byBIWVBFUlZJU09SX21tdV91cGRhdGUo
KS4KPiBAQCAtNTg1LDEwICs2NDAsMTggQEAgc3RydWN0IHZjcHVfdGltZV9pbmZvIHsKPiAgICAg
ICAqLwo+ICAgICAgdWludDMyX3QgdHNjX3RvX3N5c3RlbV9tdWw7Cj4gICAgICBpbnQ4X3QgICB0
c2Nfc2hpZnQ7Cj4gKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fID4gMHgwNDA2MDAKPiAr
ICAgIHVpbnQ4X3QgIGZsYWdzOwo+ICsgICAgdWludDhfdCAgcGFkMVsyXTsKPiArI2Vsc2UKPiAg
ICAgIGludDhfdCAgIHBhZDFbM107Cj4gKyNlbmRpZgo+ICB9OyAvKiAzMiBieXRlcyAqLwo+ICB0
eXBlZGVmIHN0cnVjdCB2Y3B1X3RpbWVfaW5mbyB2Y3B1X3RpbWVfaW5mb190Owo+ICAKPiArI2Rl
ZmluZSBYRU5fUFZDTE9DS19UU0NfU1RBQkxFX0JJVCAgICAgKDEgPDwgMCkKPiArI2RlZmluZSBY
RU5fUFZDTE9DS19HVUVTVF9TVE9QUEVEICAgICAgKDEgPDwgMSkKPiArCj4gIHN0cnVjdCB2Y3B1
X2luZm8gewo+ICAgICAgLyoKPiAgICAgICAqICdldnRjaG5fdXBjYWxsX3BlbmRpbmcnIGlzIHdy
aXR0ZW4gbm9uLXplcm8gYnkgWGVuIHRvIGluZGljYXRlCj4gQEAgLTY4Miw2ICs3NDUsMTIgQEAg
c3RydWN0IHNoYXJlZF9pbmZvIHsKPiAgICAgIHVpbnQzMl90IHdjX3ZlcnNpb247ICAgICAgLyog
VmVyc2lvbiBjb3VudGVyOiBzZWUgdmNwdV90aW1lX2luZm9fdC4gKi8KPiAgICAgIHVpbnQzMl90
IHdjX3NlYzsgICAgICAgICAgLyogU2VjcyAgMDA6MDA6MDAgVVRDLCBKYW4gMSwgMTk3MC4gICov
Cj4gICAgICB1aW50MzJfdCB3Y19uc2VjOyAgICAgICAgIC8qIE5zZWNzIDAwOjAwOjAwIFVUQywg
SmFuIDEsIDE5NzAuICAqLwo+ICsjaWYgIWRlZmluZWQoX19pMzg2X18pCj4gKyAgICB1aW50MzJf
dCB3Y19zZWNfaGk7Cj4gKyMgZGVmaW5lIHhlbl93Y19zZWNfaGkgd2Nfc2VjX2hpCj4gKyNlbGlm
ICFkZWZpbmVkKF9fWEVOX18pICYmICFkZWZpbmVkKF9fWEVOX1RPT0xTX18pCj4gKyMgZGVmaW5l
IHhlbl93Y19zZWNfaGkgYXJjaC53Y19zZWNfaGkKPiArI2VuZGlmCj4gIAo+ICAgICAgc3RydWN0
IGFyY2hfc2hhcmVkX2luZm8gYXJjaDsKPiAgCj4gQEAgLTY5OCwyNCArNzY3LDI3IEBAIHR5cGVk
ZWYgc3RydWN0IHNoYXJlZF9pbmZvIHNoYXJlZF9pbmZvX3Q7Cj4gICAqICAzLiBUaGlzIHRoZSBv
cmRlciBvZiBib290c3RyYXAgZWxlbWVudHMgaW4gdGhlIGluaXRpYWwgdmlydHVhbCByZWdpb246
Cj4gICAqICAgICAgYS4gcmVsb2NhdGVkIGtlcm5lbCBpbWFnZQo+ICAgKiAgICAgIGIuIGluaXRp
YWwgcmFtIGRpc2sgICAgICAgICAgICAgIFttb2Rfc3RhcnQsIG1vZF9sZW5dCj4gKyAqICAgICAg
ICAgKG1heSBiZSBvbWl0dGVkKQo+ICAgKiAgICAgIGMuIGxpc3Qgb2YgYWxsb2NhdGVkIHBhZ2Ug
ZnJhbWVzIFttZm5fbGlzdCwgbnJfcGFnZXNdCj4gICAqICAgICAgICAgKHVubGVzcyByZWxvY2F0
ZWQgZHVlIHRvIFhFTl9FTEZOT1RFX0lOSVRfUDJNKQo+IC0gKiAgICAgIGQuIHN0YXJ0X2luZm9f
dCBzdHJ1Y3R1cmUgICAgICAgIFtyZWdpc3RlciBFU0kgKHg4NildCj4gLSAqICAgICAgZS4gYm9v
dHN0cmFwIHBhZ2UgdGFibGVzICAgICAgICAgW3B0X2Jhc2UgYW5kIENSMyAoeDg2KV0KPiAtICog
ICAgICBmLiBib290c3RyYXAgc3RhY2sgICAgICAgICAgICAgICBbcmVnaXN0ZXIgRVNQICh4ODYp
XQo+ICsgKiAgICAgIGQuIHN0YXJ0X2luZm9fdCBzdHJ1Y3R1cmUgICAgICAgIFtyZWdpc3RlciBy
U0kgKHg4NildCj4gKyAqICAgICAgICAgaW4gY2FzZSBvZiBkb20wIHRoaXMgcGFnZSBjb250YWlu
cyB0aGUgY29uc29sZSBpbmZvLCB0b28KPiArICogICAgICBlLiB1bmxlc3MgZG9tMDogeGVuc3Rv
cmUgcmluZyBwYWdlCj4gKyAqICAgICAgZi4gdW5sZXNzIGRvbTA6IGNvbnNvbGUgcmluZyBwYWdl
Cj4gKyAqICAgICAgZy4gYm9vdHN0cmFwIHBhZ2UgdGFibGVzICAgICAgICAgW3B0X2Jhc2UgYW5k
IENSMyAoeDg2KV0KPiArICogICAgICBoLiBib290c3RyYXAgc3RhY2sgICAgICAgICAgICAgICBb
cmVnaXN0ZXIgRVNQICh4ODYpXQo+ICAgKiAgNC4gQm9vdHN0cmFwIGVsZW1lbnRzIGFyZSBwYWNr
ZWQgdG9nZXRoZXIsIGJ1dCBlYWNoIGlzIDRrQi1hbGlnbmVkLgo+IC0gKiAgNS4gVGhlIGluaXRp
YWwgcmFtIGRpc2sgbWF5IGJlIG9taXR0ZWQuCj4gLSAqICA2LiBUaGUgbGlzdCBvZiBwYWdlIGZy
YW1lcyBmb3JtcyBhIGNvbnRpZ3VvdXMgJ3BzZXVkby1waHlzaWNhbCcgbWVtb3J5Cj4gKyAqICA1
LiBUaGUgbGlzdCBvZiBwYWdlIGZyYW1lcyBmb3JtcyBhIGNvbnRpZ3VvdXMgJ3BzZXVkby1waHlz
aWNhbCcgbWVtb3J5Cj4gICAqICAgICBsYXlvdXQgZm9yIHRoZSBkb21haW4uIEluIHBhcnRpY3Vs
YXIsIHRoZSBib290c3RyYXAgdmlydHVhbC1tZW1vcnkKPiAgICogICAgIHJlZ2lvbiBpcyBhIDE6
MSBtYXBwaW5nIHRvIHRoZSBmaXJzdCBzZWN0aW9uIG9mIHRoZSBwc2V1ZG8tcGh5c2ljYWwgbWFw
Lgo+IC0gKiAgNy4gQWxsIGJvb3RzdHJhcCBlbGVtZW50cyBhcmUgbWFwcGVkIHJlYWQtd3JpdGFi
bGUgZm9yIHRoZSBndWVzdCBPUy4gVGhlCj4gKyAqICA2LiBBbGwgYm9vdHN0cmFwIGVsZW1lbnRz
IGFyZSBtYXBwZWQgcmVhZC13cml0YWJsZSBmb3IgdGhlIGd1ZXN0IE9TLiBUaGUKPiAgICogICAg
IG9ubHkgZXhjZXB0aW9uIGlzIHRoZSBib290c3RyYXAgcGFnZSB0YWJsZSwgd2hpY2ggaXMgbWFw
cGVkIHJlYWQtb25seS4KPiAtICogIDguIFRoZXJlIGlzIGd1YXJhbnRlZWQgdG8gYmUgYXQgbGVh
c3QgNTEya0IgcGFkZGluZyBhZnRlciB0aGUgZmluYWwKPiArICogIDcuIFRoZXJlIGlzIGd1YXJh
bnRlZWQgdG8gYmUgYXQgbGVhc3QgNTEya0IgcGFkZGluZyBhZnRlciB0aGUgZmluYWwKPiAgICog
ICAgIGJvb3RzdHJhcCBlbGVtZW50LiBJZiBuZWNlc3NhcnksIHRoZSBib290c3RyYXAgdmlydHVh
bCByZWdpb24gaXMKPiAgICogICAgIGV4dGVuZGVkIGJ5IGFuIGV4dHJhIDRNQiB0byBlbnN1cmUg
dGhpcy4KPiAgICoKPiAgICogTm90ZTogUHJpb3IgdG8gMjU4MzM6YmI4NWJiY2NiMWM5LiAoIng4
Ni8zMi1vbi02NCBhZGp1c3QgRG9tMCBpbml0aWFsIHBhZ2UKPiAtICogdGFibGUgbGF5b3V0Iikg
YSBidWcgY2F1c2VkIHRoZSBwdF9iYXNlICgzLmUgYWJvdmUpIGFuZCBjcjMgdG8gbm90IHBvaW50
Cj4gKyAqIHRhYmxlIGxheW91dCIpIGEgYnVnIGNhdXNlZCB0aGUgcHRfYmFzZSAoMy5nIGFib3Zl
KSBhbmQgY3IzIHRvIG5vdCBwb2ludAo+ICAgKiB0byB0aGUgc3RhcnQgb2YgdGhlIGd1ZXN0IHBh
Z2UgdGFibGVzIChpdCB3YXMgb2Zmc2V0IGJ5IHR3byBwYWdlcykuCj4gICAqIFRoaXMgb25seSBt
YW5pZmVzdGVkIGl0c2VsZiBvbiAzMi1vbi02NCBkb20wIGtlcm5lbHMgYW5kIG5vdCAzMi1vbi02
NCBkb21VCj4gICAqIG9yIDY0LWJpdCBrZXJuZWxzIG9mIGFueSBjb2xvdXIuIFRoZSBwYWdlIHRh
YmxlcyBmb3IgYSAzMi1vbi02NCBkb20wIGdvdAo+IEBAIC03NzEsNiArODQzLDggQEAgdHlwZWRl
ZiBzdHJ1Y3Qgc3RhcnRfaW5mbyBzdGFydF9pbmZvX3Q7Cj4gICNkZWZpbmUgU0lGX0lOSVRET01B
SU4gICAgKDE8PDEpICAvKiBJcyB0aGlzIHRoZSBpbml0aWFsIGNvbnRyb2wgZG9tYWluPyAqLwo+
ICAjZGVmaW5lIFNJRl9NVUxUSUJPT1RfTU9EICgxPDwyKSAgLyogSXMgbW9kX3N0YXJ0IGEgbXVs
dGlib290IG1vZHVsZT8gKi8KPiAgI2RlZmluZSBTSUZfTU9EX1NUQVJUX1BGTiAoMTw8MykgIC8q
IElzIG1vZF9zdGFydCBhIFBGTj8gKi8KPiArI2RlZmluZSBTSUZfVklSVF9QMk1fNFRPT0xTICgx
PDw0KSAvKiBEbyBYZW4gdG9vbHMgdW5kZXJzdGFuZCBhIHZpcnQuIG1hcHBlZCAqLwo+ICsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFAtPk0gbWFraW5nIHRoZSAzIGxldmVs
IHRyZWUgb2Jzb2xldGU/ICovCj4gICNkZWZpbmUgU0lGX1BNX01BU0sgICAgICAgKDB4RkY8PDgp
IC8qIHJlc2VydmUgMSBieXRlIGZvciB4ZW4tcG0gb3B0aW9ucyAqLwo+ICAKPiAgLyoKPiBAQCAt
ODUxLDI1ICs5MjUsMTkgQEAgdHlwZWRlZiBzdHJ1Y3QgZG9tMF92Z2FfY29uc29sZV9pbmZvIHsK
PiAgCj4gIHR5cGVkZWYgdWludDhfdCB4ZW5fZG9tYWluX2hhbmRsZV90WzE2XTsKPiAgCj4gLS8q
IFR1cm4gYSBwbGFpbiBudW1iZXIgaW50byBhIEMgdW5zaWduZWQgbG9uZyBjb25zdGFudC4gKi8K
PiAtI2RlZmluZSBfX21rX3Vuc2lnbmVkX2xvbmcoeCkgeCAjIyBVTAo+IC0jZGVmaW5lIG1rX3Vu
c2lnbmVkX2xvbmcoeCkgX19ta191bnNpZ25lZF9sb25nKHgpCj4gLQo+ICBfX0RFRklORV9YRU5f
R1VFU1RfSEFORExFKHVpbnQ4LCAgdWludDhfdCk7Cj4gIF9fREVGSU5FX1hFTl9HVUVTVF9IQU5E
TEUodWludDE2LCB1aW50MTZfdCk7Cj4gIF9fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUodWludDMy
LCB1aW50MzJfdCk7Cj4gIF9fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUodWludDY0LCB1aW50NjRf
dCk7Cj4gIAo+IC0jZWxzZSAvKiBfX0FTU0VNQkxZX18gKi8KPiAtCj4gLS8qIEluIGFzc2VtYmx5
IGNvZGUgd2UgY2Fubm90IHVzZSBDIG51bWVyaWMgY29uc3RhbnQgc3VmZml4ZXMuICovCj4gLSNk
ZWZpbmUgbWtfdW5zaWduZWRfbG9uZyh4KSB4Cj4gLQo+ICAjZW5kaWYgLyogIV9fQVNTRU1CTFlf
XyAqLwo+ICAKPiAgLyogRGVmYXVsdCBkZWZpbml0aW9ucyBmb3IgbWFjcm9zIHVzZWQgYnkgZG9t
Y3RsL3N5c2N0bC4gKi8KPiAgI2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9U
T09MU19fKQo+ICAKPiArI2lmbmRlZiBpbnQ2NF9hbGlnbmVkX3QKPiArI2RlZmluZSBpbnQ2NF9h
bGlnbmVkX3QgaW50NjRfdAo+ICsjZW5kaWYKPiAgI2lmbmRlZiB1aW50NjRfYWxpZ25lZF90Cj4g
ICNkZWZpbmUgdWludDY0X2FsaWduZWRfdCB1aW50NjRfdAo+ICAjZW5kaWYKPiBkaWZmIC0tZ2l0
IGEvaW5jbHVkZS94ZW4veGVub3Byb2YuaCBiL2luY2x1ZGUveGVuL3hlbm9wcm9mLmgKPiBpbmRl
eCAxYzMwNWM0Li4xOTU1ZGIxIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUveGVuL3hlbm9wcm9mLmgK
PiArKysgYi9pbmNsdWRlL3hlbi94ZW5vcHJvZi5oCj4gQEAgLTY4LDcgKzY4LDcgQEAgc3RydWN0
IGV2ZW50X2xvZyB7Cj4gIH07Cj4gIAo+ICAvKiBQQyB2YWx1ZSB0aGF0IGluZGljYXRlcyBhIHNw
ZWNpYWwgY29kZSAqLwo+IC0jZGVmaW5lIFhFTk9QUk9GX0VTQ0FQRV9DT0RFICh+MFVMTCkKPiAr
I2RlZmluZSBYRU5PUFJPRl9FU0NBUEVfQ09ERSAofnhlbl9ta191bGxvbmcoMCkpCj4gIC8qIFRy
YW5zaWVudCBldmVudHMgZm9yIHRoZSB4ZW5vcHJvZi0+b3Byb2ZpbGUgY3B1IGJ1ZiAqLwo+ICAj
ZGVmaW5lIFhFTk9QUk9GX1RSQUNFX0JFR0lOIDEKPiAgCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUv
eGVuL3hzbS9mbGFza19vcC5oIGIvaW5jbHVkZS94ZW4veHNtL2ZsYXNrX29wLmgKPiBpbmRleCAy
MzNkZTgxLi45NzBlYzA3IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUveGVuL3hzbS9mbGFza19vcC5o
Cj4gKysrIGIvaW5jbHVkZS94ZW4veHNtL2ZsYXNrX29wLmgKPiBAQCAtMjUsNiArMjUsOCBAQAo+
ICAjaWZuZGVmIF9fRkxBU0tfT1BfSF9fCj4gICNkZWZpbmUgX19GTEFTS19PUF9IX18KPiAgCj4g
KyNpbmNsdWRlICIuLi9ldmVudF9jaGFubmVsLmgiCj4gKwo+ICAjZGVmaW5lIFhFTl9GTEFTS19J
TlRFUkZBQ0VfVkVSU0lPTiAxCj4gIAo+ICBzdHJ1Y3QgeGVuX2ZsYXNrX2xvYWQgewo+IEBAIC02
OCw2ICs3MCw3IEBAIHN0cnVjdCB4ZW5fZmxhc2tfdHJhbnNpdGlvbiB7Cj4gICAgICB1aW50MzJf
dCBuZXdzaWQ7Cj4gIH07Cj4gIAo+ICsjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4
MDAwNDA4MDAKPiAgc3RydWN0IHhlbl9mbGFza191c2VybGlzdCB7Cj4gICAgICAvKiBJTjogc3Rh
cnRpbmcgU0lEIGZvciBsaXN0ICovCj4gICAgICB1aW50MzJfdCBzdGFydF9zaWQ7Cj4gQEAgLTgx
LDYgKzg0LDcgQEAgc3RydWN0IHhlbl9mbGFza191c2VybGlzdCB7Cj4gICAgICAgICAgWEVOX0dV
RVNUX0hBTkRMRSh1aW50MzIpIHNpZHM7Cj4gICAgICB9IHU7Cj4gIH07Cj4gKyNlbmRpZgo+ICAK
PiAgc3RydWN0IHhlbl9mbGFza19ib29sZWFuIHsKPiAgICAgIC8qIElOL09VVDogbnVtZXJpYyBp
ZGVudGlmaWVyIGZvciBib29sZWFuIFtHRVQvU0VUXQo+IEBAIC0xNDgsNiArMTUyLDEzIEBAIHN0
cnVjdCB4ZW5fZmxhc2tfcmVsYWJlbCB7Cj4gICAgICB1aW50MzJfdCBzaWQ7Cj4gIH07Cj4gIAo+
ICtzdHJ1Y3QgeGVuX2ZsYXNrX2RldmljZXRyZWVfbGFiZWwgewo+ICsgICAgLyogSU4gKi8KPiAr
ICAgIHVpbnQzMl90IHNpZDsKPiArICAgIHVpbnQzMl90IGxlbmd0aDsKPiArICAgIFhFTl9HVUVT
VF9IQU5ETEUoY2hhcikgcGF0aDsKPiArfTsKPiArCj4gIHN0cnVjdCB4ZW5fZmxhc2tfb3Agewo+
ICAgICAgdWludDMyX3QgY21kOwo+ICAjZGVmaW5lIEZMQVNLX0xPQUQgICAgICAgICAgICAgIDEK
PiBAQCAtMTU4LDcgKzE2OSw3IEBAIHN0cnVjdCB4ZW5fZmxhc2tfb3Agewo+ICAjZGVmaW5lIEZM
QVNLX0FDQ0VTUyAgICAgICAgICAgIDYKPiAgI2RlZmluZSBGTEFTS19DUkVBVEUgICAgICAgICAg
ICA3Cj4gICNkZWZpbmUgRkxBU0tfUkVMQUJFTCAgICAgICAgICAgOAo+IC0jZGVmaW5lIEZMQVNL
X1VTRVIgICAgICAgICAgICAgIDkKPiArI2RlZmluZSBGTEFTS19VU0VSICAgICAgICAgICAgICA5
ICAvKiBObyBsb25nZXIgaW1wbGVtZW50ZWQgKi8KPiAgI2RlZmluZSBGTEFTS19QT0xJQ1lWRVJT
ICAgICAgICAxMAo+ICAjZGVmaW5lIEZMQVNLX0dFVEJPT0wgICAgICAgICAgIDExCj4gICNkZWZp
bmUgRkxBU0tfU0VUQk9PTCAgICAgICAgICAgMTIKPiBAQCAtMTc0LDYgKzE4NSw3IEBAIHN0cnVj
dCB4ZW5fZmxhc2tfb3Agewo+ICAjZGVmaW5lIEZMQVNLX0RFTF9PQ09OVEVYVCAgICAgIDIyCj4g
ICNkZWZpbmUgRkxBU0tfR0VUX1BFRVJfU0lEICAgICAgMjMKPiAgI2RlZmluZSBGTEFTS19SRUxB
QkVMX0RPTUFJTiAgICAyNAo+ICsjZGVmaW5lIEZMQVNLX0RFVklDRVRSRUVfTEFCRUwgIDI1Cj4g
ICAgICB1aW50MzJfdCBpbnRlcmZhY2VfdmVyc2lvbjsgLyogWEVOX0ZMQVNLX0lOVEVSRkFDRV9W
RVJTSU9OICovCj4gICAgICB1bmlvbiB7Cj4gICAgICAgICAgc3RydWN0IHhlbl9mbGFza19sb2Fk
IGxvYWQ7Cj4gQEAgLTE4Myw3ICsxOTUsOSBAQCBzdHJ1Y3QgeGVuX2ZsYXNrX29wIHsKPiAgICAg
ICAgICBzdHJ1Y3QgeGVuX2ZsYXNrX2FjY2VzcyBhY2Nlc3M7Cj4gICAgICAgICAgLyogRkxBU0tf
Q1JFQVRFLCBGTEFTS19SRUxBQkVMLCBGTEFTS19NRU1CRVIgKi8KPiAgICAgICAgICBzdHJ1Y3Qg
eGVuX2ZsYXNrX3RyYW5zaXRpb24gdHJhbnNpdGlvbjsKPiArI2lmIF9fWEVOX0lOVEVSRkFDRV9W
RVJTSU9OX18gPCAweDAwMDQwODAwCj4gICAgICAgICAgc3RydWN0IHhlbl9mbGFza191c2VybGlz
dCB1c2VybGlzdDsKPiArI2VuZGlmCj4gICAgICAgICAgLyogRkxBU0tfR0VUQk9PTCwgRkxBU0tf
U0VUQk9PTCAqLwo+ICAgICAgICAgIHN0cnVjdCB4ZW5fZmxhc2tfYm9vbGVhbiBib29sZWFuOwo+
ICAgICAgICAgIHN0cnVjdCB4ZW5fZmxhc2tfc2V0YXZjX3RocmVzaG9sZCBzZXRhdmNfdGhyZXNo
b2xkOwo+IEBAIC0xOTMsNiArMjA3LDcgQEAgc3RydWN0IHhlbl9mbGFza19vcCB7Cj4gICAgICAg
ICAgc3RydWN0IHhlbl9mbGFza19vY29udGV4dCBvY29udGV4dDsKPiAgICAgICAgICBzdHJ1Y3Qg
eGVuX2ZsYXNrX3BlZXJzaWQgcGVlcnNpZDsKPiAgICAgICAgICBzdHJ1Y3QgeGVuX2ZsYXNrX3Jl
bGFiZWwgcmVsYWJlbDsKPiArICAgICAgICBzdHJ1Y3QgeGVuX2ZsYXNrX2RldmljZXRyZWVfbGFi
ZWwgZGV2aWNldHJlZV9sYWJlbDsKPiAgICAgIH0gdTsKPiAgfTsKPiAgdHlwZWRlZiBzdHJ1Y3Qg
eGVuX2ZsYXNrX29wIHhlbl9mbGFza19vcF90Owo+IC0tIAo+IDIuMTEuMAo+IAoKLS0gClNhbXVl
bApOb3cgSSBrbm93IHNvbWVvbmUgb3V0IHRoZXJlIGlzIGdvaW5nIHRvIGNsYWltLCAiV2VsbCB0
aGVuLCBVTklYIGlzIGludHVpdGl2ZSwKYmVjYXVzZSB5b3Ugb25seSBuZWVkIHRvIGxlYXJuIDUw
MDAgY29tbWFuZHMsIGFuZCB0aGVuIGV2ZXJ5dGhpbmcgZWxzZSBmb2xsb3dzCmZyb20gdGhhdCEg
SGFyIGhhciBoYXIhIgooQW5keSBCYXRlcyBpbiBjb21wLm9zLmxpbnV4Lm1pc2MsIG9uICJpbnR1
aXRpdmUgaW50ZXJmYWNlcyIsIHNsaWdodGx5CmRlZmVuZGluZyBNYWNzLikKCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5n
IGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVu
cHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Wed Oct 04 13:51:32 2017
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 04 Oct 2017 13:51:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1dzk5E-0005ia-6f; Wed, 04 Oct 2017 13:51:32 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=443a8edce=wei.liu2@citrix.com>)
 id 1dzk5D-0005iH-LE; Wed, 04 Oct 2017 13:51:31 +0000
Received: from [85.158.143.35] by server-11.bemta-6.messagelabs.com id
 A9/AD-03616-267E4D95; Wed, 04 Oct 2017 13:51:30 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrNLMWRWlGSWpSXmKPExsXitHRDpG7S8yu
 RBjPa5Szefl3CbPF9y2QmByaPwx+usAQwRrFm5iXlVySwZpz4WVuwl6ti7gX5BsYXHF2MnBwS
 Av4Sx6ZcYQKx2QSUJX529rKB2CICJhK/L5xmAbGZBc4ySjxYqgtiCwvYSKzY9Ye1i5GDg0VAR
 aL1uDdImFfAXKJz/QR2iJHyErvaLrKC2EICChId048xQdQISpyc+QRqpITEwRcvmCcwcs9Ckp
 qFJLWAkWkVo0ZxalFZapGukZFeUlFmekZJbmJmjq6hgZlebmpxcWJ6ak5iUrFecn7uJkZgQDA
 AwQ7GNfMDDzFKcjApifJWP7oSKcSXlJ9SmZFYnBFfVJqTWnyIUYaDQ0mC1/kZUE6wKDU9tSIt
 MwcYmjBpCQ4eJRHeW0+B0rzFBYm5xZnpEKlTjLocHTfv/mESYsnLz0uVEufNApkhAFKUUZoHN
 wIWJ5cYZaWEeRmBjhLiKUgtys0sQZV/xSjOwagkzJsMMoUnM68EbtMroCOYgI6Y0wR2REkiQk
 qqgVGl7JrtrH2KVhwZWUcLZ6XfuPty344Lbbq3Zddd7jl2oC5Du/OBXXFnwxbrK7dqDuxOdhB
 +t/iWiWr1BHFP47bzl2SLVfVKP3BbKp8K/ih2e5Onwvfz1d/LZKevSWkMKDi+e9fKu99TujMW
 TGq/Ni8puVvRkPuk3hrBxmWnMy+bXIlRurx5ymMlluKMREMt5qLiRAAA9ymZjgIAAA==
X-Env-Sender: prvs=443a8edce=wei.liu2@citrix.com
X-Msg-Ref: server-4.tower-21.messagelabs.com!1507125088!70136226!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 37481 invoked from network); 4 Oct 2017 13:51:30 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-4.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 4 Oct 2017 13:51:30 -0000
X-IronPort-AV: E=Sophos;i="5.42,477,1500940800"; d="scan'208";a="442481884"
From: Wei Liu <wei.liu2@citrix.com>
To: Minios-devel <minios-devel@lists.xenproject.org>
Date: Wed, 4 Oct 2017 14:51:26 +0100
Message-ID: <20171004135126.9131-1-wei.liu2@citrix.com>
X-Mailer: git-send-email 2.11.0
MIME-Version: 1.0
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Julien Grall <julien.grall@arm.com>, Wei Liu <wei.liu2@citrix.com>,
 Ian Jackson <ian.jackson@eu.citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>
Subject: [Minios-devel] [MINIOS PATCH v2] Include string.h before console.h
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U3RhcnRpbmcgZnJvbSBYZW4gY29tbWl0IGFmOGQ5MzU2NCwgaXQgaXMgcmVxdWlyZWQgdG8gaW5j
bHVkZSBzdHJpbmcuaApiZWZvcmUgY29uc29sZS5oLgoKU2lnbmVkLW9mZi1ieTogV2VpIExpdSA8
d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0tCkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUu
Y2l0cml4LmNvbT4KQ2M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+CkNjOiBT
YW11ZWwgVGhpYmF1bHQgPHNhbXVlbC50aGliYXVsdEBlbnMtbHlvbi5vcmc+CgpBZnRlciBhcHBs
eWluZyB0aGlzIHBhdGNoIHRvIG1pbmktb3MgSSB3aWxsIHVwZGF0ZSBYZW4ncyBDb25maWcubWsg
dG8KZml4IHRoZSBidWlsZCBmYWlsdXJlIGluIHhlbi5naXQuCgpUaGVyZSBhcmUgcXVpdGUgYSBm
ZXcgcGxhY2VzIGluIHRoZSBub3QgeWV0IGZ1bmN0aW9uaW5nIGFybSBwb3J0LiBJIG9wdCB0bwpz
a2lwIHRoZW0gc28gdGhhdCB3ZSBjYW4gdW5ibG9jayBzdGFnaW5nIGFzYXAuCi0tLQogbGliL3N5
cy5jICAgfCAxICsKIGx3aXAtYXJjaC5jIHwgMSArCiBtYWluLmMgICAgICB8IDEgKwogMyBmaWxl
cyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9saWIvc3lzLmMgYi9saWIv
c3lzLmMKaW5kZXggYjE3M2JjOC4uMjNkYzJhNSAxMDA2NDQKLS0tIGEvbGliL3N5cy5jCisrKyBi
L2xpYi9zeXMuYwpAQCAtMjAsNiArMjAsNyBAQAogCiAjaWZkZWYgSEFWRV9MSUJDCiAjaW5jbHVk
ZSA8b3MuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDxjb25zb2xlLmg+CiAjaW5j
bHVkZSA8c2NoZWQuaD4KICNpbmNsdWRlIDxldmVudHMuaD4KZGlmZiAtLWdpdCBhL2x3aXAtYXJj
aC5jIGIvbHdpcC1hcmNoLmMKaW5kZXggMTU0NjE3Yi4uMjFlOTQxZSAxMDA2NDQKLS0tIGEvbHdp
cC1hcmNoLmMKKysrIGIvbHdpcC1hcmNoLmMKQEAgLTgsNiArOCw3IEBACiAKICNpbmNsdWRlIDxv
cy5oPgogI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDxj
b25zb2xlLmg+CiAjaW5jbHVkZSA8eG1hbGxvYy5oPgogI2luY2x1ZGUgPGx3aXAvc3lzLmg+CmRp
ZmYgLS1naXQgYS9tYWluLmMgYi9tYWluLmMKaW5kZXggMjYzMzY0Yy4uNGU0MmY1MyAxMDA2NDQK
LS0tIGEvbWFpbi5jCisrKyBiL21haW4uYwpAQCAtOCw2ICs4LDcgQEAKICNpbmNsdWRlIDxvcy5o
PgogI2luY2x1ZGUgPGtlcm5lbC5oPgogI2luY2x1ZGUgPHNjaGVkLmg+CisjaW5jbHVkZSA8c3Ry
aW5nLmg+CiAjaW5jbHVkZSA8Y29uc29sZS5oPgogI2luY2x1ZGUgPG5ldGZyb250Lmg+CiAjaW5j
bHVkZSA8cGNpZnJvbnQuaD4KLS0gCjIuMTEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRl
dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dp
LWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Wed Oct 04 13:55:43 2017
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 04 Oct 2017 13:55:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1dzk9G-0006B5-VO; Wed, 04 Oct 2017 13:55:42 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1dzk9F-0006Aw-Ht; Wed, 04 Oct 2017 13:55:41 +0000
Received: from [85.158.137.68] by server-7.bemta-3.messagelabs.com id
 04/57-02224-C58E4D95; Wed, 04 Oct 2017 13:55:40 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrPIsWRWlGSWpSXmKPExsVyoG1JsG7Miyu
 RBhvvsFm8/bqE2eL7lslMDkwehz9cYQlgjGLNzEvKr0hgzVj9eRdzwVreipMz7jI3ML7j6mLk
 5JAQ8Jd4t2IWaxcjF4eQwEZGiSs7FrJAOBsYJSa/XMMGUsUioCJxe88FMJtNwESiv3EemC0io
 Cjx4OVNsG5mkO55L6azgCSEBRwkOvctBbN5Bbwk7r3ZxQ5SxCswgUliTvtPoA4OoBXmEo8mKk
 PUCEqcnPkErJ5ZQF3iz7xLzCAlzALSEsv/cUCE5SWat85mBrE5BSwk/v9YyARi8wsoSGy59hK
 sVRTozs6lc1gmMArNQjJ1FpKpsxCmzkIydQEjyypGjeLUorLUIl0jE72kosz0jJLcxMwcXUMD
 Y73c1OLixPTUnMSkYr3k/NxNjMCAr2dgYNzB+Oq43yFGSQ4mJVHe6kdXIoX4kvJTKjMSizPii
 0pzUosPMcpwcChJ8GY/B8oJFqWmp1akZeYAYw8mLcHBoyTCywGS5i0uSMwtzkyHSJ1iVJQS57
 UFSQiAJDJK8+DaYPF+iVFWSpiXkYGBQYinILUoN7MEVf4VozgHo5Iwbx/IFJ7MvBK46a+AFjM
 BLZ7TBLa4JBEhJdXAKHm+OnqjPeeNyLBnvydd7HXXP2vuVTCpWfJJlRLX7myJj5NS9jxRl3qq
 fNpepOXR512Wsw/5V72+fG59iC4Ly5MbLz5b9PkH6u9M4lzeyjtntZuaYBSrVu/ay8bfrl44N
 znBomfy+fknX6x4KcA3M6Pvn8KDqzFBZhc33BUMnGKu7rXNI+K6ohJLcUaioRZzUXEiANCmXI
 LyAgAA
X-Env-Sender: samuel.thibault@ens-lyon.org
X-Msg-Ref: server-2.tower-31.messagelabs.com!1507125339!106209556!1
X-Originating-IP: [192.134.164.83]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31382 invoked from network); 4 Oct 2017 13:55:40 -0000
Received: from mail2-relais-roc.national.inria.fr (HELO
 mail2-relais-roc.national.inria.fr) (192.134.164.83)
 by server-2.tower-31.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted
 SMTP; 4 Oct 2017 13:55:40 -0000
X-IronPort-AV: E=Sophos;i="5.42,477,1500933600"; d="scan'208";a="294257969"
Received: from unknown (HELO var.youpi.perso.aquilenet.fr) ([193.50.110.99])
 by mail2-relais-roc.national.inria.fr with ESMTP/TLS/AES256-GCM-SHA384;
 04 Oct 2017 15:55:39 +0200
Received: from samy by var.youpi.perso.aquilenet.fr with local (Exim 4.89)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1dzk9C-0004S7-TN; Wed, 04 Oct 2017 15:55:38 +0200
Date: Wed, 4 Oct 2017 15:55:38 +0200
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
To: Wei Liu <wei.liu2@citrix.com>
Message-ID: <20171004135538.mwqu4mxreqxitu6r@var.youpi.perso.aquilenet.fr>
Mail-Followup-To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Wei Liu <wei.liu2@citrix.com>,
 Minios-devel <minios-devel@lists.xenproject.org>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Ian Jackson <ian.jackson@eu.citrix.com>,
 Julien Grall <julien.grall@arm.com>
References: <20171004135126.9131-1-wei.liu2@citrix.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <20171004135126.9131-1-wei.liu2@citrix.com>
Organization: I am not organized
User-Agent: NeoMutt/20170113 (1.7.2)
Cc: Minios-devel <minios-devel@lists.xenproject.org>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Julien Grall <julien.grall@arm.com>, Ian Jackson <ian.jackson@eu.citrix.com>
Subject: Re: [Minios-devel] [MINIOS PATCH v2] Include string.h before
	console.h
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

V2VpIExpdSwgb24gbWVyLiAwNCBvY3QuIDIwMTcgMTQ6NTE6MjYgKzAxMDAsIHdyb3RlOgo+IFN0
YXJ0aW5nIGZyb20gWGVuIGNvbW1pdCBhZjhkOTM1NjQsIGl0IGlzIHJlcXVpcmVkIHRvIGluY2x1
ZGUgc3RyaW5nLmgKPiBiZWZvcmUgY29uc29sZS5oLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFdlaSBM
aXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CgpSZXZpZXdlZC1ieTogU2FtdWVsIFRoaWJhdWx0IDxz
YW11ZWwudGhpYmF1bHRAZW5zLWx5b24ub3JnPgoKPiAtLS0KPiBDYzogSWFuIEphY2tzb24gPGlh
bi5qYWNrc29uQGV1LmNpdHJpeC5jb20+Cj4gQ2M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxs
QGFybS5jb20+Cj4gQ2M6IFNhbXVlbCBUaGliYXVsdCA8c2FtdWVsLnRoaWJhdWx0QGVucy1seW9u
Lm9yZz4KPiAKPiBBZnRlciBhcHBseWluZyB0aGlzIHBhdGNoIHRvIG1pbmktb3MgSSB3aWxsIHVw
ZGF0ZSBYZW4ncyBDb25maWcubWsgdG8KPiBmaXggdGhlIGJ1aWxkIGZhaWx1cmUgaW4geGVuLmdp
dC4KPiAKPiBUaGVyZSBhcmUgcXVpdGUgYSBmZXcgcGxhY2VzIGluIHRoZSBub3QgeWV0IGZ1bmN0
aW9uaW5nIGFybSBwb3J0LiBJIG9wdCB0bwo+IHNraXAgdGhlbSBzbyB0aGF0IHdlIGNhbiB1bmJs
b2NrIHN0YWdpbmcgYXNhcC4KPiAtLS0KPiAgbGliL3N5cy5jICAgfCAxICsKPiAgbHdpcC1hcmNo
LmMgfCAxICsKPiAgbWFpbi5jICAgICAgfCAxICsKPiAgMyBmaWxlcyBjaGFuZ2VkLCAzIGluc2Vy
dGlvbnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEvbGliL3N5cy5jIGIvbGliL3N5cy5jCj4gaW5kZXgg
YjE3M2JjOC4uMjNkYzJhNSAxMDA2NDQKPiAtLS0gYS9saWIvc3lzLmMKPiArKysgYi9saWIvc3lz
LmMKPiBAQCAtMjAsNiArMjAsNyBAQAo+ICAKPiAgI2lmZGVmIEhBVkVfTElCQwo+ICAjaW5jbHVk
ZSA8b3MuaD4KPiArI2luY2x1ZGUgPHN0cmluZy5oPgo+ICAjaW5jbHVkZSA8Y29uc29sZS5oPgo+
ICAjaW5jbHVkZSA8c2NoZWQuaD4KPiAgI2luY2x1ZGUgPGV2ZW50cy5oPgo+IGRpZmYgLS1naXQg
YS9sd2lwLWFyY2guYyBiL2x3aXAtYXJjaC5jCj4gaW5kZXggMTU0NjE3Yi4uMjFlOTQxZSAxMDA2
NDQKPiAtLS0gYS9sd2lwLWFyY2guYwo+ICsrKyBiL2x3aXAtYXJjaC5jCj4gQEAgLTgsNiArOCw3
IEBACj4gIAo+ICAjaW5jbHVkZSA8b3MuaD4KPiAgI2luY2x1ZGUgPHRpbWUuaD4KPiArI2luY2x1
ZGUgPHN0cmluZy5oPgo+ICAjaW5jbHVkZSA8Y29uc29sZS5oPgo+ICAjaW5jbHVkZSA8eG1hbGxv
Yy5oPgo+ICAjaW5jbHVkZSA8bHdpcC9zeXMuaD4KPiBkaWZmIC0tZ2l0IGEvbWFpbi5jIGIvbWFp
bi5jCj4gaW5kZXggMjYzMzY0Yy4uNGU0MmY1MyAxMDA2NDQKPiAtLS0gYS9tYWluLmMKPiArKysg
Yi9tYWluLmMKPiBAQCAtOCw2ICs4LDcgQEAKPiAgI2luY2x1ZGUgPG9zLmg+Cj4gICNpbmNsdWRl
IDxrZXJuZWwuaD4KPiAgI2luY2x1ZGUgPHNjaGVkLmg+Cj4gKyNpbmNsdWRlIDxzdHJpbmcuaD4K
PiAgI2luY2x1ZGUgPGNvbnNvbGUuaD4KPiAgI2luY2x1ZGUgPG5ldGZyb250Lmg+Cj4gICNpbmNs
dWRlIDxwY2lmcm9udC5oPgo+IC0tIAo+IDIuMTEuMAo+IAoKLS0gClNhbXVlbAo8Yj4gaidlbiBh
aSBwYXJsw6kgw6AgeGF2aWVyLCBpbCBuJ2VzdCBwYXMgaW50ZXJkaXQgcXUnaWwgbGUgY2hhbmdl
IHVuIGpvdXIKIC0rLSAjc29zIC0gYSBsZSBicmFzIGxvbmcgdmVycyBsZSBjaGFtZWF1IC0rLQoK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRl
dmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRl
dmVs

From minios-devel-bounces@lists.xenproject.org Thu Oct 05 09:24:13 2017
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 05 Oct 2017 09:24:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1e02O3-0004r1-T3; Thu, 05 Oct 2017 09:24:11 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <JBeulich@suse.com>)
 id 1e02MY-0004hn-TP; Thu, 05 Oct 2017 09:22:39 +0000
Received: from [85.158.139.211] by server-5.bemta-5.messagelabs.com id
 04/8F-02223-DD9F5D95; Thu, 05 Oct 2017 09:22:37 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrOIsWRWlGSWpSXmKPExsXS6fjDS/fuz6u
 RBh9WqVu8/bqE2eL7lslMDkwehz9cYQlgjGLNzEvKr0hgzbh2pbRgAnPF+ylBDYynmboYOTmE
 BPIkVly6C2RzcPAK2Ek8+VsAEpYQMJQ4vfAmC0iYRUBVYkYnG0iYTUBdou3ZdlYQW0RAWeLu9
 xlAJVwczAJvGCWWzF3DDJIQFvCVWLbqJDNIr5CAucSjicogYU4BC4n/PxZCbRKU+LtDGCTMLK
 Al8fDXLRYIW1ti2cLXYJ3MAtISy/9xTGDkm4XQMAtJwywkDbMQGhYwsqxiVC9OLSpLLdI110s
 qykzPKMlNzMzRNTQw1ctNLS5OTE/NSUwq1kvOz93ECAw+BiDYwXhssvMhRkkOJiVRXq2vVyOF
 +JLyUyozEosz4otKc1KLDzHKcHAoSfByfQDKCRalpqdWpGXmAOMAJi3BwaMkwvv7I1Cat7ggM
 bc4Mx0idYrRmOPGw+t/mDg6bt79wyTEkpeflyolzssLMkkApDSjNA9uECw+LzHKSgnzMgKdJs
 RTkFqUm1mCKv+KUZyDUUmY9wbIFJ7MvBK4fa+ATmECOmVO0xWQU0oSEVJSDYzVc+YF8O+uTOc
 WOzp9konvgqesW12TH6Zu5HQ9Fm0umJNb91znO88n64n1sirbS/Yqv/h8vEW89vql69MOrXob
 N5W9Kb6bxSP+5he1S6WtXLvOLjfYcGl52ZRNHX9iZNu3Lutsd1yqN8P0+dqZh3Jmz1si9UU/9
 thFxgvyi+2OFV7f+czqU56gEktxRqKhFnNRcSIAUHaLIsoCAAA=
X-Env-Sender: JBeulich@suse.com
X-Msg-Ref: server-7.tower-206.messagelabs.com!1507195355!111797064!1
X-Originating-IP: [137.65.248.74]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 59589 invoked from network); 5 Oct 2017 09:22:37 -0000
Received: from prv-mh.provo.novell.com (HELO prv-mh.provo.novell.com)
 (137.65.248.74)
 by server-7.tower-206.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted
 SMTP; 5 Oct 2017 09:22:37 -0000
Received: from INET-PRV-MTA by prv-mh.provo.novell.com
 with Novell_GroupWise; Thu, 05 Oct 2017 03:22:34 -0600
Message-Id: <59D615F9020000780018270A@prv-mh.provo.novell.com>
X-Mailer: Novell GroupWise Internet Agent 14.2.2 
Date: Thu, 05 Oct 2017 03:22:33 -0600
From: "Jan Beulich" <JBeulich@suse.com>
To: "Wei Liu" <wei.liu2@citrix.com>
References: <20171004135126.9131-1-wei.liu2@citrix.com>
In-Reply-To: <20171004135126.9131-1-wei.liu2@citrix.com>
Mime-Version: 1.0
Content-Disposition: inline
X-Mailman-Approved-At: Thu, 05 Oct 2017 09:24:11 +0000
Cc: Minios-devel <minios-devel@lists.xenproject.org>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Julien Grall <julien.grall@arm.com>, Ian Jackson <ian.jackson@eu.citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [Minios-devel] [Xen-devel] [MINIOS PATCH v2] Include string.h
 before console.h
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

Pj4+IE9uIDA0LjEwLjE3IGF0IDE1OjUxLCA8d2VpLmxpdTJAY2l0cml4LmNvbT4gd3JvdGU6Cj4g
U3RhcnRpbmcgZnJvbSBYZW4gY29tbWl0IGFmOGQ5MzU2NCwgaXQgaXMgcmVxdWlyZWQgdG8gaW5j
bHVkZSBzdHJpbmcuaAo+IGJlZm9yZSBjb25zb2xlLmguCgpCdXQgdGhhdCdzIGJyb2tlbiB0aGVu
IC0gdGhlcmUgc2hvdWxkbid0IGJlIHN1Y2ggYW4gZWZmZWN0IGZvcgphbnlvbmUgdXBkYXRpbmcg
dGhlaXIgcHVibGljIGhlYWRlcnMuIElPVyBJIHRoaW5rIHRoaXMgbmVlZHMKdG8gYmUgZGVhbHQg
d2l0aCBieSBmdXJ0aGVyIGFkanVzdGluZyBjb25zb2xlLmgsIGUuZy4gYnkKbWFraW5nIHRoZSBh
ZGRpdGlvbnMgZGVwZW5kIG9uIGEgbWFuaWZlc3Qgc3ltYm9sIHRvIGJlCmRlZmluZWQuCgpKYW4K
CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3Mt
ZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw
czovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9taW5pb3Mt
ZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Thu Oct 05 09:28:06 2017
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 05 Oct 2017 09:28:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1e02Rq-000508-Dr; Thu, 05 Oct 2017 09:28:06 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=44491d46c=wei.liu2@citrix.com>)
 id 1e02Rp-0004zp-DR; Thu, 05 Oct 2017 09:28:05 +0000
Received: from [85.158.139.211] by server-3.bemta-5.messagelabs.com id
 A3/42-30688-42BF5D95; Thu, 05 Oct 2017 09:28:04 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrNIsWRWlGSWpSXmKPExsXitHSDva7K76u
 RBjPnslu8/bqE2eL7lslMDkwehz9cYQlgjGLNzEvKr0hgzXje8om9YDdrRdfch8wNjAdYuhg5
 OSQE/CV+d2xgA7FZBFQkrvyczwRiswkoS/zs7AWLiwDZvb9+A9VzcTALNDJJHN6/kBkkISzgI
 3HgXCc7iM0rYCHR8+AlUJyDQ0ggW+LaASWIsKDEyZlPwHYxC+hILNj9iQ2khFlAWmL5Pw4Qk1
 PAXmLDPFGQClGgCzqXzgGrFhJQkOiYfoxpAiPfLCSDZiEZNAth0AJG5lWMGsWpRWWpRbqG5np
 JRZnpGSW5iZk5uoYGpnq5qcXFiempOYlJxXrJ+bmbGIEBxwAEOxgvnvY8xCjJwaQkyqv19Wqk
 EF9SfkplRmJxRnxRaU5q8SFGGQ4OJQlerg9AOcGi1PTUirTMHGDow6QlOHiURHh/fwRK8xYXJ
 OYWZ6ZDpE4x6nLceHj9D5MQS15+XqqUOC8vyAwBkKKM0jy4EbA4vMQoKyXMywh0lBBPQWpRbm
 YJqvwrRnEORiVh3hsgU3gy80rgNr0COoIJ6Ig5TVdAjihJREhJNTCy7Xl5Y474wknhhTGr87a
 ty9RMvXFCdYHR+m2rrTlkD34pm/po+eRnvgaXqhdVHu3brfqyPY+J6d2t/oAgHdsHEl9m9fDo
 pT5PnvD8ZIeGfmjdaxmfSUk/jQRN2n1nfXxxb0rThPuH/69VOqHR0nTtzYqiBS1f8rjdPt1z4
 W6MMW1YuLRbRu+3EktxRqKhFnNRcSIAgAjFkL4CAAA=
X-Env-Sender: prvs=44491d46c=wei.liu2@citrix.com
X-Msg-Ref: server-11.tower-206.messagelabs.com!1507195682!93547543!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 16823 invoked from network); 5 Oct 2017 09:28:03 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-11.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 5 Oct 2017 09:28:03 -0000
X-IronPort-AV: E=Sophos;i="5.42,481,1500940800"; d="scan'208";a="450571057"
Date: Thu, 5 Oct 2017 10:28:00 +0100
From: Wei Liu <wei.liu2@citrix.com>
To: Jan Beulich <JBeulich@suse.com>
Message-ID: <20171005092759.fwygh7whof735i2a@citrix.com>
References: <20171004135126.9131-1-wei.liu2@citrix.com>
 <59D615F9020000780018270A@prv-mh.provo.novell.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <59D615F9020000780018270A@prv-mh.provo.novell.com>
User-Agent: NeoMutt/20170113 (1.7.2)
Cc: Wei Liu <wei.liu2@citrix.com>, Ian Jackson <ian.jackson@eu.citrix.com>,
 Minios-devel <minios-devel@lists.xenproject.org>,
 Julien Grall <julien.grall@arm.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>
Subject: Re: [Minios-devel] [Xen-devel] [MINIOS PATCH v2] Include string.h
	before console.h
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

T24gVGh1LCBPY3QgMDUsIDIwMTcgYXQgMDM6MjI6MzNBTSAtMDYwMCwgSmFuIEJldWxpY2ggd3Jv
dGU6Cj4gPj4+IE9uIDA0LjEwLjE3IGF0IDE1OjUxLCA8d2VpLmxpdTJAY2l0cml4LmNvbT4gd3Jv
dGU6Cj4gPiBTdGFydGluZyBmcm9tIFhlbiBjb21taXQgYWY4ZDkzNTY0LCBpdCBpcyByZXF1aXJl
ZCB0byBpbmNsdWRlIHN0cmluZy5oCj4gPiBiZWZvcmUgY29uc29sZS5oLgo+IAo+IEJ1dCB0aGF0
J3MgYnJva2VuIHRoZW4gLSB0aGVyZSBzaG91bGRuJ3QgYmUgc3VjaCBhbiBlZmZlY3QgZm9yCj4g
YW55b25lIHVwZGF0aW5nIHRoZWlyIHB1YmxpYyBoZWFkZXJzLiBJT1cgSSB0aGluayB0aGlzIG5l
ZWRzCj4gdG8gYmUgZGVhbHQgd2l0aCBieSBmdXJ0aGVyIGFkanVzdGluZyBjb25zb2xlLmgsIGUu
Zy4gYnkKPiBtYWtpbmcgdGhlIGFkZGl0aW9ucyBkZXBlbmQgb24gYSBtYW5pZmVzdCBzeW1ib2wg
dG8gYmUKPiBkZWZpbmVkLgoKVGhpcyBzaG91bGQgd29yay4KClRoaXMgaXNuJ3QganVzdCBjb25z
b2xlLmggYWxvbmUuIEFueSBoZWFkZXIgdGhhdCB1c2VzCkRFRklORV9YRU5fRkxFWF9SSU5HIHdp
bGwgcG90ZW50aWFsbHkgbmVlZCBhIG1hbmlmZXN0IHN5bWJvbC4gV2UgZ2V0CmF3YXkgc28gZmFy
IGJlY2F1c2UgdGhlIHR3byBvdGhlciBoZWFkZXJzIDlwZnMuaCBhbmQgcHZjYWxscy5oIGFyZQpy
ZWxhdGl2ZWx5IG5ldy4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xp
c3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Thu Oct 05 09:39:21 2017
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 05 Oct 2017 09:39:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1e02cj-00072e-OF; Thu, 05 Oct 2017 09:39:21 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=44491d46c=wei.liu2@citrix.com>)
 id 1e02ci-00072J-8U; Thu, 05 Oct 2017 09:39:20 +0000
Received: from [85.158.139.211] by server-5.bemta-5.messagelabs.com id
 13/B6-02223-7CDF5D95; Thu, 05 Oct 2017 09:39:19 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrDIsWRWlGSWpSXmKPExsXitHRDpO6xv1c
 jDba8NLZ4+3UJs8X3LZOZHJg8Dn+4whLAGMWamZeUX5HAmtF7bCV7wVq2iqvn6hsYJ7J2MXJy
 SAj4S1zdfosZxGYRUJF4v3wVI4jNJqAs8bOzlw3EFgGye3/9Zuli5OJgFljHJHF/yWewhLCAj
 8SBc53sIDavgIVE46rDTCBFQgIzGSX+zNnGBpEQlDg58wkLiM0soCOxYPcnoDgHkC0tsfwfB0
 iYU8BSYua/O2CLRYGO6Fw6B6xcSEBBomP6MaYJjHyzkEyahWTSLIRJCxiZVzGqF6cWlaUW6Zr
 oJRVlpmeU5CZm5ugaGpjq5aYWFyemp+YkJhXrJefnbmIEhhwDEOxgvNXnfIhRkoNJSZSX6cfV
 SCG+pPyUyozE4oz4otKc1OJDjDIcHEoSvFwfgHKCRanpqRVpmTnA4IdJS3DwKInw/v4IlOYtL
 kjMLc5Mh0idYtTluPHw+h8mIZa8/LxUKXFeXpAZAiBFGaV5cCNgkXiJUVZKmJcR6CghnoLUot
 zMElT5V4ziHIxKwrw3QKbwZOaVwG16BXQEE9ARc5qugBxRkoiQkmpg5D5eusSrecVEB5mzvL3
 fl3zcorI/1t5KY5F+w0qlLTY7U47Y37ZV1zvOFyYxMYZnzd2zl13O8j4WCtIUuyzTmH218md3
 +btJvK/ndeUU2dp/+uZbvPDTx62RDtXZlRY/LN5crtjIVPpTJLnpcZY755fdrCd3mR19nyKtx
 vfEjuGpI8NSk5QFSizFGYmGWsxFxYkAAsw2Ob8CAAA=
X-Env-Sender: prvs=44491d46c=wei.liu2@citrix.com
X-Msg-Ref: server-6.tower-206.messagelabs.com!1507196357!111841672!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4864 invoked from network); 5 Oct 2017 09:39:18 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-6.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 5 Oct 2017 09:39:18 -0000
X-IronPort-AV: E=Sophos;i="5.42,481,1500940800"; d="scan'208";a="442600244"
Date: Thu, 5 Oct 2017 10:39:15 +0100
From: Wei Liu <wei.liu2@citrix.com>
To: Jan Beulich <JBeulich@suse.com>
Message-ID: <20171005093915.7a5upfgciq74yxqm@citrix.com>
References: <20171004135126.9131-1-wei.liu2@citrix.com>
 <59D615F9020000780018270A@prv-mh.provo.novell.com>
 <20171005092759.fwygh7whof735i2a@citrix.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <20171005092759.fwygh7whof735i2a@citrix.com>
User-Agent: NeoMutt/20170113 (1.7.2)
Cc: Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wei.liu2@citrix.com>,
 Ian Jackson <ian.jackson@eu.citrix.com>,
 Minios-devel <minios-devel@lists.xenproject.org>,
 Julien Grall <julien.grall@arm.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>
Subject: Re: [Minios-devel] [Xen-devel] [MINIOS PATCH v2] Include string.h
	before console.h
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

Q0MgU3RlZmFubyBhbmQgSnVsaWVuCgpPbiBUaHUsIE9jdCAwNSwgMjAxNyBhdCAxMDoyODowMEFN
ICswMTAwLCBXZWkgTGl1IHdyb3RlOgo+IE9uIFRodSwgT2N0IDA1LCAyMDE3IGF0IDAzOjIyOjMz
QU0gLTA2MDAsIEphbiBCZXVsaWNoIHdyb3RlOgo+ID4gPj4+IE9uIDA0LjEwLjE3IGF0IDE1OjUx
LCA8d2VpLmxpdTJAY2l0cml4LmNvbT4gd3JvdGU6Cj4gPiA+IFN0YXJ0aW5nIGZyb20gWGVuIGNv
bW1pdCBhZjhkOTM1NjQsIGl0IGlzIHJlcXVpcmVkIHRvIGluY2x1ZGUgc3RyaW5nLmgKPiA+ID4g
YmVmb3JlIGNvbnNvbGUuaC4KPiA+IAo+ID4gQnV0IHRoYXQncyBicm9rZW4gdGhlbiAtIHRoZXJl
IHNob3VsZG4ndCBiZSBzdWNoIGFuIGVmZmVjdCBmb3IKPiA+IGFueW9uZSB1cGRhdGluZyB0aGVp
ciBwdWJsaWMgaGVhZGVycy4gSU9XIEkgdGhpbmsgdGhpcyBuZWVkcwo+ID4gdG8gYmUgZGVhbHQg
d2l0aCBieSBmdXJ0aGVyIGFkanVzdGluZyBjb25zb2xlLmgsIGUuZy4gYnkKPiA+IG1ha2luZyB0
aGUgYWRkaXRpb25zIGRlcGVuZCBvbiBhIG1hbmlmZXN0IHN5bWJvbCB0byBiZQo+ID4gZGVmaW5l
ZC4KPiAKPiBUaGlzIHNob3VsZCB3b3JrLgo+IAo+IFRoaXMgaXNuJ3QganVzdCBjb25zb2xlLmgg
YWxvbmUuIEFueSBoZWFkZXIgdGhhdCB1c2VzCj4gREVGSU5FX1hFTl9GTEVYX1JJTkcgd2lsbCBw
b3RlbnRpYWxseSBuZWVkIGEgbWFuaWZlc3Qgc3ltYm9sLiBXZSBnZXQKPiBhd2F5IHNvIGZhciBi
ZWNhdXNlIHRoZSB0d28gb3RoZXIgaGVhZGVycyA5cGZzLmggYW5kIHB2Y2FsbHMuaCBhcmUKPiBy
ZWxhdGl2ZWx5IG5ldy4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xp
c3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Thu Oct 05 09:43:34 2017
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 05 Oct 2017 09:43:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1e02go-00083R-8l; Thu, 05 Oct 2017 09:43:34 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <JBeulich@suse.com>)
 id 1e02gm-00083I-Lx; Thu, 05 Oct 2017 09:43:32 +0000
Received: from [193.109.254.147] by server-9.bemta-6.messagelabs.com id
 07/32-03422-3CEF5D95; Thu, 05 Oct 2017 09:43:31 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrDIsWRWlGSWpSXmKPExsXS6fjDS/fAv6u
 RBp+fS1i8/bqE2eL7lslMDkwehz9cYQlgjGLNzEvKr0hgzfi7/DNrQQt7xZu7s5kbGJ+zdjFy
 cggJ5ElseN8PZvMK2Em8b13GBGJLCBhKnF54k6WLkYODRUBV4v93OZAwm4C6RNuz7WDlIgLKE
 ne/zwAq4eJgFnjNKLH+13I2kISwgK/EslUnmUESQgIzGSX+zNkGluAUsJSY+e8OI8hQXgFBib
 87hEHCzAJaEg9/3WKBsLUlli18zQxSwiwgLbH8H8cERr5ZCA2zkDTMQtIwC6FhASPLKkb14tS
 istQiXUu9pKLM9IyS3MTMHF1DAzO93NTi4sT01JzEpGK95PzcTYzAMGQAgh2MdzcFHGKU5GBS
 EuVl+nE1UogvKT+lMiOxOCO+qDQntfgQowwHh5IEL9cHoJxgUWp6akVaZg4wImDSEhw8SiK8v
 z8CpXmLCxJzizPTIVKnGI05bjy8/oeJo+Pm3T9MQix5+XmpUuK8vCCTBEBKM0rz4AbBIvUSo6
 yUMC8j0GlCPAWpRbmZJajyrxjFORiVhHlvgEzhycwrgdv3CugUJqBT5jRdATmlJBEhJdXAqGh
 ue/fdy3CDjplNVq8XvXvyLkt6wZtSXusv+sVmp0tFSk+mm/k+3NR1ydfWzO1LFp/lpbKqNVz/
 I1/ay2mF/wzSs2KbtupKqN2TyARmsaOTBaNPu+zZ/F1K8L+0RXyN5L8FLSeWFz21Kt25MfGA3
 G5GpoL8+MXFsy+vXRTyoztLc+K0mNR9SizFGYmGWsxFxYkAHrdgx88CAAA=
X-Env-Sender: JBeulich@suse.com
X-Msg-Ref: server-6.tower-27.messagelabs.com!1507196606!120215572!1
X-Originating-IP: [137.65.248.74]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 48720 invoked from network); 5 Oct 2017 09:43:28 -0000
Received: from prv-mh.provo.novell.com (HELO prv-mh.provo.novell.com)
 (137.65.248.74)
 by server-6.tower-27.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted
 SMTP; 5 Oct 2017 09:43:28 -0000
Received: from INET-PRV-MTA by prv-mh.provo.novell.com
 with Novell_GroupWise; Thu, 05 Oct 2017 03:43:25 -0600
Message-Id: <59D61ADB020000780018277E@prv-mh.provo.novell.com>
X-Mailer: Novell GroupWise Internet Agent 14.2.2 
Date: Thu, 05 Oct 2017 03:43:23 -0600
From: "Jan Beulich" <JBeulich@suse.com>
To: "Wei Liu" <wei.liu2@citrix.com>
References: <20171004135126.9131-1-wei.liu2@citrix.com>
 <59D615F9020000780018270A@prv-mh.provo.novell.com>
 <20171005092759.fwygh7whof735i2a@citrix.com>
In-Reply-To: <20171005092759.fwygh7whof735i2a@citrix.com>
Mime-Version: 1.0
Content-Disposition: inline
Cc: Minios-devel <minios-devel@lists.xenproject.org>,
 SamuelThibault <samuel.thibault@ens-lyon.org>,
 Julien Grall <julien.grall@arm.com>, Ian Jackson <ian.jackson@eu.citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [Minios-devel] [Xen-devel] [MINIOS PATCH v2] Include string.h
 before console.h
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

Pj4+IE9uIDA1LjEwLjE3IGF0IDExOjI4LCA8d2VpLmxpdTJAY2l0cml4LmNvbT4gd3JvdGU6Cj4g
T24gVGh1LCBPY3QgMDUsIDIwMTcgYXQgMDM6MjI6MzNBTSAtMDYwMCwgSmFuIEJldWxpY2ggd3Jv
dGU6Cj4+ID4+PiBPbiAwNC4xMC4xNyBhdCAxNTo1MSwgPHdlaS5saXUyQGNpdHJpeC5jb20+IHdy
b3RlOgo+PiA+IFN0YXJ0aW5nIGZyb20gWGVuIGNvbW1pdCBhZjhkOTM1NjQsIGl0IGlzIHJlcXVp
cmVkIHRvIGluY2x1ZGUgc3RyaW5nLmgKPj4gPiBiZWZvcmUgY29uc29sZS5oLgo+PiAKPj4gQnV0
IHRoYXQncyBicm9rZW4gdGhlbiAtIHRoZXJlIHNob3VsZG4ndCBiZSBzdWNoIGFuIGVmZmVjdCBm
b3IKPj4gYW55b25lIHVwZGF0aW5nIHRoZWlyIHB1YmxpYyBoZWFkZXJzLiBJT1cgSSB0aGluayB0
aGlzIG5lZWRzCj4+IHRvIGJlIGRlYWx0IHdpdGggYnkgZnVydGhlciBhZGp1c3RpbmcgY29uc29s
ZS5oLCBlLmcuIGJ5Cj4+IG1ha2luZyB0aGUgYWRkaXRpb25zIGRlcGVuZCBvbiBhIG1hbmlmZXN0
IHN5bWJvbCB0byBiZQo+PiBkZWZpbmVkLgo+IAo+IFRoaXMgc2hvdWxkIHdvcmsuCj4gCj4gVGhp
cyBpc24ndCBqdXN0IGNvbnNvbGUuaCBhbG9uZS4gQW55IGhlYWRlciB0aGF0IHVzZXMKPiBERUZJ
TkVfWEVOX0ZMRVhfUklORyB3aWxsIHBvdGVudGlhbGx5IG5lZWQgYSBtYW5pZmVzdCBzeW1ib2wu
IFdlIGdldAo+IGF3YXkgc28gZmFyIGJlY2F1c2UgdGhlIHR3byBvdGhlciBoZWFkZXJzIDlwZnMu
aCBhbmQgcHZjYWxscy5oIGFyZQo+IHJlbGF0aXZlbHkgbmV3LgoKUmlnaHQsIGFuZCBmb3IgbmV3
IGhlYWRlcnMgaXQgaXMgZmluZSB0byBlc3RhYmxpc2ggcHJlcmVxIGluY2x1c2lvbgpyZXF1aXJl
bWVudHMgZnJvbSB0aGUgdmVyeSBiZWdpbm5pbmcuCgpKYW4KCgpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1p
bmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu
b3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Oct 06 14:49:49 2017
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 06 Oct 2017 14:49:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1e0Twi-0008SA-KK; Fri, 06 Oct 2017 14:49:48 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=44560dde8=Ian.Jackson@citrix.com>)
 id 1e0Twh-0008Rm-Lg; Fri, 06 Oct 2017 14:49:47 +0000
Received: from [85.158.143.35] by server-5.bemta-6.messagelabs.com id
 E8/F8-03453-A0897D95; Fri, 06 Oct 2017 14:49:46 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrNIsWRWlGSWpSXmKPExsXitHRDpC77jOu
 RBtPey1i8/bqE2eL7lslMDkwehz9cYQlgjGLNzEvKr0hgzXi1+yRrwRPBiudXpjI1MO7i72Lk
 5JAQ8Jd4vr6LGcRmE9CVaNrylw3E5hVwkGiadhwsziKgIjH5zRZ2iLigxMmZT1hAbGYBHYkFu
 z+xQdjyEtvfzgGrFxFwk3jx4Q8TRFxF4tS8LrB6YQE/ia2v/oHVcApUSFy7+5i1i5GDQ0igTK
 LpQA7EOSYSbxfuZIMIq0nMXR8/gZFvFpLFs5AsnoVk8QJG5lWM6sWpRWWpRbqGeklFmekZJbm
 JmTm6hgZmermpxcWJ6ak5iUnFesn5uZsYgQHHAAQ7GHc+dzrEKMnBpCTK6zbleqQQX1J+SmVG
 YnFGfFFpTmrxIUYZDg4lCd6704BygkWp6akVaZk5wNCHSUtw8CiJ8LaCpHmLCxJzizPTIVKnG
 HU5Om7e/cMkxJKXn5cqJc5bCFIkAFKUUZoHNwIWh5cYZaWEeRmBjhLiKUgtys0sQZV/xSjOwa
 gkzHsSZApPZl4J3KZXQEcwAR0xp+kKyBEliQgpqQZGKa9vHhEPaz5eX23WtvnsM6sQ6YUC1lO
 V5q8/JHO5Nu+6484ctoU9WnOOfd2/KEd38uz9rIW+Cl9uGB0+se/VzHddPBr7LfyiohcJ3Luo
 lBkZv01j/pk1gjeLQ1s0YnonrvtTItC8b1pT56bLmn4ab7rdVi+3v/yl8GPOU5fOT9Ec11+7c
 KeIK7EUZyQaajEXFScCAKy7EXa+AgAA
X-Env-Sender: prvs=44560dde8=Ian.Jackson@citrix.com
X-Msg-Ref: server-5.tower-21.messagelabs.com!1507301381!68718238!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 33641 invoked from network); 6 Oct 2017 14:49:43 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-5.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 6 Oct 2017 14:49:43 -0000
X-IronPort-AV: E=Sophos;i="5.42,483,1500940800"; d="scan'208";a="442784987"
From: Ian Jackson <ian.jackson@eu.citrix.com>
Message-ID: <22999.38915.444679.303158@mariner.uk.xensource.com>
Date: Fri, 6 Oct 2017 15:49:39 +0100
MIME-Version: 1.0
To: Wei Liu <wei.liu2@citrix.com>, <minios-devel@lists.xenproject.org>
In-Reply-To: <1507056319-7467-1-git-send-email-ian.jackson@eu.citrix.com>,
 <20171004092310.wqoifb5nehpoihmp@citrix.com>
References: <1507056319-7467-1-git-send-email-ian.jackson@eu.citrix.com>
 <20171004092310.wqoifb5nehpoihmp@citrix.com>
X-Mailer: VM 8.2.0b under 24.4.1 (i586-pc-linux-gnu)
Cc: xen-devel@lists.xenproject.org
Subject: Re: [Minios-devel] [PATCH MINI-OS] Link against libxentoolcore [and
	1 more messages]
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

RllJLCByZSB0aGUgcGF0Y2ggYmVsb3cuICBJIHBvc3RlZCBpdCBvbmx5IHRvIHhlbi1kZXZlbCBi
eSBtaXN0YWtlLgoKVGhhbmtzLApJYW4uCgpJYW4gSmFja3NvbiB3cml0ZXMgKCJbUEFUQ0ggTUlO
SS1PU10gTGluayBhZ2FpbnN0IGxpYnhlbnRvb2xjb3JlIik6Cj4gQnJpbmdpbmcgdGhpcyBjb21t
aXQgaW50byB4ZW4uZ2l0IG5lZWRzIGNvb3JkaW5hdGlvbiB3aXRoIHRoZQo+IGNvcnJlc3BvbmRp
bmcgY2hhbmdlIHRvIGludHJvZHVjZSB0aGUgbmV3IGxpYnJhcnk6IHRoaXMgY29tbWl0IG5lZXMg
dG8KPiBiZSBpbnRyb2RldWNlZCB0byB4ZW4uZ2l0IGltbWVkaWF0ZWx5IGFmdGVyCj4gICAgeGVu
dG9vbGNvcmUsIF9yZXN0cmljdF9hbGw6IEludHJvZHVjZSBuZXcgbGlicmFyeSBhbmQgaW1wbGVt
ZW50YXRpb24KPiAKPiBTaWduZWQtb2ZmLWJ5OiBJYW4gSmFja3NvbiA8SWFuLkphY2tzb25AZXUu
Y2l0cml4LmNvbT4KLi4uCgpXZWkgTGl1IHdyaXRlcyAoIlJlOiBbUEFUQ0ggTUlOSS1PU10gTGlu
ayBhZ2FpbnN0IGxpYnhlbnRvb2xjb3JlIik6Cj4gT24gVHVlLCBPY3QgMDMsIDIwMTcgYXQgMDc6
NDU6MTlQTSArMDEwMCwgSWFuIEphY2tzb24gd3JvdGU6Cj4gPiBCcmluZ2luZyB0aGlzIGNvbW1p
dCBpbnRvIHhlbi5naXQgbmVlZHMgY29vcmRpbmF0aW9uIHdpdGggdGhlCj4gPiBjb3JyZXNwb25k
aW5nIGNoYW5nZSB0byBpbnRyb2R1Y2UgdGhlIG5ldyBsaWJyYXJ5OiB0aGlzIGNvbW1pdCBuZWVz
IHRvCj4gPiBiZSBpbnRyb2RldWNlZCB0byB4ZW4uZ2l0IGltbWVkaWF0ZWx5IGFmdGVyCj4gPiAg
ICB4ZW50b29sY29yZSwgX3Jlc3RyaWN0X2FsbDogSW50cm9kdWNlIG5ldyBsaWJyYXJ5IGFuZCBp
bXBsZW1lbnRhdGlvbgo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBJYW4gSmFja3NvbiA8SWFuLkph
Y2tzb25AZXUuY2l0cml4LmNvbT4KPiAKPiBBY2tlZC1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0
cml4LmNvbT4KCkFuZCB0aGUgcGF0Y2ggYWdhaW4sIGJlbG93LCB3aXRoIFdlaSdzIGFjayBhZGRl
ZC4KCklhbi4KCkZyb206IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpT
dWJqZWN0OiBbUEFUQ0ggTUlOSS1PU10gTGluayBhZ2FpbnN0IGxpYnhlbnRvb2xjb3JlCgpCcmlu
Z2luZyB0aGlzIGNvbW1pdCBpbnRvIHhlbi5naXQgbmVlZHMgY29vcmRpbmF0aW9uIHdpdGggdGhl
CmNvcnJlc3BvbmRpbmcgY2hhbmdlIHRvIGludHJvZHVjZSB0aGUgbmV3IGxpYnJhcnk6IHRoaXMg
Y29tbWl0IG5lZXMgdG8KYmUgaW50cm9kZXVjZWQgdG8geGVuLmdpdCBpbW1lZGlhdGVseSBhZnRl
cgogICB4ZW50b29sY29yZSwgX3Jlc3RyaWN0X2FsbDogSW50cm9kdWNlIG5ldyBsaWJyYXJ5IGFu
ZCBpbXBsZW1lbnRhdGlvbgoKU2lnbmVkLW9mZi1ieTogSWFuIEphY2tzb24gPElhbi5KYWNrc29u
QGV1LmNpdHJpeC5jb20+CkFja2VkLWJ5OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgot
LS0KIE1ha2VmaWxlIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlm
ZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggNWJkY2RhYy4uODgzMTVjNCAxMDA2
NDQKLS0tIGEvTWFrZWZpbGUKKysrIGIvTWFrZWZpbGUKQEAgLTEyNCw2ICsxMjQsOCBAQCBPQkpT
IDo9ICQoZmlsdGVyLW91dCAkKE9CSl9ESVIpL2x3aXAlLm8gJChMV08pLCAkKE9CSlMpKQogCiBp
ZmVxICgkKGxpYmMpLHkpCiBpZmVxICgkKENPTkZJR19YQykseSkKK0FQUF9MRExJQlMgKz0gLUwk
KFhFTl9ST09UKS9zdHViZG9tL2xpYnMtJChNSU5JT1NfVEFSR0VUX0FSQ0gpL3Rvb2xjb3JlIC13
aG9sZS1hcmNoaXZlIC1seGVudG9vbGNvcmUgLW5vLXdob2xlLWFyY2hpdmUKK0xJQlMgKz0gJChY
RU5fUk9PVCkvc3R1YmRvbS9saWJzLSQoTUlOSU9TX1RBUkdFVF9BUkNIKS90b29sY29yZS9saWJ4
ZW50b29sY29yZS5hCiBBUFBfTERMSUJTICs9IC1MJChYRU5fUk9PVCkvc3R1YmRvbS9saWJzLSQo
TUlOSU9TX1RBUkdFVF9BUkNIKS90b29sbG9nIC13aG9sZS1hcmNoaXZlIC1seGVudG9vbGxvZyAt
bm8td2hvbGUtYXJjaGl2ZQogTElCUyArPSAkKFhFTl9ST09UKS9zdHViZG9tL2xpYnMtJChNSU5J
T1NfVEFSR0VUX0FSQ0gpL3Rvb2xsb2cvbGlieGVudG9vbGxvZy5hCiBBUFBfTERMSUJTICs9IC1M
JChYRU5fUk9PVCkvc3R1YmRvbS9saWJzLSQoTUlOSU9TX1RBUkdFVF9BUkNIKS9ldnRjaG4gLXdo
b2xlLWFyY2hpdmUgLWx4ZW5ldnRjaG4gLW5vLXdob2xlLWFyY2hpdmUKLS0gCjIuMS40CgoKX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVs
IG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9s
aXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Mon Oct 16 11:00:21 2017
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 16 Oct 2017 11:00:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1e4388-00045v-8o; Mon, 16 Oct 2017 11:00:20 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=4558fadb9=wei.liu2@citrix.com>)
 id 1e434j-0003SD-P1
 for minios-devel@lists.xenproject.org; Mon, 16 Oct 2017 10:56:50 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 DA/0C-14867-07094E95; Mon, 16 Oct 2017 10:56:48 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJLMWRWlGSWpSXmKPExsXitHSDvW7ehCe
 RBq3PjS3efl3C7MDocfjDFZYAxijWzLyk/IoE1oz56/6xFSxrMazYPukCWwNj/3nVLkZODgkB
 f4nWzxMYQWw2AWWJn529bCC2iICJxO8Lp1m6GDk4mAWCJO5NYAUJCwsYSFzZuZYRJMwioCqx6
 ZgBSJhXwFziXeNSJoiJ8hK72i6ClQsJKEh0TD/GBFEjKHFy5hMWEJtZQELi4IsXzBMYuWchSc
 1CklrAyLSKUaM4tagstUjX0FgvqSgzPaMkNzEzR9fQwEwvN7W4ODE9NScxqVgvOT93EyMwGBi
 AYAfjl2UBhxglOZiURHmdDZ9ECvEl5adUZiQWZ8QXleakFh9ilOHgUJLgXdgPlBMsSk1PrUjL
 zAGGJUxagoNHSYT3Jkiat7ggMbc4Mx0idYpRl6Pj5t0/TEIsefl5qVLivOUgRQIgRRmleXAjY
 DFyiVFWSpiXEegoIZ6C1KLczBJU+VeM4hyMSsK8K0Gm8GTmlcBtegV0BBPQEeucwI4oSURIST
 UwmouvPnR1g65tcm7yDoP3ws0XesrSYhesPBAavfFAwCX3vXaLLtetiZs2K7mOVWTD7MrVjMp
 Nj7O0Dq9duuaB23znda4hb9/z/96wfMnKf6VXTsT4hU7+Z/1Pta1j4+eouPC064mtj2/X/pCZ
 YlQitkqkgEFI6ucxq4UOT2enbNw5Te8n4+s8ESWW4oxEQy3mouJEAIQRlXKMAgAA
X-Env-Sender: prvs=4558fadb9=wei.liu2@citrix.com
X-Msg-Ref: server-15.tower-21.messagelabs.com!1508151403!77209791!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=Mail larger than max spam size
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23631 invoked from network); 16 Oct 2017 10:56:44 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 16 Oct 2017 10:56:44 -0000
X-IronPort-AV: E=Sophos;i="5.43,386,1503360000"; d="scan'208";a="454293822"
From: Wei Liu <wei.liu2@citrix.com>
To: Minios-devel <minios-devel@lists.xenproject.org>
Date: Mon, 16 Oct 2017 11:56:35 +0100
Message-ID: <20171016105635.5866-1-wei.liu2@citrix.com>
X-Mailer: git-send-email 2.11.0
MIME-Version: 1.0
X-Mailman-Approved-At: Mon, 16 Oct 2017 11:00:18 +0000
Cc: Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Wei Liu <wei.liu2@citrix.com>
Subject: [Minios-devel] [MINIOS PATCH] Update Xen headers again
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhlIG1vc3QgaW1wb3J0YW50IHRoaW5nIGlzIGNvbnNvbGUuaCB3aGljaCBpcyBtb2RpZmllZCB0
byBhdm9pZApicmVha2FnZSBmb3IgY29uc3VtZXJzLgoKSXQgYWxzbyBhcHBlYXJzIHRoYXQgdGhl
IHhzbSBoZWFkZXJzIHdlcmUgbWlzc2VkIGluIGxhc3QgYXR0ZW1wdC4KCldoaWxlIGF0IGl0LCB1
cGRhdGUgYWxsIGhlYWRlcnMgaW4gb25lIGdvLCBpbmNsdWRpbmcgdGhlIG5ld2x5CmNvbW1pdHRl
ZCBvbmVzLgoKU2lnbmVkLW9mZi1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0t
CiBpbmNsdWRlL3hlbi9hcmNoLXg4Ni94ZW4teDg2XzY0LmggICAgICAgICB8ICAgIDQgKy0KIGlu
Y2x1ZGUveGVuL2lvL2NvbnNvbGUuaCAgICAgICAgICAgICAgICAgIHwgICAgNSArLQogaW5jbHVk
ZS94ZW4vaW8vbmV0aWYuaCAgICAgICAgICAgICAgICAgICAgfCAgMTIzICsrKwogaW5jbHVkZS94
ZW4veHNtL0NPUFlJTkcgICAgICAgICAgICAgICAgICAgfCAgIDM4ICsKIGluY2x1ZGUveGVuL3hz
bS9hcmNoLWFybS5oICAgICAgICAgICAgICAgIHwgIDQ3NiArKysrKysrKysrKwogaW5jbHVkZS94
ZW4veHNtL2FyY2gtYXJtL2h2bS9zYXZlLmggICAgICAgfCAgIDM5ICsKIGluY2x1ZGUveGVuL3hz
bS9hcmNoLWFybS9zbWNjYy5oICAgICAgICAgIHwgICA2NiArKwogaW5jbHVkZS94ZW4veHNtL2Fy
Y2gteDg2L2NwdWZlYXR1cmVzZXQuaCAgfCAgMjYzICsrKysrKwogaW5jbHVkZS94ZW4veHNtL2Fy
Y2gteDg2L2NwdWlkLmggICAgICAgICAgfCAgMTE2ICsrKwogaW5jbHVkZS94ZW4veHNtL2FyY2gt
eDg2L2h2bS9zYXZlLmggICAgICAgfCAgNjU3ICsrKysrKysrKysrKysrKwogaW5jbHVkZS94ZW4v
eHNtL2FyY2gteDg2L2h2bS9zdGFydF9pbmZvLmggfCAgIDk4ICsrKwogaW5jbHVkZS94ZW4veHNt
L2FyY2gteDg2L3BtdS5oICAgICAgICAgICAgfCAgMTY3ICsrKysKIGluY2x1ZGUveGVuL3hzbS9h
cmNoLXg4Ni94ZW4tbWNhLmggICAgICAgIHwgIDQ0NiArKysrKysrKysrCiBpbmNsdWRlL3hlbi94
c20vYXJjaC14ODYveGVuLXg4Nl8zMi5oICAgICB8ICAxOTQgKysrKysKIGluY2x1ZGUveGVuL3hz
bS9hcmNoLXg4Ni94ZW4teDg2XzY0LmggICAgIHwgIDI0MSArKysrKysKIGluY2x1ZGUveGVuL3hz
bS9hcmNoLXg4Ni94ZW4uaCAgICAgICAgICAgIHwgIDM1NSArKysrKysrKwogaW5jbHVkZS94ZW4v
eHNtL2FyY2gteDg2XzMyLmggICAgICAgICAgICAgfCAgIDI3ICsKIGluY2x1ZGUveGVuL3hzbS9h
cmNoLXg4Nl82NC5oICAgICAgICAgICAgIHwgICA0MyArCiBpbmNsdWRlL3hlbi94c20vY2FsbGJh
Y2suaCAgICAgICAgICAgICAgICB8ICAxMjEgKysrCiBpbmNsdWRlL3hlbi94c20vZG9tMF9vcHMu
aCAgICAgICAgICAgICAgICB8ICAxMjAgKysrCiBpbmNsdWRlL3hlbi94c20vZG9tY3RsLmggICAg
ICAgICAgICAgICAgICB8IDEyNjcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGluY2x1
ZGUveGVuL3hzbS9lbGZub3RlLmggICAgICAgICAgICAgICAgIHwgIDI4MyArKysrKysrCiBpbmNs
dWRlL3hlbi94c20vZXJybm8uaCAgICAgICAgICAgICAgICAgICB8ICAxMjQgKysrCiBpbmNsdWRl
L3hlbi94c20vZXZlbnRfY2hhbm5lbC5oICAgICAgICAgICB8ICAzODUgKysrKysrKysrCiBpbmNs
dWRlL3hlbi94c20vZmVhdHVyZXMuaCAgICAgICAgICAgICAgICB8ICAxMjAgKysrCiBpbmNsdWRl
L3hlbi94c20vZ3JhbnRfdGFibGUuaCAgICAgICAgICAgICB8ICA2ODUgKysrKysrKysrKysrKysr
KwogaW5jbHVkZS94ZW4veHNtL2h2bS9kbV9vcC5oICAgICAgICAgICAgICAgfCAgNDI5ICsrKysr
KysrKysKIGluY2x1ZGUveGVuL3hzbS9odm0vZTgyMC5oICAgICAgICAgICAgICAgIHwgICAzOCAr
CiBpbmNsdWRlL3hlbi94c20vaHZtL2h2bV9pbmZvX3RhYmxlLmggICAgICB8ICAgODIgKysKIGlu
Y2x1ZGUveGVuL3hzbS9odm0vaHZtX29wLmggICAgICAgICAgICAgIHwgIDI5NiArKysrKysrCiBp
bmNsdWRlL3hlbi94c20vaHZtL2h2bV92Y3B1LmggICAgICAgICAgICB8ICAxNDQgKysrKwogaW5j
bHVkZS94ZW4veHNtL2h2bS9odm1feHNfc3RyaW5ncy5oICAgICAgfCAgIDgzICsrCiBpbmNsdWRl
L3hlbi94c20vaHZtL2lvcmVxLmggICAgICAgICAgICAgICB8ICAxNDMgKysrKwogaW5jbHVkZS94
ZW4veHNtL2h2bS9wYXJhbXMuaCAgICAgICAgICAgICAgfCAgMjg0ICsrKysrKysKIGluY2x1ZGUv
eGVuL3hzbS9odm0vcHZkcml2ZXJzLmggICAgICAgICAgIHwgICA0OSArKwogaW5jbHVkZS94ZW4v
eHNtL2h2bS9zYXZlLmggICAgICAgICAgICAgICAgfCAgMTEzICsrKwogaW5jbHVkZS94ZW4veHNt
L2lvLzlwZnMuaCAgICAgICAgICAgICAgICAgfCAgIDQ5ICsrCiBpbmNsdWRlL3hlbi94c20vaW8v
YmxraWYuaCAgICAgICAgICAgICAgICB8ICA3MDIgKysrKysrKysrKysrKysrKwogaW5jbHVkZS94
ZW4veHNtL2lvL2NvbnNvbGUuaCAgICAgICAgICAgICAgfCAgIDU2ICsrCiBpbmNsdWRlL3hlbi94
c20vaW8vZGlzcGxpZi5oICAgICAgICAgICAgICB8ICA4NjQgKysrKysrKysrKysrKysrKysrKysK
IGluY2x1ZGUveGVuL3hzbS9pby9mYmlmLmggICAgICAgICAgICAgICAgIHwgIDE3NiArKysrCiBp
bmNsdWRlL3hlbi94c20vaW8vZnNpZi5oICAgICAgICAgICAgICAgICB8ICAxOTIgKysrKysKIGlu
Y2x1ZGUveGVuL3hzbS9pby9rYmRpZi5oICAgICAgICAgICAgICAgIHwgIDU1MCArKysrKysrKysr
KysrCiBpbmNsdWRlL3hlbi94c20vaW8vbGlieGVudmNoYW4uaCAgICAgICAgICB8ICAxMDEgKysr
CiBpbmNsdWRlL3hlbi94c20vaW8vbmV0aWYuaCAgICAgICAgICAgICAgICB8IDEwNzYgKysrKysr
KysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL3hlbi94c20vaW8vcGNpaWYuaCAgICAgICAgICAg
ICAgICB8ICAxMjUgKysrCiBpbmNsdWRlL3hlbi94c20vaW8vcHJvdG9jb2xzLmggICAgICAgICAg
ICB8ICAgNDIgKwogaW5jbHVkZS94ZW4veHNtL2lvL3B2Y2FsbHMuaCAgICAgICAgICAgICAgfCAg
MTUzICsrKysKIGluY2x1ZGUveGVuL3hzbS9pby9yaW5nLmggICAgICAgICAgICAgICAgIHwgIDQ4
NCArKysrKysrKysrKwogaW5jbHVkZS94ZW4veHNtL2lvL3NuZGlmLmggICAgICAgICAgICAgICAg
fCAgODAzICsrKysrKysrKysrKysrKysrKwogaW5jbHVkZS94ZW4veHNtL2lvL3RwbWlmLmggICAg
ICAgICAgICAgICAgfCAgMTQzICsrKysKIGluY2x1ZGUveGVuL3hzbS9pby91c2JpZi5oICAgICAg
ICAgICAgICAgIHwgIDI1NCArKysrKysKIGluY2x1ZGUveGVuL3hzbS9pby92c2NzaWlmLmggICAg
ICAgICAgICAgIHwgIDMzMCArKysrKysrKwogaW5jbHVkZS94ZW4veHNtL2lvL3hlbmJ1cy5oICAg
ICAgICAgICAgICAgfCAgIDgwICsrCiBpbmNsdWRlL3hlbi94c20vaW8veHNfd2lyZS5oICAgICAg
ICAgICAgICB8ICAxNTMgKysrKwogaW5jbHVkZS94ZW4veHNtL2tleGVjLmggICAgICAgICAgICAg
ICAgICAgfCAgMjYzICsrKysrKwogaW5jbHVkZS94ZW4veHNtL21lbW9yeS5oICAgICAgICAgICAg
ICAgICAgfCAgNjY1ICsrKysrKysrKysrKysrKwogaW5jbHVkZS94ZW4veHNtL25taS5oICAgICAg
ICAgICAgICAgICAgICAgfCAgIDg1ICsrCiBpbmNsdWRlL3hlbi94c20vcGh5c2Rldi5oICAgICAg
ICAgICAgICAgICB8ICAzODcgKysrKysrKysrCiBpbmNsdWRlL3hlbi94c20vcGxhdGZvcm0uaCAg
ICAgICAgICAgICAgICB8ICA2NjMgKysrKysrKysrKysrKysrCiBpbmNsdWRlL3hlbi94c20vcG11
LmggICAgICAgICAgICAgICAgICAgICB8ICAxNDMgKysrKwogaW5jbHVkZS94ZW4veHNtL3NjaGVk
LmggICAgICAgICAgICAgICAgICAgfCAgMjAyICsrKysrCiBpbmNsdWRlL3hlbi94c20vc3lzY3Rs
LmggICAgICAgICAgICAgICAgICB8IDExMjIgKysrKysrKysrKysrKysrKysrKysrKysrKwogaW5j
bHVkZS94ZW4veHNtL3RtZW0uaCAgICAgICAgICAgICAgICAgICAgfCAgMTI0ICsrKwogaW5jbHVk
ZS94ZW4veHNtL3RyYWNlLmggICAgICAgICAgICAgICAgICAgfCAgMzM5ICsrKysrKysrCiBpbmNs
dWRlL3hlbi94c20vdmNwdS5oICAgICAgICAgICAgICAgICAgICB8ICAyNDggKysrKysrCiBpbmNs
dWRlL3hlbi94c20vdmVyc2lvbi5oICAgICAgICAgICAgICAgICB8ICAxMTYgKysrCiBpbmNsdWRl
L3hlbi94c20vdm1fZXZlbnQuaCAgICAgICAgICAgICAgICB8ICAzNzggKysrKysrKysrCiBpbmNs
dWRlL3hlbi94c20veGVuLWNvbXBhdC5oICAgICAgICAgICAgICB8ICAgNDQgKwogaW5jbHVkZS94
ZW4veHNtL3hlbi5oICAgICAgICAgICAgICAgICAgICAgfCAgOTk4ICsrKysrKysrKysrKysrKysr
KysrKysrCiBpbmNsdWRlL3hlbi94c20veGVuY29tbS5oICAgICAgICAgICAgICAgICB8ICAgNDEg
KwogaW5jbHVkZS94ZW4veHNtL3hlbm9wcm9mLmggICAgICAgICAgICAgICAgfCAgMTUyICsrKysK
IDcyIGZpbGVzIGNoYW5nZWQsIDIwNDIyIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCiBj
cmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4veHNtL0NPUFlJTkcKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBpbmNsdWRlL3hlbi94c20vYXJjaC1hcm0uaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1
ZGUveGVuL3hzbS9hcmNoLWFybS9odm0vc2F2ZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVk
ZS94ZW4veHNtL2FyY2gtYXJtL3NtY2NjLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hl
bi94c20vYXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVk
ZS94ZW4veHNtL2FyY2gteDg2L2NwdWlkLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hl
bi94c20vYXJjaC14ODYvaHZtL3NhdmUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVu
L3hzbS9hcmNoLXg4Ni9odm0vc3RhcnRfaW5mby5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVk
ZS94ZW4veHNtL2FyY2gteDg2L3BtdS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4v
eHNtL2FyY2gteDg2L3hlbi1tY2EuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3hz
bS9hcmNoLXg4Ni94ZW4teDg2XzMyLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi94
c20vYXJjaC14ODYveGVuLXg4Nl82NC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4v
eHNtL2FyY2gteDg2L3hlbi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4veHNtL2Fy
Y2gteDg2XzMyLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi94c20vYXJjaC14ODZf
NjQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3hzbS9jYWxsYmFjay5oCiBjcmVh
dGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4veHNtL2RvbTBfb3BzLmgKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBpbmNsdWRlL3hlbi94c20vZG9tY3RsLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRl
L3hlbi94c20vZWxmbm90ZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4veHNtL2Vy
cm5vLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi94c20vZXZlbnRfY2hhbm5lbC5o
CiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4veHNtL2ZlYXR1cmVzLmgKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBpbmNsdWRlL3hlbi94c20vZ3JhbnRfdGFibGUuaAogY3JlYXRlIG1vZGUgMTAw
NjQ0IGluY2x1ZGUveGVuL3hzbS9odm0vZG1fb3AuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1
ZGUveGVuL3hzbS9odm0vZTgyMC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4veHNt
L2h2bS9odm1faW5mb190YWJsZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4veHNt
L2h2bS9odm1fb3AuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3hzbS9odm0vaHZt
X3ZjcHUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3hzbS9odm0vaHZtX3hzX3N0
cmluZ3MuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3hzbS9odm0vaW9yZXEuaAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3hzbS9odm0vcGFyYW1zLmgKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBpbmNsdWRlL3hlbi94c20vaHZtL3B2ZHJpdmVycy5oCiBjcmVhdGUgbW9kZSAx
MDA2NDQgaW5jbHVkZS94ZW4veHNtL2h2bS9zYXZlLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNs
dWRlL3hlbi94c20vaW8vOXBmcy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4veHNt
L2lvL2Jsa2lmLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi94c20vaW8vY29uc29s
ZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4veHNtL2lvL2Rpc3BsaWYuaAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3hzbS9pby9mYmlmLmgKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBpbmNsdWRlL3hlbi94c20vaW8vZnNpZi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVk
ZS94ZW4veHNtL2lvL2tiZGlmLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi94c20v
aW8vbGlieGVudmNoYW4uaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3hzbS9pby9u
ZXRpZi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4veHNtL2lvL3BjaWlmLmgKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi94c20vaW8vcHJvdG9jb2xzLmgKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBpbmNsdWRlL3hlbi94c20vaW8vcHZjYWxscy5oCiBjcmVhdGUgbW9kZSAxMDA2
NDQgaW5jbHVkZS94ZW4veHNtL2lvL3JpbmcuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUv
eGVuL3hzbS9pby9zbmRpZi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4veHNtL2lv
L3RwbWlmLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi94c20vaW8vdXNiaWYuaAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3hzbS9pby92c2NzaWlmLmgKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBpbmNsdWRlL3hlbi94c20vaW8veGVuYnVzLmgKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBpbmNsdWRlL3hlbi94c20vaW8veHNfd2lyZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVk
ZS94ZW4veHNtL2tleGVjLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi94c20vbWVt
b3J5LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi94c20vbm1pLmgKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBpbmNsdWRlL3hlbi94c20vcGh5c2Rldi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQg
aW5jbHVkZS94ZW4veHNtL3BsYXRmb3JtLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hl
bi94c20vcG11LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi94c20vc2NoZWQuaAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3hzbS9zeXNjdGwuaAogY3JlYXRlIG1vZGUg
MTAwNjQ0IGluY2x1ZGUveGVuL3hzbS90bWVtLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRl
L3hlbi94c20vdHJhY2UuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3hzbS92Y3B1
LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi94c20vdmVyc2lvbi5oCiBjcmVhdGUg
bW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4veHNtL3ZtX2V2ZW50LmgKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBpbmNsdWRlL3hlbi94c20veGVuLWNvbXBhdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVk
ZS94ZW4veHNtL3hlbi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4veHNtL3hlbmNv
bW0uaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3hzbS94ZW5vcHJvZi5oCgpkaWZm
IC0tZ2l0IGEvaW5jbHVkZS94ZW4vYXJjaC14ODYveGVuLXg4Nl82NC5oIGIvaW5jbHVkZS94ZW4v
YXJjaC14ODYveGVuLXg4Nl82NC5oCmluZGV4IDk3OGY4Y2IuLmJlNTJmNzAgMTAwNjQ0Ci0tLSBh
L2luY2x1ZGUveGVuL2FyY2gteDg2L3hlbi14ODZfNjQuaAorKysgYi9pbmNsdWRlL3hlbi9hcmNo
LXg4Ni94ZW4teDg2XzY0LmgKQEAgLTIwMyw4ICsyMDMsOCBAQCBzdHJ1Y3QgY3B1X3VzZXJfcmVn
cyB7CiAgICAgdWludDE2X3Qgc3MsIF9wYWQyWzNdOwogICAgIHVpbnQxNl90IGVzLCBfcGFkM1sz
XTsKICAgICB1aW50MTZfdCBkcywgX3BhZDRbM107Ci0gICAgdWludDE2X3QgZnMsIF9wYWQ1WzNd
OyAvKiBOb24temVybyA9PiB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgZnNfYmFzZS4gICAgICovCi0g
ICAgdWludDE2X3QgZ3MsIF9wYWQ2WzNdOyAvKiBOb24temVybyA9PiB0YWtlcyBwcmVjZWRlbmNl
IG92ZXIgZ3NfYmFzZV91c3IuICovCisgICAgdWludDE2X3QgZnMsIF9wYWQ1WzNdOyAvKiBOb24t
bnVsID0+IHRha2VzIHByZWNlZGVuY2Ugb3ZlciBmc19iYXNlLiAgICAgICovCisgICAgdWludDE2
X3QgZ3MsIF9wYWQ2WzNdOyAvKiBOb24tbnVsID0+IHRha2VzIHByZWNlZGVuY2Ugb3ZlciBnc19i
YXNlX3VzZXIuICovCiB9OwogdHlwZWRlZiBzdHJ1Y3QgY3B1X3VzZXJfcmVncyBjcHVfdXNlcl9y
ZWdzX3Q7CiBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShjcHVfdXNlcl9yZWdzX3QpOwpkaWZmIC0t
Z2l0IGEvaW5jbHVkZS94ZW4vaW8vY29uc29sZS5oIGIvaW5jbHVkZS94ZW4vaW8vY29uc29sZS5o
CmluZGV4IDBmMDcxMWYuLjFmNzllZjggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL2lvL2NvbnNv
bGUuaAorKysgYi9pbmNsdWRlL3hlbi9pby9jb25zb2xlLmgKQEAgLTI3LDggKzI3LDYgQEAKICNp
Zm5kZWYgX19YRU5fUFVCTElDX0lPX0NPTlNPTEVfSF9fCiAjZGVmaW5lIF9fWEVOX1BVQkxJQ19J
T19DT05TT0xFX0hfXwogCi0jaW5jbHVkZSAicmluZy5oIgotCiB0eXBlZGVmIHVpbnQzMl90IFhF
TkNPTlNfUklOR19JRFg7CiAKICNkZWZpbmUgTUFTS19YRU5DT05TX0lEWChpZHgsIHJpbmcpICgo
aWR4KSAmIChzaXplb2YocmluZyktMSkpCkBAIC00MCw3ICszOCw4IEBAIHN0cnVjdCB4ZW5jb25z
X2ludGVyZmFjZSB7CiAgICAgWEVOQ09OU19SSU5HX0lEWCBvdXRfY29ucywgb3V0X3Byb2Q7CiB9
OwogCi0jaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgIWRlZmluZWQoX19TVFJJQ1RfQU5TSV9fKQor
I2lmZGVmIFhFTl9XQU5UX0ZMRVhfQ09OU09MRV9SSU5HCisjaW5jbHVkZSAicmluZy5oIgogREVG
SU5FX1hFTl9GTEVYX1JJTkcoeGVuY29ucyk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvaW5jbHVk
ZS94ZW4vaW8vbmV0aWYuaCBiL2luY2x1ZGUveGVuL2lvL25ldGlmLmgKaW5kZXggY2EwMDYxNC4u
MjQ1NDQ0OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4vaW8vbmV0aWYuaAorKysgYi9pbmNsdWRl
L3hlbi9pby9uZXRpZi5oCkBAIC0zNTMsNiArMzUzLDkgQEAgc3RydWN0IHhlbl9uZXRpZl9jdHJs
X3JlcXVlc3QgewogI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9IQVNIX01BUFBJTkdf
U0laRSA1CiAjZGVmaW5lIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfTUFQUElORyAgICAg
IDYKICNkZWZpbmUgWEVOX05FVElGX0NUUkxfVFlQRV9TRVRfSEFTSF9BTEdPUklUSE0gICAgNwor
I2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9UWVBFX0dFVF9HUkVGX01BUFBJTkdfU0laRSA4CisjZGVm
aW5lIFhFTl9ORVRJRl9DVFJMX1RZUEVfQUREX0dSRUZfTUFQUElORyAgICAgIDkKKyNkZWZpbmUg
WEVOX05FVElGX0NUUkxfVFlQRV9ERUxfR1JFRl9NQVBQSU5HICAgICAxMAogCiAgICAgdWludDMy
X3QgZGF0YVszXTsKIH07CkBAIC0zOTAsNiArMzkzLDQ0IEBAIHN0cnVjdCB4ZW5fbmV0aWZfY3Ry
bF9yZXNwb25zZSB7CiAgICAgdWludDMyX3QgZGF0YTsKIH07CiAKKy8qCisgKiBTdGF0aWMgR3Jh
bnRzIChzdHJ1Y3QgeGVuX25ldGlmX2dyZWYpCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CisgKgorICogQSBmcm9udGVuZCBtYXkgcHJvdmlkZSBhIGZpeGVkIHNldCBv
ZiBncmFudCByZWZlcmVuY2VzIHRvIGJlIG1hcHBlZCBvbgorICogdGhlIGJhY2tlbmQuIFRoZSBt
ZXNzYWdlIG9mIHR5cGUgWEVOX05FVElGX0NUUkxfVFlQRV9BRERfR1JFRl9NQVBQSU5HCisgKiBw
cmlvciBpdHMgdXNhZ2UgaW4gdGhlIGNvbW1hbmQgcmluZyBhbGxvd3MgZm9yIGNyZWF0aW9uIG9m
IHRoZXNlIG1hcHBpbmdzLgorICogVGhlIGJhY2tlbmQgd2lsbCBtYWludGFpbiBhIGZpeGVkIGFt
b3VudCBvZiB0aGVzZSBtYXBwaW5ncy4KKyAqCisgKiBYRU5fTkVUSUZfQ1RSTF9UWVBFX0dFVF9H
UkVGX01BUFBJTkdfU0laRSBsZXRzIGEgZnJvbnRlbmQgcXVlcnkgaG93IG1hbnkKKyAqIG9mIHRo
ZXNlIG1hcHBpbmdzIGNhbiBiZSBrZXB0LgorICoKKyAqIEVhY2ggZW50cnkgaW4gdGhlIFhFTl9O
RVRJRl9DVFJMX1RZUEVfe0FERCxERUx9X0dSRUZfTUFQUElORyBpbnB1dCB0YWJsZSBoYXMKKyAq
IHRoZSBmb2xsb3dpbmcgZm9ybWF0OgorICoKKyAqICAgIDAgICAgIDEgICAgIDIgICAgIDMgICAg
IDQgICAgIDUgICAgIDYgICAgIDcgIG9jdGV0CisgKiArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0r
LS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rCisgKiB8IGdyYW50IHJlZiAgICAgICAgICAgICB8ICBm
bGFncyAgICB8ICBzdGF0dXMgICB8CisgKiArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0r
LS0tLS0rLS0tLS0rLS0tLS0rCisgKgorICogZ3JhbnQgcmVmOiBncmFudCByZWZlcmVuY2UgKElO
KQorICogZmxhZ3M6IGZsYWdzIGRlc2NyaWJpbmcgdGhlIGNvbnRyb2wgb3BlcmF0aW9uIChJTikK
KyAqIHN0YXR1czogWEVOX05FVElGX0NUUkxfU1RBVFVTXyogKE9VVCkKKyAqCisgKiAnc3RhdHVz
JyBpcyBhbiBvdXRwdXQgcGFyYW1ldGVyIHdoaWNoIGRvZXMgbm90IHJlcXVpcmUgdG8gYmUgc2V0
IHRvIHplcm8KKyAqIHByaW9yIHRvIGl0cyB1c2FnZSBpbiB0aGUgY29ycmVzcG9uZGluZyBjb250
cm9sIG1lc3NhZ2VzLgorICovCisKK3N0cnVjdCB4ZW5fbmV0aWZfZ3JlZiB7CisgICAgICAgZ3Jh
bnRfcmVmX3QgcmVmOworICAgICAgIHVpbnQxNl90IGZsYWdzOworCisjZGVmaW5lIF9YRU5fTkVU
SUZfQ1RSTEZfR1JFRl9yZWFkb25seSAgICAwCisjZGVmaW5lIFhFTl9ORVRJRl9DVFJMRl9HUkVG
X3JlYWRvbmx5ICAgICgxVTw8X1hFTl9ORVRJRl9DVFJMRl9HUkVGX3JlYWRvbmx5KQorCisgICAg
ICAgdWludDE2X3Qgc3RhdHVzOworfTsKKwogLyoKICAqIENvbnRyb2wgbWVzc2FnZXMKICAqID09
PT09PT09PT09PT09PT0KQEAgLTYwOSw2ICs2NTAsODggQEAgc3RydWN0IHhlbl9uZXRpZl9jdHJs
X3Jlc3BvbnNlIHsKICAqICAgICAgIGludmFsaWRhdGUgYW55IHRhYmxlIGRhdGEgb3V0c2lkZSB0
aGF0IHJhbmdlLgogICogICAgICAgVGhlIGdyYW50IHJlZmVyZW5jZSBtYXkgYmUgcmVhZC1vbmx5
IGFuZCBtdXN0IHJlbWFpbiB2YWxpZCB1bnRpbAogICogICAgICAgdGhlIHJlc3BvbnNlIGhhcyBi
ZWVuIHByb2Nlc3NlZC4KKyAqCisgKiBYRU5fTkVUSUZfQ1RSTF9UWVBFX0dFVF9HUkVGX01BUFBJ
TkdfU0laRQorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq
CisgKiBUaGlzIGlzIHNlbnQgYnkgdGhlIGZyb250ZW5kIHRvIGZldGNoIHRoZSBudW1iZXIgb2Yg
Z3JlZnMgdGhhdCBjYW4gYmUga2VwdAorICogbWFwcGVkIGluIHRoZSBiYWNrZW5kLgorICoKKyAq
IFJlcXVlc3Q6CisgKgorICogIHR5cGUgICAgPSBYRU5fTkVUSUZfQ1RSTF9UWVBFX0dFVF9HUkVG
X01BUFBJTkdfU0laRQorICogIGRhdGFbMF0gPSBxdWV1ZSBpbmRleCAoYXNzdW1lZCAwIGZvciBz
aW5nbGUgcXVldWUpCisgKiAgZGF0YVsxXSA9IDAKKyAqICBkYXRhWzJdID0gMAorICoKKyAqIFJl
c3BvbnNlOgorICoKKyAqICBzdGF0dXMgPSBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfTk9UX1NVUFBP
UlRFRCAgICAgLSBPcGVyYXRpb24gbm90CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkCisgKiAgICAgICAgICAgWEVOX05FVElG
X0NUUkxfU1RBVFVTX0lOVkFMSURfUEFSQU1FVEVSIC0gVGhlIHF1ZXVlIGluZGV4IGlzCisgKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0IG9m
IHJhbmdlCisgKiAgICAgICAgICAgWEVOX05FVElGX0NUUkxfU1RBVFVTX1NVQ0NFU1MgICAgICAg
ICAgIC0gT3BlcmF0aW9uIHN1Y2Nlc3NmdWwKKyAqICBkYXRhICAgPSBtYXhpbXVtIG51bWJlciBv
ZiBlbnRyaWVzIGFsbG93ZWQgaW4gdGhlIGdyZWYgbWFwcGluZyB0YWJsZQorICogICAgICAgICAg
IChpZiBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwpIG9yIHplcm8gaWYgaXQgaXMgbm90IHN1cHBv
cnRlZC4KKyAqCisgKiBYRU5fTkVUSUZfQ1RSTF9UWVBFX0FERF9HUkVGX01BUFBJTkcKKyAqIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIFRoaXMgaXMgc2VudCBi
eSB0aGUgZnJvbnRlbmQgZm9yIGJhY2tlbmQgdG8gbWFwIGEgbGlzdCBvZiBncmFudAorICogcmVm
ZXJlbmNlcy4KKyAqCisgKiBSZXF1ZXN0OgorICoKKyAqICB0eXBlICAgID0gWEVOX05FVElGX0NU
UkxfVFlQRV9BRERfR1JFRl9NQVBQSU5HCisgKiAgZGF0YVswXSA9IHF1ZXVlIGluZGV4CisgKiAg
ZGF0YVsxXSA9IGdyYW50IHJlZmVyZW5jZSBvZiBwYWdlIGNvbnRhaW5pbmcgdGhlIG1hcHBpbmcg
bGlzdAorICogICAgICAgICAgICAoci93IGFuZCBhc3N1bWVkIHRvIHN0YXJ0IGF0IGJlZ2lubmlu
ZyBvZiBwYWdlKQorICogIGRhdGFbMl0gPSBzaXplIG9mIGxpc3QgaW4gZW50cmllcworICoKKyAq
IFJlc3BvbnNlOgorICoKKyAqICBzdGF0dXMgPSBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfTk9UX1NV
UFBPUlRFRCAgICAgLSBPcGVyYXRpb24gbm90CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkCisgKiAgICAgICAgICAgWEVOX05F
VElGX0NUUkxfU1RBVFVTX0lOVkFMSURfUEFSQU1FVEVSIC0gT3BlcmF0aW9uIGZhaWxlZAorICog
ICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19TVUNDRVNTICAgICAgICAgICAtIE9wZXJh
dGlvbiBzdWNjZXNzZnVsCisgKgorICogTk9URTogRWFjaCBlbnRyeSBpbiB0aGUgaW5wdXQgdGFi
bGUgaGFzIHRoZSBmb3JtYXQgb3V0bGluZWQKKyAqICAgICAgIGluIHN0cnVjdCB4ZW5fbmV0aWZf
Z3JlZi4KKyAqICAgICAgIENvbnRyYXJ5IHRvIFhFTl9ORVRJRl9DVFJMX1RZUEVfREVMX0dSRUZf
TUFQUElORywgdGhlIHN0cnVjdAorICogICAgICAgeGVuX25ldGlmX2dyZWYgJ3N0YXR1cycgZmll
bGQgaXMgbm90IHVzZWQgYW5kIHRoZXJlZm9yZSB0aGUgcmVzcG9uc2UKKyAqICAgICAgICdzdGF0
dXMnIGRldGVybWluZXMgdGhlIHN1Y2Nlc3Mgb2YgdGhpcyBvcGVyYXRpb24uIEluIGNhc2Ugb2YK
KyAqICAgICAgIGZhaWx1cmUgbm9uZSBvZiBncmFudHMgbWFwcGluZ3MgZ2V0IGFkZGVkIGluIHRo
ZSBiYWNrZW5kLgorICoKKyAqIFhFTl9ORVRJRl9DVFJMX1RZUEVfREVMX0dSRUZfTUFQUElORwor
ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogVGhpcyBpcyBz
ZW50IGJ5IHRoZSBmcm9udGVuZCBmb3IgYmFja2VuZCB0byB1bm1hcCBhIGxpc3Qgb2YgZ3JhbnQK
KyAqIHJlZmVyZW5jZXMuCisgKgorICogUmVxdWVzdDoKKyAqCisgKiAgdHlwZSAgICA9IFhFTl9O
RVRJRl9DVFJMX1RZUEVfREVMX0dSRUZfTUFQUElORworICogIGRhdGFbMF0gPSBxdWV1ZSBpbmRl
eAorICogIGRhdGFbMV0gPSBncmFudCByZWZlcmVuY2Ugb2YgcGFnZSBjb250YWluaW5nIHRoZSBt
YXBwaW5nIGxpc3QKKyAqICAgICAgICAgICAgKHIvdyBhbmQgYXNzdW1lZCB0byBzdGFydCBhdCBi
ZWdpbm5pbmcgb2YgcGFnZSkKKyAqICBkYXRhWzJdID0gc2l6ZSBvZiBsaXN0IGluIGVudHJpZXMK
KyAqCisgKiBSZXNwb25zZToKKyAqCisgKiAgc3RhdHVzID0gWEVOX05FVElGX0NUUkxfU1RBVFVT
X05PVF9TVVBQT1JURUQgICAgIC0gT3BlcmF0aW9uIG5vdAorICogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZAorICogICAgICAgICAg
IFhFTl9ORVRJRl9DVFJMX1NUQVRVU19JTlZBTElEX1BBUkFNRVRFUiAtIE9wZXJhdGlvbiBmYWls
ZWQKKyAqICAgICAgICAgICBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfU1VDQ0VTUyAgICAgICAgICAg
LSBPcGVyYXRpb24gc3VjY2Vzc2Z1bAorICogIGRhdGEgICA9IG51bWJlciBvZiBlbnRyaWVzIHRo
YXQgd2VyZSB1bm1hcHBlZAorICoKKyAqIE5PVEU6IEVhY2ggZW50cnkgaW4gdGhlIGlucHV0IHRh
YmxlIGhhcyB0aGUgZm9ybWF0IG91dGxpbmVkIGluIHN0cnVjdAorICogICAgICAgeGVuX25ldGlm
X2dyZWYuCisgKiAgICAgICBUaGUgc3RydWN0IHhlbl9uZXRpZl9ncmVmICdzdGF0dXMnIGZpZWxk
IGRldGVybWluZXMgaWYgdGhlIGVudHJ5CisgKiAgICAgICB3YXMgc3VjY2Vzc2Z1bGx5IHJlbW92
ZWQuCisgKiAgICAgICBUaGUgZW50cmllcyB1c2VkIGFyZSBvbmx5IHRoZSBvbmVzIHJlcHJlc2Vu
dGluZyBncmFudCByZWZlcmVuY2VzIHRoYXQKKyAqICAgICAgIHdlcmUgcHJldmlvdXNseSB0aGUg
c3ViamVjdCBvZiBhIFhFTl9ORVRJRl9DVFJMX1RZUEVfQUREX0dSRUZfTUFQUElORworICogICAg
ICAgb3BlcmF0aW9uLiBBbnkgb3RoZXIgZW50cmllcyB3aWxsIGhhdmUgdGhlaXIgc3RhdHVzIHNl
dCB0bworICogICAgICAgWEVOX05FVElGX0NUUkxfU1RBVFVTX0lOVkFMSURfUEFSQU1FVEVSIHVw
b24gY29tcGxldGlvbi4KICAqLwogCiBERUZJTkVfUklOR19UWVBFUyh4ZW5fbmV0aWZfY3RybCwK
ZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3hzbS9DT1BZSU5HIGIvaW5jbHVkZS94ZW4veHNtL0NP
UFlJTkcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmZjNmQ2MQotLS0gL2Rl
di9udWxsCisrKyBiL2luY2x1ZGUveGVuL3hzbS9DT1BZSU5HCkBAIC0wLDAgKzEsMzggQEAKK1hF
TiBOT1RJQ0UKKz09PT09PT09PT0KKworVGhpcyBjb3B5cmlnaHQgYXBwbGllcyB0byBhbGwgZmls
ZXMgd2l0aGluIHRoaXMgc3ViZGlyZWN0b3J5IGFuZCBpdHMKK3N1YmRpcmVjdG9yaWVzOgorICBp
bmNsdWRlL3B1YmxpYy8qLmgKKyAgaW5jbHVkZS9wdWJsaWMvaHZtLyouaAorICBpbmNsdWRlL3B1
YmxpYy9pby8qLmgKKworVGhlIGludGVudGlvbiBpcyB0aGF0IHRoZXNlIGZpbGVzIGNhbiBiZSBm
cmVlbHkgY29waWVkIGludG8gdGhlIHNvdXJjZQordHJlZSBvZiBhbiBvcGVyYXRpbmcgc3lzdGVt
IHdoZW4gcG9ydGluZyB0aGF0IE9TIHRvIHJ1biBvbiBYZW4uIERvaW5nCitzbyBkb2VzICpub3Qq
IGNhdXNlIHRoZSBPUyB0byBiZWNvbWUgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIEdQTC4K
KworQWxsIG90aGVyIGZpbGVzIGluIHRoZSBYZW4gc291cmNlIGRpc3RyaWJ1dGlvbiBhcmUgY292
ZXJlZCBieSB2ZXJzaW9uCisyIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBleGNl
cHQgd2hlcmUgZXhwbGljaXRseSBzdGF0ZWQKK290aGVyd2lzZSB3aXRoaW4gaW5kaXZpZHVhbCBz
b3VyY2UgZmlsZXMuCisKKyAtLSBLZWlyIEZyYXNlciAob24gYmVoYWxmIG9mIHRoZSBYZW4gdGVh
bSkKKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisKK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg
b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKK29mIHRoaXMgc29mdHdh
cmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0
bworZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdp
dGhvdXQgbGltaXRhdGlvbiB0aGUKK3JpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us
IHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorc2VsbCBjb3BpZXMgb2Yg
dGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUg
aXMKK2Z1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90
aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCithbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRp
b25zIG9mIHRoZSBTb2Z0d2FyZS4KKworVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIs
IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IgCitJTVBMSUVELCBJTkNM
VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSwgCitGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5U
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgCitBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJF
IExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIAorTElBQklMSVRZLCBXSEVU
SEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcg
CitGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUg
VVNFIE9SIE9USEVSIAorREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgpkaWZmIC0tZ2l0IGEvaW5j
bHVkZS94ZW4veHNtL2FyY2gtYXJtLmggYi9pbmNsdWRlL3hlbi94c20vYXJjaC1hcm0uaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NzA4Y2QyCi0tLSAvZGV2L251bGwKKysr
IGIvaW5jbHVkZS94ZW4veHNtL2FyY2gtYXJtLmgKQEAgLTAsMCArMSw0NzYgQEAKKy8qKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKKyAqIGFyY2gtYXJtLmgKKyAqCisgKiBHdWVzdCBPUyBpbnRlcmZhY2Ug
dG8gQVJNIFhlbi4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9m
IGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3
YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwg
dG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGlu
ZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks
IG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwg
Y29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl
IFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0
aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVz
IG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09G
VFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwg
RVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAq
IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERB
TUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O
VFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4g
Q09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFM
SU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQ29weXJpZ2h0IDIwMTEgKEMpIENpdHJpeCBT
eXN0ZW1zCisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfQVJDSF9BUk1fSF9fCisjZGVmaW5l
IF9fWEVOX1BVQkxJQ19BUkNIX0FSTV9IX18KKworLyoKKyAqIGBpbmNvbnRlbnRzIDUwIGFybV9h
YmkgSHlwZXJjYWxsIENhbGxpbmcgQ29udmVudGlvbgorICoKKyAqIEEgaHlwZXJjYWxsIGlzIGlz
c3VlZCB1c2luZyB0aGUgQVJNIEhWQyBpbnN0cnVjdGlvbi4KKyAqCisgKiBBIGh5cGVyY2FsbCBj
YW4gdGFrZSB1cCB0byA1IGFyZ3VtZW50cy4gVGhlc2UgYXJlIHBhc3NlZCBpbgorICogcmVnaXN0
ZXJzLCB0aGUgZmlyc3QgYXJndW1lbnQgaW4geDAvcjAgKGZvciBhcm02NC9hcm0zMiBndWVzdHMK
KyAqIHJlc3BlY3RpdmVseSBpcnJlc3BlY3RpdmUgb2Ygd2hldGhlciB0aGUgdW5kZXJseWluZyBo
eXBlcnZpc29yIGlzCisgKiAzMi0gb3IgNjQtYml0KSwgdGhlIHNlY29uZCBhcmd1bWVudCBpbiB4
MS9yMSwgdGhlIHRoaXJkIGluIHgyL3IyLAorICogdGhlIGZvcnRoIGluIHgzL3IzIGFuZCB0aGUg
ZmlmdGggaW4geDQvcjQuCisgKgorICogVGhlIGh5cGVyY2FsbCBudW1iZXIgaXMgcGFzc2VkIGlu
IHIxMiAoYXJtKSBvciB4MTYgKGFybTY0KS4gSW4gYm90aAorICogY2FzZXMgdGhlIHJlbGV2YW50
IEFSTSBwcm9jZWR1cmUgY2FsbGluZyBjb252ZW50aW9uIHNwZWNpZmllcyB0aGlzCisgKiBpcyBh
biBpbnRlci1wcm9jZWR1cmUtY2FsbCBzY3JhdGNoIHJlZ2lzdGVyIChlLmcuIGZvciB1c2UgaW4g
bGlua2VyCisgKiBzdHVicykuIFRoaXMgdXNlIGRvZXMgbm90IGNvbmZsaWN0IHdpdGggdXNlIGR1
cmluZyBhIGh5cGVyY2FsbC4KKyAqCisgKiBUaGUgSFZDIElTUyBtdXN0IGNvbnRhaW4gYSBYZW4g
c3BlY2lmaWMgVEFHOiBYRU5fSFlQRVJDQUxMX1RBRy4KKyAqCisgKiBUaGUgcmV0dXJuIHZhbHVl
IGlzIGluIHgwL3IwLgorICoKKyAqIFRoZSBoeXBlcmNhbGwgd2lsbCBjbG9iYmVyIHgxNi9yMTIg
YW5kIHRoZSBhcmd1bWVudCByZWdpc3RlcnMgdXNlZAorICogYnkgdGhhdCBoeXBlcmNhbGwgKGV4
Y2VwdCByMCB3aGljaCBpcyB0aGUgcmV0dXJuIHZhbHVlKSBpLmUuIGluCisgKiBhZGRpdGlvbiB0
byB4MTYvcjEyIGEgMiBhcmd1bWVudCBoeXBlcmNhbGwgd2lsbCBjbG9iYmVyIHgxL3IxIGFuZCBh
CisgKiA0IGFyZ3VtZW50IGh5cGVyY2FsbCB3aWxsIGNsb2JiZXIgeDEvcjEsIHgyL3IyIGFuZCB4
My9yMy4KKyAqCisgKiBQYXJhbWV0ZXIgc3RydWN0cyBwYXNzZWQgdG8gaHlwZXJjYWxscyBhcmUg
bGFpZCBvdXQgYWNjb3JkaW5nIHRvCisgKiB0aGUgUHJvY2VkdXJlIENhbGwgU3RhbmRhcmQgZm9y
IHRoZSBBUk0gQXJjaGl0ZWN0dXJlIChBQVBDUywgQUtBCisgKiBFQUJJKSBhbmQgUHJvY2VkdXJl
IENhbGwgU3RhbmRhcmQgZm9yIHRoZSBBUk0gNjQtYml0IEFyY2hpdGVjdHVyZQorICogKEFBUENT
NjQpLiBXaGVyZSB0aGVyZSBpcyBhIGNvbmZsaWN0IHRoZSA2NC1iaXQgc3RhbmRhcmQgc2hvdWxk
IGJlCisgKiB1c2VkIHJlZ2FyZGxlc3Mgb2YgZ3Vlc3QgdHlwZS4gU3RydWN0dXJlcyB3aGljaCBh
cmUgcGFzc2VkIGFzCisgKiBoeXBlcmNhbGwgYXJndW1lbnRzIGFyZSBhbHdheXMgbGl0dGxlIGVu
ZGlhbi4KKyAqCisgKiBBbGwgbWVtb3J5IHdoaWNoIGlzIHNoYXJlZCB3aXRoIG90aGVyIGVudGl0
aWVzIGluIHRoZSBzeXN0ZW0KKyAqIChpbmNsdWRpbmcgdGhlIGh5cGVydmlzb3IgYW5kIG90aGVy
IGd1ZXN0cykgbXVzdCByZXNpZGUgaW4gbWVtb3J5CisgKiB3aGljaCBpcyBtYXBwZWQgYXMgTm9y
bWFsIElubmVyIFdyaXRlLUJhY2sgT3V0ZXIgV3JpdGUtQmFjayBJbm5lci1TaGFyZWFibGUuCisg
KiBUaGlzIGFwcGxpZXMgdG86CisgKiAgLSBoeXBlcmNhbGwgYXJndW1lbnRzIHBhc3NlZCB2aWEg
YSBwb2ludGVyIHRvIGd1ZXN0IG1lbW9yeS4KKyAqICAtIG1lbW9yeSBzaGFyZWQgdmlhIHRoZSBn
cmFudCB0YWJsZSBtZWNoYW5pc20gKGluY2x1ZGluZyBQViBJL08KKyAqICAgIHJpbmdzIGV0Yyku
CisgKiAgLSBtZW1vcnkgc2hhcmVkIHdpdGggdGhlIGh5cGVydmlzb3IgKHN0cnVjdCBzaGFyZWRf
aW5mbywgc3RydWN0CisgKiAgICB2Y3B1X2luZm8sIHRoZSBncmFudCB0YWJsZSwgZXRjKS4KKyAq
CisgKiBBbnkgY2FjaGUgYWxsb2NhdGlvbiBoaW50cyBhcmUgYWNjZXB0YWJsZS4KKyAqLworCisv
KgorICogYGluY29udGVudHMgNTUgYXJtX2hjYWxsIFN1cHBvcnRlZCBIeXBlcmNhbGxzCisgKgor
ICogWGVuIG9uIEFSTSBtYWtlcyBleHRlbnNpdmUgdXNlIG9mIGhhcmR3YXJlIGZhY2lsaXRpZXMg
YW5kIHRoZXJlZm9yZQorICogb25seSBhIHN1YnNldCBvZiB0aGUgcG90ZW50aWFsIGh5cGVyY2Fs
bHMgYXJlIHJlcXVpcmVkLgorICoKKyAqIFNpbmNlIEFSTSB1c2VzIHNlY29uZCBzdGFnZSBwYWdp
bmcgYW55IG1hY2hpbmUvcGh5c2ljYWwgYWRkcmVzc2VzCisgKiBwYXNzZWQgdG8gaHlwZXJjYWxs
cyBhcmUgR3Vlc3QgUGh5c2ljYWwgQWRkcmVzc2VzIChJbnRlcm1lZGlhdGUKKyAqIFBoeXNpY2Fs
IEFkZHJlc3NlcykgdW5sZXNzIG90aGVyd2lzZSBub3RlZC4KKyAqCisgKiBUaGUgZm9sbG93aW5n
IGh5cGVyY2FsbHMgKGFuZCBzdWIgb3BlcmF0aW9ucykgYXJlIHN1cHBvcnRlZCBvbiB0aGUKKyAq
IEFSTSBwbGF0Zm9ybS4gT3RoZXIgaHlwZXJjYWxscyBzaG91bGQgYmUgY29uc2lkZXJlZAorICog
dW5hdmFpbGFibGUvdW5zdXBwb3J0ZWQuCisgKgorICogIEhZUEVSVklTT1JfbWVtb3J5X29wCisg
KiAgIEFsbCBnZW5lcmljIHN1Yi1vcGVyYXRpb25zCisgKgorICogIEhZUEVSVklTT1JfZG9tY3Rs
CisgKiAgIEFsbCBnZW5lcmljIHN1Yi1vcGVyYXRpb25zLCB3aXRoIHRoZSBleGNlcHRpb24gb2Y6
CisgKiAgICAqIFhFTl9ET01DVExfaXJxX3Blcm1pc3Npb24gKG5vdCB5ZXQgaW1wbGVtZW50ZWQp
CisgKgorICogIEhZUEVSVklTT1Jfc2NoZWRfb3AKKyAqICAgQWxsIGdlbmVyaWMgc3ViLW9wZXJh
dGlvbnMsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZjoKKyAqICAgICogU0NIRURPUF9ibG9jayAtLSBw
cmVmZXIgd2ZpIGhhcmR3YXJlIGluc3RydWN0aW9uCisgKgorICogIEhZUEVSVklTT1JfY29uc29s
ZV9pbworICogICBBbGwgZ2VuZXJpYyBzdWItb3BlcmF0aW9ucworICoKKyAqICBIWVBFUlZJU09S
X3hlbl92ZXJzaW9uCisgKiAgIEFsbCBnZW5lcmljIHN1Yi1vcGVyYXRpb25zCisgKgorICogIEhZ
UEVSVklTT1JfZXZlbnRfY2hhbm5lbF9vcAorICogICBBbGwgZ2VuZXJpYyBzdWItb3BlcmF0aW9u
cworICoKKyAqICBIWVBFUlZJU09SX3BoeXNkZXZfb3AKKyAqICAgTm8gc3ViLW9wZXJhdGlvbnMg
YXJlIGN1cnJlbnR5IHN1cHBvcnRlZAorICoKKyAqICBIWVBFUlZJU09SX3N5c2N0bAorICogICBB
bGwgZ2VuZXJpYyBzdWItb3BlcmF0aW9ucywgd2l0aCB0aGUgZXhjZXB0aW9uIG9mOgorICogICAg
KiBYRU5fU1lTQ1RMX3BhZ2Vfb2ZmbGluZV9vcAorICogICAgKiBYRU5fU1lTQ1RMX2dldF9wbXN0
YXQKKyAqICAgICogWEVOX1NZU0NUTF9wbV9vcAorICoKKyAqICBIWVBFUlZJU09SX2h2bV9vcAor
ICogICBFeGFjdGx5IHRoZXNlIHN1Yi1vcGVyYXRpb25zIGFyZSBzdXBwb3J0ZWQ6CisgKiAgICAq
IEhWTU9QX3NldF9wYXJhbQorICogICAgKiBIVk1PUF9nZXRfcGFyYW0KKyAqCisgKiAgSFlQRVJW
SVNPUl9ncmFudF90YWJsZV9vcAorICogICBBbGwgZ2VuZXJpYyBzdWItb3BlcmF0aW9ucworICoK
KyAqICBIWVBFUlZJU09SX3ZjcHVfb3AKKyAqICAgRXhhY3RseSB0aGVzZSBzdWItb3BlcmF0aW9u
cyBhcmUgc3VwcG9ydGVkOgorICogICAgKiBWQ1BVT1BfcmVnaXN0ZXJfdmNwdV9pbmZvCisgKiAg
ICAqIFZDUFVPUF9yZWdpc3Rlcl9ydW5zdGF0ZV9tZW1vcnlfYXJlYQorICoKKyAqCisgKiBPdGhl
ciBub3RlcyBvbiB0aGUgQVJNIEFCSToKKyAqCisgKiAtIHN0cnVjdCBzdGFydF9pbmZvIGlzIG5v
dCBleHBvcnRlZCB0byBBUk0gZ3Vlc3RzLgorICoKKyAqIC0gc3RydWN0IHNoYXJlZF9pbmZvIGlz
IG1hcHBlZCBieSBBUk0gZ3Vlc3RzIHVzaW5nIHRoZQorICogICBIWVBFUlZJU09SX21lbW9yeV9v
cCBzdWItb3AgWEVOTUVNX2FkZF90b19waHlzbWFwLCBwYXNzaW5nCisgKiAgIFhFTk1BUFNQQUNF
X3NoYXJlZF9pbmZvIGFzIHNwYWNlIHBhcmFtZXRlci4KKyAqCisgKiAtIEFsbCB0aGUgcGVyLWNw
dSBzdHJ1Y3QgdmNwdV9pbmZvIGFyZSBtYXBwZWQgYnkgQVJNIGd1ZXN0cyB1c2luZyB0aGUKKyAq
ICAgSFlQRVJWSVNPUl92Y3B1X29wIHN1Yi1vcCBWQ1BVT1BfcmVnaXN0ZXJfdmNwdV9pbmZvLCBp
bmNsdWRpbmcgY3B1MAorICogICBzdHJ1Y3QgdmNwdV9pbmZvLgorICoKKyAqIC0gVGhlIGdyYW50
IHRhYmxlIGlzIG1hcHBlZCB1c2luZyB0aGUgSFlQRVJWSVNPUl9tZW1vcnlfb3Agc3ViLW9wCisg
KiAgIFhFTk1FTV9hZGRfdG9fcGh5c21hcCwgcGFzc2luZyBYRU5NQVBTUEFDRV9ncmFudF90YWJs
ZSBhcyBzcGFjZQorICogICBwYXJhbWV0ZXIuIFRoZSBtZW1vcnkgcmFuZ2Ugc3BlY2lmaWVkIHVu
ZGVyIHRoZSBYZW4gY29tcGF0aWJsZQorICogICBoeXBlcnZpc29yIG5vZGUgb24gZGV2aWNlIHRy
ZWUgY2FuIGJlIHVzZWQgYXMgdGFyZ2V0IGdwZm4gZm9yIHRoZQorICogICBtYXBwaW5nLgorICoK
KyAqIC0gWGVuc3RvcmUgaXMgaW5pdGlhbGl6ZWQgYnkgdXNpbmcgdGhlIHR3byBodm1fcGFyYW1z
CisgKiAgIEhWTV9QQVJBTV9TVE9SRV9QRk4gYW5kIEhWTV9QQVJBTV9TVE9SRV9FVlRDSE4uIFRo
ZXkgY2FuIGJlIHJlYWQKKyAqICAgd2l0aCB0aGUgSFlQRVJWSVNPUl9odm1fb3Agc3ViLW9wIEhW
TU9QX2dldF9wYXJhbS4KKyAqCisgKiAtIFRoZSBwYXJhdmlydHVhbGl6ZWQgY29uc29sZSBpcyBp
bml0aWFsaXplZCBieSB1c2luZyB0aGUgdHdvCisgKiAgIGh2bV9wYXJhbXMgSFZNX1BBUkFNX0NP
TlNPTEVfUEZOIGFuZCBIVk1fUEFSQU1fQ09OU09MRV9FVlRDSE4uIFRoZXkKKyAqICAgY2FuIGJl
IHJlYWQgd2l0aCB0aGUgSFlQRVJWSVNPUl9odm1fb3Agc3ViLW9wIEhWTU9QX2dldF9wYXJhbS4K
KyAqCisgKiAtIEV2ZW50IGNoYW5uZWwgbm90aWZpY2F0aW9ucyBhcmUgZGVsaXZlcmVkIHVzaW5n
IHRoZSBwZXJjcHUgR0lDCisgKiAgIGludGVycnVwdCBzcGVjaWZpZWQgdW5kZXIgdGhlIFhlbiBj
b21wYXRpYmxlIGh5cGVydmlzb3Igbm9kZSBvbgorICogICBkZXZpY2UgdHJlZS4KKyAqCisgKiAt
IFRoZSBkZXZpY2UgdHJlZSBYZW4gY29tcGF0aWJsZSBub2RlIGlzIGZ1bGx5IGRlc2NyaWJlZCB1
bmRlciBMaW51eAorICogICBhdCBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJt
L3hlbi50eHQuCisgKi8KKworI2RlZmluZSBYRU5fSFlQRVJDQUxMX1RBRyAgIDBYRUExCisKKyNk
ZWZpbmUgIGludDY0X2FsaWduZWRfdCAgaW50NjRfdCBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDgp
KSkKKyNkZWZpbmUgdWludDY0X2FsaWduZWRfdCB1aW50NjRfdCBfX2F0dHJpYnV0ZV9fKChhbGln
bmVkKDgpKSkKKworI2lmbmRlZiBfX0FTU0VNQkxZX18KKyNkZWZpbmUgX19fREVGSU5FX1hFTl9H
VUVTVF9IQU5ETEUobmFtZSwgdHlwZSkgICAgICAgICAgICAgICAgICBcCisgICAgdHlwZWRlZiB1
bmlvbiB7IHR5cGUgKnA7IHVuc2lnbmVkIGxvbmcgcTsgfSAgICAgICAgICAgICAgICAgXAorICAg
ICAgICBfX2d1ZXN0X2hhbmRsZV8gIyMgbmFtZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICB0eXBlZGVmIHVuaW9uIHsgdHlwZSAqcDsgdWludDY0X2FsaWduZWRfdCBxOyB9
ICAgICAgICAgICAgICBcCisgICAgICAgIF9fZ3Vlc3RfaGFuZGxlXzY0XyAjIyBuYW1lCisKKy8q
CisgKiBYRU5fR1VFU1RfSEFORExFIHJlcHJlc2VudHMgYSBndWVzdCBwb2ludGVyLCB3aGVuIHBh
c3NlZCBhcyBhIGZpZWxkCisgKiBpbiBhIHN0cnVjdCBpbiBtZW1vcnkuIE9uIEFSTSBpcyBhbHdh
eXMgOCBieXRlcyBzaXplcyBhbmQgOCBieXRlcworICogYWxpZ25lZC4KKyAqIFhFTl9HVUVTVF9I
QU5ETEVfUEFSQU0gcmVwcmVzZW50cyBhIGd1ZXN0IHBvaW50ZXIsIHdoZW4gcGFzc2VkIGFzIGFu
CisgKiBoeXBlcmNhbGwgYXJndW1lbnQuIEl0IGlzIDQgYnl0ZXMgb24gYWFyY2gzMiBhbmQgOCBi
eXRlcyBvbiBhYXJjaDY0LgorICovCisjZGVmaW5lIF9fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo
bmFtZSwgdHlwZSkgXAorICAgIF9fX0RFRklORV9YRU5fR1VFU1RfSEFORExFKG5hbWUsIHR5cGUp
OyAgIFwKKyAgICBfX19ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShjb25zdF8jI25hbWUsIGNvbnN0
IHR5cGUpCisjZGVmaW5lIERFRklORV9YRU5fR1VFU1RfSEFORExFKG5hbWUpICAgX19ERUZJTkVf
WEVOX0dVRVNUX0hBTkRMRShuYW1lLCBuYW1lKQorI2RlZmluZSBfX1hFTl9HVUVTVF9IQU5ETEUo
bmFtZSkgICAgICAgIF9fZ3Vlc3RfaGFuZGxlXzY0XyAjIyBuYW1lCisjZGVmaW5lIFhFTl9HVUVT
VF9IQU5ETEUobmFtZSkgICAgICAgICAgX19YRU5fR1VFU1RfSEFORExFKG5hbWUpCisjZGVmaW5l
IFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0obmFtZSkgICAgX19ndWVzdF9oYW5kbGVfICMjIG5hbWUK
KyNkZWZpbmUgc2V0X3hlbl9ndWVzdF9oYW5kbGVfcmF3KGhuZCwgdmFsKSAgICAgICAgICAgICAg
ICAgIFwKKyAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICAgICAgdHlwZW9mKCYoaG5kKSkgX3N4Z2hyX3RtcCA9ICYoaG5kKTsg
ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgX3N4Z2hyX3RtcC0+cSA9IDA7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgX3N4Z2hyX3RtcC0+cCA9IHZhbDsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9IHdoaWxlICggMCApCisjZGVmaW5l
IHNldF94ZW5fZ3Vlc3RfaGFuZGxlKGhuZCwgdmFsKSBzZXRfeGVuX2d1ZXN0X2hhbmRsZV9yYXco
aG5kLCB2YWwpCisKKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAhZGVmaW5lZChfX1NUUklDVF9B
TlNJX18pCisvKiBBbm9ueW1vdXMgdW5pb24gaW5jbHVkZXMgYm90aCAzMi0gYW5kIDY0LWJpdCBu
YW1lcyAoZS5nLiwgcjAveDApLiAqLworIyBkZWZpbmUgX19ERUNMX1JFRyhuNjQsIG4zMikgdW5p
b24geyAgICAgICAgICBcCisgICAgICAgIHVpbnQ2NF90IG42NDsgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICAgICAgdWludDMyX3QgbjMyOyAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorICAgIH0KKyNlbHNlCisvKiBOb24tZ2NjIHNvdXJjZXMgbXVzdCBhbHdheXMgdXNlIHRoZSBw
cm9wZXIgNjQtYml0IG5hbWUgKGUuZy4sIHgwKS4gKi8KKyNkZWZpbmUgX19ERUNMX1JFRyhuNjQs
IG4zMikgdWludDY0X3QgbjY0CisjZW5kaWYKKworc3RydWN0IHZjcHVfZ3Vlc3RfY29yZV9yZWdz
Cit7CisgICAgLyogICAgICAgICBBYXJjaDY0ICAgICAgIEFhcmNoMzIgKi8KKyAgICBfX0RFQ0xf
UkVHKHgwLCAgICAgICAgICAgcjBfdXNyKTsKKyAgICBfX0RFQ0xfUkVHKHgxLCAgICAgICAgICAg
cjFfdXNyKTsKKyAgICBfX0RFQ0xfUkVHKHgyLCAgICAgICAgICAgcjJfdXNyKTsKKyAgICBfX0RF
Q0xfUkVHKHgzLCAgICAgICAgICAgcjNfdXNyKTsKKyAgICBfX0RFQ0xfUkVHKHg0LCAgICAgICAg
ICAgcjRfdXNyKTsKKyAgICBfX0RFQ0xfUkVHKHg1LCAgICAgICAgICAgcjVfdXNyKTsKKyAgICBf
X0RFQ0xfUkVHKHg2LCAgICAgICAgICAgcjZfdXNyKTsKKyAgICBfX0RFQ0xfUkVHKHg3LCAgICAg
ICAgICAgcjdfdXNyKTsKKyAgICBfX0RFQ0xfUkVHKHg4LCAgICAgICAgICAgcjhfdXNyKTsKKyAg
ICBfX0RFQ0xfUkVHKHg5LCAgICAgICAgICAgcjlfdXNyKTsKKyAgICBfX0RFQ0xfUkVHKHgxMCwg
ICAgICAgICAgcjEwX3Vzcik7CisgICAgX19ERUNMX1JFRyh4MTEsICAgICAgICAgIHIxMV91c3Ip
OworICAgIF9fREVDTF9SRUcoeDEyLCAgICAgICAgICByMTJfdXNyKTsKKworICAgIF9fREVDTF9S
RUcoeDEzLCAgICAgICAgICBzcF91c3IpOworICAgIF9fREVDTF9SRUcoeDE0LCAgICAgICAgICBs
cl91c3IpOworCisgICAgX19ERUNMX1JFRyh4MTUsICAgICAgICAgIF9fdW51c2VkX3NwX2h5cCk7
CisKKyAgICBfX0RFQ0xfUkVHKHgxNiwgICAgICAgICAgbHJfaXJxKTsKKyAgICBfX0RFQ0xfUkVH
KHgxNywgICAgICAgICAgc3BfaXJxKTsKKworICAgIF9fREVDTF9SRUcoeDE4LCAgICAgICAgICBs
cl9zdmMpOworICAgIF9fREVDTF9SRUcoeDE5LCAgICAgICAgICBzcF9zdmMpOworCisgICAgX19E
RUNMX1JFRyh4MjAsICAgICAgICAgIGxyX2FidCk7CisgICAgX19ERUNMX1JFRyh4MjEsICAgICAg
ICAgIHNwX2FidCk7CisKKyAgICBfX0RFQ0xfUkVHKHgyMiwgICAgICAgICAgbHJfdW5kKTsKKyAg
ICBfX0RFQ0xfUkVHKHgyMywgICAgICAgICAgc3BfdW5kKTsKKworICAgIF9fREVDTF9SRUcoeDI0
LCAgICAgICAgICByOF9maXEpOworICAgIF9fREVDTF9SRUcoeDI1LCAgICAgICAgICByOV9maXEp
OworICAgIF9fREVDTF9SRUcoeDI2LCAgICAgICAgICByMTBfZmlxKTsKKyAgICBfX0RFQ0xfUkVH
KHgyNywgICAgICAgICAgcjExX2ZpcSk7CisgICAgX19ERUNMX1JFRyh4MjgsICAgICAgICAgIHIx
Ml9maXEpOworCisgICAgX19ERUNMX1JFRyh4MjksICAgICAgICAgIHNwX2ZpcSk7CisgICAgX19E
RUNMX1JFRyh4MzAsICAgICAgICAgIGxyX2ZpcSk7CisKKyAgICAvKiBSZXR1cm4gYWRkcmVzcyBh
bmQgbW9kZSAqLworICAgIF9fREVDTF9SRUcocGM2NCwgICAgICAgICBwYzMyKTsgICAgICAgICAg
ICAgLyogRUxSX0VMMiAqLworICAgIHVpbnQzMl90IGNwc3I7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLyogU1BTUl9FTDIgKi8KKworICAgIHVuaW9uIHsKKyAgICAgICAgdWludDMyX3Qg
c3Bzcl9lbDE7ICAgICAgIC8qIEFBcmNoNjQgKi8KKyAgICAgICAgdWludDMyX3Qgc3Bzcl9zdmM7
ICAgICAgIC8qIEFBcmNoMzIgKi8KKyAgICB9OworCisgICAgLyogQUFyY2gzMiBndWVzdHMgb25s
eSAqLworICAgIHVpbnQzMl90IHNwc3JfZmlxLCBzcHNyX2lycSwgc3Bzcl91bmQsIHNwc3JfYWJ0
OworCisgICAgLyogQUFyY2g2NCBndWVzdHMgb25seSAqLworICAgIHVpbnQ2NF90IHNwX2VsMDsK
KyAgICB1aW50NjRfdCBzcF9lbDEsIGVscl9lbDE7Cit9OwordHlwZWRlZiBzdHJ1Y3QgdmNwdV9n
dWVzdF9jb3JlX3JlZ3MgdmNwdV9ndWVzdF9jb3JlX3JlZ3NfdDsKK0RFRklORV9YRU5fR1VFU1Rf
SEFORExFKHZjcHVfZ3Vlc3RfY29yZV9yZWdzX3QpOworCisjdW5kZWYgX19ERUNMX1JFRworCit0
eXBlZGVmIHVpbnQ2NF90IHhlbl9wZm5fdDsKKyNkZWZpbmUgUFJJX3hlbl9wZm4gUFJJeDY0CisK
Ky8qIE1heGltdW0gbnVtYmVyIG9mIHZpcnR1YWwgQ1BVcyBpbiBsZWdhY3kgbXVsdGktcHJvY2Vz
c29yIGd1ZXN0cy4gKi8KKy8qIE9ubHkgb25lLiBBbGwgb3RoZXIgVkNQVVMgbXVzdCB1c2UgVkNQ
VU9QX3JlZ2lzdGVyX3ZjcHVfaW5mbyAqLworI2RlZmluZSBYRU5fTEVHQUNZX01BWF9WQ1BVUyAx
CisKK3R5cGVkZWYgdWludDY0X3QgeGVuX3Vsb25nX3Q7CisjZGVmaW5lIFBSSV94ZW5fdWxvbmcg
UFJJeDY0CisKKyNpZiBkZWZpbmVkKF9fWEVOX18pIHx8IGRlZmluZWQoX19YRU5fVE9PTFNfXykK
K3N0cnVjdCB2Y3B1X2d1ZXN0X2NvbnRleHQgeworI2RlZmluZSBfVkdDRl9vbmxpbmUgICAgICAg
ICAgICAgICAgICAgMAorI2RlZmluZSBWR0NGX29ubGluZSAgICAgICAgICAgICAgICAgICAgKDE8
PF9WR0NGX29ubGluZSkKKyAgICB1aW50MzJfdCBmbGFnczsgICAgICAgICAgICAgICAgICAgICAg
ICAgLyogVkdDRl8qICovCisKKyAgICBzdHJ1Y3QgdmNwdV9ndWVzdF9jb3JlX3JlZ3MgdXNlcl9y
ZWdzOyAgLyogQ29yZSBDUFUgcmVnaXN0ZXJzICovCisKKyAgICB1aW50MzJfdCBzY3RscjsKKyAg
ICB1aW50NjRfdCB0dGJjciwgdHRicjAsIHR0YnIxOworfTsKK3R5cGVkZWYgc3RydWN0IHZjcHVf
Z3Vlc3RfY29udGV4dCB2Y3B1X2d1ZXN0X2NvbnRleHRfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFO
RExFKHZjcHVfZ3Vlc3RfY29udGV4dF90KTsKKworLyoKKyAqIHN0cnVjdCB4ZW5fYXJjaF9kb21h
aW5jb25maWcncyBBQkkgaXMgY292ZXJlZCBieQorICogWEVOX0RPTUNUTF9JTlRFUkZBQ0VfVkVS
U0lPTi4KKyAqLworI2RlZmluZSBYRU5fRE9NQ1RMX0NPTkZJR19HSUNfTkFUSVZFICAgIDAKKyNk
ZWZpbmUgWEVOX0RPTUNUTF9DT05GSUdfR0lDX1YyICAgICAgICAxCisjZGVmaW5lIFhFTl9ET01D
VExfQ09ORklHX0dJQ19WMyAgICAgICAgMgorc3RydWN0IHhlbl9hcmNoX2RvbWFpbmNvbmZpZyB7
CisgICAgLyogSU4vT1VUICovCisgICAgdWludDhfdCBnaWNfdmVyc2lvbjsKKyAgICAvKiBJTiAq
LworICAgIHVpbnQzMl90IG5yX3NwaXM7CisgICAgLyoKKyAgICAgKiBPVVQKKyAgICAgKiBCYXNl
ZCBvbiB0aGUgcHJvcGVydHkgY2xvY2stZnJlcXVlbmN5IGluIHRoZSBEVCB0aW1lciBub2RlLgor
ICAgICAqIFRoZSBwcm9wZXJ0eSBtYXkgYmUgcHJlc2VudCB3aGVuIHRoZSBib290bG9hZGVyL2Zp
cm13YXJlIGRvZXNuJ3QKKyAgICAgKiBzZXQgY29ycmVjdGx5IENOVEZSUSB3aGljaCBob2xkIHRo
ZSB0aW1lciBmcmVxdWVuY3kuCisgICAgICoKKyAgICAgKiBBcyBpdCdzIG5vdCBwb3NzaWJsZSB0
byB0cmFwIHRoaXMgcmVnaXN0ZXIsIHdlIGhhdmUgdG8gcmVwbGljYXRlCisgICAgICogdGhlIHZh
bHVlIGluIHRoZSBndWVzdCBEVC4KKyAgICAgKgorICAgICAqID0gMCA9PiBwcm9wZXJ0eSBub3Qg
cHJlc2VudAorICAgICAqID4gMCA9PiBWYWx1ZSBvZiB0aGUgcHJvcGVydHkKKyAgICAgKgorICAg
ICAqLworICAgIHVpbnQzMl90IGNsb2NrX2ZyZXF1ZW5jeTsKK307CisjZW5kaWYgLyogX19YRU5f
XyB8fCBfX1hFTl9UT09MU19fICovCisKK3N0cnVjdCBhcmNoX3ZjcHVfaW5mbyB7Cit9OwordHlw
ZWRlZiBzdHJ1Y3QgYXJjaF92Y3B1X2luZm8gYXJjaF92Y3B1X2luZm9fdDsKKworc3RydWN0IGFy
Y2hfc2hhcmVkX2luZm8geworfTsKK3R5cGVkZWYgc3RydWN0IGFyY2hfc2hhcmVkX2luZm8gYXJj
aF9zaGFyZWRfaW5mb190OwordHlwZWRlZiB1aW50NjRfdCB4ZW5fY2FsbGJhY2tfdDsKKworI2Vu
ZGlmCisKKyNpZiBkZWZpbmVkKF9fWEVOX18pIHx8IGRlZmluZWQoX19YRU5fVE9PTFNfXykKKwor
LyogUFNSIGJpdHMgKENQU1IsIFNQU1IpICovCisKKyNkZWZpbmUgUFNSX1RIVU1CICAgICAgICgx
PDw1KSAgICAgICAgLyogVGh1bWIgTW9kZSBlbmFibGUgKi8KKyNkZWZpbmUgUFNSX0ZJUV9NQVNL
ICAgICgxPDw2KSAgICAgICAgLyogRmFzdCBJbnRlcnJ1cHQgbWFzayAqLworI2RlZmluZSBQU1Jf
SVJRX01BU0sgICAgKDE8PDcpICAgICAgICAvKiBJbnRlcnJ1cHQgbWFzayAqLworI2RlZmluZSBQ
U1JfQUJUX01BU0sgICAgKDE8PDgpICAgICAgICAvKiBBc3luY2hyb25vdXMgQWJvcnQgbWFzayAq
LworI2RlZmluZSBQU1JfQklHX0VORElBTiAgKDE8PDkpICAgICAgICAvKiBhcm0zMjogQmlnIEVu
ZGlhbiBNb2RlICovCisjZGVmaW5lIFBTUl9EQkdfTUFTSyAgICAoMTw8OSkgICAgICAgIC8qIGFy
bTY0OiBEZWJ1ZyBFeGNlcHRpb24gbWFzayAqLworI2RlZmluZSBQU1JfSVRfTUFTSyAgICAgKDB4
MDYwMGZjMDApICAvKiBUaHVtYiBJZi1UaGVuIE1hc2sgKi8KKyNkZWZpbmUgUFNSX0pBWkVMTEUg
ICAgICgxPDwyNCkgICAgICAgLyogSmF6ZWxsZSBNb2RlICovCisKKy8qIDMyIGJpdCBtb2RlcyAq
LworI2RlZmluZSBQU1JfTU9ERV9VU1IgMHgxMAorI2RlZmluZSBQU1JfTU9ERV9GSVEgMHgxMQor
I2RlZmluZSBQU1JfTU9ERV9JUlEgMHgxMgorI2RlZmluZSBQU1JfTU9ERV9TVkMgMHgxMworI2Rl
ZmluZSBQU1JfTU9ERV9NT04gMHgxNgorI2RlZmluZSBQU1JfTU9ERV9BQlQgMHgxNworI2RlZmlu
ZSBQU1JfTU9ERV9IWVAgMHgxYQorI2RlZmluZSBQU1JfTU9ERV9VTkQgMHgxYgorI2RlZmluZSBQ
U1JfTU9ERV9TWVMgMHgxZgorCisvKiA2NCBiaXQgbW9kZXMgKi8KKyNkZWZpbmUgUFNSX01PREVf
QklUICAweDEwIC8qIFNldCBpZmYgQUFyY2gzMiAqLworI2RlZmluZSBQU1JfTU9ERV9FTDNoIDB4
MGQKKyNkZWZpbmUgUFNSX01PREVfRUwzdCAweDBjCisjZGVmaW5lIFBTUl9NT0RFX0VMMmggMHgw
OQorI2RlZmluZSBQU1JfTU9ERV9FTDJ0IDB4MDgKKyNkZWZpbmUgUFNSX01PREVfRUwxaCAweDA1
CisjZGVmaW5lIFBTUl9NT0RFX0VMMXQgMHgwNAorI2RlZmluZSBQU1JfTU9ERV9FTDB0IDB4MDAK
KworI2RlZmluZSBQU1JfR1VFU1QzMl9JTklUICAoUFNSX0FCVF9NQVNLfFBTUl9GSVFfTUFTS3xQ
U1JfSVJRX01BU0t8UFNSX01PREVfU1ZDKQorI2RlZmluZSBQU1JfR1VFU1Q2NF9JTklUIChQU1Jf
QUJUX01BU0t8UFNSX0ZJUV9NQVNLfFBTUl9JUlFfTUFTS3xQU1JfTU9ERV9FTDFoKQorCisjZGVm
aW5lIFNDVExSX0dVRVNUX0lOSVQgICAgMHgwMGM1MDA3OAorCisvKgorICogVmlydHVhbCBtYWNo
aW5lIHBsYXRmb3JtIChtZW1vcnkgbGF5b3V0LCBpbnRlcnJ1cHRzKQorICoKKyAqIFRoZXNlIGFy
ZSBkZWZpbmVkIGZvciBjb25zaXN0ZW5jeSBiZXR3ZWVuIHRoZSB0b29scyBhbmQgdGhlCisgKiBo
eXBlcnZpc29yLiBHdWVzdHMgbXVzdCBub3QgcmVseSBvbiB0aGVzZSBoYXJkY29kZWQgdmFsdWVz
IGJ1dAorICogc2hvdWxkIGluc3RlYWQgdXNlIHRoZSBGRFQuCisgKi8KKworLyogUGh5c2ljYWwg
QWRkcmVzcyBTcGFjZSAqLworCisvKgorICogdkdJQyBtYXBwaW5nczogT25seSBvbmUgc2V0IG9m
IG1hcHBpbmcgaXMgdXNlZCBieSB0aGUgZ3Vlc3QuCisgKiBUaGVyZWZvcmUgdGhleSBjYW4gb3Zl
cmxhcC4KKyAqLworCisvKiB2R0lDIHYyIG1hcHBpbmdzICovCisjZGVmaW5lIEdVRVNUX0dJQ0Rf
QkFTRSAgIHhlbl9ta191bGxvbmcoMHgwMzAwMTAwMCkKKyNkZWZpbmUgR1VFU1RfR0lDRF9TSVpF
ICAgeGVuX21rX3VsbG9uZygweDAwMDAxMDAwKQorI2RlZmluZSBHVUVTVF9HSUNDX0JBU0UgICB4
ZW5fbWtfdWxsb25nKDB4MDMwMDIwMDApCisjZGVmaW5lIEdVRVNUX0dJQ0NfU0laRSAgIHhlbl9t
a191bGxvbmcoMHgwMDAwMjAwMCkKKworLyogdkdJQyB2MyBtYXBwaW5ncyAqLworI2RlZmluZSBH
VUVTVF9HSUNWM19HSUNEX0JBU0UgICAgICB4ZW5fbWtfdWxsb25nKDB4MDMwMDEwMDApCisjZGVm
aW5lIEdVRVNUX0dJQ1YzX0dJQ0RfU0laRSAgICAgIHhlbl9ta191bGxvbmcoMHgwMDAxMDAwMCkK
KworI2RlZmluZSBHVUVTVF9HSUNWM19SRElTVF9TVFJJREUgICB4ZW5fbWtfdWxsb25nKDB4MDAw
MjAwMDApCisjZGVmaW5lIEdVRVNUX0dJQ1YzX1JESVNUX1JFR0lPTlMgIDEKKworI2RlZmluZSBH
VUVTVF9HSUNWM19HSUNSMF9CQVNFICAgICB4ZW5fbWtfdWxsb25nKDB4MDMwMjAwMDApIC8qIHZD
UFUwLi4xMjcgKi8KKyNkZWZpbmUgR1VFU1RfR0lDVjNfR0lDUjBfU0laRSAgICAgeGVuX21rX3Vs
bG9uZygweDAxMDAwMDAwKQorCisvKiBBQ1BJIHRhYmxlcyBwaHlzaWNhbCBhZGRyZXNzICovCisj
ZGVmaW5lIEdVRVNUX0FDUElfQkFTRSAweDIwMDAwMDAwVUxMCisjZGVmaW5lIEdVRVNUX0FDUElf
U0laRSAweDAyMDAwMDAwVUxMCisKKy8qIFBMMDExIG1hcHBpbmdzICovCisjZGVmaW5lIEdVRVNU
X1BMMDExX0JBU0UgICAgMHgyMjAwMDAwMFVMTAorI2RlZmluZSBHVUVTVF9QTDAxMV9TSVpFICAg
IDB4MDAwMDEwMDBVTEwKKworLyoKKyAqIDE2TUIgPT0gNDA5NiBwYWdlcyByZXNlcnZlZCBmb3Ig
Z3Vlc3QgdG8gdXNlIGFzIGEgcmVnaW9uIHRvIG1hcCBpdHMKKyAqIGdyYW50IHRhYmxlIGluLgor
ICovCisjZGVmaW5lIEdVRVNUX0dOVFRBQl9CQVNFIHhlbl9ta191bGxvbmcoMHgzODAwMDAwMCkK
KyNkZWZpbmUgR1VFU1RfR05UVEFCX1NJWkUgeGVuX21rX3VsbG9uZygweDAxMDAwMDAwKQorCisj
ZGVmaW5lIEdVRVNUX01BR0lDX0JBU0UgIHhlbl9ta191bGxvbmcoMHgzOTAwMDAwMCkKKyNkZWZp
bmUgR1VFU1RfTUFHSUNfU0laRSAgeGVuX21rX3VsbG9uZygweDAxMDAwMDAwKQorCisjZGVmaW5l
IEdVRVNUX1JBTV9CQU5LUyAgIDIKKworI2RlZmluZSBHVUVTVF9SQU0wX0JBU0UgICB4ZW5fbWtf
dWxsb25nKDB4NDAwMDAwMDApIC8qIDNHQiBvZiBsb3cgUkFNIEAgMUdCICovCisjZGVmaW5lIEdV
RVNUX1JBTTBfU0laRSAgIHhlbl9ta191bGxvbmcoMHhjMDAwMDAwMCkKKworI2RlZmluZSBHVUVT
VF9SQU0xX0JBU0UgICB4ZW5fbWtfdWxsb25nKDB4MDIwMDAwMDAwMCkgLyogMTAxNkdCIG9mIFJB
TSBAIDhHQiAqLworI2RlZmluZSBHVUVTVF9SQU0xX1NJWkUgICB4ZW5fbWtfdWxsb25nKDB4ZmUw
MDAwMDAwMCkKKworI2RlZmluZSBHVUVTVF9SQU1fQkFTRSAgICBHVUVTVF9SQU0wX0JBU0UgLyog
TG93ZXN0IFJBTSBhZGRyZXNzICovCisvKiBMYXJnZXN0IGFtb3VudCBvZiBhY3R1YWwgUkFNLCBu
b3QgaW5jbHVkaW5nIGhvbGVzICovCisjZGVmaW5lIEdVRVNUX1JBTV9NQVggICAgIChHVUVTVF9S
QU0wX1NJWkUgKyBHVUVTVF9SQU0xX1NJWkUpCisvKiBTdWl0YWJsZSBmb3IgZS5nLiBjb25zdCB1
aW50NjRfdCByYW1mb29bXSA9IEdVRVNUX1JBTV9CQU5LX0ZPT1M7ICovCisjZGVmaW5lIEdVRVNU
X1JBTV9CQU5LX0JBU0VTICAgeyBHVUVTVF9SQU0wX0JBU0UsIEdVRVNUX1JBTTFfQkFTRSB9Cisj
ZGVmaW5lIEdVRVNUX1JBTV9CQU5LX1NJWkVTICAgeyBHVUVTVF9SQU0wX1NJWkUsIEdVRVNUX1JB
TTFfU0laRSB9CisKKy8qIEN1cnJlbnQgc3VwcG9ydGVkIGd1ZXN0IFZDUFVzICovCisjZGVmaW5l
IEdVRVNUX01BWF9WQ1BVUyAxMjgKKworLyogSW50ZXJydXB0cyAqLworI2RlZmluZSBHVUVTVF9U
SU1FUl9WSVJUX1BQSSAgICAyNworI2RlZmluZSBHVUVTVF9USU1FUl9QSFlTX1NfUFBJICAyOQor
I2RlZmluZSBHVUVTVF9USU1FUl9QSFlTX05TX1BQSSAzMAorI2RlZmluZSBHVUVTVF9FVlRDSE5f
UFBJICAgICAgICAzMQorCisjZGVmaW5lIEdVRVNUX1ZQTDAxMV9TUEkgICAgICAgIDMyCisKKy8q
IFBTQ0kgZnVuY3Rpb25zICovCisjZGVmaW5lIFBTQ0lfY3B1X3N1c3BlbmQgMAorI2RlZmluZSBQ
U0NJX2NwdV9vZmYgICAgIDEKKyNkZWZpbmUgUFNDSV9jcHVfb24gICAgICAyCisjZGVmaW5lIFBT
Q0lfbWlncmF0ZSAgICAgMworCisjZW5kaWYKKworI2lmbmRlZiBfX0FTU0VNQkxZX18KKy8qIFN0
dWIgZGVmaW5pdGlvbiBvZiBQTVUgc3RydWN0dXJlICovCit0eXBlZGVmIHN0cnVjdCB4ZW5fcG11
X2FyY2ggeyB1aW50OF90IGR1bW15OyB9IHhlbl9wbXVfYXJjaF90OworI2VuZGlmCisKKyNlbmRp
ZiAvKiAgX19YRU5fUFVCTElDX0FSQ0hfQVJNX0hfXyAqLworCisvKgorICogTG9jYWwgdmFyaWFi
bGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZz
ZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6
CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3hzbS9hcmNoLWFybS9odm0vc2F2ZS5oIGIv
aW5jbHVkZS94ZW4veHNtL2FyY2gtYXJtL2h2bS9zYXZlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNzViOGU2NQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL3hz
bS9hcmNoLWFybS9odm0vc2F2ZS5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBTdHJ1Y3R1cmUg
ZGVmaW5pdGlvbnMgZm9yIEhWTSBzdGF0ZSB0aGF0IGlzIGhlbGQgYnkgWGVuIGFuZCBtdXN0Cisg
KiBiZSBzYXZlZCBhbG9uZyB3aXRoIHRoZSBkb21haW4ncyBtZW1vcnkgYW5kIGRldmljZS1tb2Rl
bCBzdGF0ZS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIgQ2l0cml4IFN5c3RlbXMgTHRkLgor
ICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBh
bnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29j
aWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBp
biB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGlt
aXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxp
c2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhl
IFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMK
KyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv
biBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp
YWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9W
SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisg
KiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO
RCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBD
T1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhF
UgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBP
UiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJ
VEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBT
T0ZUV0FSRS4KKyAqLworCisjaWZuZGVmIF9fWEVOX1BVQkxJQ19IVk1fU0FWRV9BUk1fSF9fCisj
ZGVmaW5lIF9fWEVOX1BVQkxJQ19IVk1fU0FWRV9BUk1fSF9fCisKKyNlbmRpZgorCisvKgorICog
TG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICog
Yy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTog
bmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3hzbS9hcmNoLWFybS9z
bWNjYy5oIGIvaW5jbHVkZS94ZW4veHNtL2FyY2gtYXJtL3NtY2NjLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMTdkYzZkOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUv
eGVuL3hzbS9hcmNoLWFybS9zbWNjYy5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBzbWNjYy5o
CisgKgorICogU01DL0hWQyBpbnRlcmZhY2UgaW4gYWNjb3JkYW5jZSB3aXRoIFNNQyBDYWxsaW5n
IENvbnZlbnRpb24uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv
ZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0
d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiks
IHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRp
bmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5
LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxs
IGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRo
ZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQg
dGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGll
cyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNP
RlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs
IEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisg
KiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBE
QU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP
TlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElO
IENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVB
TElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIENvcHlyaWdodCAyMDE3IChDKSBFUEFNIFN5
c3RlbXMKKyAqLworCisjaWZuZGVmIF9fWEVOX1BVQkxJQ19BUkNIX0FSTV9TTUNDQ19IX18KKyNk
ZWZpbmUgX19YRU5fUFVCTElDX0FSQ0hfQVJNX1NNQ0NDX0hfXworCisjaW5jbHVkZSAicHVibGlj
L3hlbi5oIgorCisvKgorICogSHlwZXJ2aXNvciBTZXJ2aWNlIHZlcnNpb24uCisgKgorICogV2Ug
Y2FuJ3QgdXNlIFhFTiB2ZXJzaW9uIGhlcmUsIGJlY2F1c2Ugb2YgU01DQ0MgcmVxdWlyZW1lbnRz
OgorICogTWFqb3IgcmV2aXNpb24gc2hvdWxkIGNoYW5nZSBldmVyeSB0aW1lIFNNQy9IVkMgZnVu
Y3Rpb24gaXMgcmVtb3ZlZC4KKyAqIE1pbm9yIHJldmlzaW9uIHNob3VsZCBjaGFuZ2UgZXZlcnkg
dGltZSBTTUMvSFZDIGZ1bmN0aW9uIGlzIGFkZGVkLgorICogU28sIGl0IGlzIFNNQ0NDIHByb3Rv
Y29sIHJldmlzaW9uIGNvZGUsIG5vdCBYRU4gdmVyc2lvbi4KKyAqCisgKiBUaG9zZSB2YWx1ZXMg
YXJlIHN1YmplY3RlZCB0byBjaGFuZ2UsIHdoZW4gaW50ZXJmYWNlIHdpbGwgYmUgZXh0ZW5kZWQu
CisgKi8KKyNkZWZpbmUgWEVOX1NNQ0NDX01BSk9SX1JFVklTSU9OIDAKKyNkZWZpbmUgWEVOX1NN
Q0NDX01JTk9SX1JFVklTSU9OIDEKKworLyogSHlwZXJ2aXNvciBTZXJ2aWNlIFVJRC4gUmFuZG9t
bHkgZ2VuZXJhdGVkIHdpdGggdXVpZGdlbi4gKi8KKyNkZWZpbmUgWEVOX1NNQ0NDX1VJRCBYRU5f
REVGSU5FX1VVSUQoMHhhNzE4MTJkYywgMHhjNjk4LCAweDQzNjksIDB4OWFjZiwgXAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc5LCAweGQxLCAweDhkLCAweGRlLCAw
eGU2LCAweDY3KQorCisvKiBTdGFuZGFyZCBTZXJ2aWNlIFNlcnZpY2UgQ2FsbCB2ZXJzaW9uLiAq
LworI2RlZmluZSBTU1NDX1NNQ0NDX01BSk9SX1JFVklTSU9OIDAKKyNkZWZpbmUgU1NTQ19TTUND
Q19NSU5PUl9SRVZJU0lPTiAxCisKKy8qIFN0YW5kYXJkIFNlcnZpY2UgQ2FsbCBVSUQuIFJhbmRv
bWx5IGdlbmVyYXRlZCB3aXRoIHV1aWRnZW4uICovCisjZGVmaW5lIFNTU0NfU01DQ0NfVUlEIFhF
Tl9ERUZJTkVfVVVJRCgweGY4NjMzODZmLCAweDRiMzksIDB4NGNiZCwgMHg5MjIwLFwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Y2UsIDB4MTYsIDB4NDEsIDB4ZTUs
IDB4OWYsIDB4NmYpCisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfQVJDSF9BUk1fU01DQ0NfSF9f
ICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5
bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmls
CisgKiBFbmQ6YgorICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi94c20vYXJjaC14ODYvY3B1
ZmVhdHVyZXNldC5oIGIvaW5jbHVkZS94ZW4veHNtL2FyY2gteDg2L2NwdWZlYXR1cmVzZXQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZWUzZWEzCi0tLSAvZGV2L251bGwK
KysrIGIvaW5jbHVkZS94ZW4veHNtL2FyY2gteDg2L2NwdWZlYXR1cmVzZXQuaApAQCAtMCwwICsx
LDI2MyBAQAorLyoKKyAqIGFyY2gteDg2L2NwdWZlYXR1cmVzZXQuaAorICoKKyAqIENQVSBmZWF0
dXJlc2V0IGRlZmluaXRpb25zCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwg
ZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhp
cyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3
YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBp
bmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwg
bW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisg
KiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3
aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj
ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxs
IGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICog
VEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5Z
IEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQg
VE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENM
QUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9O
IE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9G
IE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgor
ICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAxNSwg
MjAxNiBDaXRyaXggU3lzdGVtcywgSW5jLgorICovCisKKy8qCisgKiBUaGVyZSBhcmUgdHdvIGV4
cGVjdGVkIHdheXMgb2YgaW5jbHVkaW5nIHRoaXMgaGVhZGVyLgorICoKKyAqIDEpIFRoZSAiZGVm
YXVsdCIgY2FzZSAoZXhwZWN0ZWQgZnJvbSB0b29scyBldGMpLgorICoKKyAqIFNpbXBseSAjaW5j
bHVkZSA8cHVibGljL2FyY2gteDg2L2NwdWZlYXR1cmVzZXQuaD4KKyAqCisgKiBJbiB0aGlzIGNp
cmN1bXN0YW5jZSwgbm9ybWFsIGhlYWRlciBndWFyZHMgYXBwbHkgYW5kIHRoZSBpbmNsdWRlciBz
aGFsbCBnZXQKKyAqIGFuIGVudW1lcmF0aW9uIGluIHRoZSBYRU5fWDg2X0ZFQVRVUkVfeHh4IG5h
bWVzcGFjZS4KKyAqCisgKiAyKSBUaGUgc3BlY2lhbCBjYXNlIHdoZXJlIHRoZSBpbmNsdWRlciBw
cm92aWRlcyBYRU5fQ1BVRkVBVFVSRSgpIGluIHNjb3BlLgorICoKKyAqIEluIHRoaXMgY2FzZSwg
bm8gaW5jbHVzaW9uIGd1YXJkcyBhcHBseSBhbmQgdGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBm
b3IKKyAqIHRoZWlyIFhFTl9DUFVGRUFUVVJFKCkgYmVpbmcgYXBwcm9wcmlhdGUgaW4gdGhlIGlu
Y2x1ZGVkIGNvbnRleHQuCisgKi8KKworI2lmbmRlZiBYRU5fQ1BVRkVBVFVSRQorCisvKgorICog
SW5jbHVkZXIgaGFzIG5vdCBwcm92aWRlZCBhIGN1c3RvbSBYRU5fQ1BVRkVBVFVSRSgpLiAgQXJy
YW5nZSBmb3Igbm9ybWFsCisgKiBoZWFkZXIgZ3VhcmRzLCBhbiBlbnVtIGFuZCBjb25zdGFudHMg
aW4gdGhlIFhFTl9YODZfRkVBVFVSRV94eHggbmFtZXNwYWNlLgorICovCisjaWZuZGVmIF9fWEVO
X1BVQkxJQ19BUkNIX1g4Nl9DUFVGRUFUVVJFU0VUX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNf
QVJDSF9YODZfQ1BVRkVBVFVSRVNFVF9IX18KKworI2RlZmluZSBYRU5fQ1BVRkVBVFVSRVNFVF9E
RUZBVUxUX0lOQ0xVREUKKworI2RlZmluZSBYRU5fQ1BVRkVBVFVSRShuYW1lLCB2YWx1ZSkgWEVO
X1g4Nl9GRUFUVVJFXyMjbmFtZSA9IHZhbHVlLAorZW51bSB7CisKKyNlbmRpZiAvKiBfX1hFTl9Q
VUJMSUNfQVJDSF9YODZfQ1BVRkVBVFVSRVNFVF9IX18gKi8KKyNlbmRpZiAvKiAhWEVOX0NQVUZF
QVRVUkUgKi8KKworCisjaWZkZWYgWEVOX0NQVUZFQVRVUkUKKy8qCisgKiBBIGZlYXR1cmVzZXQg
aXMgYSBiaXRtYXAgb2YgeDg2IGZlYXR1cmVzLCByZXByZXNlbnRlZCBhcyBhIGNvbGxlY3Rpb24g
b2YKKyAqIDMyYml0IHdvcmRzLgorICoKKyAqIFdvcmRzIGFyZSBhcyBzcGVjaWZpZWQgaW4gdmVu
ZG9ycyBwcm9ncmFtbWluZyBtYW51YWxzLCBhbmQgc2hhbGwgbm90CisgKiBjb250YWluIGFueSBz
eW50aGVzaWVkIHZhbHVlcy4gIE5ldyB3b3JkcyBtYXkgYmUgYWRkZWQgdG8gdGhlIGVuZCBvZgor
ICogZmVhdHVyZXNldC4KKyAqCisgKiBBbGwgZmVhdHVyZXNldCB3b3JkcyBjdXJyZW50bHkgb3Jp
Z2luYXRlIGZyb20gbGVhdmVzIHNwZWNpZmllZCBmb3IgdGhlCisgKiBDUFVJRCBpbnN0cnVjdGlv
biwgYnV0IHRoaXMgaXMgbm90IHByZWNsdWRlIG90aGVyIHNvdXJjZXMgb2YgaW5mb3JtYXRpb24u
CisgKi8KKworLyoKKyAqIEF0dHJpYnV0ZSBzeW50YXg6CisgKgorICogQXR0cmlidXRlcyBmb3Ig
YSBwYXJ0aWN1bGFyIGZlYXR1cmUgYXJlIHByb3ZpZGVkIGFzIGNoYXJhY3RlcnMgYmVmb3JlIHRo
ZQorICogZmlyc3Qgc3BhY2UgaW4gdGhlIGNvbW1lbnQgaW1tZWRpYXRlbHkgZm9sbG93aW5nIHRo
ZSBmZWF0dXJlIHZhbHVlLiAgTm90ZSAtCisgKiBub25lIG9mIHRoZXNlIGF0dHJpYnV0ZXMgZm9y
bSBwYXJ0IG9mIHRoZSBYZW4gcHVibGljIEFCSS4KKyAqCisgKiBTcGVjaWFsOiAnIScKKyAqICAg
VGhpcyBiaXQgaGFzIHNwZWNpYWwgcHJvcGVydGllcyBhbmQgaXMgbm90IGEgc3RyYWlnaHQgaW5k
aWNhdGlvbiBvZiBhCisgKiAgIHBpZWNlIG9mIG5ldyBmdW5jdGlvbmFsaXR5LiAgWGVuIHdpbGwg
aGFuZGxlIHRoZXNlIGRpZmZlcmVudGx5LAorICogICBhbmQgbWF5IG92ZXJyaWRlIHRvb2xzdGFj
ayBzZXR0aW5ncyBjb21wbGV0ZWx5LgorICoKKyAqIEFwcGxpY2FiaWxpdHkgdG8gZ3Vlc3RzOiAn
QScsICdTJyBvciAnSCcKKyAqICAgJ0EnID0gQWxsIGd1ZXN0cy4KKyAqICAgJ1MnID0gQWxsIEhW
TSBndWVzdHMgKG5vdCBQViBndWVzdHMpLgorICogICAnSCcgPSBIVk0gSEFQIGd1ZXN0cyAobm90
IFBWIG9yIEhWTSBTaGFkb3cgZ3Vlc3RzKS4KKyAqLworCisvKiBJbnRlbC1kZWZpbmVkIENQVSBm
ZWF0dXJlcywgQ1BVSUQgbGV2ZWwgMHgwMDAwMDAwMS5lZHgsIHdvcmQgMCAqLworWEVOX0NQVUZF
QVRVUkUoRlBVLCAgICAgICAgICAgMCozMisgMCkgLypBICBPbmJvYXJkIEZQVSAqLworWEVOX0NQ
VUZFQVRVUkUoVk1FLCAgICAgICAgICAgMCozMisgMSkgLypTICBWaXJ0dWFsIE1vZGUgRXh0ZW5z
aW9ucyAqLworWEVOX0NQVUZFQVRVUkUoREUsICAgICAgICAgICAgMCozMisgMikgLypBICBEZWJ1
Z2dpbmcgRXh0ZW5zaW9ucyAqLworWEVOX0NQVUZFQVRVUkUoUFNFLCAgICAgICAgICAgMCozMisg
MykgLypTICBQYWdlIFNpemUgRXh0ZW5zaW9ucyAqLworWEVOX0NQVUZFQVRVUkUoVFNDLCAgICAg
ICAgICAgMCozMisgNCkgLypBICBUaW1lIFN0YW1wIENvdW50ZXIgKi8KK1hFTl9DUFVGRUFUVVJF
KE1TUiwgICAgICAgICAgIDAqMzIrIDUpIC8qQSAgTW9kZWwtU3BlY2lmaWMgUmVnaXN0ZXJzLCBS
RE1TUiwgV1JNU1IgKi8KK1hFTl9DUFVGRUFUVVJFKFBBRSwgICAgICAgICAgIDAqMzIrIDYpIC8q
QSAgUGh5c2ljYWwgQWRkcmVzcyBFeHRlbnNpb25zICovCitYRU5fQ1BVRkVBVFVSRShNQ0UsICAg
ICAgICAgICAwKjMyKyA3KSAvKkEgIE1hY2hpbmUgQ2hlY2sgQXJjaGl0ZWN0dXJlICovCitYRU5f
Q1BVRkVBVFVSRShDWDgsICAgICAgICAgICAwKjMyKyA4KSAvKkEgIENNUFhDSEc4IGluc3RydWN0
aW9uICovCitYRU5fQ1BVRkVBVFVSRShBUElDLCAgICAgICAgICAwKjMyKyA5KSAvKiFBIE9uYm9h
cmQgQVBJQyAqLworWEVOX0NQVUZFQVRVUkUoU0VQLCAgICAgICAgICAgMCozMisxMSkgLypBICBT
WVNFTlRFUi9TWVNFWElUICovCitYRU5fQ1BVRkVBVFVSRShNVFJSLCAgICAgICAgICAwKjMyKzEy
KSAvKlMgIE1lbW9yeSBUeXBlIFJhbmdlIFJlZ2lzdGVycyAqLworWEVOX0NQVUZFQVRVUkUoUEdF
LCAgICAgICAgICAgMCozMisxMykgLypTICBQYWdlIEdsb2JhbCBFbmFibGUgKi8KK1hFTl9DUFVG
RUFUVVJFKE1DQSwgICAgICAgICAgIDAqMzIrMTQpIC8qQSAgTWFjaGluZSBDaGVjayBBcmNoaXRl
Y3R1cmUgKi8KK1hFTl9DUFVGRUFUVVJFKENNT1YsICAgICAgICAgIDAqMzIrMTUpIC8qQSAgQ01P
ViBpbnN0cnVjdGlvbiAoRkNNT1ZDQyBhbmQgRkNPTUkgdG9vIGlmIEZQVSBwcmVzZW50KSAqLwor
WEVOX0NQVUZFQVRVUkUoUEFULCAgICAgICAgICAgMCozMisxNikgLypBICBQYWdlIEF0dHJpYnV0
ZSBUYWJsZSAqLworWEVOX0NQVUZFQVRVUkUoUFNFMzYsICAgICAgICAgMCozMisxNykgLypTICAz
Ni1iaXQgUFNFcyAqLworWEVOX0NQVUZFQVRVUkUoQ0xGTFVTSCwgICAgICAgMCozMisxOSkgLypB
ICBDTEZMVVNIIGluc3RydWN0aW9uICovCitYRU5fQ1BVRkVBVFVSRShEUywgICAgICAgICAgICAw
KjMyKzIxKSAvKiAgIERlYnVnIFN0b3JlICovCitYRU5fQ1BVRkVBVFVSRShBQ1BJLCAgICAgICAg
ICAwKjMyKzIyKSAvKkEgIEFDUEkgdmlhIE1TUiAqLworWEVOX0NQVUZFQVRVUkUoTU1YLCAgICAg
ICAgICAgMCozMisyMykgLypBICBNdWx0aW1lZGlhIEV4dGVuc2lvbnMgKi8KK1hFTl9DUFVGRUFU
VVJFKEZYU1IsICAgICAgICAgIDAqMzIrMjQpIC8qQSAgRlhTQVZFIGFuZCBGWFJTVE9SIGluc3Ry
dWN0aW9ucyAqLworWEVOX0NQVUZFQVRVUkUoU1NFLCAgICAgICAgICAgMCozMisyNSkgLypBICBT
dHJlYW1pbmcgU0lNRCBFeHRlbnNpb25zICovCitYRU5fQ1BVRkVBVFVSRShTU0UyLCAgICAgICAg
ICAwKjMyKzI2KSAvKkEgIFN0cmVhbWluZyBTSU1EIEV4dGVuc2lvbnMtMiAqLworWEVOX0NQVUZF
QVRVUkUoU1MsICAgICAgICAgICAgMCozMisyNykgLypBICBDUFUgc2VsZiBzbm9vcCAqLworWEVO
X0NQVUZFQVRVUkUoSFRULCAgICAgICAgICAgMCozMisyOCkgLyohQSBIeXBlci1UaHJlYWRpbmcg
VGVjaG5vbG9neSAqLworWEVOX0NQVUZFQVRVUkUoVE0xLCAgICAgICAgICAgMCozMisyOSkgLyog
ICBUaGVybWFsIE1vbml0b3IgMSAqLworWEVOX0NQVUZFQVRVUkUoUEJFLCAgICAgICAgICAgMCoz
MiszMSkgLyogICBQZW5kaW5nIEJyZWFrIEVuYWJsZSAqLworCisvKiBJbnRlbC1kZWZpbmVkIENQ
VSBmZWF0dXJlcywgQ1BVSUQgbGV2ZWwgMHgwMDAwMDAwMS5lY3gsIHdvcmQgMSAqLworWEVOX0NQ
VUZFQVRVUkUoU1NFMywgICAgICAgICAgMSozMisgMCkgLypBICBTdHJlYW1pbmcgU0lNRCBFeHRl
bnNpb25zLTMgKi8KK1hFTl9DUFVGRUFUVVJFKFBDTE1VTFFEUSwgICAgIDEqMzIrIDEpIC8qQSAg
Q2FycnktbGVzcyBtdWxpdHBsaWNhdGlvbiAqLworWEVOX0NQVUZFQVRVUkUoRFRFUzY0LCAgICAg
ICAgMSozMisgMikgLyogICA2NC1iaXQgRGVidWcgU3RvcmUgKi8KK1hFTl9DUFVGRUFUVVJFKE1P
TklUT1IsICAgICAgIDEqMzIrIDMpIC8qICAgTW9uaXRvci9Nd2FpdCBzdXBwb3J0ICovCitYRU5f
Q1BVRkVBVFVSRShEU0NQTCwgICAgICAgICAxKjMyKyA0KSAvKiAgIENQTCBRdWFsaWZpZWQgRGVi
dWcgU3RvcmUgKi8KK1hFTl9DUFVGRUFUVVJFKFZNWCwgICAgICAgICAgIDEqMzIrIDUpIC8qUyAg
VmlydHVhbCBNYWNoaW5lIEV4dGVuc2lvbnMgKi8KK1hFTl9DUFVGRUFUVVJFKFNNWCwgICAgICAg
ICAgIDEqMzIrIDYpIC8qICAgU2FmZXIgTW9kZSBFeHRlbnNpb25zICovCitYRU5fQ1BVRkVBVFVS
RShFSVNULCAgICAgICAgICAxKjMyKyA3KSAvKiAgIEVuaGFuY2VkIFNwZWVkU3RlcCAqLworWEVO
X0NQVUZFQVRVUkUoVE0yLCAgICAgICAgICAgMSozMisgOCkgLyogICBUaGVybWFsIE1vbml0b3Ig
MiAqLworWEVOX0NQVUZFQVRVUkUoU1NTRTMsICAgICAgICAgMSozMisgOSkgLypBICBTdXBwbGVt
ZW50YWwgU3RyZWFtaW5nIFNJTUQgRXh0ZW5zaW9ucy0zICovCitYRU5fQ1BVRkVBVFVSRShGTUEs
ICAgICAgICAgICAxKjMyKzEyKSAvKkEgIEZ1c2VkIE11bHRpcGx5IEFkZCAqLworWEVOX0NQVUZF
QVRVUkUoQ1gxNiwgICAgICAgICAgMSozMisxMykgLypBICBDTVBYQ0hHMTZCICovCitYRU5fQ1BV
RkVBVFVSRShYVFBSLCAgICAgICAgICAxKjMyKzE0KSAvKiAgIFNlbmQgVGFzayBQcmlvcml0eSBN
ZXNzYWdlcyAqLworWEVOX0NQVUZFQVRVUkUoUERDTSwgICAgICAgICAgMSozMisxNSkgLyogICBQ
ZXJmL0RlYnVnIENhcGFiaWxpdHkgTVNSICovCitYRU5fQ1BVRkVBVFVSRShQQ0lELCAgICAgICAg
ICAxKjMyKzE3KSAvKkggIFByb2Nlc3MgQ29udGV4dCBJRCAqLworWEVOX0NQVUZFQVRVUkUoRENB
LCAgICAgICAgICAgMSozMisxOCkgLyogICBEaXJlY3QgQ2FjaGUgQWNjZXNzICovCitYRU5fQ1BV
RkVBVFVSRShTU0U0XzEsICAgICAgICAxKjMyKzE5KSAvKkEgIFN0cmVhbWluZyBTSU1EIEV4dGVu
c2lvbnMgNC4xICovCitYRU5fQ1BVRkVBVFVSRShTU0U0XzIsICAgICAgICAxKjMyKzIwKSAvKkEg
IFN0cmVhbWluZyBTSU1EIEV4dGVuc2lvbnMgNC4yICovCitYRU5fQ1BVRkVBVFVSRShYMkFQSUMs
ICAgICAgICAxKjMyKzIxKSAvKiFBIEV4dGVuZGVkIHhBUElDICovCitYRU5fQ1BVRkVBVFVSRShN
T1ZCRSwgICAgICAgICAxKjMyKzIyKSAvKkEgIG1vdmJlIGluc3RydWN0aW9uICovCitYRU5fQ1BV
RkVBVFVSRShQT1BDTlQsICAgICAgICAxKjMyKzIzKSAvKkEgIFBPUENOVCBpbnN0cnVjdGlvbiAq
LworWEVOX0NQVUZFQVRVUkUoVFNDX0RFQURMSU5FLCAgMSozMisyNCkgLypTICBUU0MgRGVhZGxp
bmUgVGltZXIgKi8KK1hFTl9DUFVGRUFUVVJFKEFFU05JLCAgICAgICAgIDEqMzIrMjUpIC8qQSAg
QUVTIGluc3RydWN0aW9ucyAqLworWEVOX0NQVUZFQVRVUkUoWFNBVkUsICAgICAgICAgMSozMisy
NikgLypBICBYU0FWRS9YUlNUT1IvWFNFVEJWL1hHRVRCViAqLworWEVOX0NQVUZFQVRVUkUoT1NY
U0FWRSwgICAgICAgMSozMisyNykgLyohICBPU1hTQVZFICovCitYRU5fQ1BVRkVBVFVSRShBVlgs
ICAgICAgICAgICAxKjMyKzI4KSAvKkEgIEFkdmFuY2VkIFZlY3RvciBFeHRlbnNpb25zICovCitY
RU5fQ1BVRkVBVFVSRShGMTZDLCAgICAgICAgICAxKjMyKzI5KSAvKkEgIEhhbGYtcHJlY2lzaW9u
IGNvbnZlcnQgaW5zdHJ1Y3Rpb24gKi8KK1hFTl9DUFVGRUFUVVJFKFJEUkFORCwgICAgICAgIDEq
MzIrMzApIC8qQSAgRGlnaXRhbCBSYW5kb20gTnVtYmVyIEdlbmVyYXRvciAqLworWEVOX0NQVUZF
QVRVUkUoSFlQRVJWSVNPUiwgICAgMSozMiszMSkgLyohQSBSdW5uaW5nIHVuZGVyIHNvbWUgaHlw
ZXJ2aXNvciAqLworCisvKiBBTUQtZGVmaW5lZCBDUFUgZmVhdHVyZXMsIENQVUlEIGxldmVsIDB4
ODAwMDAwMDEuZWR4LCB3b3JkIDIgKi8KK1hFTl9DUFVGRUFUVVJFKFNZU0NBTEwsICAgICAgIDIq
MzIrMTEpIC8qQSAgU1lTQ0FMTC9TWVNSRVQgKi8KK1hFTl9DUFVGRUFUVVJFKE5YLCAgICAgICAg
ICAgIDIqMzIrMjApIC8qQSAgRXhlY3V0ZSBEaXNhYmxlICovCitYRU5fQ1BVRkVBVFVSRShNTVhF
WFQsICAgICAgICAyKjMyKzIyKSAvKkEgIEFNRCBNTVggZXh0ZW5zaW9ucyAqLworWEVOX0NQVUZF
QVRVUkUoRkZYU1IsICAgICAgICAgMiozMisyNSkgLypBICBGRlhTUiBpbnN0cnVjdGlvbiBvcHRp
bWl6YXRpb25zICovCitYRU5fQ1BVRkVBVFVSRShQQUdFMUdCLCAgICAgICAyKjMyKzI2KSAvKkgg
IDFHYiBsYXJnZSBwYWdlIHN1cHBvcnQgKi8KK1hFTl9DUFVGRUFUVVJFKFJEVFNDUCwgICAgICAg
IDIqMzIrMjcpIC8qUyAgUkRUU0NQICovCitYRU5fQ1BVRkVBVFVSRShMTSwgICAgICAgICAgICAy
KjMyKzI5KSAvKkEgIExvbmcgTW9kZSAoeDg2LTY0KSAqLworWEVOX0NQVUZFQVRVUkUoM0ROT1dF
WFQsICAgICAgMiozMiszMCkgLypBICBBTUQgM0ROb3chIGV4dGVuc2lvbnMgKi8KK1hFTl9DUFVG
RUFUVVJFKDNETk9XLCAgICAgICAgIDIqMzIrMzEpIC8qQSAgM0ROb3chICovCisKKy8qIEFNRC1k
ZWZpbmVkIENQVSBmZWF0dXJlcywgQ1BVSUQgbGV2ZWwgMHg4MDAwMDAwMS5lY3gsIHdvcmQgMyAq
LworWEVOX0NQVUZFQVRVUkUoTEFIRl9MTSwgICAgICAgMyozMisgMCkgLypBICBMQUhGL1NBSEYg
aW4gbG9uZyBtb2RlICovCitYRU5fQ1BVRkVBVFVSRShDTVBfTEVHQUNZLCAgICAzKjMyKyAxKSAv
KiFBIElmIHllcyBIeXBlclRocmVhZGluZyBub3QgdmFsaWQgKi8KK1hFTl9DUFVGRUFUVVJFKFNW
TSwgICAgICAgICAgIDMqMzIrIDIpIC8qUyAgU2VjdXJlIHZpcnR1YWwgbWFjaGluZSAqLworWEVO
X0NQVUZFQVRVUkUoRVhUQVBJQywgICAgICAgMyozMisgMykgLyogICBFeHRlbmRlZCBBUElDIHNw
YWNlICovCitYRU5fQ1BVRkVBVFVSRShDUjhfTEVHQUNZLCAgICAzKjMyKyA0KSAvKlMgIENSOCBp
biAzMi1iaXQgbW9kZSAqLworWEVOX0NQVUZFQVRVUkUoQUJNLCAgICAgICAgICAgMyozMisgNSkg
LypBICBBZHZhbmNlZCBiaXQgbWFuaXB1bGF0aW9uICovCitYRU5fQ1BVRkVBVFVSRShTU0U0QSwg
ICAgICAgICAzKjMyKyA2KSAvKkEgIFNTRS00QSAqLworWEVOX0NQVUZFQVRVUkUoTUlTQUxJR05T
U0UsICAgMyozMisgNykgLypBICBNaXNhbGlnbmVkIFNTRSBtb2RlICovCitYRU5fQ1BVRkVBVFVS
RSgzRE5PV1BSRUZFVENILCAzKjMyKyA4KSAvKkEgIDNETm93IHByZWZldGNoIGluc3RydWN0aW9u
cyAqLworWEVOX0NQVUZFQVRVUkUoT1NWVywgICAgICAgICAgMyozMisgOSkgLyogICBPUyBWaXNp
YmxlIFdvcmthcm91bmQgKi8KK1hFTl9DUFVGRUFUVVJFKElCUywgICAgICAgICAgIDMqMzIrMTAp
IC8qICAgSW5zdHJ1Y3Rpb24gQmFzZWQgU2FtcGxpbmcgKi8KK1hFTl9DUFVGRUFUVVJFKFhPUCwg
ICAgICAgICAgIDMqMzIrMTEpIC8qQSAgZXh0ZW5kZWQgQVZYIGluc3RydWN0aW9ucyAqLworWEVO
X0NQVUZFQVRVUkUoU0tJTklULCAgICAgICAgMyozMisxMikgLyogICBTS0lOSVQvU1RHSSBpbnN0
cnVjdGlvbnMgKi8KK1hFTl9DUFVGRUFUVVJFKFdEVCwgICAgICAgICAgIDMqMzIrMTMpIC8qICAg
V2F0Y2hkb2cgdGltZXIgKi8KK1hFTl9DUFVGRUFUVVJFKExXUCwgICAgICAgICAgIDMqMzIrMTUp
IC8qUyAgTGlnaHQgV2VpZ2h0IFByb2ZpbGluZyAqLworWEVOX0NQVUZFQVRVUkUoRk1BNCwgICAg
ICAgICAgMyozMisxNikgLypBICA0IG9wZXJhbmRzIE1BQyBpbnN0cnVjdGlvbnMgKi8KK1hFTl9D
UFVGRUFUVVJFKE5PREVJRF9NU1IsICAgIDMqMzIrMTkpIC8qICAgTm9kZUlkIE1TUiAqLworWEVO
X0NQVUZFQVRVUkUoVEJNLCAgICAgICAgICAgMyozMisyMSkgLypBICB0cmFpbGluZyBiaXQgbWFu
aXB1bGF0aW9ucyAqLworWEVOX0NQVUZFQVRVUkUoVE9QT0VYVCwgICAgICAgMyozMisyMikgLyog
ICB0b3BvbG9neSBleHRlbnNpb25zIENQVUlEIGxlYWZzICovCitYRU5fQ1BVRkVBVFVSRShEQkVY
VCwgICAgICAgICAzKjMyKzI2KSAvKkEgIGRhdGEgYnJlYWtwb2ludCBleHRlbnNpb24gKi8KK1hF
Tl9DUFVGRUFUVVJFKE1PTklUT1JYLCAgICAgIDMqMzIrMjkpIC8qICAgTU9OSVRPUiBleHRlbnNp
b24gKE1PTklUT1JYL01XQUlUWCkgKi8KKworLyogSW50ZWwtZGVmaW5lZCBDUFUgZmVhdHVyZXMs
IENQVUlEIGxldmVsIDB4MDAwMDAwMEQ6MS5lYXgsIHdvcmQgNCAqLworWEVOX0NQVUZFQVRVUkUo
WFNBVkVPUFQsICAgICAgNCozMisgMCkgLypBICBYU0FWRU9QVCBpbnN0cnVjdGlvbiAqLworWEVO
X0NQVUZFQVRVUkUoWFNBVkVDLCAgICAgICAgNCozMisgMSkgLypBICBYU0FWRUMvWFJTVE9SQyBp
bnN0cnVjdGlvbnMgKi8KK1hFTl9DUFVGRUFUVVJFKFhHRVRCVjEsICAgICAgIDQqMzIrIDIpIC8q
QSAgWEdFVEJWIHdpdGggJWVjeD0xICovCitYRU5fQ1BVRkVBVFVSRShYU0FWRVMsICAgICAgICA0
KjMyKyAzKSAvKlMgIFhTQVZFUy9YUlNUT1JTIGluc3RydWN0aW9ucyAqLworCisvKiBJbnRlbC1k
ZWZpbmVkIENQVSBmZWF0dXJlcywgQ1BVSUQgbGV2ZWwgMHgwMDAwMDAwNzowLmVieCwgd29yZCA1
ICovCitYRU5fQ1BVRkVBVFVSRShGU0dTQkFTRSwgICAgICA1KjMyKyAwKSAvKkEgIHtSRCxXUn17
RlMsR1N9QkFTRSBpbnN0cnVjdGlvbnMgKi8KK1hFTl9DUFVGRUFUVVJFKFRTQ19BREpVU1QsICAg
IDUqMzIrIDEpIC8qUyAgVFNDX0FESlVTVCBNU1IgYXZhaWxhYmxlICovCitYRU5fQ1BVRkVBVFVS
RShTR1gsICAgICAgICAgICA1KjMyKyAyKSAvKiAgIFNvZnR3YXJlIEd1YXJkIGV4dGVuc2lvbnMg
Ki8KK1hFTl9DUFVGRUFUVVJFKEJNSTEsICAgICAgICAgIDUqMzIrIDMpIC8qQSAgMXN0IGJpdCBt
YW5pcHVsYXRpb24gZXh0ZW5zaW9ucyAqLworWEVOX0NQVUZFQVRVUkUoSExFLCAgICAgICAgICAg
NSozMisgNCkgLypBICBIYXJkd2FyZSBMb2NrIEVsaXNpb24gKi8KK1hFTl9DUFVGRUFUVVJFKEFW
WDIsICAgICAgICAgIDUqMzIrIDUpIC8qQSAgQVZYMiBpbnN0cnVjdGlvbnMgKi8KK1hFTl9DUFVG
RUFUVVJFKEZEUF9FWENQX09OTFksIDUqMzIrIDYpIC8qISAgeDg3IEZEUCBvbmx5IHVwZGF0ZWQg
b24gZXhjZXB0aW9uLiAqLworWEVOX0NQVUZFQVRVUkUoU01FUCwgICAgICAgICAgNSozMisgNykg
LypTICBTdXBlcnZpc29yIE1vZGUgRXhlY3V0aW9uIFByb3RlY3Rpb24gKi8KK1hFTl9DUFVGRUFU
VVJFKEJNSTIsICAgICAgICAgIDUqMzIrIDgpIC8qQSAgMm5kIGJpdCBtYW5pcHVsYXRpb24gZXh0
ZW5zaW9ucyAqLworWEVOX0NQVUZFQVRVUkUoRVJNUywgICAgICAgICAgNSozMisgOSkgLypBICBF
bmhhbmNlZCBSRVAgTU9WU0IvU1RPU0IgKi8KK1hFTl9DUFVGRUFUVVJFKElOVlBDSUQsICAgICAg
IDUqMzIrMTApIC8qSCAgSW52YWxpZGF0ZSBQcm9jZXNzIENvbnRleHQgSUQgKi8KK1hFTl9DUFVG
RUFUVVJFKFJUTSwgICAgICAgICAgIDUqMzIrMTEpIC8qQSAgUmVzdHJpY3RlZCBUcmFuc2FjdGlv
bmFsIE1lbW9yeSAqLworWEVOX0NQVUZFQVRVUkUoUFFNLCAgICAgICAgICAgNSozMisxMikgLyog
ICBQbGF0Zm9ybSBRb1MgTW9uaXRvcmluZyAqLworWEVOX0NQVUZFQVRVUkUoTk9fRlBVX1NFTCwg
ICAgNSozMisxMykgLyohICBGUFUgQ1MvRFMgc3RvcmVkIGFzIHplcm8gKi8KK1hFTl9DUFVGRUFU
VVJFKE1QWCwgICAgICAgICAgIDUqMzIrMTQpIC8qUyAgTWVtb3J5IFByb3RlY3Rpb24gRXh0ZW5z
aW9ucyAqLworWEVOX0NQVUZFQVRVUkUoUFFFLCAgICAgICAgICAgNSozMisxNSkgLyogICBQbGF0
Zm9ybSBRb1MgRW5mb3JjZW1lbnQgKi8KK1hFTl9DUFVGRUFUVVJFKEFWWDUxMkYsICAgICAgIDUq
MzIrMTYpIC8qQSAgQVZYLTUxMiBGb3VuZGF0aW9uIEluc3RydWN0aW9ucyAqLworWEVOX0NQVUZF
QVRVUkUoQVZYNTEyRFEsICAgICAgNSozMisxNykgLypBICBBVlgtNTEyIERvdWJsZXdvcmQgJiBR
dWFkd29yZCBJbnN0cnMgKi8KK1hFTl9DUFVGRUFUVVJFKFJEU0VFRCwgICAgICAgIDUqMzIrMTgp
IC8qQSAgUkRTRUVEIGluc3RydWN0aW9uICovCitYRU5fQ1BVRkVBVFVSRShBRFgsICAgICAgICAg
ICA1KjMyKzE5KSAvKkEgIEFEQ1gsIEFET1ggaW5zdHJ1Y3Rpb25zICovCitYRU5fQ1BVRkVBVFVS
RShTTUFQLCAgICAgICAgICA1KjMyKzIwKSAvKlMgIFN1cGVydmlzb3IgTW9kZSBBY2Nlc3MgUHJl
dmVudGlvbiAqLworWEVOX0NQVUZFQVRVUkUoQVZYNTEySUZNQSwgICAgNSozMisyMSkgLypBICBB
VlgtNTEyIEludGVnZXIgRnVzZWQgTXVsdGlwbHkgQWRkICovCitYRU5fQ1BVRkVBVFVSRShDTEZM
VVNIT1BULCAgICA1KjMyKzIzKSAvKkEgIENMRkxVU0hPUFQgaW5zdHJ1Y3Rpb24gKi8KK1hFTl9D
UFVGRUFUVVJFKENMV0IsICAgICAgICAgIDUqMzIrMjQpIC8qQSAgQ0xXQiBpbnN0cnVjdGlvbiAq
LworWEVOX0NQVUZFQVRVUkUoQVZYNTEyUEYsICAgICAgNSozMisyNikgLypBICBBVlgtNTEyIFBy
ZWZldGNoIEluc3RydWN0aW9ucyAqLworWEVOX0NQVUZFQVRVUkUoQVZYNTEyRVIsICAgICAgNSoz
MisyNykgLypBICBBVlgtNTEyIEV4cG9uZW50ICYgUmVjaXByb2NhbCBJbnN0cnMgKi8KK1hFTl9D
UFVGRUFUVVJFKEFWWDUxMkNELCAgICAgIDUqMzIrMjgpIC8qQSAgQVZYLTUxMiBDb25mbGljdCBE
ZXRlY3Rpb24gSW5zdHJzICovCitYRU5fQ1BVRkVBVFVSRShTSEEsICAgICAgICAgICA1KjMyKzI5
KSAvKkEgIFNIQTEgJiBTSEEyNTYgaW5zdHJ1Y3Rpb25zICovCitYRU5fQ1BVRkVBVFVSRShBVlg1
MTJCVywgICAgICA1KjMyKzMwKSAvKkEgIEFWWC01MTIgQnl0ZSBhbmQgV29yZCBJbnN0cnVjdGlv
bnMgKi8KK1hFTl9DUFVGRUFUVVJFKEFWWDUxMlZMLCAgICAgIDUqMzIrMzEpIC8qQSAgQVZYLTUx
MiBWZWN0b3IgTGVuZ3RoIEV4dGVuc2lvbnMgKi8KKworLyogSW50ZWwtZGVmaW5lZCBDUFUgZmVh
dHVyZXMsIENQVUlEIGxldmVsIDB4MDAwMDAwMDc6MC5lY3gsIHdvcmQgNiAqLworWEVOX0NQVUZF
QVRVUkUoUFJFRkVUQ0hXVDEsICAgNiozMisgMCkgLypBICBQUkVGRVRDSFdUMSBpbnN0cnVjdGlv
biAqLworWEVOX0NQVUZFQVRVUkUoQVZYNTEyVkJNSSwgICAgNiozMisgMSkgLypBICBBVlgtNTEy
IFZlY3RvciBCeXRlIE1hbmlwdWxhdGlvbiBJbnN0cnMgKi8KK1hFTl9DUFVGRUFUVVJFKFVNSVAs
ICAgICAgICAgIDYqMzIrIDIpIC8qUyAgVXNlciBNb2RlIEluc3RydWN0aW9uIFByZXZlbnRpb24g
Ki8KK1hFTl9DUFVGRUFUVVJFKFBLVSwgICAgICAgICAgIDYqMzIrIDMpIC8qSCAgUHJvdGVjdGlv
biBLZXlzIGZvciBVc2Vyc3BhY2UgKi8KK1hFTl9DUFVGRUFUVVJFKE9TUEtFLCAgICAgICAgIDYq
MzIrIDQpIC8qISAgT1MgUHJvdGVjdGlvbiBLZXlzIEVuYWJsZSAqLworWEVOX0NQVUZFQVRVUkUo
QVZYNTEyX1ZQT1BDTlREUSwgNiozMisxNCkgLypBICBQT1BDTlQgZm9yIHZlY3RvcnMgb2YgRFcv
UVcgKi8KK1hFTl9DUFVGRUFUVVJFKFJEUElELCAgICAgICAgIDYqMzIrMjIpIC8qQSAgUkRQSUQg
aW5zdHJ1Y3Rpb24gKi8KKworLyogQU1ELWRlZmluZWQgQ1BVIGZlYXR1cmVzLCBDUFVJRCBsZXZl
bCAweDgwMDAwMDA3LmVkeCwgd29yZCA3ICovCitYRU5fQ1BVRkVBVFVSRShJVFNDLCAgICAgICAg
ICA3KjMyKyA4KSAvKiAgIEludmFyaWFudCBUU0MgKi8KK1hFTl9DUFVGRUFUVVJFKEVGUk8sICAg
ICAgICAgIDcqMzIrMTApIC8qICAgQVBFUkYvTVBFUkYgUmVhZCBPbmx5IGludGVyZmFjZSAqLwor
CisvKiBBTUQtZGVmaW5lZCBDUFUgZmVhdHVyZXMsIENQVUlEIGxldmVsIDB4ODAwMDAwMDguZWJ4
LCB3b3JkIDggKi8KK1hFTl9DUFVGRUFUVVJFKENMWkVSTywgICAgICAgIDgqMzIrIDApIC8qQSAg
Q0xaRVJPIGluc3RydWN0aW9uICovCisKKy8qIEludGVsLWRlZmluZWQgQ1BVIGZlYXR1cmVzLCBD
UFVJRCBsZXZlbCAweDAwMDAwMDA3OjAuZWR4LCB3b3JkIDkgKi8KK1hFTl9DUFVGRUFUVVJFKEFW
WDUxMl80Vk5OSVcsIDkqMzIrIDIpIC8qQSBBVlg1MTIgTmV1cmFsIE5ldHdvcmsgSW5zdHJ1Y3Rp
b25zICovCitYRU5fQ1BVRkVBVFVSRShBVlg1MTJfNEZNQVBTLCA5KjMyKyAzKSAvKkEgQVZYNTEy
IE11bHRpcGx5IEFjY3VtdWxhdGlvbiBTaW5nbGUgUHJlY2lzaW9uICovCisKKyNlbmRpZiAvKiBY
RU5fQ1BVRkVBVFVSRSAqLworCisvKiBDbGVhbiB1cCBmcm9tIGEgZGVmYXVsdCBpbmNsdWRlLiAg
Q2xvc2UgdGhlIGVudW0gKGZvciBDKS4gKi8KKyNpZmRlZiBYRU5fQ1BVRkVBVFVSRVNFVF9ERUZB
VUxUX0lOQ0xVREUKKyN1bmRlZiBYRU5fQ1BVRkVBVFVSRVNFVF9ERUZBVUxUX0lOQ0xVREUKKyN1
bmRlZiBYRU5fQ1BVRkVBVFVSRQorfTsKKworI2VuZGlmIC8qIFhFTl9DUFVGRUFUVVJFU0VUX0RF
RkFVTFRfSU5DTFVERSAqLworCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQwor
ICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0
aDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBh
L2luY2x1ZGUveGVuL3hzbS9hcmNoLXg4Ni9jcHVpZC5oIGIvaW5jbHVkZS94ZW4veHNtL2FyY2gt
eDg2L2NwdWlkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWI3Njg3NQot
LS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL3hzbS9hcmNoLXg4Ni9jcHVpZC5oCkBAIC0w
LDAgKzEsMTE2IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBhcmNoLXg4Ni9jcHVpZC5o
CisgKiAKKyAqIENQVUlEIGludGVyZmFjZSB0byBYZW4uCisgKiAKKyAqIFBlcm1pc3Npb24gaXMg
aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBh
IGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm
aWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91
dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0
cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1Ymxp
Y2Vuc2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVy
bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBz
bywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3Zl
IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5j
bHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNv
ZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VU
IFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcg
QlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAq
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBM
SUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVU
SEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcK
KyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRI
RSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqIAorICogQ29w
eXJpZ2h0IChjKSAyMDA3IENpdHJpeCBTeXN0ZW1zLCBJbmMuCisgKiAKKyAqIEF1dGhvcnM6Cisg
KiAgICBLZWlyIEZyYXNlciA8a2VpckB4ZW4ub3JnPgorICovCisKKyNpZm5kZWYgX19YRU5fUFVC
TElDX0FSQ0hfWDg2X0NQVUlEX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfQVJDSF9YODZfQ1BV
SURfSF9fCisKKy8qCisgKiBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIG90aGVyIGh5cGVydmlzb3Ig
aW50ZXJmYWNlcywgdGhlIFhlbiBjcHVpZCBsZWF2ZXMKKyAqIGNhbiBiZSBmb3VuZCBhdCB0aGUg
Zmlyc3Qgb3RoZXJ3aXNlIHVudXNlZCAweDEwMCBhbGlnbmVkIGJvdW5kYXJ5IHN0YXJ0aW5nCisg
KiBmcm9tIDB4NDAwMDAwMDAuCisgKgorICogZS5nIElmIHZpcmlkaWFuIGV4dGVuc2lvbnMgYXJl
IGVuYWJsZWQgZm9yIGFuIEhWTSBkb21haW4sIHRoZSBYZW4gY3B1aWQKKyAqIGxlYXZlcyB3aWxs
IHN0YXJ0IGF0IDB4NDAwMDAxMDAKKyAqLworCisjZGVmaW5lIFhFTl9DUFVJRF9GSVJTVF9MRUFG
IDB4NDAwMDAwMDAKKyNkZWZpbmUgWEVOX0NQVUlEX0xFQUYoaSkgICAgKFhFTl9DUFVJRF9GSVJT
VF9MRUFGICsgKGkpKQorCisvKgorICogTGVhZiAxICgweDQwMDAweDAwKQorICogRUFYOiBMYXJn
ZXN0IFhlbi1pbmZvcm1hdGlvbiBsZWFmLiBBbGwgbGVhdmVzIHVwIHRvIGFuIGluY2x1ZGluZyBA
RUFYCisgKiAgICAgIGFyZSBzdXBwb3J0ZWQgYnkgdGhlIFhlbiBob3N0LgorICogRUJYLUVEWDog
IlhlblZNTVhlblZNTSIgc2lnbmF0dXJlLCBhbGxvd2luZyBwb3NpdGl2ZSBpZGVudGlmaWNhdGlv
bgorICogICAgICBvZiBhIFhlbiBob3N0LgorICovCisjZGVmaW5lIFhFTl9DUFVJRF9TSUdOQVRV
UkVfRUJYIDB4NTY2ZTY1NTggLyogIlhlblYiICovCisjZGVmaW5lIFhFTl9DUFVJRF9TSUdOQVRV
UkVfRUNYIDB4NjU1ODRkNGQgLyogIk1NWGUiICovCisjZGVmaW5lIFhFTl9DUFVJRF9TSUdOQVRV
UkVfRURYIDB4NGQ0ZDU2NmUgLyogIm5WTU0iICovCisKKy8qCisgKiBMZWFmIDIgKDB4NDAwMDB4
MDEpCisgKiBFQVhbMzE6MTZdOiBYZW4gbWFqb3IgdmVyc2lvbi4KKyAqIEVBWFsxNTogMF06IFhl
biBtaW5vciB2ZXJzaW9uLgorICogRUJYLUVEWDogUmVzZXJ2ZWQgKGN1cnJlbnRseSBhbGwgemVy
b2VzKS4KKyAqLworCisvKgorICogTGVhZiAzICgweDQwMDAweDAyKQorICogRUFYOiBOdW1iZXIg
b2YgaHlwZXJjYWxsIHRyYW5zZmVyIHBhZ2VzLiBUaGlzIHJlZ2lzdGVyIGlzIGFsd2F5cyBndWFy
YW50ZWVkCisgKiAgICAgIHRvIHNwZWNpZnkgb25lIGh5cGVyY2FsbCBwYWdlLgorICogRUJYOiBC
YXNlIGFkZHJlc3Mgb2YgWGVuLXNwZWNpZmljIE1TUnMuCisgKiBFQ1g6IEZlYXR1cmVzIDEuIFVu
dXNlZCBiaXRzIGFyZSBzZXQgdG8gemVyby4KKyAqIEVEWDogRmVhdHVyZXMgMi4gVW51c2VkIGJp
dHMgYXJlIHNldCB0byB6ZXJvLgorICovCisKKy8qIERvZXMgdGhlIGhvc3Qgc3VwcG9ydCBNTVVf
UFRfVVBEQVRFX1BSRVNFUlZFX0FEIGZvciB0aGlzIGd1ZXN0PyAqLworI2RlZmluZSBfWEVOX0NQ
VUlEX0ZFQVQxX01NVV9QVF9VUERBVEVfUFJFU0VSVkVfQUQgMAorI2RlZmluZSBYRU5fQ1BVSURf
RkVBVDFfTU1VX1BUX1VQREFURV9QUkVTRVJWRV9BRCAgKDF1PDwwKQorCisvKgorICogTGVhZiA0
ICgweDQwMDAweDAzKQorICogU3ViLWxlYWYgMDogRUFYOiBiaXQgMDogZW11bGF0ZWQgdHNjCisg
KiAgICAgICAgICAgICAgICAgIGJpdCAxOiBob3N0IHRzYyBpcyBrbm93biB0byBiZSByZWxpYWJs
ZQorICogICAgICAgICAgICAgICAgICBiaXQgMjogUkRUU0NQIGluc3RydWN0aW9uIGF2YWlsYWJs
ZQorICogICAgICAgICAgICAgRUJYOiB0c2NfbW9kZTogMD1kZWZhdWx0IChlbXVsYXRlIGlmIG5l
Y2Vzc2FyeSksIDE9ZW11bGF0ZSwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI9bm8g
ZW11bGF0aW9uLCAzPW5vIGVtdWxhdGlvbiArIFRTQ19BVVggc3VwcG9ydAorICogICAgICAgICAg
ICAgRUNYOiBndWVzdCB0c2MgZnJlcXVlbmN5IGluIGtIegorICogICAgICAgICAgICAgRURYOiBn
dWVzdCB0c2MgaW5jYXJuYXRpb24gKG1pZ3JhdGlvbiBjb3VudCkKKyAqIFN1Yi1sZWFmIDE6IEVB
WDogdHNjIG9mZnNldCBsb3cgcGFydAorICogICAgICAgICAgICAgRUJYOiB0c2Mgb2Zmc2V0IGhp
Z2ggcGFydAorICogICAgICAgICAgICAgRUNYOiBtdWx0aXBsaWNhdG9yIGZvciB0c2MtPm5zIGNv
bnZlcnNpb24KKyAqICAgICAgICAgICAgIEVEWDogc2hpZnQgYW1vdW50IGZvciB0c2MtPm5zIGNv
bnZlcnNpb24KKyAqIFN1Yi1sZWFmIDI6IEVBWDogaG9zdCB0c2MgZnJlcXVlbmN5IGluIGtIegor
ICovCisKKy8qCisgKiBMZWFmIDUgKDB4NDAwMDB4MDQpCisgKiBIVk0tc3BlY2lmaWMgZmVhdHVy
ZXMKKyAqIFN1Yi1sZWFmIDA6IEVBWDogRmVhdHVyZXMKKyAqIFN1Yi1sZWFmIDA6IEVCWDogdmNw
dSBpZCAoaWZmIEVBWCBoYXMgWEVOX0hWTV9DUFVJRF9WQ1BVX0lEX1BSRVNFTlQgZmxhZykKKyAq
LworI2RlZmluZSBYRU5fSFZNX0NQVUlEX0FQSUNfQUNDRVNTX1ZJUlQgKDF1IDw8IDApIC8qIFZp
cnR1YWxpemVkIEFQSUMgcmVnaXN0ZXJzICovCisjZGVmaW5lIFhFTl9IVk1fQ1BVSURfWDJBUElD
X1ZJUlQgICAgICAoMXUgPDwgMSkgLyogVmlydHVhbGl6ZWQgeDJBUElDIGFjY2Vzc2VzICovCisv
KiBNZW1vcnkgbWFwcGVkIGZyb20gb3RoZXIgZG9tYWlucyBoYXMgdmFsaWQgSU9NTVUgZW50cmll
cyAqLworI2RlZmluZSBYRU5fSFZNX0NQVUlEX0lPTU1VX01BUFBJTkdTICAgKDF1IDw8IDIpCisj
ZGVmaW5lIFhFTl9IVk1fQ1BVSURfVkNQVV9JRF9QUkVTRU5UICAoMXUgPDwgMykgLyogdmNwdSBp
ZCBpcyBwcmVzZW50IGluIEVCWCAqLworCisvKgorICogTGVhZiA2ICgweDQwMDAweDA1KQorICog
UFYtc3BlY2lmaWMgcGFyYW1ldGVycworICogU3ViLWxlYWYgMDogRUFYOiBtYXggYXZhaWxhYmxl
IHN1Yi1sZWFmCisgKiBTdWItbGVhZiAwOiBFQlg6IGJpdHMgMC03OiBtYXggbWFjaGluZSBhZGRy
ZXNzIHdpZHRoCisgKi8KKworLyogTWF4LiBhZGRyZXNzIHdpZHRoIGluIGJpdHMgdGFraW5nIG1l
bW9yeSBob3RwbHVnIGludG8gYWNjb3VudC4gKi8KKyNkZWZpbmUgWEVOX0NQVUlEX01BQ0hJTkVf
QUREUkVTU19XSURUSF9NQVNLICgweGZmdSA8PCAwKQorCisjZGVmaW5lIFhFTl9DUFVJRF9NQVhf
TlVNX0xFQVZFUyA1CisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfQVJDSF9YODZfQ1BVSURfSF9f
ICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi94c20vYXJjaC14ODYvaHZtL3NhdmUuaCBiL2lu
Y2x1ZGUveGVuL3hzbS9hcmNoLXg4Ni9odm0vc2F2ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmZkN2JmM2YKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi94c20v
YXJjaC14ODYvaHZtL3NhdmUuaApAQCAtMCwwICsxLDY1NyBAQAorLyogCisgKiBTdHJ1Y3R1cmUg
ZGVmaW5pdGlvbnMgZm9yIEhWTSBzdGF0ZSB0aGF0IGlzIGhlbGQgYnkgWGVuIGFuZCBtdXN0Cisg
KiBiZSBzYXZlZCBhbG9uZyB3aXRoIHRoZSBkb21haW4ncyBtZW1vcnkgYW5kIGRldmljZS1tb2Rl
bCBzdGF0ZS4KKyAqIAorICogQ29weXJpZ2h0IChjKSAyMDA3IFhlblNvdXJjZSBMdGQuCisgKgor
ICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBw
ZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRl
ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFsIGluIHRo
ZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0
aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwg
ZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29m
dHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICog
ZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoK
KyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5v
dGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBw
b3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVE
ICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElN
UExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5P
TklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENPUFlS
SUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisg
KiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9U
SEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBU
SEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRX
QVJFLgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElDX0hWTV9TQVZFX1g4Nl9IX18KKyNkZWZp
bmUgX19YRU5fUFVCTElDX0hWTV9TQVZFX1g4Nl9IX18KKworLyogCisgKiBTYXZlL3Jlc3RvcmUg
aGVhZGVyOiBnZW5lcmFsIGluZm8gYWJvdXQgdGhlIHNhdmUgZmlsZS4gCisgKi8KKworI2RlZmlu
ZSBIVk1fRklMRV9NQUdJQyAgIDB4NTQzODEyODYKKyNkZWZpbmUgSFZNX0ZJTEVfVkVSU0lPTiAw
eDAwMDAwMDAxCisKK3N0cnVjdCBodm1fc2F2ZV9oZWFkZXIgeworICAgIHVpbnQzMl90IG1hZ2lj
OyAgICAgICAgICAgICAvKiBNdXN0IGJlIEhWTV9GSUxFX01BR0lDICovCisgICAgdWludDMyX3Qg
dmVyc2lvbjsgICAgICAgICAgIC8qIEZpbGUgZm9ybWF0IHZlcnNpb24gKi8KKyAgICB1aW50NjRf
dCBjaGFuZ2VzZXQ7ICAgICAgICAgLyogVmVyc2lvbiBvZiBYZW4gdGhhdCBzYXZlZCB0aGlzIGZp
bGUgKi8KKyAgICB1aW50MzJfdCBjcHVpZDsgICAgICAgICAgICAgLyogQ1BVSURbMHgwMV1bJWVh
eF0gb24gdGhlIHNhdmluZyBtYWNoaW5lICovCisgICAgdWludDMyX3QgZ3RzY19raHo7ICAgICAg
ICAvKiBHdWVzdCdzIFRTQyBmcmVxdWVuY3kgaW4ga0h6ICovCit9OworCitERUNMQVJFX0hWTV9T
QVZFX1RZUEUoSEVBREVSLCAxLCBzdHJ1Y3QgaHZtX3NhdmVfaGVhZGVyKTsKKworCisvKgorICog
UHJvY2Vzc29yCisgKgorICogQ29tcGF0OgorICogICAgIC0gUHJlLTMuNCBkaWRuJ3QgaGF2ZSBt
c3JfdHNjX2F1eAorICogICAgIC0gUHJlLTQuNyBkaWRuJ3QgaGF2ZSBmcHVfaW5pdGlhbGlzZWQK
KyAqLworCitzdHJ1Y3QgaHZtX2h3X2NwdSB7CisgICAgdWludDhfdCAgZnB1X3JlZ3NbNTEyXTsK
KworICAgIHVpbnQ2NF90IHJheDsKKyAgICB1aW50NjRfdCByYng7CisgICAgdWludDY0X3QgcmN4
OworICAgIHVpbnQ2NF90IHJkeDsKKyAgICB1aW50NjRfdCByYnA7CisgICAgdWludDY0X3QgcnNp
OworICAgIHVpbnQ2NF90IHJkaTsKKyAgICB1aW50NjRfdCByc3A7CisgICAgdWludDY0X3Qgcjg7
CisgICAgdWludDY0X3Qgcjk7CisgICAgdWludDY0X3QgcjEwOworICAgIHVpbnQ2NF90IHIxMTsK
KyAgICB1aW50NjRfdCByMTI7CisgICAgdWludDY0X3QgcjEzOworICAgIHVpbnQ2NF90IHIxNDsK
KyAgICB1aW50NjRfdCByMTU7CisKKyAgICB1aW50NjRfdCByaXA7CisgICAgdWludDY0X3QgcmZs
YWdzOworCisgICAgdWludDY0X3QgY3IwOworICAgIHVpbnQ2NF90IGNyMjsKKyAgICB1aW50NjRf
dCBjcjM7CisgICAgdWludDY0X3QgY3I0OworCisgICAgdWludDY0X3QgZHIwOworICAgIHVpbnQ2
NF90IGRyMTsKKyAgICB1aW50NjRfdCBkcjI7CisgICAgdWludDY0X3QgZHIzOworICAgIHVpbnQ2
NF90IGRyNjsKKyAgICB1aW50NjRfdCBkcjc7ICAgIAorCisgICAgdWludDMyX3QgY3Nfc2VsOwor
ICAgIHVpbnQzMl90IGRzX3NlbDsKKyAgICB1aW50MzJfdCBlc19zZWw7CisgICAgdWludDMyX3Qg
ZnNfc2VsOworICAgIHVpbnQzMl90IGdzX3NlbDsKKyAgICB1aW50MzJfdCBzc19zZWw7CisgICAg
dWludDMyX3QgdHJfc2VsOworICAgIHVpbnQzMl90IGxkdHJfc2VsOworCisgICAgdWludDMyX3Qg
Y3NfbGltaXQ7CisgICAgdWludDMyX3QgZHNfbGltaXQ7CisgICAgdWludDMyX3QgZXNfbGltaXQ7
CisgICAgdWludDMyX3QgZnNfbGltaXQ7CisgICAgdWludDMyX3QgZ3NfbGltaXQ7CisgICAgdWlu
dDMyX3Qgc3NfbGltaXQ7CisgICAgdWludDMyX3QgdHJfbGltaXQ7CisgICAgdWludDMyX3QgbGR0
cl9saW1pdDsKKyAgICB1aW50MzJfdCBpZHRyX2xpbWl0OworICAgIHVpbnQzMl90IGdkdHJfbGlt
aXQ7CisKKyAgICB1aW50NjRfdCBjc19iYXNlOworICAgIHVpbnQ2NF90IGRzX2Jhc2U7CisgICAg
dWludDY0X3QgZXNfYmFzZTsKKyAgICB1aW50NjRfdCBmc19iYXNlOworICAgIHVpbnQ2NF90IGdz
X2Jhc2U7CisgICAgdWludDY0X3Qgc3NfYmFzZTsKKyAgICB1aW50NjRfdCB0cl9iYXNlOworICAg
IHVpbnQ2NF90IGxkdHJfYmFzZTsKKyAgICB1aW50NjRfdCBpZHRyX2Jhc2U7CisgICAgdWludDY0
X3QgZ2R0cl9iYXNlOworCisgICAgdWludDMyX3QgY3NfYXJieXRlczsKKyAgICB1aW50MzJfdCBk
c19hcmJ5dGVzOworICAgIHVpbnQzMl90IGVzX2FyYnl0ZXM7CisgICAgdWludDMyX3QgZnNfYXJi
eXRlczsKKyAgICB1aW50MzJfdCBnc19hcmJ5dGVzOworICAgIHVpbnQzMl90IHNzX2FyYnl0ZXM7
CisgICAgdWludDMyX3QgdHJfYXJieXRlczsKKyAgICB1aW50MzJfdCBsZHRyX2FyYnl0ZXM7CisK
KyAgICB1aW50NjRfdCBzeXNlbnRlcl9jczsKKyAgICB1aW50NjRfdCBzeXNlbnRlcl9lc3A7Cisg
ICAgdWludDY0X3Qgc3lzZW50ZXJfZWlwOworCisgICAgLyogbXNyIGZvciBlbTY0dCAqLworICAg
IHVpbnQ2NF90IHNoYWRvd19nczsKKworICAgIC8qIG1zciBjb250ZW50IHNhdmVkL3Jlc3RvcmVk
LiAqLworICAgIHVpbnQ2NF90IG1zcl9mbGFnczsgLyogT2Jzb2xldGUsIGlnbm9yZWQuICovCisg
ICAgdWludDY0X3QgbXNyX2xzdGFyOworICAgIHVpbnQ2NF90IG1zcl9zdGFyOworICAgIHVpbnQ2
NF90IG1zcl9jc3RhcjsKKyAgICB1aW50NjRfdCBtc3Jfc3lzY2FsbF9tYXNrOworICAgIHVpbnQ2
NF90IG1zcl9lZmVyOworICAgIHVpbnQ2NF90IG1zcl90c2NfYXV4OworCisgICAgLyogZ3Vlc3Qn
cyBpZGVhIG9mIHdoYXQgcmR0c2MoKSB3b3VsZCByZXR1cm4gKi8KKyAgICB1aW50NjRfdCB0c2M7
CisKKyAgICAvKiBwZW5kaW5nIGV2ZW50LCBpZiBhbnkgKi8KKyAgICB1bmlvbiB7CisgICAgICAg
IHVpbnQzMl90IHBlbmRpbmdfZXZlbnQ7CisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1
aW50OF90ICBwZW5kaW5nX3ZlY3Rvcjo4OworICAgICAgICAgICAgdWludDhfdCAgcGVuZGluZ190
eXBlOjM7CisgICAgICAgICAgICB1aW50OF90ICBwZW5kaW5nX2Vycm9yX3ZhbGlkOjE7CisgICAg
ICAgICAgICB1aW50MzJfdCBwZW5kaW5nX3Jlc2VydmVkOjE5OworICAgICAgICAgICAgdWludDhf
dCAgcGVuZGluZ192YWxpZDoxOworICAgICAgICB9OworICAgIH07CisgICAgLyogZXJyb3IgY29k
ZSBmb3IgcGVuZGluZyBldmVudCAqLworICAgIHVpbnQzMl90IGVycm9yX2NvZGU7CisKKyNkZWZp
bmUgX1hFTl9YODZfRlBVX0lOSVRJQUxJU0VEICAgICAgICAwCisjZGVmaW5lIFhFTl9YODZfRlBV
X0lOSVRJQUxJU0VEICAgICAgICAgKDFVPDxfWEVOX1g4Nl9GUFVfSU5JVElBTElTRUQpCisgICAg
dWludDMyX3QgZmxhZ3M7CisgICAgdWludDMyX3QgcGFkMDsKK307CisKK3N0cnVjdCBodm1faHdf
Y3B1X2NvbXBhdCB7CisgICAgdWludDhfdCAgZnB1X3JlZ3NbNTEyXTsKKworICAgIHVpbnQ2NF90
IHJheDsKKyAgICB1aW50NjRfdCByYng7CisgICAgdWludDY0X3QgcmN4OworICAgIHVpbnQ2NF90
IHJkeDsKKyAgICB1aW50NjRfdCByYnA7CisgICAgdWludDY0X3QgcnNpOworICAgIHVpbnQ2NF90
IHJkaTsKKyAgICB1aW50NjRfdCByc3A7CisgICAgdWludDY0X3Qgcjg7CisgICAgdWludDY0X3Qg
cjk7CisgICAgdWludDY0X3QgcjEwOworICAgIHVpbnQ2NF90IHIxMTsKKyAgICB1aW50NjRfdCBy
MTI7CisgICAgdWludDY0X3QgcjEzOworICAgIHVpbnQ2NF90IHIxNDsKKyAgICB1aW50NjRfdCBy
MTU7CisKKyAgICB1aW50NjRfdCByaXA7CisgICAgdWludDY0X3QgcmZsYWdzOworCisgICAgdWlu
dDY0X3QgY3IwOworICAgIHVpbnQ2NF90IGNyMjsKKyAgICB1aW50NjRfdCBjcjM7CisgICAgdWlu
dDY0X3QgY3I0OworCisgICAgdWludDY0X3QgZHIwOworICAgIHVpbnQ2NF90IGRyMTsKKyAgICB1
aW50NjRfdCBkcjI7CisgICAgdWludDY0X3QgZHIzOworICAgIHVpbnQ2NF90IGRyNjsKKyAgICB1
aW50NjRfdCBkcjc7ICAgIAorCisgICAgdWludDMyX3QgY3Nfc2VsOworICAgIHVpbnQzMl90IGRz
X3NlbDsKKyAgICB1aW50MzJfdCBlc19zZWw7CisgICAgdWludDMyX3QgZnNfc2VsOworICAgIHVp
bnQzMl90IGdzX3NlbDsKKyAgICB1aW50MzJfdCBzc19zZWw7CisgICAgdWludDMyX3QgdHJfc2Vs
OworICAgIHVpbnQzMl90IGxkdHJfc2VsOworCisgICAgdWludDMyX3QgY3NfbGltaXQ7CisgICAg
dWludDMyX3QgZHNfbGltaXQ7CisgICAgdWludDMyX3QgZXNfbGltaXQ7CisgICAgdWludDMyX3Qg
ZnNfbGltaXQ7CisgICAgdWludDMyX3QgZ3NfbGltaXQ7CisgICAgdWludDMyX3Qgc3NfbGltaXQ7
CisgICAgdWludDMyX3QgdHJfbGltaXQ7CisgICAgdWludDMyX3QgbGR0cl9saW1pdDsKKyAgICB1
aW50MzJfdCBpZHRyX2xpbWl0OworICAgIHVpbnQzMl90IGdkdHJfbGltaXQ7CisKKyAgICB1aW50
NjRfdCBjc19iYXNlOworICAgIHVpbnQ2NF90IGRzX2Jhc2U7CisgICAgdWludDY0X3QgZXNfYmFz
ZTsKKyAgICB1aW50NjRfdCBmc19iYXNlOworICAgIHVpbnQ2NF90IGdzX2Jhc2U7CisgICAgdWlu
dDY0X3Qgc3NfYmFzZTsKKyAgICB1aW50NjRfdCB0cl9iYXNlOworICAgIHVpbnQ2NF90IGxkdHJf
YmFzZTsKKyAgICB1aW50NjRfdCBpZHRyX2Jhc2U7CisgICAgdWludDY0X3QgZ2R0cl9iYXNlOwor
CisgICAgdWludDMyX3QgY3NfYXJieXRlczsKKyAgICB1aW50MzJfdCBkc19hcmJ5dGVzOworICAg
IHVpbnQzMl90IGVzX2FyYnl0ZXM7CisgICAgdWludDMyX3QgZnNfYXJieXRlczsKKyAgICB1aW50
MzJfdCBnc19hcmJ5dGVzOworICAgIHVpbnQzMl90IHNzX2FyYnl0ZXM7CisgICAgdWludDMyX3Qg
dHJfYXJieXRlczsKKyAgICB1aW50MzJfdCBsZHRyX2FyYnl0ZXM7CisKKyAgICB1aW50NjRfdCBz
eXNlbnRlcl9jczsKKyAgICB1aW50NjRfdCBzeXNlbnRlcl9lc3A7CisgICAgdWludDY0X3Qgc3lz
ZW50ZXJfZWlwOworCisgICAgLyogbXNyIGZvciBlbTY0dCAqLworICAgIHVpbnQ2NF90IHNoYWRv
d19nczsKKworICAgIC8qIG1zciBjb250ZW50IHNhdmVkL3Jlc3RvcmVkLiAqLworICAgIHVpbnQ2
NF90IG1zcl9mbGFnczsgLyogT2Jzb2xldGUsIGlnbm9yZWQuICovCisgICAgdWludDY0X3QgbXNy
X2xzdGFyOworICAgIHVpbnQ2NF90IG1zcl9zdGFyOworICAgIHVpbnQ2NF90IG1zcl9jc3RhcjsK
KyAgICB1aW50NjRfdCBtc3Jfc3lzY2FsbF9tYXNrOworICAgIHVpbnQ2NF90IG1zcl9lZmVyOwor
ICAgIC8qdWludDY0X3QgbXNyX3RzY19hdXg7IENPTVBBVCAqLworCisgICAgLyogZ3Vlc3QncyBp
ZGVhIG9mIHdoYXQgcmR0c2MoKSB3b3VsZCByZXR1cm4gKi8KKyAgICB1aW50NjRfdCB0c2M7CisK
KyAgICAvKiBwZW5kaW5nIGV2ZW50LCBpZiBhbnkgKi8KKyAgICB1bmlvbiB7CisgICAgICAgIHVp
bnQzMl90IHBlbmRpbmdfZXZlbnQ7CisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1aW50
OF90ICBwZW5kaW5nX3ZlY3Rvcjo4OworICAgICAgICAgICAgdWludDhfdCAgcGVuZGluZ190eXBl
OjM7CisgICAgICAgICAgICB1aW50OF90ICBwZW5kaW5nX2Vycm9yX3ZhbGlkOjE7CisgICAgICAg
ICAgICB1aW50MzJfdCBwZW5kaW5nX3Jlc2VydmVkOjE5OworICAgICAgICAgICAgdWludDhfdCAg
cGVuZGluZ192YWxpZDoxOworICAgICAgICB9OworICAgIH07CisgICAgLyogZXJyb3IgY29kZSBm
b3IgcGVuZGluZyBldmVudCAqLworICAgIHVpbnQzMl90IGVycm9yX2NvZGU7Cit9OworCitzdGF0
aWMgaW5saW5lIGludCBfaHZtX2h3X2ZpeF9jcHUodm9pZCAqaCwgdWludDMyX3Qgc2l6ZSkgewor
CisgICAgdW5pb24gaHZtX2h3X2NwdV91bmlvbiB7CisgICAgICAgIHN0cnVjdCBodm1faHdfY3B1
IG5hdDsKKyAgICAgICAgc3RydWN0IGh2bV9od19jcHVfY29tcGF0IGNtcDsKKyAgICB9ICp1Y3B1
ID0gKHVuaW9uIGh2bV9od19jcHVfdW5pb24gKiloOworCisgICAgaWYgKCBzaXplID09IHNpemVv
ZihzdHJ1Y3QgaHZtX2h3X2NwdV9jb21wYXQpICkKKyAgICB7CisgICAgICAgIC8qCisgICAgICAg
ICAqIElmIHdlIGNvcHkgZnJvbSB0aGUgZW5kIGJhY2t3YXJkcywgd2Ugc2hvdWxkCisgICAgICAg
ICAqIGJlIGFibGUgdG8gZG8gdGhlIG1vZGlmaWNhdGlvbiBpbi1wbGFjZS4KKyAgICAgICAgICov
CisgICAgICAgIHVjcHUtPm5hdC5lcnJvcl9jb2RlID0gdWNwdS0+Y21wLmVycm9yX2NvZGU7Cisg
ICAgICAgIHVjcHUtPm5hdC5wZW5kaW5nX2V2ZW50ID0gdWNwdS0+Y21wLnBlbmRpbmdfZXZlbnQ7
CisgICAgICAgIHVjcHUtPm5hdC50c2MgPSB1Y3B1LT5jbXAudHNjOworICAgICAgICB1Y3B1LT5u
YXQubXNyX3RzY19hdXggPSAwOworICAgIH0KKyAgICAvKiBNaW1pYyB0aGUgb2xkIGJlaGF2aW91
ciBieSB1bmNvbmRpdGlvbmFsbHkgc2V0dGluZyBmcHVfaW5pdGlhbGlzZWQuICovCisgICAgdWNw
dS0+bmF0LmZsYWdzID0gWEVOX1g4Nl9GUFVfSU5JVElBTElTRUQ7CisKKyAgICByZXR1cm4gMDsK
K30KKworREVDTEFSRV9IVk1fU0FWRV9UWVBFX0NPTVBBVChDUFUsIDIsIHN0cnVjdCBodm1faHdf
Y3B1LCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBodm1faHdfY3B1X2Nv
bXBhdCwgX2h2bV9od19maXhfY3B1KTsKKworLyoKKyAqIFBJQworICovCisKK3N0cnVjdCBodm1f
aHdfdnBpYyB7CisgICAgLyogSVIgbGluZSBiaXRtYXNrcy4gKi8KKyAgICB1aW50OF90IGlycjsK
KyAgICB1aW50OF90IGltcjsKKyAgICB1aW50OF90IGlzcjsKKworICAgIC8qIExpbmUgSVJ4IG1h
cHMgdG8gSVJRIGlycV9iYXNlK3ggKi8KKyAgICB1aW50OF90IGlycV9iYXNlOworCisgICAgLyoK
KyAgICAgKiBXaGVyZSBhcmUgd2UgaW4gSUNXMi00IGluaXRpYWxpc2F0aW9uICgwIG1lYW5zIG5v
IGluaXQgaW4gcHJvZ3Jlc3MpPworICAgICAqIEJpdHMgMC0xICg9eCk6IE5leHQgd3JpdGUgYXQg
QT0xIHNldHMgSUNXKHgrMSkuCisgICAgICogQml0IDI6IElDVzEuSUM0ICAoMSA9PSBJQ1c0IGlu
Y2x1ZGVkIGluIGluaXQgc2VxdWVuY2UpCisgICAgICogQml0IDM6IElDVzEuU05HTCAoMCA9PSBJ
Q1czIGluY2x1ZGVkIGluIGluaXQgc2VxdWVuY2UpCisgICAgICovCisgICAgdWludDhfdCBpbml0
X3N0YXRlOjQ7CisKKyAgICAvKiBJUiBsaW5lIHdpdGggaGlnaGVzdCBwcmlvcml0eS4gKi8KKyAg
ICB1aW50OF90IHByaW9yaXR5X2FkZDo0OworCisgICAgLyogUmVhZHMgZnJvbSBBPTAgb2J0YWlu
IElTUiBvciBJUlI/ICovCisgICAgdWludDhfdCByZWFkc2VsX2lzcjoxOworCisgICAgLyogUmVh
ZHMgcGVyZm9ybSBhIHBvbGxpbmcgcmVhZD8gKi8KKyAgICB1aW50OF90IHBvbGw6MTsKKworICAg
IC8qIEF1dG9tYXRpY2FsbHkgY2xlYXIgSVJRcyBmcm9tIHRoZSBJU1IgZHVyaW5nIElOVEE/ICov
CisgICAgdWludDhfdCBhdXRvX2VvaToxOworCisgICAgLyogQXV0b21hdGljYWxseSByb3RhdGUg
SVJRIHByaW9yaXRpZXMgZHVyaW5nIEFFT0k/ICovCisgICAgdWludDhfdCByb3RhdGVfb25fYXV0
b19lb2k6MTsKKworICAgIC8qIEV4Y2x1ZGUgc2xhdmUgaW5wdXRzIHdoZW4gY29uc2lkZXJpbmcg
aW4tc2VydmljZSBJUlFzPyAqLworICAgIHVpbnQ4X3Qgc3BlY2lhbF9mdWxseV9uZXN0ZWRfbW9k
ZToxOworCisgICAgLyogU3BlY2lhbCBtYXNrIG1vZGUgZXhjbHVkZXMgbWFza2VkIElScyBmcm9t
IEFFT0kgYW5kIHByaW9yaXR5IGNoZWNrcy4gKi8KKyAgICB1aW50OF90IHNwZWNpYWxfbWFza19t
b2RlOjE7CisKKyAgICAvKiBJcyB0aGlzIGEgbWFzdGVyIFBJQyBvciBzbGF2ZSBQSUM/IChOQi4g
VGhpcyBpcyBub3QgcHJvZ3JhbW1hYmxlLikgKi8KKyAgICB1aW50OF90IGlzX21hc3RlcjoxOwor
CisgICAgLyogRWRnZS90cmlnZ2VyIHNlbGVjdGlvbi4gKi8KKyAgICB1aW50OF90IGVsY3I7CisK
KyAgICAvKiBWaXJ0dWFsIElOVCBvdXRwdXQuICovCisgICAgdWludDhfdCBpbnRfb3V0cHV0Owor
fTsKKworREVDTEFSRV9IVk1fU0FWRV9UWVBFKFBJQywgMywgc3RydWN0IGh2bV9od192cGljKTsK
KworCisvKgorICogSU8tQVBJQworICovCisKK3VuaW9uIHZpb2FwaWNfcmVkaXJfZW50cnkKK3sK
KyAgICB1aW50NjRfdCBiaXRzOworICAgIHN0cnVjdCB7CisgICAgICAgIHVpbnQ4X3QgdmVjdG9y
OworICAgICAgICB1aW50OF90IGRlbGl2ZXJ5X21vZGU6MzsKKyAgICAgICAgdWludDhfdCBkZXN0
X21vZGU6MTsKKyAgICAgICAgdWludDhfdCBkZWxpdmVyeV9zdGF0dXM6MTsKKyAgICAgICAgdWlu
dDhfdCBwb2xhcml0eToxOworICAgICAgICB1aW50OF90IHJlbW90ZV9pcnI6MTsKKyAgICAgICAg
dWludDhfdCB0cmlnX21vZGU6MTsKKyAgICAgICAgdWludDhfdCBtYXNrOjE7CisgICAgICAgIHVp
bnQ4X3QgcmVzZXJ2ZTo3OworICAgICAgICB1aW50OF90IHJlc2VydmVkWzRdOworICAgICAgICB1
aW50OF90IGRlc3RfaWQ7CisgICAgfSBmaWVsZHM7Cit9OworCisjZGVmaW5lIFZJT0FQSUNfTlVN
X1BJTlMgIDQ4IC8qIDE2IElTQSBJUlFzLCAzMiBub24tbGVnYWN5IFBDSSBJUlFTLiAqLworCisj
ZGVmaW5lIFhFTl9IVk1fVklPQVBJQyhuYW1lLCBjbnQpICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICBzdHJ1Y3QgbmFtZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorICAgICAgICB1aW50NjRfdCBiYXNlX2FkZHJlc3M7ICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgICAgIHVpbnQzMl90IGlvcmVnc2VsOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICAgICAgdWludDMyX3QgaWQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgICAgICB1bmlvbiB2aW9hcGljX3JlZGlyX2VudHJ5IHJlZGlydGJsW2NudF07
ICAgICAgICBcCisgICAgfQorCitYRU5fSFZNX1ZJT0FQSUMoaHZtX2h3X3Zpb2FwaWMsIFZJT0FQ
SUNfTlVNX1BJTlMpOworCisjaWZuZGVmIF9fWEVOX18KKyN1bmRlZiBYRU5fSFZNX1ZJT0FQSUMK
KyNlbHNlCisjdW5kZWYgVklPQVBJQ19OVU1fUElOUworI2VuZGlmCisKK0RFQ0xBUkVfSFZNX1NB
VkVfVFlQRShJT0FQSUMsIDQsIHN0cnVjdCBodm1faHdfdmlvYXBpYyk7CisKKworLyoKKyAqIExB
UElDCisgKi8KKworc3RydWN0IGh2bV9od19sYXBpYyB7CisgICAgdWludDY0X3QgICAgICAgICAg
ICAgYXBpY19iYXNlX21zcjsKKyAgICB1aW50MzJfdCAgICAgICAgICAgICBkaXNhYmxlZDsgLyog
VkxBUElDX3h4X0RJU0FCTEVEICovCisgICAgdWludDMyX3QgICAgICAgICAgICAgdGltZXJfZGl2
aXNvcjsKKyAgICB1aW50NjRfdCAgICAgICAgICAgICB0ZHRfbXNyOworfTsKKworREVDTEFSRV9I
Vk1fU0FWRV9UWVBFKExBUElDLCA1LCBzdHJ1Y3QgaHZtX2h3X2xhcGljKTsKKworc3RydWN0IGh2
bV9od19sYXBpY19yZWdzIHsKKyAgICB1aW50OF90IGRhdGFbMTAyNF07Cit9OworCitERUNMQVJF
X0hWTV9TQVZFX1RZUEUoTEFQSUNfUkVHUywgNiwgc3RydWN0IGh2bV9od19sYXBpY19yZWdzKTsK
KworCisvKgorICogSVJRcworICovCisKK3N0cnVjdCBodm1faHdfcGNpX2lycXMgeworICAgIC8q
CisgICAgICogVmlydHVhbCBpbnRlcnJ1cHQgd2lyZXMgZm9yIGEgc2luZ2xlIFBDSSBidXMuCisg
ICAgICogSW5kZXhlZCBieTogZGV2aWNlKjQgKyBJTlR4Iy4KKyAgICAgKi8KKyAgICB1bmlvbiB7
CisgICAgICAgIHVuc2lnbmVkIGxvbmcgaVsxNiAvIHNpemVvZiAodW5zaWduZWQgbG9uZyldOyAv
KiBERUNMQVJFX0JJVE1BUChpLCAzMio0KTsgKi8KKyAgICAgICAgdWludDY0X3QgcGFkWzJdOwor
ICAgIH07Cit9OworCitERUNMQVJFX0hWTV9TQVZFX1RZUEUoUENJX0lSUSwgNywgc3RydWN0IGh2
bV9od19wY2lfaXJxcyk7CisKK3N0cnVjdCBodm1faHdfaXNhX2lycXMgeworICAgIC8qCisgICAg
ICogVmlydHVhbCBpbnRlcnJ1cHQgd2lyZXMgZm9yIElTQSBkZXZpY2VzLgorICAgICAqIEluZGV4
ZWQgYnkgSVNBIElSUSAoYXNzdW1lcyBubyBJU0EtZGV2aWNlIElSUSBzaGFyaW5nKS4KKyAgICAg
Ki8KKyAgICB1bmlvbiB7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgaVsxXTsgIC8qIERFQ0xBUkVf
QklUTUFQKGksIDE2KTsgKi8KKyAgICAgICAgdWludDY0X3QgcGFkWzFdOworICAgIH07Cit9Owor
CitERUNMQVJFX0hWTV9TQVZFX1RZUEUoSVNBX0lSUSwgOCwgc3RydWN0IGh2bV9od19pc2FfaXJx
cyk7CisKK3N0cnVjdCBodm1faHdfcGNpX2xpbmsgeworICAgIC8qCisgICAgICogUENJLUlTQSBp
bnRlcnJ1cHQgcm91dGVyLgorICAgICAqIEVhY2ggUENJIDxkZXZpY2U6SU5UeCM+IGlzICd3aXJl
LU9SZWQnIGludG8gb25lIG9mIGZvdXIgbGlua3MgdXNpbmcKKyAgICAgKiB0aGUgdHJhZGl0aW9u
YWwgJ2JhcmJlcidzIHBvbGUnIG1hcHBpbmcgKChkZXZpY2UgKyBJTlR4IykgJiAzKS4KKyAgICAg
KiBUaGUgcm91dGVyIHByb3ZpZGVzIGEgcHJvZ3JhbW1hYmxlIG1hcHBpbmcgZnJvbSBlYWNoIGxp
bmsgdG8gYSBHU0kuCisgICAgICovCisgICAgdWludDhfdCByb3V0ZVs0XTsKKyAgICB1aW50OF90
IHBhZDBbNF07Cit9OworCitERUNMQVJFX0hWTV9TQVZFX1RZUEUoUENJX0xJTkssIDksIHN0cnVj
dCBodm1faHdfcGNpX2xpbmspOworCisvKiAKKyAqICBQSVQKKyAqLworCitzdHJ1Y3QgaHZtX2h3
X3BpdCB7CisgICAgc3RydWN0IGh2bV9od19waXRfY2hhbm5lbCB7CisgICAgICAgIHVpbnQzMl90
IGNvdW50OyAvKiBjYW4gYmUgNjU1MzYgKi8KKyAgICAgICAgdWludDE2X3QgbGF0Y2hlZF9jb3Vu
dDsKKyAgICAgICAgdWludDhfdCBjb3VudF9sYXRjaGVkOworICAgICAgICB1aW50OF90IHN0YXR1
c19sYXRjaGVkOworICAgICAgICB1aW50OF90IHN0YXR1czsKKyAgICAgICAgdWludDhfdCByZWFk
X3N0YXRlOworICAgICAgICB1aW50OF90IHdyaXRlX3N0YXRlOworICAgICAgICB1aW50OF90IHdy
aXRlX2xhdGNoOworICAgICAgICB1aW50OF90IHJ3X21vZGU7CisgICAgICAgIHVpbnQ4X3QgbW9k
ZTsKKyAgICAgICAgdWludDhfdCBiY2Q7IC8qIG5vdCBzdXBwb3J0ZWQgKi8KKyAgICAgICAgdWlu
dDhfdCBnYXRlOyAvKiB0aW1lciBzdGFydCAqLworICAgIH0gY2hhbm5lbHNbM107ICAvKiAzIHgg
MTYgYnl0ZXMgKi8KKyAgICB1aW50MzJfdCBzcGVha2VyX2RhdGFfb247CisgICAgdWludDMyX3Qg
cGFkMDsKK307CisKK0RFQ0xBUkVfSFZNX1NBVkVfVFlQRShQSVQsIDEwLCBzdHJ1Y3QgaHZtX2h3
X3BpdCk7CisKKworLyogCisgKiBSVEMKKyAqLyAKKworI2RlZmluZSBSVENfQ01PU19TSVpFIDE0
CitzdHJ1Y3QgaHZtX2h3X3J0YyB7CisgICAgLyogQ01PUyBieXRlcyAqLworICAgIHVpbnQ4X3Qg
Y21vc19kYXRhW1JUQ19DTU9TX1NJWkVdOworICAgIC8qIEluZGV4IHJlZ2lzdGVyIGZvciAyLXBh
cnQgb3BlcmF0aW9ucyAqLworICAgIHVpbnQ4X3QgY21vc19pbmRleDsKKyAgICB1aW50OF90IHBh
ZDA7Cit9OworCitERUNMQVJFX0hWTV9TQVZFX1RZUEUoUlRDLCAxMSwgc3RydWN0IGh2bV9od19y
dGMpOworCisKKy8qCisgKiBIUEVUCisgKi8KKworI2RlZmluZSBIUEVUX1RJTUVSX05VTSAgICAg
MyAgICAvKiAzIHRpbWVycyBzdXBwb3J0ZWQgbm93ICovCitzdHJ1Y3QgaHZtX2h3X2hwZXQgewor
ICAgIC8qIE1lbW9yeS1tYXBwZWQsIHNvZnR3YXJlIHZpc2libGUgcmVnaXN0ZXJzICovCisgICAg
dWludDY0X3QgY2FwYWJpbGl0eTsgICAgICAgIC8qIGNhcGFiaWxpdGllcyAqLworICAgIHVpbnQ2
NF90IHJlczA7ICAgICAgICAgICAgICAvKiByZXNlcnZlZCAqLworICAgIHVpbnQ2NF90IGNvbmZp
ZzsgICAgICAgICAgICAvKiBjb25maWd1cmF0aW9uICovCisgICAgdWludDY0X3QgcmVzMTsgICAg
ICAgICAgICAgIC8qIHJlc2VydmVkICovCisgICAgdWludDY0X3QgaXNyOyAgICAgICAgICAgICAg
IC8qIGludGVycnVwdCBzdGF0dXMgcmVnICovCisgICAgdWludDY0X3QgcmVzMlsyNV07ICAgICAg
ICAgIC8qIHJlc2VydmVkICovCisgICAgdWludDY0X3QgbWM2NDsgICAgICAgICAgICAgIC8qIG1h
aW4gY291bnRlciAqLworICAgIHVpbnQ2NF90IHJlczM7ICAgICAgICAgICAgICAvKiByZXNlcnZl
ZCAqLworICAgIHN0cnVjdCB7ICAgICAgICAgICAgICAgICAgICAvKiB0aW1lcnMgKi8KKyAgICAg
ICAgdWludDY0X3QgY29uZmlnOyAgICAgICAgLyogY29uZmlndXJhdGlvbi9jYXAgKi8KKyAgICAg
ICAgdWludDY0X3QgY21wOyAgICAgICAgICAgLyogY29tcGFyYXRvciAqLworICAgICAgICB1aW50
NjRfdCBmc2I7ICAgICAgICAgICAvKiBGU0Igcm91dGUsIG5vdCBzdXBwb3J0ZWQgbm93ICovCisg
ICAgICAgIHVpbnQ2NF90IHJlczQ7ICAgICAgICAgIC8qIHJlc2VydmVkICovCisgICAgfSB0aW1l
cnNbSFBFVF9USU1FUl9OVU1dOworICAgIHVpbnQ2NF90IHJlczVbNCooMjQtSFBFVF9USU1FUl9O
VU0pXTsgIC8qIHJlc2VydmVkLCB1cCB0byAweDNmZiAqLworCisgICAgLyogSGlkZGVuIHJlZ2lz
dGVyIHN0YXRlICovCisgICAgdWludDY0X3QgcGVyaW9kW0hQRVRfVElNRVJfTlVNXTsgLyogTGFz
dCB2YWx1ZSB3cml0dGVuIHRvIGNvbXBhcmF0b3IgKi8KK307CisKK0RFQ0xBUkVfSFZNX1NBVkVf
VFlQRShIUEVULCAxMiwgc3RydWN0IGh2bV9od19ocGV0KTsKKworCisvKgorICogUE0gdGltZXIK
KyAqLworCitzdHJ1Y3QgaHZtX2h3X3BtdGltZXIgeworICAgIHVpbnQzMl90IHRtcl92YWw7ICAg
LyogUE1fVE1SX0JMSy5UTVJfVkFMOiAzMmJpdCBmcmVlLXJ1bm5pbmcgY291bnRlciAqLworICAg
IHVpbnQxNl90IHBtMWFfc3RzOyAgLyogUE0xYV9FVlRfQkxLLlBNMWFfU1RTOiBzdGF0dXMgcmVn
aXN0ZXIgKi8KKyAgICB1aW50MTZfdCBwbTFhX2VuOyAgIC8qIFBNMWFfRVZUX0JMSy5QTTFhX0VO
OiBlbmFibGUgcmVnaXN0ZXIgKi8KK307CisKK0RFQ0xBUkVfSFZNX1NBVkVfVFlQRShQTVRJTUVS
LCAxMywgc3RydWN0IGh2bV9od19wbXRpbWVyKTsKKworLyoKKyAqIE1UUlIgTVNScworICovCisK
K3N0cnVjdCBodm1faHdfbXRyciB7CisjZGVmaW5lIE1UUlJfVkNOVCA4CisjZGVmaW5lIE5VTV9G
SVhFRF9NU1IgMTEKKyAgICB1aW50NjRfdCBtc3JfcGF0X2NyOworICAgIC8qIG10cnIgcGh5c2Jh
c2UgJiBwaHlzbWFzayBtc3IgcGFpciovCisgICAgdWludDY0X3QgbXNyX210cnJfdmFyW01UUlJf
VkNOVCoyXTsKKyAgICB1aW50NjRfdCBtc3JfbXRycl9maXhlZFtOVU1fRklYRURfTVNSXTsKKyAg
ICB1aW50NjRfdCBtc3JfbXRycl9jYXA7CisgICAgdWludDY0X3QgbXNyX210cnJfZGVmX3R5cGU7
Cit9OworCitERUNMQVJFX0hWTV9TQVZFX1RZUEUoTVRSUiwgMTQsIHN0cnVjdCBodm1faHdfbXRy
cik7CisKKy8qCisgKiBUaGUgc2F2ZSBhcmVhIG9mIFhTQVZFL1hSU1RPUi4KKyAqLworCitzdHJ1
Y3QgaHZtX2h3X2NwdV94c2F2ZSB7CisgICAgdWludDY0X3QgeGZlYXR1cmVfbWFzazsgICAgICAg
IC8qIElnbm9yZWQgKi8KKyAgICB1aW50NjRfdCB4Y3IwOyAgICAgICAgICAgICAgICAgLyogVXBk
YXRlZCBieSBYU0VUQlYgKi8KKyAgICB1aW50NjRfdCB4Y3IwX2FjY3VtOyAgICAgICAgICAgLyog
VXBkYXRlZCBieSBYU0VUQlYgKi8KKyAgICBzdHJ1Y3QgeworICAgICAgICBzdHJ1Y3QgeyBjaGFy
IHhbNTEyXTsgfSBmcHVfc3NlOworCisgICAgICAgIHN0cnVjdCBodm1faHdfY3B1X3hzYXZlX2hk
ciB7CisgICAgICAgICAgICB1aW50NjRfdCB4c3RhdGVfYnY7ICAgICAgICAgLyogVXBkYXRlZCBi
eSBYUlNUT1IgKi8KKyAgICAgICAgICAgIHVpbnQ2NF90IHhjb21wX2J2OyAgICAgICAgICAvKiBV
cGRhdGVkIGJ5IFhSU1RPUntDLFN9ICovCisgICAgICAgICAgICB1aW50NjRfdCByZXNlcnZlZFs2
XTsKKyAgICAgICAgfSB4c2F2ZV9oZHI7ICAgICAgICAgICAgICAgICAgICAvKiBUaGUgNjQtYnl0
ZSBoZWFkZXIgKi8KKyAgICB9IHNhdmVfYXJlYTsKK307CisKKyNkZWZpbmUgQ1BVX1hTQVZFX0NP
REUgIDE2CisKKy8qCisgKiBWaXJpZGlhbiBoeXBlcnZpc29yIGNvbnRleHQuCisgKi8KKworc3Ry
dWN0IGh2bV92aXJpZGlhbl9kb21haW5fY29udGV4dCB7CisgICAgdWludDY0X3QgaHlwZXJjYWxs
X2dwYTsKKyAgICB1aW50NjRfdCBndWVzdF9vc19pZDsKKyAgICB1aW50NjRfdCB0aW1lX3JlZl9j
b3VudDsKKyAgICB1aW50NjRfdCByZWZlcmVuY2VfdHNjOworfTsKKworREVDTEFSRV9IVk1fU0FW
RV9UWVBFKFZJUklESUFOX0RPTUFJTiwgMTUsIHN0cnVjdCBodm1fdmlyaWRpYW5fZG9tYWluX2Nv
bnRleHQpOworCitzdHJ1Y3QgaHZtX3ZpcmlkaWFuX3ZjcHVfY29udGV4dCB7CisgICAgdWludDY0
X3QgdnBfYXNzaXN0X21zcjsKKyAgICB1aW50OF90ICB2cF9hc3Npc3RfdmVjdG9yOworICAgIHVp
bnQ4X3QgIF9wYWRbN107Cit9OworCitERUNMQVJFX0hWTV9TQVZFX1RZUEUoVklSSURJQU5fVkNQ
VSwgMTcsIHN0cnVjdCBodm1fdmlyaWRpYW5fdmNwdV9jb250ZXh0KTsKKworc3RydWN0IGh2bV92
bWNlX3ZjcHUgeworICAgIHVpbnQ2NF90IGNhcHM7CisgICAgdWludDY0X3QgbWNpX2N0bDJfYmFu
azA7CisgICAgdWludDY0X3QgbWNpX2N0bDJfYmFuazE7CisgICAgdWludDY0X3QgbWNnX2V4dF9j
dGw7Cit9OworCitERUNMQVJFX0hWTV9TQVZFX1RZUEUoVk1DRV9WQ1BVLCAxOCwgc3RydWN0IGh2
bV92bWNlX3ZjcHUpOworCitzdHJ1Y3QgaHZtX3RzY19hZGp1c3QgeworICAgIHVpbnQ2NF90IHRz
Y19hZGp1c3Q7Cit9OworCitERUNMQVJFX0hWTV9TQVZFX1RZUEUoVFNDX0FESlVTVCwgMTksIHN0
cnVjdCBodm1fdHNjX2FkanVzdCk7CisKKworc3RydWN0IGh2bV9tc3IgeworICAgIHVpbnQzMl90
IGNvdW50OworICAgIHN0cnVjdCBodm1fb25lX21zciB7CisgICAgICAgIHVpbnQzMl90IGluZGV4
OworICAgICAgICB1aW50MzJfdCBfcnN2ZDsKKyAgICAgICAgdWludDY0X3QgdmFsOworI2lmIGRl
ZmluZWQoX19TVERDX1ZFUlNJT05fXykgJiYgX19TVERDX1ZFUlNJT05fXyA+PSAxOTk5MDFMCisg
ICAgfSBtc3JbXTsKKyNlbGlmIGRlZmluZWQoX19HTlVDX18pCisgICAgfSBtc3JbMF07CisjZWxz
ZQorICAgIH0gbXNyWzEgLyogdmFyaWFibGUgc2l6ZSAqL107CisjZW5kaWYKK307CisKKyNkZWZp
bmUgQ1BVX01TUl9DT0RFICAyMAorCisvKiAKKyAqIExhcmdlc3QgdHlwZS1jb2RlIGluIHVzZQor
ICovCisjZGVmaW5lIEhWTV9TQVZFX0NPREVfTUFYIDIwCisKKyNlbmRpZiAvKiBfX1hFTl9QVUJM
SUNfSFZNX1NBVkVfWDg2X0hfXyAqLworCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9k
ZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRh
Yi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAt
LWdpdCBhL2luY2x1ZGUveGVuL3hzbS9hcmNoLXg4Ni9odm0vc3RhcnRfaW5mby5oIGIvaW5jbHVk
ZS94ZW4veHNtL2FyY2gteDg2L2h2bS9zdGFydF9pbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNjQ4NDE1OQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL3hz
bS9hcmNoLXg4Ni9odm0vc3RhcnRfaW5mby5oCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBQZXJt
aXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBv
YnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3Vt
ZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3
YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhl
CisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmli
dXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwg
YW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBmdXJuaXNo
ZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAq
IFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNo
YWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25z
IG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElT
IiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwg
SU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO
R0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhP
TERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNF
LCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZU
V0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisg
KgorICogQ29weXJpZ2h0IChjKSAyMDE2LCBDaXRyaXggU3lzdGVtcywgSW5jLgorICovCisKKyNp
Zm5kZWYgX19YRU5fUFVCTElDX0FSQ0hfWDg2X0hWTV9TVEFSVF9JTkZPX0hfXworI2RlZmluZSBf
X1hFTl9QVUJMSUNfQVJDSF9YODZfSFZNX1NUQVJUX0lORk9fSF9fCisKKy8qCisgKiBTdGFydCBv
ZiBkYXkgc3RydWN0dXJlIHBhc3NlZCB0byBQVkggZ3Vlc3RzIGFuZCB0byBIVk0gZ3Vlc3RzIGlu
ICVlYnguCisgKgorICogTk9URTogbm90aGluZyB3aWxsIGJlIGxvYWRlZCBhdCBwaHlzaWNhbCBh
ZGRyZXNzIDAsIHNvIGEgMCB2YWx1ZSBpbiBhbnkKKyAqIG9mIHRoZSBhZGRyZXNzIGZpZWxkcyBz
aG91bGQgYmUgdHJlYXRlZCBhcyBub3QgcHJlc2VudC4KKyAqCisgKiAgMCArLS0tLS0tLS0tLS0t
LS0tLSsKKyAqICAgIHwgbWFnaWMgICAgICAgICAgfCBDb250YWlucyB0aGUgbWFnaWMgdmFsdWUg
WEVOX0hWTV9TVEFSVF9NQUdJQ19WQUxVRQorICogICAgfCAgICAgICAgICAgICAgICB8ICgieEVu
MyIgd2l0aCB0aGUgMHg4MCBiaXQgb2YgdGhlICJFIiBzZXQpLgorICogIDQgKy0tLS0tLS0tLS0t
LS0tLS0rCisgKiAgICB8IHZlcnNpb24gICAgICAgIHwgVmVyc2lvbiBvZiB0aGlzIHN0cnVjdHVy
ZS4gQ3VycmVudCB2ZXJzaW9uIGlzIDAuIE5ldworICogICAgfCAgICAgICAgICAgICAgICB8IHZl
cnNpb25zIGFyZSBndWFyYW50ZWVkIHRvIGJlIGJhY2t3YXJkcy1jb21wYXRpYmxlLgorICogIDgg
Ky0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICB8IGZsYWdzICAgICAgICAgIHwgU0lGX3h4eCBmbGFn
cy4KKyAqIDEyICstLS0tLS0tLS0tLS0tLS0tKworICogICAgfCBucl9tb2R1bGVzICAgICB8IE51
bWJlciBvZiBtb2R1bGVzIHBhc3NlZCB0byB0aGUga2VybmVsLgorICogMTYgKy0tLS0tLS0tLS0t
LS0tLS0rCisgKiAgICB8IG1vZGxpc3RfcGFkZHIgIHwgUGh5c2ljYWwgYWRkcmVzcyBvZiBhbiBh
cnJheSBvZiBtb2R1bGVzCisgKiAgICB8ICAgICAgICAgICAgICAgIHwgKGxheW91dCBvZiB0aGUg
c3RydWN0dXJlIGJlbG93KS4KKyAqIDI0ICstLS0tLS0tLS0tLS0tLS0tKworICogICAgfCBjbWRs
aW5lX3BhZGRyICB8IFBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhlIGNvbW1hbmQgbGluZSwKKyAqICAg
IHwgICAgICAgICAgICAgICAgfCBhIHplcm8tdGVybWluYXRlZCBBU0NJSSBzdHJpbmcuCisgKiAz
MiArLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgIHwgcnNkcF9wYWRkciAgICAgfCBQaHlzaWNhbCBh
ZGRyZXNzIG9mIHRoZSBSU0RQIEFDUEkgZGF0YSBzdHJ1Y3R1cmUuCisgKiA0MCArLS0tLS0tLS0t
LS0tLS0tLSsKKyAqCisgKiBUaGUgbGF5b3V0IG9mIGVhY2ggZW50cnkgaW4gdGhlIG1vZHVsZSBz
dHJ1Y3R1cmUgaXMgdGhlIGZvbGxvd2luZzoKKyAqCisgKiAgMCArLS0tLS0tLS0tLS0tLS0tLSsK
KyAqICAgIHwgcGFkZHIgICAgICAgICAgfCBQaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBtb2R1bGUu
CisgKiAgOCArLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgIHwgc2l6ZSAgICAgICAgICAgfCBTaXpl
IG9mIHRoZSBtb2R1bGUgaW4gYnl0ZXMuCisgKiAxNiArLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAg
IHwgY21kbGluZV9wYWRkciAgfCBQaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBjb21tYW5kIGxpbmUs
CisgKiAgICB8ICAgICAgICAgICAgICAgIHwgYSB6ZXJvLXRlcm1pbmF0ZWQgQVNDSUkgc3RyaW5n
LgorICogMjQgKy0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICB8IHJlc2VydmVkICAgICAgIHwKKyAq
IDMyICstLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIFRoZSBhZGRyZXNzIGFuZCBzaXplcyBhcmUg
YWx3YXlzIGEgNjRiaXQgbGl0dGxlIGVuZGlhbiB1bnNpZ25lZCBpbnRlZ2VyLgorICoKKyAqIE5C
OiBYZW4gb24geDg2IHdpbGwgYWx3YXlzIHRyeSB0byBwbGFjZSBhbGwgdGhlIGRhdGEgYmVsb3cg
dGhlIDRHaUIKKyAqIGJvdW5kYXJ5LgorICovCisjZGVmaW5lIFhFTl9IVk1fU1RBUlRfTUFHSUNf
VkFMVUUgMHgzMzZlYzU3OAorCisvKgorICogQyByZXByZXNlbnRhdGlvbiBvZiB0aGUgeDg2L0hW
TSBzdGFydCBpbmZvIGxheW91dC4KKyAqCisgKiBUaGUgY2Fub25pY2FsIGRlZmluaXRpb24gb2Yg
dGhpcyBsYXlvdXQgaXMgYWJvdmUsIHRoaXMgaXMganVzdCBhIHdheSB0bworICogcmVwcmVzZW50
IHRoZSBsYXlvdXQgZGVzY3JpYmVkIHRoZXJlIHVzaW5nIEMgdHlwZXMuCisgKi8KK3N0cnVjdCBo
dm1fc3RhcnRfaW5mbyB7CisgICAgdWludDMyX3QgbWFnaWM7ICAgICAgICAgICAgIC8qIENvbnRh
aW5zIHRoZSBtYWdpYyB2YWx1ZSAweDMzNmVjNTc4ICAgICAgICovCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8qICgieEVuMyIgd2l0aCB0aGUgMHg4MCBiaXQgb2YgdGhlICJFIiBz
ZXQpLiovCisgICAgdWludDMyX3QgdmVyc2lvbjsgICAgICAgICAgIC8qIFZlcnNpb24gb2YgdGhp
cyBzdHJ1Y3R1cmUuICAgICAgICAgICAgICAgICovCisgICAgdWludDMyX3QgZmxhZ3M7ICAgICAg
ICAgICAgIC8qIFNJRl94eHggZmxhZ3MuICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisg
ICAgdWludDMyX3QgbnJfbW9kdWxlczsgICAgICAgIC8qIE51bWJlciBvZiBtb2R1bGVzIHBhc3Nl
ZCB0byB0aGUga2VybmVsLiAgICovCisgICAgdWludDY0X3QgbW9kbGlzdF9wYWRkcjsgICAgIC8q
IFBoeXNpY2FsIGFkZHJlc3Mgb2YgYW4gYXJyYXkgb2YgICAgICAgICAgICovCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8qIGh2bV9tb2RsaXN0X2VudHJ5LiAgICAgICAgICAgICAg
ICAgICAgICAgICovCisgICAgdWludDY0X3QgY21kbGluZV9wYWRkcjsgICAgIC8qIFBoeXNpY2Fs
IGFkZHJlc3Mgb2YgdGhlIGNvbW1hbmQgbGluZS4gICAgICovCisgICAgdWludDY0X3QgcnNkcF9w
YWRkcjsgICAgICAgIC8qIFBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhlIFJTRFAgQUNQSSBkYXRhICAg
ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHN0cnVjdHVyZS4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICovCit9OworCitzdHJ1Y3QgaHZtX21vZGxpc3RfZW50
cnkgeworICAgIHVpbnQ2NF90IHBhZGRyOyAgICAgICAgICAgICAvKiBQaHlzaWNhbCBhZGRyZXNz
IG9mIHRoZSBtb2R1bGUuICAgICAgICAgICAqLworICAgIHVpbnQ2NF90IHNpemU7ICAgICAgICAg
ICAgICAvKiBTaXplIG9mIHRoZSBtb2R1bGUgaW4gYnl0ZXMuICAgICAgICAgICAgICAqLworICAg
IHVpbnQ2NF90IGNtZGxpbmVfcGFkZHI7ICAgICAvKiBQaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBj
b21tYW5kIGxpbmUuICAgICAqLworICAgIHVpbnQ2NF90IHJlc2VydmVkOworfTsKKworI2VuZGlm
IC8qIF9fWEVOX1BVQkxJQ19BUkNIX1g4Nl9IVk1fU1RBUlRfSU5GT19IX18gKi8KZGlmZiAtLWdp
dCBhL2luY2x1ZGUveGVuL3hzbS9hcmNoLXg4Ni9wbXUuaCBiL2luY2x1ZGUveGVuL3hzbS9hcmNo
LXg4Ni9wbXUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OGViZjEyCi0t
LSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94ZW4veHNtL2FyY2gteDg2L3BtdS5oCkBAIC0wLDAg
KzEsMTY3IEBACisvKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj
aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0d2Fy
ZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRv
CisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcg
d2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt
ZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNv
cGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBT
b2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp
cyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBv
ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRX
QVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVY
UFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBB
VVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1B
R0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRS
QUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENP
Tk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElO
R1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAxNSBPcmFjbGUgYW5k
L29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICovCisKKyNpZm5kZWYg
X19YRU5fUFVCTElDX0FSQ0hfWDg2X1BNVV9IX18KKyNkZWZpbmUgX19YRU5fUFVCTElDX0FSQ0hf
WDg2X1BNVV9IX18KKworLyogeDg2LXNwZWNpZmljIFBNVSBkZWZpbml0aW9ucyAqLworCisvKiBB
TUQgUE1VIHJlZ2lzdGVycyBhbmQgc3RydWN0dXJlcyAqLworc3RydWN0IHhlbl9wbXVfYW1kX2N0
eHQgeworICAgIC8qCisgICAgICogT2Zmc2V0cyB0byBjb3VudGVyIGFuZCBjb250cm9sIE1TUnMg
KHJlbGF0aXZlIHRvIHhlbl9wbXVfYXJjaC5jLmFtZCkuCisgICAgICogRm9yIFBWKEgpIGd1ZXN0
cyB0aGVzZSBmaWVsZHMgYXJlIFJPLgorICAgICAqLworICAgIHVpbnQzMl90IGNvdW50ZXJzOwor
ICAgIHVpbnQzMl90IGN0cmxzOworCisgICAgLyogQ291bnRlciBNU1JzICovCisjaWYgZGVmaW5l
ZChfX1NURENfVkVSU0lPTl9fKSAmJiBfX1NURENfVkVSU0lPTl9fID49IDE5OTkwMUwKKyAgICB1
aW50NjRfdCByZWdzW107CisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKQorICAgIHVpbnQ2NF90IHJl
Z3NbMF07CisjZW5kaWYKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5fcG11X2FtZF9jdHh0IHhlbl9w
bXVfYW1kX2N0eHRfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9wbXVfYW1kX2N0eHRf
dCk7CisKKy8qIEludGVsIFBNVSByZWdpc3RlcnMgYW5kIHN0cnVjdHVyZXMgKi8KK3N0cnVjdCB4
ZW5fcG11X2NudHJfcGFpciB7CisgICAgdWludDY0X3QgY291bnRlcjsKKyAgICB1aW50NjRfdCBj
b250cm9sOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9wbXVfY250cl9wYWlyIHhlbl9wbXVfY250
cl9wYWlyX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fcG11X2NudHJfcGFpcl90KTsK
Kworc3RydWN0IHhlbl9wbXVfaW50ZWxfY3R4dCB7CisgICAvKgorICAgICogT2Zmc2V0cyB0byBm
aXhlZCBhbmQgYXJjaGl0ZWN0dXJhbCBjb3VudGVyIE1TUnMgKHJlbGF0aXZlIHRvCisgICAgKiB4
ZW5fcG11X2FyY2guYy5pbnRlbCkuCisgICAgKiBGb3IgUFYoSCkgZ3Vlc3RzIHRoZXNlIGZpZWxk
cyBhcmUgUk8uCisgICAgKi8KKyAgICB1aW50MzJfdCBmaXhlZF9jb3VudGVyczsKKyAgICB1aW50
MzJfdCBhcmNoX2NvdW50ZXJzOworCisgICAgLyogUE1VIHJlZ2lzdGVycyAqLworICAgIHVpbnQ2
NF90IGdsb2JhbF9jdHJsOworICAgIHVpbnQ2NF90IGdsb2JhbF9vdmZfY3RybDsKKyAgICB1aW50
NjRfdCBnbG9iYWxfc3RhdHVzOworICAgIHVpbnQ2NF90IGZpeGVkX2N0cmw7CisgICAgdWludDY0
X3QgZHNfYXJlYTsKKyAgICB1aW50NjRfdCBwZWJzX2VuYWJsZTsKKyAgICB1aW50NjRfdCBkZWJ1
Z2N0bDsKKworICAgIC8qIEZpeGVkIGFuZCBhcmNoaXRlY3R1cmFsIGNvdW50ZXIgTVNScyAqLwor
I2lmIGRlZmluZWQoX19TVERDX1ZFUlNJT05fXykgJiYgX19TVERDX1ZFUlNJT05fXyA+PSAxOTk5
MDFMCisgICAgdWludDY0X3QgcmVnc1tdOworI2VsaWYgZGVmaW5lZChfX0dOVUNfXykKKyAgICB1
aW50NjRfdCByZWdzWzBdOworI2VuZGlmCit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX3BtdV9pbnRl
bF9jdHh0IHhlbl9wbXVfaW50ZWxfY3R4dF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVu
X3BtdV9pbnRlbF9jdHh0X3QpOworCisvKiBTYW1wbGVkIGRvbWFpbidzIHJlZ2lzdGVycyAqLwor
c3RydWN0IHhlbl9wbXVfcmVncyB7CisgICAgdWludDY0X3QgaXA7CisgICAgdWludDY0X3Qgc3A7
CisgICAgdWludDY0X3QgZmxhZ3M7CisgICAgdWludDE2X3QgY3M7CisgICAgdWludDE2X3Qgc3M7
CisgICAgdWludDhfdCBjcGw7CisgICAgdWludDhfdCBwYWRbM107Cit9OwordHlwZWRlZiBzdHJ1
Y3QgeGVuX3BtdV9yZWdzIHhlbl9wbXVfcmVnc190OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo
eGVuX3BtdV9yZWdzX3QpOworCisvKiBQTVUgZmxhZ3MgKi8KKyNkZWZpbmUgUE1VX0NBQ0hFRCAg
ICAgICAgICgxPDwwKSAvKiBQTVUgTVNScyBhcmUgY2FjaGVkIGluIHRoZSBjb250ZXh0ICovCisj
ZGVmaW5lIFBNVV9TQU1QTEVfVVNFUiAgICAoMTw8MSkgLyogU2FtcGxlIGlzIGZyb20gdXNlciBv
ciBrZXJuZWwgbW9kZSAqLworI2RlZmluZSBQTVVfU0FNUExFX1JFQUwgICAgKDE8PDIpIC8qIFNh
bXBsZSBpcyBmcm9tIHJlYWxtb2RlICovCisjZGVmaW5lIFBNVV9TQU1QTEVfUFYgICAgICAoMTw8
MykgLyogU2FtcGxlIGZyb20gYSBQViBndWVzdCAqLworCisvKgorICogQXJjaGl0ZWN0dXJlLXNw
ZWNpZmljIGluZm9ybWF0aW9uIGRlc2NyaWJpbmcgc3RhdGUgb2YgdGhlIHByb2Nlc3NvciBhdAor
ICogdGhlIHRpbWUgb2YgUE1VIGludGVycnVwdC4KKyAqIEZpZWxkcyBvZiB0aGlzIHN0cnVjdHVy
ZSBtYXJrZWQgYXMgUlcgZm9yIGd1ZXN0IHNob3VsZCBvbmx5IGJlIHdyaXR0ZW4gYnkKKyAqIHRo
ZSBndWVzdCB3aGVuIFBNVV9DQUNIRUQgYml0IGluIHBtdV9mbGFncyBpcyBzZXQgKHdoaWNoIGlz
IGRvbmUgYnkgdGhlCisgKiBoeXBlcnZpc29yIGR1cmluZyBQTVUgaW50ZXJydXB0KS4gSHlwZXJ2
aXNvciB3aWxsIHJlYWQgdXBkYXRlZCBkYXRhIGluCisgKiBYRU5QTVVfZmx1c2ggaHlwZXJjYWxs
IGFuZCBjbGVhciBQTVVfQ0FDSEVEIGJpdC4KKyAqLworc3RydWN0IHhlbl9wbXVfYXJjaCB7Cisg
ICAgdW5pb24geworICAgICAgICAvKgorICAgICAgICAgKiBQcm9jZXNzb3IncyByZWdpc3RlcnMg
YXQgdGhlIHRpbWUgb2YgaW50ZXJydXB0LgorICAgICAgICAgKiBXTyBmb3IgaHlwZXJ2aXNvciwg
Uk8gZm9yIGd1ZXN0cy4KKyAgICAgICAgICovCisgICAgICAgIHN0cnVjdCB4ZW5fcG11X3JlZ3Mg
cmVnczsKKyAgICAgICAgLyogUGFkZGluZyBmb3IgYWRkaW5nIG5ldyByZWdpc3RlcnMgdG8geGVu
X3BtdV9yZWdzIGluIHRoZSBmdXR1cmUgKi8KKyNkZWZpbmUgWEVOUE1VX1JFR1NfUEFEX1NaICA2
NAorICAgICAgICB1aW50OF90IHBhZFtYRU5QTVVfUkVHU19QQURfU1pdOworICAgIH0gcjsKKwor
ICAgIC8qIFdPIGZvciBoeXBlcnZpc29yLCBSTyBmb3IgZ3Vlc3QgKi8KKyAgICB1aW50NjRfdCBw
bXVfZmxhZ3M7CisKKyAgICAvKgorICAgICAqIEFQSUMgTFZUUEMgcmVnaXN0ZXIuCisgICAgICog
UlcgZm9yIGJvdGggaHlwZXJ2aXNvciBhbmQgZ3Vlc3QuCisgICAgICogT25seSBBUElDX0xWVF9N
QVNLRUQgYml0IGlzIGxvYWRlZCBieSB0aGUgaHlwZXJ2aXNvciBpbnRvIGhhcmR3YXJlCisgICAg
ICogZHVyaW5nIFhFTlBNVV9mbHVzaCBvciBYRU5QTVVfbHZ0cGNfc2V0LgorICAgICAqLworICAg
IHVuaW9uIHsKKyAgICAgICAgdWludDMyX3QgbGFwaWNfbHZ0cGM7CisgICAgICAgIHVpbnQ2NF90
IHBhZDsKKyAgICB9IGw7CisKKyAgICAvKgorICAgICAqIFZlbmRvci1zcGVjaWZpYyBQTVUgcmVn
aXN0ZXJzLgorICAgICAqIFJXIGZvciBib3RoIGh5cGVydmlzb3IgYW5kIGd1ZXN0IChzZWUgZXhj
ZXB0aW9ucyBhYm92ZSkuCisgICAgICogR3Vlc3QncyB1cGRhdGVzIHRvIHRoaXMgZmllbGQgYXJl
IHZlcmlmaWVkIGFuZCB0aGVuIGxvYWRlZCBieSB0aGUKKyAgICAgKiBoeXBlcnZpc29yIGludG8g
aGFyZHdhcmUgZHVyaW5nIFhFTlBNVV9mbHVzaAorICAgICAqLworICAgIHVuaW9uIHsKKyAgICAg
ICAgc3RydWN0IHhlbl9wbXVfYW1kX2N0eHQgYW1kOworICAgICAgICBzdHJ1Y3QgeGVuX3BtdV9p
bnRlbF9jdHh0IGludGVsOworCisgICAgICAgIC8qCisgICAgICAgICAqIFBhZGRpbmcgZm9yIGNv
bnRleHRzIChmaXhlZCBwYXJ0cyBvbmx5LCBkb2VzIG5vdCBpbmNsdWRlIE1TUiBiYW5rcworICAg
ICAgICAgKiB0aGF0IGFyZSBzcGVjaWZpZWQgYnkgb2Zmc2V0cykKKyAgICAgICAgICovCisjZGVm
aW5lIFhFTlBNVV9DVFhUX1BBRF9TWiAgMTI4CisgICAgICAgIHVpbnQ4X3QgcGFkW1hFTlBNVV9D
VFhUX1BBRF9TWl07CisgICAgfSBjOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9wbXVfYXJjaCB4
ZW5fcG11X2FyY2hfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9wbXVfYXJjaF90KTsK
KworI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19BUkNIX1g4Nl9QTVVfSF9fICovCisvKgorICogTG9j
YWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1i
YXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmls
CisgKiBFbmQ6CisgKi8KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4veHNtL2FyY2gteDg2L3hl
bi1tY2EuaCBiL2luY2x1ZGUveGVuL3hzbS9hcmNoLXg4Ni94ZW4tbWNhLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGMzNTI2NwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1
ZGUveGVuL3hzbS9hcmNoLXg4Ni94ZW4tbWNhLmgKQEAgLTAsMCArMSw0NDYgQEAKKy8qKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKKyAqIGFyY2gteDg2L21jYS5oCisgKgorICogQ29udHJpYnV0ZWQgYnkg
QWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICogQXV0aG9yOiBDaHJpc3RvcGggRWdnZXIg
PENocmlzdG9waC5FZ2dlckBhbWQuY29tPgorICoKKyAqIEd1ZXN0IE9TIG1hY2hpbmUgY2hlY2sg
aW50ZXJmYWNlIHRvIHg4NiBYZW4uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl
ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2Yg
dGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNv
ZnR3YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9u
LCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29w
eSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29y
CisgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0
byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5v
dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICog
YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgor
ICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg
QU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU
RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5Z
IENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNU
SU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VU
IE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhF
UgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisKKy8qIEZ1bGwgTUNBIGZ1bmN0
aW9uYWxpdHkgaGFzIHRoZSBmb2xsb3dpbmcgVXNlY2FzZXMgZnJvbSB0aGUgZ3Vlc3Qgc2lkZToK
KyAqCisgKiBNdXN0IGhhdmUnczoKKyAqIDEuIERvbTAgYW5kIERvbVUgcmVnaXN0ZXIgbWFjaGlu
ZSBjaGVjayB0cmFwIGNhbGxiYWNrIGhhbmRsZXJzCisgKiAgICAoYWxyZWFkeSBkb25lIHZpYSAi
c2V0X3RyYXBfdGFibGUiIGh5cGVyY2FsbCkKKyAqIDIuIERvbTAgcmVnaXN0ZXJzIG1hY2hpbmUg
Y2hlY2sgZXZlbnQgY2FsbGJhY2sgaGFuZGxlcgorICogICAgKGRvYWJsZSB2aWEgRVZUQ0hOT1Bf
YmluZF92aXJxKQorICogMy4gRG9tMCBhbmQgRG9tVSBmZXRjaGVzIG1hY2hpbmUgY2hlY2sgZGF0
YQorICogNC4gRG9tMCB3YW50cyBYZW4gdG8gbm90aWZ5IGEgRG9tVQorICogNS4gRG9tMCBnZXRz
IERvbVUgSUQgZnJvbSBwaHlzaWNhbCBhZGRyZXNzCisgKiA2LiBEb20wIHdhbnRzIFhlbiB0byBr
aWxsIERvbVUgKGFscmVhZHkgZG9uZSBmb3IgInhtIGRlc3Ryb3kiKQorICoKKyAqIE5pY2UgdG8g
aGF2ZSdzOgorICogNy4gRG9tMCB3YW50cyBYZW4gdG8gZGVhY3RpdmF0ZSBhIHBoeXNpY2FsIENQ
VQorICogICAgVGhpcyBpcyBiZXR0ZXIgZG9uZSBhcyBzZXBhcmF0ZSB0YXNrLCBwaHlzaWNhbCBD
UFUgaG90cGx1Z2dpbmcsCisgKiAgICBhbmQgaHlwZXJjYWxsKHMpIHNob3VsZCBiZSBzeXNjdGwn
cworICogOC4gUGFnZSBtaWdyYXRpb24gcHJvcG9zZWQgZnJvbSBYZW4gTlVNQSB3b3JrLCB3aGVy
ZSBEb20wIGNhbiB0ZWxsIFhlbiB0bworICogICAgbW92ZSBhIERvbVUgKG9yIERvbTAgaXRzZWxm
KSBhd2F5IGZyb20gYSBtYWxpY2lvdXMgcGFnZQorICogICAgcHJvZHVjaW5nIGNvcnJlY3RhYmxl
IGVycm9ycy4KKyAqIDkuIG9mZmxpbmluZyBwaHlzaWNhbCBwYWdlOgorICogICAgWGVuIGZyZWUn
cyBhbmQgbmV2ZXIgcmUtdXNlcyBhIGNlcnRhaW4gcGh5c2ljYWwgcGFnZS4KKyAqIDEwLiBUZXN0
ZmFjaWxpdHk6IEFsbG93IERvbTAgdG8gd3JpdGUgdmFsdWVzIGludG8gbWFjaGluZSBjaGVjayBN
U1IncworICogICAgIGFuZCB0ZWxsIFhlbiB0byB0cmlnZ2VyIGEgbWFjaGluZSBjaGVjaworICov
CisKKyNpZm5kZWYgX19YRU5fUFVCTElDX0FSQ0hfWDg2X01DQV9IX18KKyNkZWZpbmUgX19YRU5f
UFVCTElDX0FSQ0hfWDg2X01DQV9IX18KKworLyogSHlwZXJjYWxsICovCisjZGVmaW5lIF9fSFlQ
RVJWSVNPUl9tY2EgX19IWVBFUlZJU09SX2FyY2hfMAorCisvKgorICogVGhlIHhlbi11bnN0YWJs
ZSByZXBvIGhhcyBpbnRlcmZhY2UgdmVyc2lvbiAweDAzMDAwMDAxOyBvdXQgaW50ZXJmYWNlCisg
KiBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGF0IGFuZCBhbnkgZnV0dXJlIG1pbm9yIHJldmlzaW9u
cywgc28gd2UKKyAqIGNob29zZSBhIGRpZmZlcmVudCB2ZXJzaW9uIG51bWJlciByYW5nZSB0aGF0
IGlzIG51bWVyaWNhbGx5IGxlc3MKKyAqIHRoYW4gdGhhdCB1c2VkIGluIHhlbi11bnN0YWJsZS4K
KyAqLworI2RlZmluZSBYRU5fTUNBX0lOVEVSRkFDRV9WRVJTSU9OIDB4MDFlY2MwMDMKKworLyog
SU46IERvbTAgY2FsbHMgaHlwZXJjYWxsIHRvIHJldHJpZXZlIG5vbnVyZ2VudCB0ZWxlbWV0cnkg
Ki8KKyNkZWZpbmUgWEVOX01DX05PTlVSR0VOVCAgMHgwMDAxCisvKiBJTjogRG9tMC9Eb21VIGNh
bGxzIGh5cGVyY2FsbCB0byByZXRyaWV2ZSB1cmdlbnQgdGVsZW1ldHJ5ICovCisjZGVmaW5lIFhF
Tl9NQ19VUkdFTlQgICAgIDB4MDAwMgorLyogSU46IERvbTAgYWNrbm93bGVkZ2VzIHByZXZpb3Ns
eS1mZXRjaGVkIHRlbGVtZXRyeSAqLworI2RlZmluZSBYRU5fTUNfQUNLICAgICAgICAweDAwMDQK
KworLyogT1VUOiBBbGwgaXMgb2sgKi8KKyNkZWZpbmUgWEVOX01DX09LICAgICAgICAgICAweDAK
Ky8qIE9VVDogRG9tYWluIGNvdWxkIG5vdCBmZXRjaCBkYXRhLiAqLworI2RlZmluZSBYRU5fTUNf
RkVUQ0hGQUlMRUQgIDB4MQorLyogT1VUOiBUaGVyZSB3YXMgbm8gbWFjaGluZSBjaGVjayBkYXRh
IHRvIGZldGNoLiAqLworI2RlZmluZSBYRU5fTUNfTk9EQVRBICAgICAgIDB4MgorLyogT1VUOiBC
ZXR3ZWVuIG5vdGlmaWNhdGlvbiB0aW1lIGFuZCB0aGlzIGh5cGVyY2FsbCBhbiBvdGhlcgorICog
IChtb3N0IGxpa2VseSkgY29ycmVjdGFibGUgZXJyb3IgaGFwcGVuZWQuIFRoZSBmZXRjaGVkIGRh
dGEsCisgKiAgZG9lcyBub3QgbWF0Y2ggdGhlIG9yaWdpbmFsIG1hY2hpbmUgY2hlY2sgZGF0YS4g
Ki8KKyNkZWZpbmUgWEVOX01DX05PTUFUQ0ggICAgICAweDQKKworLyogT1VUOiBEb21VIGRpZCBu
b3QgcmVnaXN0ZXIgTUMgTk1JIGhhbmRsZXIuIFRyeSBzb21ldGhpbmcgZWxzZS4gKi8KKyNkZWZp
bmUgWEVOX01DX0NBTk5PVEhBTkRMRSAweDgKKy8qIE9VVDogTm90aWZ5aW5nIERvbVUgZmFpbGVk
LiBSZXRyeSBsYXRlciBvciB0cnkgc29tZXRoaW5nIGVsc2UuICovCisjZGVmaW5lIFhFTl9NQ19O
T1RERUxJVkVSRUQgMHgxMAorLyogTm90ZSwgWEVOX01DX0NBTk5PVEhBTkRMRSBhbmQgWEVOX01D
X05PVERFTElWRVJFRCBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAqLworCisvKiBBcHBsaWNhYmxl
IHRvIGFsbCBtY192Y3B1aWQgZmllbGRzIGJlbG93LiAqLworI2RlZmluZSBYRU5fTUNfVkNQVUlE
X0lOVkFMSUQgMHhmZmZmCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCisKKyNkZWZpbmUgVklSUV9N
Q0EgVklSUV9BUkNIXzAgLyogRy4gKERPTTApIE1hY2hpbmUgQ2hlY2sgQXJjaGl0ZWN0dXJlICov
CisKKy8qCisgKiBNYWNoaW5lIENoZWNrIEFyY2hpdGVjdXJlOgorICogc3RydWN0cyBhcmUgcmVh
ZC1vbmx5IGFuZCB1c2VkIHRvIHJlcG9ydCBhbGwga2luZHMgb2YKKyAqIGNvcnJlY3RhYmxlIGFu
ZCB1bmNvcnJlY3RhYmxlIGVycm9ycyBkZXRlY3RlZCBieSB0aGUgSFcuCisgKiBEb20wIGFuZCBE
b21VOiByZWdpc3RlciBhIGhhbmRsZXIgdG8gZ2V0IG5vdGlmaWVkLgorICogRG9tMCBvbmx5OiBD
b3JyZWN0YWJsZSBlcnJvcnMgYXJlIHJlcG9ydGVkIHZpYSBWSVJRX01DQQorICogRG9tMCBhbmQg
RG9tVTogVW5jb3JyZWN0YWJsZSBlcnJvcnMgYXJlIHJlcG9ydGVkIHZpYSBubWkgaGFuZGxlcnMK
KyAqLworI2RlZmluZSBNQ19UWVBFX0dMT0JBTCAgICAgICAgICAwCisjZGVmaW5lIE1DX1RZUEVf
QkFOSyAgICAgICAgICAgIDEKKyNkZWZpbmUgTUNfVFlQRV9FWFRFTkRFRCAgICAgICAgMgorI2Rl
ZmluZSBNQ19UWVBFX1JFQ09WRVJZICAgICAgICAzCisKK3N0cnVjdCBtY2luZm9fY29tbW9uIHsK
KyAgICB1aW50MTZfdCB0eXBlOyAgICAgIC8qIHN0cnVjdHVyZSB0eXBlICovCisgICAgdWludDE2
X3Qgc2l6ZTsgICAgICAvKiBzaXplIG9mIHRoaXMgc3RydWN0IGluIGJ5dGVzICovCit9OworCisK
KyNkZWZpbmUgTUNfRkxBR19DT1JSRUNUQUJMRSAgICAgKDEgPDwgMCkKKyNkZWZpbmUgTUNfRkxB
R19VTkNPUlJFQ1RBQkxFICAgKDEgPDwgMSkKKyNkZWZpbmUgTUNfRkxBR19SRUNPVkVSQUJMRQko
MSA8PCAyKQorI2RlZmluZSBNQ19GTEFHX1BPTExFRAkJKDEgPDwgMykKKyNkZWZpbmUgTUNfRkxB
R19SRVNFVAkJKDEgPDwgNCkKKyNkZWZpbmUgTUNfRkxBR19DTUNJCQkoMSA8PCA1KQorI2RlZmlu
ZSBNQ19GTEFHX01DRQkJKDEgPDwgNikKKy8qIGNvbnRhaW5zIGdsb2JhbCB4ODYgbWMgaW5mb3Jt
YXRpb24gKi8KK3N0cnVjdCBtY2luZm9fZ2xvYmFsIHsKKyAgICBzdHJ1Y3QgbWNpbmZvX2NvbW1v
biBjb21tb247CisKKyAgICAvKiBydW5uaW5nIGRvbWFpbiBhdCB0aGUgdGltZSBpbiBlcnJvciAo
bW9zdCBsaWtlbHkgdGhlIGltcGFjdGVkIG9uZSkgKi8KKyAgICB1aW50MTZfdCBtY19kb21pZDsK
KyAgICB1aW50MTZfdCBtY192Y3B1aWQ7IC8qIHZpcnR1YWwgY3B1IHNjaGVkdWxlZCBmb3IgbWNf
ZG9taWQgKi8KKyAgICB1aW50MzJfdCBtY19zb2NrZXRpZDsgLyogcGh5c2ljYWwgc29ja2V0IG9m
IHRoZSBwaHlzaWNhbCBjb3JlICovCisgICAgdWludDE2X3QgbWNfY29yZWlkOyAvKiBwaHlzaWNh
bCBpbXBhY3RlZCBjb3JlICovCisgICAgdWludDE2X3QgbWNfY29yZV90aHJlYWRpZDsgLyogY29y
ZSB0aHJlYWQgb2YgcGh5c2ljYWwgY29yZSAqLworICAgIHVpbnQzMl90IG1jX2FwaWNpZDsKKyAg
ICB1aW50MzJfdCBtY19mbGFnczsKKyAgICB1aW50NjRfdCBtY19nc3RhdHVzOyAvKiBnbG9iYWwg
c3RhdHVzICovCit9OworCisvKiBjb250YWlucyBiYW5rIGxvY2FsIHg4NiBtYyBpbmZvcm1hdGlv
biAqLworc3RydWN0IG1jaW5mb19iYW5rIHsKKyAgICBzdHJ1Y3QgbWNpbmZvX2NvbW1vbiBjb21t
b247CisKKyAgICB1aW50MTZfdCBtY19iYW5rOyAvKiBiYW5rIG5yICovCisgICAgdWludDE2X3Qg
bWNfZG9taWQ7IC8qIFVzZWNhc2UgNTogZG9tYWluIHJlZmVyZW5jZWQgYnkgbWNfYWRkciBvbiBk
b20wCisgICAgICAgICAgICAgICAgICAgICAgICAqIGFuZCBpZiBtY19hZGRyIGlzIHZhbGlkLiBO
ZXZlciB2YWxpZCBvbiBEb21VLiAqLworICAgIHVpbnQ2NF90IG1jX3N0YXR1czsgLyogYmFuayBz
dGF0dXMgKi8KKyAgICB1aW50NjRfdCBtY19hZGRyOyAgIC8qIGJhbmsgYWRkcmVzcywgb25seSB2
YWxpZAorICAgICAgICAgICAgICAgICAgICAgICAgICogaWYgYWRkciBiaXQgaXMgc2V0IGluIG1j
X3N0YXR1cyAqLworICAgIHVpbnQ2NF90IG1jX21pc2M7CisgICAgdWludDY0X3QgbWNfY3RybDI7
CisgICAgdWludDY0X3QgbWNfdHNjOworfTsKKworCitzdHJ1Y3QgbWNpbmZvX21zciB7CisgICAg
dWludDY0X3QgcmVnOyAgIC8qIE1TUiAqLworICAgIHVpbnQ2NF90IHZhbHVlOyAvKiBNU1IgdmFs
dWUgKi8KK307CisKKy8qIGNvbnRhaW5zIG1jIGluZm9ybWF0aW9uIGZyb20gb3RoZXIKKyAqIG9y
IGFkZGl0aW9uYWwgbWMgTVNScyAqLworc3RydWN0IG1jaW5mb19leHRlbmRlZCB7CisgICAgc3Ry
dWN0IG1jaW5mb19jb21tb24gY29tbW9uOworCisgICAgLyogWW91IGNhbiBmaWxsIHVwIHRvIGZp
dmUgcmVnaXN0ZXJzLgorICAgICAqIElmIHlvdSBuZWVkIG1vcmUsIHRoZW4gdXNlIHRoaXMgc3Ry
dWN0dXJlCisgICAgICogbXVsdGlwbGUgdGltZXMuICovCisKKyAgICB1aW50MzJfdCBtY19tc3Jz
OyAvKiBOdW1iZXIgb2YgbXNyIHdpdGggdmFsaWQgdmFsdWVzLiAqLworICAgIC8qCisgICAgICog
Q3VycmVudGx5IEludGVsIGV4dGVuZGVkIE1TUiAoMzIvNjQpIGluY2x1ZGUgYWxsIGdwIHJlZ2lz
dGVycworICAgICAqIGFuZCBFKFIpRkxBR1MsIEUoUilJUCwgRShSKU1JU0MsIHVwIHRvIDExLzE5
IG9mIHRoZW0gbWlnaHQgYmUKKyAgICAgKiB1c2VmdWwgYXQgcHJlc2VudC4gU28gZXhwYW5kIHRo
aXMgYXJyYXkgdG8gMTYvMzIgdG8gbGVhdmUgcm9vbS4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgbWNp
bmZvX21zciBtY19tc3Jbc2l6ZW9mKHZvaWQgKikgKiA0XTsKK307CisKKy8qIFJlY292ZXJ5IEFj
dGlvbiBmbGFncy4gR2l2aW5nIHJlY292ZXJ5IHJlc3VsdCBpbmZvcm1hdGlvbiB0byBET00wICov
CisKKy8qIFhlbiB0YWtlcyBzdWNjZXNzZnVsIHJlY292ZXJ5IGFjdGlvbiwgdGhlIGVycm9yIGlz
IHJlY292ZXJlZCAqLworI2RlZmluZSBSRUNfQUNUSU9OX1JFQ09WRVJFRCAoMHgxIDw8IDApCisv
KiBObyBhY3Rpb24gaXMgcGVyZm9ybWVkIGJ5IFhFTiAqLworI2RlZmluZSBSRUNfQUNUSU9OX05P
TkUgKDB4MSA8PCAxKQorLyogSXQncyBwb3NzaWJsZSBET00wIG1pZ2h0IHRha2UgYWN0aW9uIG93
bmVyc2hpcCBpbiBzb21lIGNhc2UgKi8KKyNkZWZpbmUgUkVDX0FDVElPTl9ORUVEX1JFU0VUICgw
eDEgPDwgMikKKworLyogRGlmZmVyZW50IFJlY292ZXJ5IEFjdGlvbiB0eXBlcywgaWYgdGhlIGFj
dGlvbiBpcyBwZXJmb3JtZWQgc3VjY2Vzc2Z1bGx5LAorICogUkVDX0FDVElPTl9SRUNPVkVSRUQg
ZmxhZyB3aWxsIGJlIHJldHVybmVkLgorICovCisKKy8qIFBhZ2UgT2ZmbGluZSBBY3Rpb24gKi8K
KyNkZWZpbmUgTUNfQUNUSU9OX1BBR0VfT0ZGTElORSAoMHgxIDw8IDApCisvKiBDUFUgb2ZmbGlu
ZSBBY3Rpb24gKi8KKyNkZWZpbmUgTUNfQUNUSU9OX0NQVV9PRkZMSU5FICgweDEgPDwgMSkKKy8q
IEwzIGNhY2hlIGRpc2FibGUgQWN0aW9uICovCisjZGVmaW5lIE1DX0FDVElPTl9DQUNIRV9TSFJJ
TksgKDB4MSA8PCAyKQorCisvKiBCZWxvdyBpbnRlcmZhY2UgdXNlZCBiZXR3ZWVuIFhFTi9ET00w
IGZvciBwYXNzaW5nIFhFTidzIHJlY292ZXJ5IGFjdGlvbgorICogaW5mb3JtYXRpb24gdG8gRE9N
MC4KKyAqIHVzYWdlIFNlbmFyaW86IEFmdGVyIG9mZmxpbmluZyBicm9rZW4gcGFnZSwgWEVOIG1p
Z2h0IHBhc3MgaXRzIHBhZ2Ugb2ZmbGluZQorICogcmVjb3ZlcnkgYWN0aW9uIHJlc3VsdCB0byBE
T00wLiBET00wIHdpbGwgc2F2ZSB0aGUgaW5mb3JtYXRpb24gaW4KKyAqIG5vbi12b2xhdGlsZSBt
ZW1vcnkgZm9yIGZ1cnRoZXIgcHJvYWN0aXZlIGFjdGlvbnMsIHN1Y2ggYXMgb2ZmbGluaW5nIHRo
ZQorICogZWFzeSBicm9rZW4gcGFnZSBlYXJsaWVyIHdoZW4gZG9pbmcgbmV4dCByZWJvb3QuCisq
Lworc3RydWN0IHBhZ2Vfb2ZmbGluZV9hY3Rpb24KK3sKKyAgICAvKiBQYXJhbXMgZm9yIHBhc3Np
bmcgdGhlIG9mZmxpbmVkIHBhZ2UgbnVtYmVyIHRvIERPTTAgKi8KKyAgICB1aW50NjRfdCBtZm47
CisgICAgdWludDY0X3Qgc3RhdHVzOworfTsKKworc3RydWN0IGNwdV9vZmZsaW5lX2FjdGlvbgor
eworICAgIC8qIFBhcmFtcyBmb3IgcGFzc2luZyB0aGUgaWRlbnRpdHkgb2YgdGhlIG9mZmxpbmVk
IENQVSB0byBET00wICovCisgICAgdWludDMyX3QgbWNfc29ja2V0aWQ7CisgICAgdWludDE2X3Qg
bWNfY29yZWlkOworICAgIHVpbnQxNl90IG1jX2NvcmVfdGhyZWFkaWQ7Cit9OworCisjZGVmaW5l
IE1BWF9VTklPTl9TSVpFIDE2CitzdHJ1Y3QgbWNpbmZvX3JlY292ZXJ5Cit7CisgICAgc3RydWN0
IG1jaW5mb19jb21tb24gY29tbW9uOworICAgIHVpbnQxNl90IG1jX2Jhbms7IC8qIGJhbmsgbnIg
Ki8KKyAgICB1aW50OF90IGFjdGlvbl9mbGFnczsKKyAgICB1aW50OF90IGFjdGlvbl90eXBlczsK
KyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCBwYWdlX29mZmxpbmVfYWN0aW9uIHBhZ2VfcmV0
aXJlOworICAgICAgICBzdHJ1Y3QgY3B1X29mZmxpbmVfYWN0aW9uIGNwdV9vZmZsaW5lOworICAg
ICAgICB1aW50OF90IHBhZFtNQVhfVU5JT05fU0laRV07CisgICAgfSBhY3Rpb25faW5mbzsKK307
CisKKworI2RlZmluZSBNQ0lORk9fSFlQRVJDQUxMU0laRQkxMDI0CisjZGVmaW5lIE1DSU5GT19N
QVhTSVpFCQk3NjgKKworI2RlZmluZSBNQ0lORk9fRkxBR1NfVU5DT01QTEVURSAweDEKK3N0cnVj
dCBtY19pbmZvIHsKKyAgICAvKiBOdW1iZXIgb2YgbWNpbmZvXyogZW50cmllcyBpbiBtaV9kYXRh
ICovCisgICAgdWludDMyX3QgbWlfbmVudHJpZXM7CisgICAgdWludDMyX3QgZmxhZ3M7CisgICAg
dWludDY0X3QgbWlfZGF0YVsoTUNJTkZPX01BWFNJWkUgLSAxKSAvIDhdOworfTsKK3R5cGVkZWYg
c3RydWN0IG1jX2luZm8gbWNfaW5mb190OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUobWNfaW5m
b190KTsKKworI2RlZmluZSBfX01DX01TUl9BUlJBWVNJWkUgOAorI2RlZmluZSBfX01DX05NU1JT
IDEKKyNkZWZpbmUgTUNfTkNBUFMJNwkvKiA3IENQVSBmZWF0dXJlIGZsYWcgd29yZHMgKi8KKyNk
ZWZpbmUgTUNfQ0FQU19TVERfRURYCTAJLyogY3B1aWQgbGV2ZWwgMHgwMDAwMDAwMSAoJWVkeCkg
Ki8KKyNkZWZpbmUgTUNfQ0FQU19BTURfRURYCTEJLyogY3B1aWQgbGV2ZWwgMHg4MDAwMDAwMSAo
JWVkeCkgKi8KKyNkZWZpbmUgTUNfQ0FQU19UTQkyCS8qIGNwdWlkIGxldmVsIDB4ODA4NjAwMDEg
KFRyYW5zTWV0YSkgKi8KKyNkZWZpbmUgTUNfQ0FQU19MSU5VWAkzCS8qIExpbnV4LWRlZmluZWQg
Ki8KKyNkZWZpbmUgTUNfQ0FQU19TVERfRUNYCTQJLyogY3B1aWQgbGV2ZWwgMHgwMDAwMDAwMSAo
JWVjeCkgKi8KKyNkZWZpbmUgTUNfQ0FQU19WSUEJNQkvKiBjcHVpZCBsZXZlbCAweGMwMDAwMDAx
ICovCisjZGVmaW5lIE1DX0NBUFNfQU1EX0VDWAk2CS8qIGNwdWlkIGxldmVsIDB4ODAwMDAwMDEg
KCVlY3gpICovCisKK3N0cnVjdCBtY2luZm9fbG9naWNhbF9jcHUgeworICAgIHVpbnQzMl90IG1j
X2NwdW5yOworICAgIHVpbnQzMl90IG1jX2NoaXBpZDsKKyAgICB1aW50MTZfdCBtY19jb3JlaWQ7
CisgICAgdWludDE2X3QgbWNfdGhyZWFkaWQ7CisgICAgdWludDMyX3QgbWNfYXBpY2lkOworICAg
IHVpbnQzMl90IG1jX2NsdXN0ZXJpZDsKKyAgICB1aW50MzJfdCBtY19uY29yZXM7CisgICAgdWlu
dDMyX3QgbWNfbmNvcmVzX2FjdGl2ZTsKKyAgICB1aW50MzJfdCBtY19udGhyZWFkczsKKyAgICBp
bnQzMl90IG1jX2NwdWlkX2xldmVsOworICAgIHVpbnQzMl90IG1jX2ZhbWlseTsKKyAgICB1aW50
MzJfdCBtY192ZW5kb3I7CisgICAgdWludDMyX3QgbWNfbW9kZWw7CisgICAgdWludDMyX3QgbWNf
c3RlcDsKKyAgICBjaGFyIG1jX3ZlbmRvcmlkWzE2XTsKKyAgICBjaGFyIG1jX2JyYW5kaWRbNjRd
OworICAgIHVpbnQzMl90IG1jX2NwdV9jYXBzW01DX05DQVBTXTsKKyAgICB1aW50MzJfdCBtY19j
YWNoZV9zaXplOworICAgIHVpbnQzMl90IG1jX2NhY2hlX2FsaWdubWVudDsKKyAgICBpbnQzMl90
IG1jX25tc3J2YWxzOworICAgIHN0cnVjdCBtY2luZm9fbXNyIG1jX21zcnZhbHVlc1tfX01DX01T
Ul9BUlJBWVNJWkVdOworfTsKK3R5cGVkZWYgc3RydWN0IG1jaW5mb19sb2dpY2FsX2NwdSB4ZW5f
bWNfbG9naWNhbF9jcHVfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9tY19sb2dpY2Fs
X2NwdV90KTsKKworCisvKgorICogT1MncyBzaG91bGQgdXNlIHRoZXNlIGluc3RlYWQgb2Ygd3Jp
dGluZyB0aGVpciBvd24gbG9va3VwIGZ1bmN0aW9uCisgKiBlYWNoIHdpdGggaXRzIG93biBidWdz
IGFuZCBkcmF3YmFja3MuCisgKiBXZSB1c2UgbWFjcm9zIGluc3RlYWQgb2Ygc3RhdGljIGlubGlu
ZSBmdW5jdGlvbnMgdG8gYWxsb3cgZ3Vlc3RzCisgKiB0byBpbmNsdWRlIHRoaXMgaGVhZGVyIGlu
IGFzc2VtYmx5IGZpbGVzICgqLlMpLgorICovCisvKiBQcm90b3R5cGU6CisgKiAgICB1aW50MzJf
dCB4ODZfbWNpbmZvX25lbnRyaWVzKHN0cnVjdCBtY19pbmZvICptaSk7CisgKi8KKyNkZWZpbmUg
eDg2X21jaW5mb19uZW50cmllcyhfbWkpICAgIFwKKyAgICAoX21pKS0+bWlfbmVudHJpZXMKKy8q
IFByb3RvdHlwZToKKyAqICAgIHN0cnVjdCBtY2luZm9fY29tbW9uICp4ODZfbWNpbmZvX2ZpcnN0
KHN0cnVjdCBtY19pbmZvICptaSk7CisgKi8KKyNkZWZpbmUgeDg2X21jaW5mb19maXJzdChfbWkp
ICAgICAgIFwKKyAgICAoKHN0cnVjdCBtY2luZm9fY29tbW9uICopKF9taSktPm1pX2RhdGEpCisv
KiBQcm90b3R5cGU6CisgKiAgICBzdHJ1Y3QgbWNpbmZvX2NvbW1vbiAqeDg2X21jaW5mb19uZXh0
KHN0cnVjdCBtY2luZm9fY29tbW9uICptaWMpOworICovCisjZGVmaW5lIHg4Nl9tY2luZm9fbmV4
dChfbWljKSAgICAgICBcCisgICAgKChzdHJ1Y3QgbWNpbmZvX2NvbW1vbiAqKSgodWludDhfdCAq
KShfbWljKSArIChfbWljKS0+c2l6ZSkpCisKKy8qIFByb3RvdHlwZToKKyAqICAgIHZvaWQgeDg2
X21jaW5mb19sb29rdXAodm9pZCAqcmV0LCBzdHJ1Y3QgbWNfaW5mbyAqbWksIHVpbnQxNl90IHR5
cGUpOworICovCisjZGVmaW5lIHg4Nl9tY2luZm9fbG9va3VwKF9yZXQsIF9taSwgX3R5cGUpICAg
IFwKKyAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgICAgICAgIHVpbnQzMl90IGZvdW5kLCBpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBzdHJ1Y3QgbWNpbmZvX2NvbW1vbiAqX21p
YzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGZvdW5k
ID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
ICAgICAoX3JldCkgPSBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICAgICAgaWYgKF9taSA9PSBOVUxMKSBicmVhazsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgICAgIF9taWMgPSB4ODZfbWNpbmZvX2ZpcnN0KF9taSk7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgeDg2X21j
aW5mb19uZW50cmllcyhfbWkpOyBpKyspIHsgICAgICAgIFwKKyAgICAgICAgICAgIGlmIChfbWlj
LT50eXBlID09IChfdHlwZSkpIHsgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAg
ICAgICAgZm91bmQgPSAxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBfbWljID0geDg2X21jaW5mb19uZXh0KF9t
aWMpOyAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB9ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgKF9yZXQpID0g
Zm91bmQgPyBfbWljIDogTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSB3
aGlsZSAoMCkKKworCisvKiBVc2VjYXNlIDEKKyAqIFJlZ2lzdGVyIG1hY2hpbmUgY2hlY2sgdHJh
cCBjYWxsYmFjayBoYW5kbGVyCisgKiAgICAoYWxyZWFkeSBkb25lIHZpYSAic2V0X3RyYXBfdGFi
bGUiIGh5cGVyY2FsbCkKKyAqLworCisvKiBVc2VjYXNlIDIKKyAqIERvbTAgcmVnaXN0ZXJzIG1h
Y2hpbmUgY2hlY2sgZXZlbnQgY2FsbGJhY2sgaGFuZGxlcgorICogZG9uZSBieSBFVlRDSE5PUF9i
aW5kX3ZpcnEKKyAqLworCisvKiBVc2VjYXNlIDMKKyAqIEZldGNoIG1hY2hpbmUgY2hlY2sgZGF0
YSBmcm9tIGh5cGVydmlzb3IuCisgKiBOb3RlLCB0aGlzIGh5cGVyY2FsbCBpcyBzcGVjaWFsLCBi
ZWNhdXNlIGJvdGggRG9tMCBhbmQgRG9tVSBtdXN0IHVzZSB0aGlzLgorICovCisjZGVmaW5lIFhF
Tl9NQ19mZXRjaCAgICAgICAgICAgIDEKK3N0cnVjdCB4ZW5fbWNfZmV0Y2ggeworICAgIC8qIElO
L09VVCB2YXJpYWJsZXMuICovCisgICAgdWludDMyX3QgZmxhZ3M7CS8qIElOOiBYRU5fTUNfTk9O
VVJHRU5ULCBYRU5fTUNfVVJHRU5ULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX01D
X0FDSyBpZiBhY2snaW5nIGFuIGVhcmxpZXIgZmV0Y2ggKi8KKyAgICAgICAgICAgICAgICAgICAg
ICAgLyogT1VUOiBYRU5fTUNfT0ssIFhFTl9NQ19GRVRDSEZBSUxFRCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgWEVOX01DX05PREFUQSwgWEVOX01DX05PTUFUQ0ggKi8KKyAgICB1aW50MzJf
dCBfcGFkMDsKKyAgICB1aW50NjRfdCBmZXRjaF9pZDsJLyogT1VUOiBpZCBmb3IgYWNrLCBJTjog
aWQgd2UgYXJlIGFjaydpbmcgKi8KKworICAgIC8qIE9VVCB2YXJpYWJsZXMuICovCisgICAgWEVO
X0dVRVNUX0hBTkRMRShtY19pbmZvX3QpIGRhdGE7Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX21j
X2ZldGNoIHhlbl9tY19mZXRjaF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX21jX2Zl
dGNoX3QpOworCisKKy8qIFVzZWNhc2UgNAorICogVGhpcyB0ZWxscyB0aGUgaHlwZXJ2aXNvciB0
byBub3RpZnkgYSBEb21VIGFib3V0IHRoZSBtYWNoaW5lIGNoZWNrIGVycm9yCisgKi8KKyNkZWZp
bmUgWEVOX01DX25vdGlmeWRvbWFpbiAgICAgMgorc3RydWN0IHhlbl9tY19ub3RpZnlkb21haW4g
eworICAgIC8qIElOIHZhcmlhYmxlcy4gKi8KKyAgICB1aW50MTZfdCBtY19kb21pZDsgICAgLyog
VGhlIHVucHJpdmlsZWdlZCBkb21haW4gdG8gbm90aWZ5LiAqLworICAgIHVpbnQxNl90IG1jX3Zj
cHVpZDsgICAvKiBUaGUgdmNwdSBpbiBtY19kb21pZCB0byBub3RpZnkuCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqIFVzdWFsbHkgZWNobydkIHZhbHVlIGZyb20gdGhlIGZldGNoIGh5cGVy
Y2FsbC4gKi8KKworICAgIC8qIElOL09VVCB2YXJpYWJsZXMuICovCisgICAgdWludDMyX3QgZmxh
Z3M7CisKKy8qIElOOiBYRU5fTUNfQ09SUkVDVEFCTEUsIFhFTl9NQ19UUkFQICovCisvKiBPVVQ6
IFhFTl9NQ19PSywgWEVOX01DX0NBTk5PVEhBTkRMRSwgWEVOX01DX05PVERFTElWRVJFRCwgWEVO
X01DX05PTUFUQ0ggKi8KK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5fbWNfbm90aWZ5ZG9tYWluIHhl
bl9tY19ub3RpZnlkb21haW5fdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9tY19ub3Rp
Znlkb21haW5fdCk7CisKKyNkZWZpbmUgWEVOX01DX3BoeXNjcHVpbmZvIDMKK3N0cnVjdCB4ZW5f
bWNfcGh5c2NwdWluZm8geworICAgIC8qIElOL09VVCAqLworICAgIHVpbnQzMl90IG5jcHVzOwor
ICAgIHVpbnQzMl90IF9wYWQwOworICAgIC8qIE9VVCAqLworICAgIFhFTl9HVUVTVF9IQU5ETEUo
eGVuX21jX2xvZ2ljYWxfY3B1X3QpIGluZm87Cit9OworCisjZGVmaW5lIFhFTl9NQ19tc3Jpbmpl
Y3QgICAgNAorI2RlZmluZSBNQ19NU1JJTkpfTUFYTVNSUyAgICAgICA4CitzdHJ1Y3QgeGVuX21j
X21zcmluamVjdCB7CisgICAgLyogSU4gKi8KKyAgICB1aW50MzJfdCBtY2lual9jcHVucjsgICAg
ICAgICAgIC8qIHRhcmdldCBwcm9jZXNzb3IgaWQgKi8KKyAgICB1aW50MzJfdCBtY2lual9mbGFn
czsgICAgICAgICAgIC8qIHNlZSBNQ19NU1JJTkpfRl8qIGJlbG93ICovCisgICAgdWludDMyX3Qg
bWNpbmpfY291bnQ7ICAgICAgICAgICAvKiAwIC4uIGNvdW50LTEgaW4gYXJyYXkgYXJlIHZhbGlk
ICovCisgICAgZG9taWRfdCAgbWNpbmpfZG9taWQ7ICAgICAgICAgICAvKiB2YWxpZCBvbmx5IGlm
IE1DX01TUklOSl9GX0dQQUREUiBpcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHJlc2VudCBpbiBtY2lual9mbGFncyAqLworICAgIHVpbnQxNl90IF9wYWQwOworICAg
IHN0cnVjdCBtY2luZm9fbXNyIG1jaW5qX21zcltNQ19NU1JJTkpfTUFYTVNSU107Cit9OworCisv
KiBGbGFncyBmb3IgbWNpbmpfZmxhZ3MgYWJvdmU7IGJpdHMgMTYtMzEgYXJlIHJlc2VydmVkICov
CisjZGVmaW5lIE1DX01TUklOSl9GX0lOVEVSUE9TRSAgIDB4MQorI2RlZmluZSBNQ19NU1JJTkpf
Rl9HUEFERFIgICAgICAweDIKKworI2RlZmluZSBYRU5fTUNfbWNlaW5qZWN0ICAgIDUKK3N0cnVj
dCB4ZW5fbWNfbWNlaW5qZWN0IHsKKyAgICB1bnNpZ25lZCBpbnQgbWNlaW5qX2NwdW5yOyAgICAg
IC8qIHRhcmdldCBwcm9jZXNzb3IgaWQgKi8KK307CisKKyNpZiBkZWZpbmVkKF9fWEVOX18pIHx8
IGRlZmluZWQoX19YRU5fVE9PTFNfXykKKyNkZWZpbmUgWEVOX01DX2luamVjdF92MiAgICAgICAg
NgorI2RlZmluZSBYRU5fTUNfSU5KRUNUX1RZUEVfTUFTSyAgICAgMHg3CisjZGVmaW5lIFhFTl9N
Q19JTkpFQ1RfVFlQRV9NQ0UgICAgICAweDAKKyNkZWZpbmUgWEVOX01DX0lOSkVDVF9UWVBFX0NN
Q0kgICAgIDB4MQorI2RlZmluZSBYRU5fTUNfSU5KRUNUX1RZUEVfTE1DRSAgICAgMHgyCisKKyNk
ZWZpbmUgWEVOX01DX0lOSkVDVF9DUFVfQlJPQURDQVNUIDB4OAorCitzdHJ1Y3QgeGVuX21jX2lu
amVjdF92MiB7CisgICAgdWludDMyX3QgZmxhZ3M7CisgICAgc3RydWN0IHhlbmN0bF9iaXRtYXAg
Y3B1bWFwOworfTsKKyNlbmRpZgorCitzdHJ1Y3QgeGVuX21jIHsKKyAgICB1aW50MzJfdCBjbWQ7
CisgICAgdWludDMyX3QgaW50ZXJmYWNlX3ZlcnNpb247IC8qIFhFTl9NQ0FfSU5URVJGQUNFX1ZF
UlNJT04gKi8KKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCB4ZW5fbWNfZmV0Y2ggICAgICAg
IG1jX2ZldGNoOworICAgICAgICBzdHJ1Y3QgeGVuX21jX25vdGlmeWRvbWFpbiBtY19ub3RpZnlk
b21haW47CisgICAgICAgIHN0cnVjdCB4ZW5fbWNfcGh5c2NwdWluZm8gIG1jX3BoeXNjcHVpbmZv
OworICAgICAgICBzdHJ1Y3QgeGVuX21jX21zcmluamVjdCAgICBtY19tc3JpbmplY3Q7CisgICAg
ICAgIHN0cnVjdCB4ZW5fbWNfbWNlaW5qZWN0ICAgIG1jX21jZWluamVjdDsKKyNpZiBkZWZpbmVk
KF9fWEVOX18pIHx8IGRlZmluZWQoX19YRU5fVE9PTFNfXykKKyAgICAgICAgc3RydWN0IHhlbl9t
Y19pbmplY3RfdjIgICAgbWNfaW5qZWN0X3YyOworI2VuZGlmCisgICAgfSB1OworfTsKK3R5cGVk
ZWYgc3RydWN0IHhlbl9tYyB4ZW5fbWNfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9t
Y190KTsKKworI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLworCisjZW5kaWYgLyogX19YRU5fUFVC
TElDX0FSQ0hfWDg2X01DQV9IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3hzbS9hcmNo
LXg4Ni94ZW4teDg2XzMyLmggYi9pbmNsdWRlL3hlbi94c20vYXJjaC14ODYveGVuLXg4Nl8zMi5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhMzg4YjcKLS0tIC9kZXYvbnVs
bAorKysgYi9pbmNsdWRlL3hlbi94c20vYXJjaC14ODYveGVuLXg4Nl8zMi5oCkBAIC0wLDAgKzEs
MTk0IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiB4ZW4teDg2XzMyLmgKKyAqIAorICog
R3Vlc3QgT1MgaW50ZXJmYWNlIHRvIHg4NiAzMi1iaXQgWGVuLgorICogCisgKiBQZXJtaXNzaW9u
IGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5p
bmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRp
b24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdp
dGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisgKiBy
aWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBz
dWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRv
IHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8g
ZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBh
Ym92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJl
IGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRo
ZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lU
SE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVE
SU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFks
CisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5U
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMg
QkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklT
SU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBP
UiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICog
Q29weXJpZ2h0IChjKSAyMDA0LTIwMDcsIEsgQSBGcmFzZXIKKyAqLworCisjaWZuZGVmIF9fWEVO
X1BVQkxJQ19BUkNIX1g4Nl9YRU5fWDg2XzMyX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfQVJD
SF9YODZfWEVOX1g4Nl8zMl9IX18KKworLyoKKyAqIEh5cGVyY2FsbCBpbnRlcmZhY2U6CisgKiAg
SW5wdXQ6ICAlZWJ4LCAlZWN4LCAlZWR4LCAlZXNpLCAlZWRpLCAlZWJwIChhcmd1bWVudHMgMS02
KQorICogIE91dHB1dDogJWVheAorICogQWNjZXNzIGlzIHZpYSBoeXBlcmNhbGwgcGFnZSAoc2V0
IHVwIGJ5IGd1ZXN0IGxvYWRlciBvciB2aWEgYSBYZW4gTVNSKToKKyAqICBjYWxsIGh5cGVyY2Fs
bF9wYWdlICsgaHlwZXJjYWxsLW51bWJlciAqIDMyCisgKiBDbG9iYmVyZWQ6IEFyZ3VtZW50IHJl
Z2lzdGVycyAoZS5nLiwgMi1hcmcgaHlwZXJjYWxsIGNsb2JiZXJzICVlYngsJWVjeCkKKyAqLwor
CisvKgorICogVGhlc2UgZmxhdCBzZWdtZW50cyBhcmUgaW4gdGhlIFhlbi1wcml2YXRlIHNlY3Rp
b24gb2YgZXZlcnkgR0RULiBTaW5jZSB0aGVzZQorICogYXJlIGFsc28gcHJlc2VudCBpbiB0aGUg
aW5pdGlhbCBHRFQsIG1hbnkgT1NlcyB3aWxsIGJlIGFibGUgdG8gYXZvaWQKKyAqIGluc3RhbGxp
bmcgdGhlaXIgb3duIEdEVC4KKyAqLworI2RlZmluZSBGTEFUX1JJTkcxX0NTIDB4ZTAxOSAgICAv
KiBHRFQgaW5kZXggMjU5ICovCisjZGVmaW5lIEZMQVRfUklORzFfRFMgMHhlMDIxICAgIC8qIEdE
VCBpbmRleCAyNjAgKi8KKyNkZWZpbmUgRkxBVF9SSU5HMV9TUyAweGUwMjEgICAgLyogR0RUIGlu
ZGV4IDI2MCAqLworI2RlZmluZSBGTEFUX1JJTkczX0NTIDB4ZTAyYiAgICAvKiBHRFQgaW5kZXgg
MjYxICovCisjZGVmaW5lIEZMQVRfUklORzNfRFMgMHhlMDMzICAgIC8qIEdEVCBpbmRleCAyNjIg
Ki8KKyNkZWZpbmUgRkxBVF9SSU5HM19TUyAweGUwMzMgICAgLyogR0RUIGluZGV4IDI2MiAqLwor
CisjZGVmaW5lIEZMQVRfS0VSTkVMX0NTIEZMQVRfUklORzFfQ1MKKyNkZWZpbmUgRkxBVF9LRVJO
RUxfRFMgRkxBVF9SSU5HMV9EUworI2RlZmluZSBGTEFUX0tFUk5FTF9TUyBGTEFUX1JJTkcxX1NT
CisjZGVmaW5lIEZMQVRfVVNFUl9DUyAgICBGTEFUX1JJTkczX0NTCisjZGVmaW5lIEZMQVRfVVNF
Ul9EUyAgICBGTEFUX1JJTkczX0RTCisjZGVmaW5lIEZMQVRfVVNFUl9TUyAgICBGTEFUX1JJTkcz
X1NTCisKKyNkZWZpbmUgX19IWVBFUlZJU09SX1ZJUlRfU1RBUlRfUEFFICAgIDB4RjU4MDAwMDAK
KyNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9TVEFSVF9QQUUgICAgIDB4RjU4MDAwMDAKKyNkZWZp
bmUgX19NQUNIMlBIWVNfVklSVF9FTkRfUEFFICAgICAgIDB4RjY4MDAwMDAKKyNkZWZpbmUgSFlQ
RVJWSVNPUl9WSVJUX1NUQVJUX1BBRSAgICAgIHhlbl9ta191bG9uZyhfX0hZUEVSVklTT1JfVklS
VF9TVEFSVF9QQUUpCisjZGVmaW5lIE1BQ0gyUEhZU19WSVJUX1NUQVJUX1BBRSAgICAgICB4ZW5f
bWtfdWxvbmcoX19NQUNIMlBIWVNfVklSVF9TVEFSVF9QQUUpCisjZGVmaW5lIE1BQ0gyUEhZU19W
SVJUX0VORF9QQUUgICAgICAgICB4ZW5fbWtfdWxvbmcoX19NQUNIMlBIWVNfVklSVF9FTkRfUEFF
KQorCisvKiBOb24tUEFFIGJvdW5kcyBhcmUgb2Jzb2xldGUuICovCisjZGVmaW5lIF9fSFlQRVJW
SVNPUl9WSVJUX1NUQVJUX05PTlBBRSAweEZDMDAwMDAwCisjZGVmaW5lIF9fTUFDSDJQSFlTX1ZJ
UlRfU1RBUlRfTk9OUEFFICAweEZDMDAwMDAwCisjZGVmaW5lIF9fTUFDSDJQSFlTX1ZJUlRfRU5E
X05PTlBBRSAgICAweEZDNDAwMDAwCisjZGVmaW5lIEhZUEVSVklTT1JfVklSVF9TVEFSVF9OT05Q
QUUgICBcCisgICAgeGVuX21rX3Vsb25nKF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUX05PTlBBRSkK
KyNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRfU1RBUlRfTk9OUEFFICAgIFwKKyAgICB4ZW5fbWtfdWxv
bmcoX19NQUNIMlBIWVNfVklSVF9TVEFSVF9OT05QQUUpCisjZGVmaW5lIE1BQ0gyUEhZU19WSVJU
X0VORF9OT05QQUUgICAgICBcCisgICAgeGVuX21rX3Vsb25nKF9fTUFDSDJQSFlTX1ZJUlRfRU5E
X05PTlBBRSkKKworI2RlZmluZSBfX0hZUEVSVklTT1JfVklSVF9TVEFSVCBfX0hZUEVSVklTT1Jf
VklSVF9TVEFSVF9QQUUKKyNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9TVEFSVCAgX19NQUNIMlBI
WVNfVklSVF9TVEFSVF9QQUUKKyNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9FTkQgICAgX19NQUNI
MlBIWVNfVklSVF9FTkRfUEFFCisKKyNpZm5kZWYgSFlQRVJWSVNPUl9WSVJUX1NUQVJUCisjZGVm
aW5lIEhZUEVSVklTT1JfVklSVF9TVEFSVCB4ZW5fbWtfdWxvbmcoX19IWVBFUlZJU09SX1ZJUlRf
U1RBUlQpCisjZW5kaWYKKworI2RlZmluZSBNQUNIMlBIWVNfVklSVF9TVEFSVCAgeGVuX21rX3Vs
b25nKF9fTUFDSDJQSFlTX1ZJUlRfU1RBUlQpCisjZGVmaW5lIE1BQ0gyUEhZU19WSVJUX0VORCAg
ICB4ZW5fbWtfdWxvbmcoX19NQUNIMlBIWVNfVklSVF9FTkQpCisjZGVmaW5lIE1BQ0gyUEhZU19O
Ul9FTlRSSUVTICAoKE1BQ0gyUEhZU19WSVJUX0VORC1NQUNIMlBIWVNfVklSVF9TVEFSVCk+PjIp
CisjaWZuZGVmIG1hY2hpbmVfdG9fcGh5c19tYXBwaW5nCisjZGVmaW5lIG1hY2hpbmVfdG9fcGh5
c19tYXBwaW5nICgodW5zaWduZWQgbG9uZyAqKU1BQ0gyUEhZU19WSVJUX1NUQVJUKQorI2VuZGlm
CisKKy8qIDMyLS82NC1iaXQgaW52YXJpYWJpbGl0eSBmb3IgY29udHJvbCBpbnRlcmZhY2VzIChk
b21jdGwvc3lzY3RsKS4gKi8KKyNpZiBkZWZpbmVkKF9fWEVOX18pIHx8IGRlZmluZWQoX19YRU5f
VE9PTFNfXykKKyN1bmRlZiBfX19ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRQorI2RlZmluZSBfX19E
RUZJTkVfWEVOX0dVRVNUX0hBTkRMRShuYW1lLCB0eXBlKSAgICAgICAgICAgICAgICAgIFwKKyAg
ICB0eXBlZGVmIHN0cnVjdCB7IHR5cGUgKnA7IH0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgICAgIF9fZ3Vlc3RfaGFuZGxlXyAjIyBuYW1lOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgIHR5cGVkZWYgc3RydWN0IHsgdW5pb24geyB0eXBlICpwOyB1
aW50NjRfYWxpZ25lZF90IHE7IH07IH0gIFwKKyAgICAgICAgX19ndWVzdF9oYW5kbGVfNjRfICMj
IG5hbWUKKyN1bmRlZiBzZXRfeGVuX2d1ZXN0X2hhbmRsZV9yYXcKKyNkZWZpbmUgc2V0X3hlbl9n
dWVzdF9oYW5kbGVfcmF3KGhuZCwgdmFsKSAgICAgICAgICAgICAgICAgIFwKKyAgICBkbyB7IGlm
ICggc2l6ZW9mKGhuZCkgPT0gOCApICoodWludDY0X3QgKikmKGhuZCkgPSAwOyAgIFwKKyAgICAg
ICAgIChobmQpLnAgPSB2YWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICB9IHdoaWxlICggMCApCisjZGVmaW5lICBpbnQ2NF9hbGlnbmVkX3QgIGludDY0X3QgX19h
dHRyaWJ1dGVfXygoYWxpZ25lZCg4KSkpCisjZGVmaW5lIHVpbnQ2NF9hbGlnbmVkX3QgdWludDY0
X3QgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg4KSkpCisjZGVmaW5lIF9fWEVOX0dVRVNUX0hBTkRM
RV82NChuYW1lKSBfX2d1ZXN0X2hhbmRsZV82NF8gIyMgbmFtZQorI2RlZmluZSBYRU5fR1VFU1Rf
SEFORExFXzY0KG5hbWUpIF9fWEVOX0dVRVNUX0hBTkRMRV82NChuYW1lKQorI2VuZGlmCisKKyNp
Zm5kZWYgX19BU1NFTUJMWV9fCisKKyNpZiBkZWZpbmVkKFhFTl9HRU5FUkFUSU5HX0NPTVBBVF9I
RUFERVJTKQorLyogbm90aGluZyAqLworI2VsaWYgZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVk
KF9fWEVOX1RPT0xTX18pCisvKiBBbm9ueW1vdXMgdW5pb25zIGluY2x1ZGUgYWxsIHBlcm1pc3Np
YmxlIG5hbWVzIChlLmcuLCBhbC9haC9heC9lYXgpLiAqLworI2RlZmluZSBfX0RFQ0xfUkVHX0xP
OCh3aGljaCkgdW5pb24geyBcCisgICAgdWludDMyX3QgZSAjIyB3aGljaCAjIyB4OyBcCisgICAg
dWludDE2X3Qgd2hpY2ggIyMgeDsgXAorICAgIHN0cnVjdCB7IFwKKyAgICAgICAgdWludDhfdCB3
aGljaCAjIyBsOyBcCisgICAgICAgIHVpbnQ4X3Qgd2hpY2ggIyMgaDsgXAorICAgIH07IFwKK30K
KyNkZWZpbmUgX19ERUNMX1JFR19MTzE2KG5hbWUpIHVuaW9uIHsgXAorICAgIHVpbnQzMl90IGUg
IyMgbmFtZSwgX2UgIyMgbmFtZTsgXAorICAgIHVpbnQxNl90IG5hbWU7IFwKK30KKyNlbHNlCisv
KiBPdGhlciBzb3VyY2VzIG11c3QgYWx3YXlzIHVzZSB0aGUgcHJvcGVyIDMyLWJpdCBuYW1lIChl
LmcuLCBlYXgpLiAqLworI2RlZmluZSBfX0RFQ0xfUkVHX0xPOCh3aGljaCkgdWludDMyX3QgZSAj
IyB3aGljaCAjIyB4CisjZGVmaW5lIF9fREVDTF9SRUdfTE8xNihuYW1lKSB1aW50MzJfdCBlICMj
IG5hbWUKKyNlbmRpZgorCitzdHJ1Y3QgY3B1X3VzZXJfcmVncyB7CisgICAgX19ERUNMX1JFR19M
TzgoYik7CisgICAgX19ERUNMX1JFR19MTzgoYyk7CisgICAgX19ERUNMX1JFR19MTzgoZCk7Cisg
ICAgX19ERUNMX1JFR19MTzE2KHNpKTsKKyAgICBfX0RFQ0xfUkVHX0xPMTYoZGkpOworICAgIF9f
REVDTF9SRUdfTE8xNihicCk7CisgICAgX19ERUNMX1JFR19MTzgoYSk7CisgICAgdWludDE2X3Qg
ZXJyb3JfY29kZTsgICAgLyogcHJpdmF0ZSAqLworICAgIHVpbnQxNl90IGVudHJ5X3ZlY3Rvcjsg
IC8qIHByaXZhdGUgKi8KKyAgICBfX0RFQ0xfUkVHX0xPMTYoaXApOworICAgIHVpbnQxNl90IGNz
OworICAgIHVpbnQ4X3QgIHNhdmVkX3VwY2FsbF9tYXNrOworICAgIHVpbnQ4X3QgIF9wYWQwOwor
ICAgIF9fREVDTF9SRUdfTE8xNihmbGFncyk7IC8qIGVmbGFncy5JRiA9PSAhc2F2ZWRfdXBjYWxs
X21hc2sgKi8KKyAgICBfX0RFQ0xfUkVHX0xPMTYoc3ApOworICAgIHVpbnQxNl90IHNzLCBfcGFk
MTsKKyAgICB1aW50MTZfdCBlcywgX3BhZDI7CisgICAgdWludDE2X3QgZHMsIF9wYWQzOworICAg
IHVpbnQxNl90IGZzLCBfcGFkNDsKKyAgICB1aW50MTZfdCBncywgX3BhZDU7Cit9OwordHlwZWRl
ZiBzdHJ1Y3QgY3B1X3VzZXJfcmVncyBjcHVfdXNlcl9yZWdzX3Q7CitERUZJTkVfWEVOX0dVRVNU
X0hBTkRMRShjcHVfdXNlcl9yZWdzX3QpOworCisjdW5kZWYgX19ERUNMX1JFR19MTzgKKyN1bmRl
ZiBfX0RFQ0xfUkVHX0xPMTYKKworLyoKKyAqIFBhZ2UtZGlyZWN0b3J5IGFkZHJlc3NlcyBhYm92
ZSA0R0IgZG8gbm90IGZpdCBpbnRvIGFyY2hpdGVjdHVyYWwgJWNyMy4KKyAqIFdoZW4gYWNjZXNz
aW5nICVjcjMsIG9yIGVxdWl2YWxlbnQgZmllbGQgaW4gdmNwdV9ndWVzdF9jb250ZXh0LCBndWVz
dHMKKyAqIG11c3QgdXNlIHRoZSBmb2xsb3dpbmcgYWNjZXNzb3IgbWFjcm9zIHRvIHBhY2svdW5w
YWNrIHZhbGlkIE1GTnMuCisgKi8KKyNkZWZpbmUgeGVuX3Bmbl90b19jcjMocGZuKSAoKCh1bnNp
Z25lZCkocGZuKSA8PCAxMikgfCAoKHVuc2lnbmVkKShwZm4pID4+IDIwKSkKKyNkZWZpbmUgeGVu
X2NyM190b19wZm4oY3IzKSAoKCh1bnNpZ25lZCkoY3IzKSA+PiAxMikgfCAoKHVuc2lnbmVkKShj
cjMpIDw8IDIwKSkKKworc3RydWN0IGFyY2hfdmNwdV9pbmZvIHsKKyAgICB1bnNpZ25lZCBsb25n
IGNyMjsKKyAgICB1bnNpZ25lZCBsb25nIHBhZFs1XTsgLyogc2l6ZW9mKHZjcHVfaW5mb190KSA9
PSA2NCAqLworfTsKK3R5cGVkZWYgc3RydWN0IGFyY2hfdmNwdV9pbmZvIGFyY2hfdmNwdV9pbmZv
X3Q7CisKK3N0cnVjdCB4ZW5fY2FsbGJhY2sgeworICAgIHVuc2lnbmVkIGxvbmcgY3M7CisgICAg
dW5zaWduZWQgbG9uZyBlaXA7Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2NhbGxiYWNrIHhlbl9j
YWxsYmFja190OworCisjZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAqLworCisjZW5kaWYgLyogX19Y
RU5fUFVCTElDX0FSQ0hfWDg2X1hFTl9YODZfMzJfSF9fICovCisKKy8qCisgKiBMb2NhbCB2YXJp
YWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9m
ZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVu
ZDoKKyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4veHNtL2FyY2gteDg2L3hlbi14ODZfNjQu
aCBiL2luY2x1ZGUveGVuL3hzbS9hcmNoLXg4Ni94ZW4teDg2XzY0LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uYmU1MmY3MAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUv
eGVuL3hzbS9hcmNoLXg4Ni94ZW4teDg2XzY0LmgKQEAgLTAsMCArMSwyNDEgQEAKKy8qKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKKyAqIHhlbi14ODZfNjQuaAorICogCisgKiBHdWVzdCBPUyBpbnRlcmZh
Y2UgdG8geDg2IDY0LWJpdCBYZW4uCisgKiAKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50
ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9m
IHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJT
b2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlv
biwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNv
cHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v
cgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMg
dG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0
byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAq
IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoK
KyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9G
IEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1J
VEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFO
WSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD
VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9V
VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RI
RVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIw
MDQtMjAwNiwgSyBBIEZyYXNlcgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElDX0FSQ0hfWDg2
X1hFTl9YODZfNjRfSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19BUkNIX1g4Nl9YRU5fWDg2XzY0
X0hfXworCisvKgorICogSHlwZXJjYWxsIGludGVyZmFjZToKKyAqICBJbnB1dDogICVyZGksICVy
c2ksICVyZHgsICVyMTAsICVyOCwgJXI5IChhcmd1bWVudHMgMS02KQorICogIE91dHB1dDogJXJh
eAorICogQWNjZXNzIGlzIHZpYSBoeXBlcmNhbGwgcGFnZSAoc2V0IHVwIGJ5IGd1ZXN0IGxvYWRl
ciBvciB2aWEgYSBYZW4gTVNSKToKKyAqICBjYWxsIGh5cGVyY2FsbF9wYWdlICsgaHlwZXJjYWxs
LW51bWJlciAqIDMyCisgKiBDbG9iYmVyZWQ6IGFyZ3VtZW50IHJlZ2lzdGVycyAoZS5nLiwgMi1h
cmcgaHlwZXJjYWxsIGNsb2JiZXJzICVyZGksJXJzaSkKKyAqLworCisvKgorICogNjQtYml0IHNl
Z21lbnQgc2VsZWN0b3JzCisgKiBUaGVzZSBmbGF0IHNlZ21lbnRzIGFyZSBpbiB0aGUgWGVuLXBy
aXZhdGUgc2VjdGlvbiBvZiBldmVyeSBHRFQuIFNpbmNlIHRoZXNlCisgKiBhcmUgYWxzbyBwcmVz
ZW50IGluIHRoZSBpbml0aWFsIEdEVCwgbWFueSBPU2VzIHdpbGwgYmUgYWJsZSB0byBhdm9pZAor
ICogaW5zdGFsbGluZyB0aGVpciBvd24gR0RULgorICovCisKKyNkZWZpbmUgRkxBVF9SSU5HM19D
UzMyIDB4ZTAyMyAgLyogR0RUIGluZGV4IDI2MCAqLworI2RlZmluZSBGTEFUX1JJTkczX0NTNjQg
MHhlMDMzICAvKiBHRFQgaW5kZXggMjYxICovCisjZGVmaW5lIEZMQVRfUklORzNfRFMzMiAweGUw
MmIgIC8qIEdEVCBpbmRleCAyNjIgKi8KKyNkZWZpbmUgRkxBVF9SSU5HM19EUzY0IDB4MDAwMCAg
LyogTlVMTCBzZWxlY3RvciAqLworI2RlZmluZSBGTEFUX1JJTkczX1NTMzIgMHhlMDJiICAvKiBH
RFQgaW5kZXggMjYyICovCisjZGVmaW5lIEZMQVRfUklORzNfU1M2NCAweGUwMmIgIC8qIEdEVCBp
bmRleCAyNjIgKi8KKworI2RlZmluZSBGTEFUX0tFUk5FTF9EUzY0IEZMQVRfUklORzNfRFM2NAor
I2RlZmluZSBGTEFUX0tFUk5FTF9EUzMyIEZMQVRfUklORzNfRFMzMgorI2RlZmluZSBGTEFUX0tF
Uk5FTF9EUyAgIEZMQVRfS0VSTkVMX0RTNjQKKyNkZWZpbmUgRkxBVF9LRVJORUxfQ1M2NCBGTEFU
X1JJTkczX0NTNjQKKyNkZWZpbmUgRkxBVF9LRVJORUxfQ1MzMiBGTEFUX1JJTkczX0NTMzIKKyNk
ZWZpbmUgRkxBVF9LRVJORUxfQ1MgICBGTEFUX0tFUk5FTF9DUzY0CisjZGVmaW5lIEZMQVRfS0VS
TkVMX1NTNjQgRkxBVF9SSU5HM19TUzY0CisjZGVmaW5lIEZMQVRfS0VSTkVMX1NTMzIgRkxBVF9S
SU5HM19TUzMyCisjZGVmaW5lIEZMQVRfS0VSTkVMX1NTICAgRkxBVF9LRVJORUxfU1M2NAorCisj
ZGVmaW5lIEZMQVRfVVNFUl9EUzY0IEZMQVRfUklORzNfRFM2NAorI2RlZmluZSBGTEFUX1VTRVJf
RFMzMiBGTEFUX1JJTkczX0RTMzIKKyNkZWZpbmUgRkxBVF9VU0VSX0RTICAgRkxBVF9VU0VSX0RT
NjQKKyNkZWZpbmUgRkxBVF9VU0VSX0NTNjQgRkxBVF9SSU5HM19DUzY0CisjZGVmaW5lIEZMQVRf
VVNFUl9DUzMyIEZMQVRfUklORzNfQ1MzMgorI2RlZmluZSBGTEFUX1VTRVJfQ1MgICBGTEFUX1VT
RVJfQ1M2NAorI2RlZmluZSBGTEFUX1VTRVJfU1M2NCBGTEFUX1JJTkczX1NTNjQKKyNkZWZpbmUg
RkxBVF9VU0VSX1NTMzIgRkxBVF9SSU5HM19TUzMyCisjZGVmaW5lIEZMQVRfVVNFUl9TUyAgIEZM
QVRfVVNFUl9TUzY0CisKKyNkZWZpbmUgX19IWVBFUlZJU09SX1ZJUlRfU1RBUlQgMHhGRkZGODAw
MDAwMDAwMDAwCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9WSVJUX0VORCAgIDB4RkZGRjg4MDAwMDAw
MDAwMAorI2RlZmluZSBfX01BQ0gyUEhZU19WSVJUX1NUQVJUICAweEZGRkY4MDAwMDAwMDAwMDAK
KyNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9FTkQgICAgMHhGRkZGODA0MDAwMDAwMDAwCisKKyNp
Zm5kZWYgSFlQRVJWSVNPUl9WSVJUX1NUQVJUCisjZGVmaW5lIEhZUEVSVklTT1JfVklSVF9TVEFS
VCB4ZW5fbWtfdWxvbmcoX19IWVBFUlZJU09SX1ZJUlRfU1RBUlQpCisjZGVmaW5lIEhZUEVSVklT
T1JfVklSVF9FTkQgICB4ZW5fbWtfdWxvbmcoX19IWVBFUlZJU09SX1ZJUlRfRU5EKQorI2VuZGlm
CisKKyNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRfU1RBUlQgIHhlbl9ta191bG9uZyhfX01BQ0gyUEhZ
U19WSVJUX1NUQVJUKQorI2RlZmluZSBNQUNIMlBIWVNfVklSVF9FTkQgICAgeGVuX21rX3Vsb25n
KF9fTUFDSDJQSFlTX1ZJUlRfRU5EKQorI2RlZmluZSBNQUNIMlBIWVNfTlJfRU5UUklFUyAgKChN
QUNIMlBIWVNfVklSVF9FTkQtTUFDSDJQSFlTX1ZJUlRfU1RBUlQpPj4zKQorI2lmbmRlZiBtYWNo
aW5lX3RvX3BoeXNfbWFwcGluZworI2RlZmluZSBtYWNoaW5lX3RvX3BoeXNfbWFwcGluZyAoKHVu
c2lnbmVkIGxvbmcgKilIWVBFUlZJU09SX1ZJUlRfU1RBUlQpCisjZW5kaWYKKworLyoKKyAqIGlu
dCBIWVBFUlZJU09SX3NldF9zZWdtZW50X2Jhc2UodW5zaWduZWQgaW50IHdoaWNoLCB1bnNpZ25l
ZCBsb25nIGJhc2UpCisgKiAgQHdoaWNoID09IFNFR0JBU0VfKiAgOyAgQGJhc2UgPT0gNjQtYml0
IGJhc2UgYWRkcmVzcworICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MuCisgKi8KKyNkZWZpbmUgU0VH
QkFTRV9GUyAgICAgICAgICAwCisjZGVmaW5lIFNFR0JBU0VfR1NfVVNFUiAgICAgMQorI2RlZmlu
ZSBTRUdCQVNFX0dTX0tFUk5FTCAgIDIKKyNkZWZpbmUgU0VHQkFTRV9HU19VU0VSX1NFTCAzIC8q
IFNldCB1c2VyICVncyBzcGVjaWZpZWQgaW4gYmFzZVsxNTowXSAqLworCisvKgorICogaW50IEhZ
UEVSVklTT1JfaXJldCh2b2lkKQorICogQWxsIGFyZ3VtZW50cyBhcmUgb24gdGhlIGtlcm5lbCBz
dGFjaywgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQuCisgKiBOZXZlciByZXR1cm5zIGlmIHN1Y2Nl
c3NmdWwuIEN1cnJlbnQga2VybmVsIGNvbnRleHQgaXMgbG9zdC4KKyAqIFRoZSBzYXZlZCBDUyBp
cyBtYXBwZWQgYXMgZm9sbG93czoKKyAqICAgUklORzAgLT4gUklORzMga2VybmVsIG1vZGUuCisg
KiAgIFJJTkcxIC0+IFJJTkczIGtlcm5lbCBtb2RlLgorICogICBSSU5HMiAtPiBSSU5HMyBrZXJu
ZWwgbW9kZS4KKyAqICAgUklORzMgLT4gUklORzMgdXNlciBtb2RlLgorICogSG93ZXZlciBSSU5H
MCBpbmRpY2F0ZXMgdGhhdCB0aGUgZ3Vlc3Qga2VybmVsIHNob3VsZCByZXR1cm4gdG8gaXRlc2Vs
ZgorICogZGlyZWN0bHkgd2l0aAorICogICAgICBvcmIgICAkMywxKjgoJXJzcCkKKyAqICAgICAg
aXJldHEKKyAqIElmIGZsYWdzIGNvbnRhaW5zIFZHQ0ZfaW5fc3lzY2FsbDoKKyAqICAgUmVzdG9y
ZSBSQVgsIFJJUCwgUkZMQUdTLCBSU1AuCisgKiAgIERpc2NhcmQgUjExLCBSQ1gsIENTLCBTUy4K
KyAqIE90aGVyd2lzZToKKyAqICAgUmVzdG9yZSBSQVgsIFIxMSwgUkNYLCBDUzpSSVAsIFJGTEFH
UywgU1M6UlNQLgorICogQWxsIG90aGVyIHJlZ2lzdGVycyBhcmUgc2F2ZWQgb24gaHlwZXJjYWxs
IGVudHJ5IGFuZCByZXN0b3JlZCB0byB1c2VyLgorICovCisvKiBHdWVzdCBleGl0ZWQgaW4gU1lT
Q0FMTCBjb250ZXh0PyBSZXR1cm4gdG8gZ3Vlc3Qgd2l0aCBTWVNSRVQ/ICovCisjZGVmaW5lIF9W
R0NGX2luX3N5c2NhbGwgOAorI2RlZmluZSBWR0NGX2luX3N5c2NhbGwgICgxPDxfVkdDRl9pbl9z
eXNjYWxsKQorI2RlZmluZSBWR0NGX0lOX1NZU0NBTEwgIFZHQ0ZfaW5fc3lzY2FsbAorCisjaWZu
ZGVmIF9fQVNTRU1CTFlfXworCitzdHJ1Y3QgaXJldF9jb250ZXh0IHsKKyAgICAvKiBUb3Agb2Yg
c3RhY2sgKCVyc3AgYXQgcG9pbnQgb2YgaHlwZXJjYWxsKS4gKi8KKyAgICB1aW50NjRfdCByYXgs
IHIxMSwgcmN4LCBmbGFncywgcmlwLCBjcywgcmZsYWdzLCByc3AsIHNzOworICAgIC8qIEJvdHRv
bSBvZiBpcmV0IHN0YWNrIGZyYW1lLiAqLworfTsKKworI2lmIGRlZmluZWQoX19YRU5fXykgfHwg
ZGVmaW5lZChfX1hFTl9UT09MU19fKQorLyogQW5vbnltb3VzIHVuaW9ucyBpbmNsdWRlIGFsbCBw
ZXJtaXNzaWJsZSBuYW1lcyAoZS5nLiwgYWwvYWgvYXgvZWF4L3JheCkuICovCisjZGVmaW5lIF9f
REVDTF9SRUdfTE9ISSh3aGljaCkgdW5pb24geyBcCisgICAgdWludDY0X3QgciAjIyB3aGljaCAj
IyB4OyBcCisgICAgdWludDMyX3QgZSAjIyB3aGljaCAjIyB4OyBcCisgICAgdWludDE2X3Qgd2hp
Y2ggIyMgeDsgXAorICAgIHN0cnVjdCB7IFwKKyAgICAgICAgdWludDhfdCB3aGljaCAjIyBsOyBc
CisgICAgICAgIHVpbnQ4X3Qgd2hpY2ggIyMgaDsgXAorICAgIH07IFwKK30KKyNkZWZpbmUgX19E
RUNMX1JFR19MTzgobmFtZSkgdW5pb24geyBcCisgICAgdWludDY0X3QgciAjIyBuYW1lOyBcCisg
ICAgdWludDMyX3QgZSAjIyBuYW1lOyBcCisgICAgdWludDE2X3QgbmFtZTsgXAorICAgIHVpbnQ4
X3QgbmFtZSAjIyBsOyBcCit9CisjZGVmaW5lIF9fREVDTF9SRUdfTE8xNihuYW1lKSB1bmlvbiB7
IFwKKyAgICB1aW50NjRfdCByICMjIG5hbWU7IFwKKyAgICB1aW50MzJfdCBlICMjIG5hbWU7IFwK
KyAgICB1aW50MTZfdCBuYW1lOyBcCit9CisjZGVmaW5lIF9fREVDTF9SRUdfSEkobnVtKSB1bmlv
biB7IFwKKyAgICB1aW50NjRfdCByICMjIG51bTsgXAorICAgIHVpbnQzMl90IHIgIyMgbnVtICMj
IGQ7IFwKKyAgICB1aW50MTZfdCByICMjIG51bSAjIyB3OyBcCisgICAgdWludDhfdCByICMjIG51
bSAjIyBiOyBcCit9CisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAhZGVmaW5lZChfX1NUUklD
VF9BTlNJX18pCisvKiBBbm9ueW1vdXMgdW5pb24gaW5jbHVkZXMgYm90aCAzMi0gYW5kIDY0LWJp
dCBuYW1lcyAoZS5nLiwgZWF4L3JheCkuICovCisjZGVmaW5lIF9fREVDTF9SRUcobmFtZSkgdW5p
b24geyBcCisgICAgdWludDY0X3QgciAjIyBuYW1lLCBlICMjIG5hbWU7IFwKKyAgICB1aW50MzJf
dCBfZSAjIyBuYW1lOyBcCit9CisjZWxzZQorLyogTm9uLWdjYyBzb3VyY2VzIG11c3QgYWx3YXlz
IHVzZSB0aGUgcHJvcGVyIDY0LWJpdCBuYW1lIChlLmcuLCByYXgpLiAqLworI2RlZmluZSBfX0RF
Q0xfUkVHKG5hbWUpIHVpbnQ2NF90IHIgIyMgbmFtZQorI2VuZGlmCisKKyNpZm5kZWYgX19ERUNM
X1JFR19MT0hJCisjZGVmaW5lIF9fREVDTF9SRUdfTE9ISShuYW1lKSBfX0RFQ0xfUkVHKG5hbWUg
IyMgeCkKKyNkZWZpbmUgX19ERUNMX1JFR19MTzggICAgICAgIF9fREVDTF9SRUcKKyNkZWZpbmUg
X19ERUNMX1JFR19MTzE2ICAgICAgIF9fREVDTF9SRUcKKyNkZWZpbmUgX19ERUNMX1JFR19ISShu
dW0pICAgIHVpbnQ2NF90IHIgIyMgbnVtCisjZW5kaWYKKworc3RydWN0IGNwdV91c2VyX3JlZ3Mg
eworICAgIF9fREVDTF9SRUdfSEkoMTUpOworICAgIF9fREVDTF9SRUdfSEkoMTQpOworICAgIF9f
REVDTF9SRUdfSEkoMTMpOworICAgIF9fREVDTF9SRUdfSEkoMTIpOworICAgIF9fREVDTF9SRUdf
TE84KGJwKTsKKyAgICBfX0RFQ0xfUkVHX0xPSEkoYik7CisgICAgX19ERUNMX1JFR19ISSgxMSk7
CisgICAgX19ERUNMX1JFR19ISSgxMCk7CisgICAgX19ERUNMX1JFR19ISSg5KTsKKyAgICBfX0RF
Q0xfUkVHX0hJKDgpOworICAgIF9fREVDTF9SRUdfTE9ISShhKTsKKyAgICBfX0RFQ0xfUkVHX0xP
SEkoYyk7CisgICAgX19ERUNMX1JFR19MT0hJKGQpOworICAgIF9fREVDTF9SRUdfTE84KHNpKTsK
KyAgICBfX0RFQ0xfUkVHX0xPOChkaSk7CisgICAgdWludDMyX3QgZXJyb3JfY29kZTsgICAgLyog
cHJpdmF0ZSAqLworICAgIHVpbnQzMl90IGVudHJ5X3ZlY3RvcjsgIC8qIHByaXZhdGUgKi8KKyAg
ICBfX0RFQ0xfUkVHX0xPMTYoaXApOworICAgIHVpbnQxNl90IGNzLCBfcGFkMFsxXTsKKyAgICB1
aW50OF90ICBzYXZlZF91cGNhbGxfbWFzazsKKyAgICB1aW50OF90ICBfcGFkMVszXTsKKyAgICBf
X0RFQ0xfUkVHX0xPMTYoZmxhZ3MpOyAvKiByZmxhZ3MuSUYgPT0gIXNhdmVkX3VwY2FsbF9tYXNr
ICovCisgICAgX19ERUNMX1JFR19MTzgoc3ApOworICAgIHVpbnQxNl90IHNzLCBfcGFkMlszXTsK
KyAgICB1aW50MTZfdCBlcywgX3BhZDNbM107CisgICAgdWludDE2X3QgZHMsIF9wYWQ0WzNdOwor
ICAgIHVpbnQxNl90IGZzLCBfcGFkNVszXTsgLyogTm9uLW51bCA9PiB0YWtlcyBwcmVjZWRlbmNl
IG92ZXIgZnNfYmFzZS4gICAgICAqLworICAgIHVpbnQxNl90IGdzLCBfcGFkNlszXTsgLyogTm9u
LW51bCA9PiB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgZ3NfYmFzZV91c2VyLiAqLworfTsKK3R5cGVk
ZWYgc3RydWN0IGNwdV91c2VyX3JlZ3MgY3B1X3VzZXJfcmVnc190OworREVGSU5FX1hFTl9HVUVT
VF9IQU5ETEUoY3B1X3VzZXJfcmVnc190KTsKKworI3VuZGVmIF9fREVDTF9SRUcKKyN1bmRlZiBf
X0RFQ0xfUkVHX0xPSEkKKyN1bmRlZiBfX0RFQ0xfUkVHX0xPOAorI3VuZGVmIF9fREVDTF9SRUdf
TE8xNgorI3VuZGVmIF9fREVDTF9SRUdfSEkKKworI2RlZmluZSB4ZW5fcGZuX3RvX2NyMyhwZm4p
ICgodW5zaWduZWQgbG9uZykocGZuKSA8PCAxMikKKyNkZWZpbmUgeGVuX2NyM190b19wZm4oY3Iz
KSAoKHVuc2lnbmVkIGxvbmcpKGNyMykgPj4gMTIpCisKK3N0cnVjdCBhcmNoX3ZjcHVfaW5mbyB7
CisgICAgdW5zaWduZWQgbG9uZyBjcjI7CisgICAgdW5zaWduZWQgbG9uZyBwYWQ7IC8qIHNpemVv
Zih2Y3B1X2luZm9fdCkgPT0gNjQgKi8KK307Cit0eXBlZGVmIHN0cnVjdCBhcmNoX3ZjcHVfaW5m
byBhcmNoX3ZjcHVfaW5mb190OworCit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgeGVuX2NhbGxiYWNr
X3Q7CisKKyNlbmRpZiAvKiAhX19BU1NFTUJMWV9fICovCisKKyNlbmRpZiAvKiBfX1hFTl9QVUJM
SUNfQVJDSF9YODZfWEVOX1g4Nl82NF9IX18gKi8KKworLyoKKyAqIExvY2FsIHZhcmlhYmxlczoK
KyAqIG1vZGU6IEMKKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKKyAqIGMtYmFzaWMtb2Zmc2V0OiA0
CisgKiB0YWItd2lkdGg6IDQKKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorICogRW5kOgorICov
CmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi94c20vYXJjaC14ODYveGVuLmggYi9pbmNsdWRlL3hl
bi94c20vYXJjaC14ODYveGVuLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZmY5MTgzMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL3hzbS9hcmNoLXg4Ni94ZW4u
aApAQCAtMCwwICsxLDM1NSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogYXJjaC14ODYv
eGVuLmgKKyAqIAorICogR3Vlc3QgT1MgaW50ZXJmYWNlIHRvIHg4NiBYZW4uCisgKiAKKyAqIFBl
cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u
IG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9j
dW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29m
dHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0
aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3Ry
aWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJl
LCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5p
c2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgor
ICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ug
c2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv
bnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMg
SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVE
LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS
SU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQg
SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElB
QklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJ
U0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNP
RlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4K
KyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDQtMjAwNiwgSyBBIEZyYXNlcgorICovCisKKyNpbmNs
dWRlICIuLi94ZW4uaCIKKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfQVJDSF9YODZfWEVOX0hfXwor
I2RlZmluZSBfX1hFTl9QVUJMSUNfQVJDSF9YODZfWEVOX0hfXworCisvKiBTdHJ1Y3R1cmFsIGd1
ZXN0IGhhbmRsZXMgaW50cm9kdWNlZCBpbiAweDAwMDMwMjAxLiAqLworI2lmIF9fWEVOX0lOVEVS
RkFDRV9WRVJTSU9OX18gPj0gMHgwMDAzMDIwMQorI2RlZmluZSBfX19ERUZJTkVfWEVOX0dVRVNU
X0hBTkRMRShuYW1lLCB0eXBlKSBcCisgICAgdHlwZWRlZiBzdHJ1Y3QgeyB0eXBlICpwOyB9IF9f
Z3Vlc3RfaGFuZGxlXyAjIyBuYW1lCisjZWxzZQorI2RlZmluZSBfX19ERUZJTkVfWEVOX0dVRVNU
X0hBTkRMRShuYW1lLCB0eXBlKSBcCisgICAgdHlwZWRlZiB0eXBlICogX19ndWVzdF9oYW5kbGVf
ICMjIG5hbWUKKyNlbmRpZgorCisvKgorICogWEVOX0dVRVNUX0hBTkRMRSByZXByZXNlbnRzIGEg
Z3Vlc3QgcG9pbnRlciwgd2hlbiBwYXNzZWQgYXMgYSBmaWVsZAorICogaW4gYSBzdHJ1Y3QgaW4g
bWVtb3J5LgorICogWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSByZXByZXNlbnQgYSBndWVzdCBwb2lu
dGVyLCB3aGVuIHBhc3NlZCBhcyBhbgorICogaHlwZXJjYWxsIGFyZ3VtZW50LgorICogWEVOX0dV
RVNUX0hBTkRMRV9QQVJBTSBhbmQgWEVOX0dVRVNUX0hBTkRMRSBhcmUgdGhlIHNhbWUgb24gWDg2
IGJ1dAorICogdGhleSBtaWdodCBub3QgYmUgb24gb3RoZXIgYXJjaGl0ZWN0dXJlcy4KKyAqLwor
I2RlZmluZSBfX0RFRklORV9YRU5fR1VFU1RfSEFORExFKG5hbWUsIHR5cGUpIFwKKyAgICBfX19E
RUZJTkVfWEVOX0dVRVNUX0hBTkRMRShuYW1lLCB0eXBlKTsgICBcCisgICAgX19fREVGSU5FX1hF
Tl9HVUVTVF9IQU5ETEUoY29uc3RfIyNuYW1lLCBjb25zdCB0eXBlKQorI2RlZmluZSBERUZJTkVf
WEVOX0dVRVNUX0hBTkRMRShuYW1lKSAgIF9fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUobmFtZSwg
bmFtZSkKKyNkZWZpbmUgX19YRU5fR1VFU1RfSEFORExFKG5hbWUpICAgICAgICBfX2d1ZXN0X2hh
bmRsZV8gIyMgbmFtZQorI2RlZmluZSBYRU5fR1VFU1RfSEFORExFKG5hbWUpICAgICAgICAgIF9f
WEVOX0dVRVNUX0hBTkRMRShuYW1lKQorI2RlZmluZSBYRU5fR1VFU1RfSEFORExFX1BBUkFNKG5h
bWUpICAgIFhFTl9HVUVTVF9IQU5ETEUobmFtZSkKKyNkZWZpbmUgc2V0X3hlbl9ndWVzdF9oYW5k
bGVfcmF3KGhuZCwgdmFsKSAgZG8geyAoaG5kKS5wID0gdmFsOyB9IHdoaWxlICgwKQorI2RlZmlu
ZSBzZXRfeGVuX2d1ZXN0X2hhbmRsZShobmQsIHZhbCkgc2V0X3hlbl9ndWVzdF9oYW5kbGVfcmF3
KGhuZCwgdmFsKQorCisjaWYgZGVmaW5lZChfX2kzODZfXykKKyMgaWZkZWYgX19YRU5fXworX19E
ZUZpTmVfXyBfX0RFQ0xfUkVHX0xPOCh3aGljaCkgdWludDMyX3QgZSAjIyB3aGljaCAjIyB4Citf
X0RlRmlOZV9fIF9fREVDTF9SRUdfTE8xNihuYW1lKSB1bmlvbiB7IHVpbnQzMl90IGUgIyMgbmFt
ZTsgfQorIyBlbmRpZgorI2luY2x1ZGUgInhlbi14ODZfMzIuaCIKKyMgaWZkZWYgX19YRU5fXwor
X19VbkRlRl9fIF9fREVDTF9SRUdfTE84CitfX1VuRGVGX18gX19ERUNMX1JFR19MTzE2CitfX0Rl
RmlOZV9fIF9fREVDTF9SRUdfTE84KHdoaWNoKSBlICMjIHdoaWNoICMjIHgKK19fRGVGaU5lX18g
X19ERUNMX1JFR19MTzE2KG5hbWUpIGUgIyMgbmFtZQorIyBlbmRpZgorI2VsaWYgZGVmaW5lZChf
X3g4Nl82NF9fKQorI2luY2x1ZGUgInhlbi14ODZfNjQuaCIKKyNlbmRpZgorCisjaWZuZGVmIF9f
QVNTRU1CTFlfXwordHlwZWRlZiB1bnNpZ25lZCBsb25nIHhlbl9wZm5fdDsKKyNkZWZpbmUgUFJJ
X3hlbl9wZm4gImx4IgorI2VuZGlmCisKKyNkZWZpbmUgWEVOX0hBVkVfUFZfR1VFU1RfRU5UUlkg
MQorCisjZGVmaW5lIFhFTl9IQVZFX1BWX1VQQ0FMTF9NQVNLIDEKKworLyoKKyAqIGBpbmNvbnRl
bnRzIDIwMCBzZWdkZXNjIFNlZ21lbnQgRGVzY3JpcHRvciBUYWJsZXMKKyAqLworLyoKKyAqIGAg
ZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl9zZXRfZ2R0KGNvbnN0IHhlbl9wZm5f
dCBmcmFtZXNbXSwgdW5zaWduZWQgaW50IGVudHJpZXMpOworICogYAorICovCisvKgorICogQSBu
dW1iZXIgb2YgR0RUIGVudHJpZXMgYXJlIHJlc2VydmVkIGJ5IFhlbi4gVGhlc2UgYXJlIG5vdCBz
aXR1YXRlZCBhdCB0aGUKKyAqIHN0YXJ0IG9mIHRoZSBHRFQgYmVjYXVzZSBzb21lIHN0dXBpZCBP
U2VzIGV4cG9ydCBoYXJkLWNvZGVkIHNlbGVjdG9yIHZhbHVlcworICogaW4gdGhlaXIgQUJJLiBU
aGVzZSBoYXJkLWNvZGVkIHZhbHVlcyBhcmUgYWx3YXlzIG5lYXIgdGhlIHN0YXJ0IG9mIHRoZSBH
RFQsCisgKiBzbyBYZW4gcGxhY2VzIGl0c2VsZiBvdXQgb2YgdGhlIHdheSwgYXQgdGhlIGZhciBl
bmQgb2YgdGhlIEdEVC4KKyAqCisgKiBOQiBUaGUgTERUIGlzIHNldCB1c2luZyB0aGUgTU1VRVhU
X1NFVF9MRFQgb3Agb2YgSFlQRVJWSVNPUl9tbXVleHRfb3AKKyAqLworI2RlZmluZSBGSVJTVF9S
RVNFUlZFRF9HRFRfUEFHRSAgMTQKKyNkZWZpbmUgRklSU1RfUkVTRVJWRURfR0RUX0JZVEUgIChG
SVJTVF9SRVNFUlZFRF9HRFRfUEFHRSAqIDQwOTYpCisjZGVmaW5lIEZJUlNUX1JFU0VSVkVEX0dE
VF9FTlRSWSAoRklSU1RfUkVTRVJWRURfR0RUX0JZVEUgLyA4KQorCisKKy8qCisgKiBgIGVudW0g
bmVnX2Vycm5vdmFsCisgKiBgIEhZUEVSVklTT1JfdXBkYXRlX2Rlc2NyaXB0b3IodTY0IHBhLCB1
NjQgZGVzYyk7CisgKiBgCisgKiBgIEBwYSAgIFRoZSBtYWNoaW5lIHBoeXNpY2FsIGFkZHJlc3Mg
b2YgdGhlIGRlc2NyaXB0b3IgdG8KKyAqIGAgICAgICAgdXBkYXRlLiBNdXN0IGJlIGVpdGhlciBh
IGRlc2NyaXB0b3IgcGFnZSBvciB3cml0YWJsZS4KKyAqIGAgQGRlc2MgVGhlIGRlc2NyaXB0b3Ig
dmFsdWUgdG8gdXBkYXRlLCBpbiB0aGUgc2FtZSBmb3JtYXQgYXMgYQorICogYCAgICAgICBuYXRp
dmUgZGVzY3JpcHRvciB0YWJsZSBlbnRyeS4KKyAqLworCisvKiBNYXhpbXVtIG51bWJlciBvZiB2
aXJ0dWFsIENQVXMgaW4gbGVnYWN5IG11bHRpLXByb2Nlc3NvciBndWVzdHMuICovCisjZGVmaW5l
IFhFTl9MRUdBQ1lfTUFYX1ZDUFVTIDMyCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCisKK3R5cGVk
ZWYgdW5zaWduZWQgbG9uZyB4ZW5fdWxvbmdfdDsKKyNkZWZpbmUgUFJJX3hlbl91bG9uZyAibHgi
CisKKy8qCisgKiBgIGVudW0gbmVnX2Vycm5vdmFsCisgKiBgIEhZUEVSVklTT1Jfc3RhY2tfc3dp
dGNoKHVuc2lnbmVkIGxvbmcgc3MsIHVuc2lnbmVkIGxvbmcgZXNwKTsKKyAqIGAKKyAqIFNldHMg
dGhlIHN0YWNrIHNlZ21lbnQgYW5kIHBvaW50ZXIgZm9yIHRoZSBjdXJyZW50IHZjcHUuCisgKi8K
KworLyoKKyAqIGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl9zZXRfdHJhcF90
YWJsZShjb25zdCBzdHJ1Y3QgdHJhcF9pbmZvIHRyYXBzW10pOworICogYAorICovCisvKgorICog
U2VuZCBhbiBhcnJheSBvZiB0aGVzZSB0byBIWVBFUlZJU09SX3NldF90cmFwX3RhYmxlKCkuCisg
KiBUZXJtaW5hdGUgdGhlIGFycmF5IHdpdGggYSBzZW50aW5lbCBlbnRyeSwgd2l0aCB0cmFwc1td
LmFkZHJlc3M9PTAuCisgKiBUaGUgcHJpdmlsZWdlIGxldmVsIHNwZWNpZmllcyB3aGljaCBtb2Rl
cyBtYXkgZW50ZXIgYSB0cmFwIHZpYSBhIHNvZnR3YXJlCisgKiBpbnRlcnJ1cHQuIE9uIHg4Ni82
NCwgc2luY2UgcmluZ3MgMSBhbmQgMiBhcmUgdW5hdmFpbGFibGUsIHdlIGFsbG9jYXRlCisgKiBw
cml2aWxlZ2UgbGV2ZWxzIGFzIGZvbGxvd3M6CisgKiAgTGV2ZWwgPT0gMDogTm9vbmUgbWF5IGVu
dGVyCisgKiAgTGV2ZWwgPT0gMTogS2VybmVsIG1heSBlbnRlcgorICogIExldmVsID09IDI6IEtl
cm5lbCBtYXkgZW50ZXIKKyAqICBMZXZlbCA9PSAzOiBFdmVyeW9uZSBtYXkgZW50ZXIKKyAqLwor
I2RlZmluZSBUSV9HRVRfRFBMKF90aSkgICAgICAoKF90aSktPmZsYWdzICYgMykKKyNkZWZpbmUg
VElfR0VUX0lGKF90aSkgICAgICAgKChfdGkpLT5mbGFncyAmIDQpCisjZGVmaW5lIFRJX1NFVF9E
UEwoX3RpLF9kcGwpICgoX3RpKS0+ZmxhZ3MgfD0gKF9kcGwpKQorI2RlZmluZSBUSV9TRVRfSUYo
X3RpLF9pZikgICAoKF90aSktPmZsYWdzIHw9ICgoISEoX2lmKSk8PDIpKQorc3RydWN0IHRyYXBf
aW5mbyB7CisgICAgdWludDhfdCAgICAgICB2ZWN0b3I7ICAvKiBleGNlcHRpb24gdmVjdG9yICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICB1aW50OF90ICAgICAgIGZsYWdzOyAg
IC8qIDAtMzogcHJpdmlsZWdlIGxldmVsOyA0OiBjbGVhciBldmVudCBlbmFibGU/ICAqLworICAg
IHVpbnQxNl90ICAgICAgY3M7ICAgICAgLyogY29kZSBzZWxlY3RvciAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICovCisgICAgdW5zaWduZWQgbG9uZyBhZGRyZXNzOyAvKiBjb2RlIG9m
ZnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KK307Cit0eXBlZGVmIHN0
cnVjdCB0cmFwX2luZm8gdHJhcF9pbmZvX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh0cmFw
X2luZm9fdCk7CisKK3R5cGVkZWYgdWludDY0X3QgdHNjX3RpbWVzdGFtcF90OyAvKiBSRFRTQyB0
aW1lc3RhbXAgKi8KKworLyoKKyAqIFRoZSBmb2xsb3dpbmcgaXMgYWxsIENQVSBjb250ZXh0LiBO
b3RlIHRoYXQgdGhlIGZwdV9jdHh0IGJsb2NrIGlzIGZpbGxlZAorICogaW4gYnkgRlhTQVZFIGlm
IHRoZSBDUFUgaGFzIGZlYXR1cmUgRlhTUjsgb3RoZXJ3aXNlIEZTQVZFIGlzIHVzZWQuCisgKgor
ICogQWxzbyBub3RlIHRoYXQgd2hlbiBjYWxsaW5nIERPTUNUTF9zZXR2Y3B1Y29udGV4dCBmb3Ig
SFZNIGd1ZXN0cywgbm90IGFsbAorICogaW5mb3JtYXRpb24gaW4gdGhpcyBzdHJ1Y3R1cmUgaXMg
dXBkYXRlZCwgdGhlIGZpZWxkcyByZWFkIGluY2x1ZGU6IGZwdV9jdHh0CisgKiAoaWYgVkdDVF9J
Mzg3X1ZBTElEIGlzIHNldCksIGZsYWdzLCB1c2VyX3JlZ3MgYW5kIGRlYnVncmVnWypdLgorICoK
KyAqIE5vdGU6IFZDUFVPUF9pbml0aWFsaXNlIGZvciBIVk0gZ3Vlc3RzIGlzIG5vbi1zeW1ldHJp
YyB3aXRoCisgKiBET01DVExfc2V0dmNwdWNvbnRleHQsIGFuZCB1c2VzIHN0cnVjdCB2Y3B1X2h2
bV9jb250ZXh0IGZyb20gaHZtL2h2bV92Y3B1LmgKKyAqLworc3RydWN0IHZjcHVfZ3Vlc3RfY29u
dGV4dCB7CisgICAgLyogRlBVIHJlZ2lzdGVycyBjb21lIGZpcnN0IHNvIHRoZXkgY2FuIGJlIGFs
aWduZWQgZm9yIEZYU0FWRS9GWFJTVE9SLiAqLworICAgIHN0cnVjdCB7IGNoYXIgeFs1MTJdOyB9
IGZwdV9jdHh0OyAgICAgICAvKiBVc2VyLWxldmVsIEZQVSByZWdpc3RlcnMgICAgICovCisjZGVm
aW5lIFZHQ0ZfSTM4N19WQUxJRCAgICAgICAgICAgICAgICAoMTw8MCkKKyNkZWZpbmUgVkdDRl9J
Tl9LRVJORUwgICAgICAgICAgICAgICAgICgxPDwyKQorI2RlZmluZSBfVkdDRl9pMzg3X3ZhbGlk
ICAgICAgICAgICAgICAgMAorI2RlZmluZSBWR0NGX2kzODdfdmFsaWQgICAgICAgICAgICAgICAg
KDE8PF9WR0NGX2kzODdfdmFsaWQpCisjZGVmaW5lIF9WR0NGX2luX2tlcm5lbCAgICAgICAgICAg
ICAgICAyCisjZGVmaW5lIFZHQ0ZfaW5fa2VybmVsICAgICAgICAgICAgICAgICAoMTw8X1ZHQ0Zf
aW5fa2VybmVsKQorI2RlZmluZSBfVkdDRl9mYWlsc2FmZV9kaXNhYmxlc19ldmVudHMgMworI2Rl
ZmluZSBWR0NGX2ZhaWxzYWZlX2Rpc2FibGVzX2V2ZW50cyAgKDE8PF9WR0NGX2ZhaWxzYWZlX2Rp
c2FibGVzX2V2ZW50cykKKyNkZWZpbmUgX1ZHQ0Zfc3lzY2FsbF9kaXNhYmxlc19ldmVudHMgIDQK
KyNkZWZpbmUgVkdDRl9zeXNjYWxsX2Rpc2FibGVzX2V2ZW50cyAgICgxPDxfVkdDRl9zeXNjYWxs
X2Rpc2FibGVzX2V2ZW50cykKKyNkZWZpbmUgX1ZHQ0Zfb25saW5lICAgICAgICAgICAgICAgICAg
IDUKKyNkZWZpbmUgVkdDRl9vbmxpbmUgICAgICAgICAgICAgICAgICAgICgxPDxfVkdDRl9vbmxp
bmUpCisgICAgdW5zaWduZWQgbG9uZyBmbGFnczsgICAgICAgICAgICAgICAgICAgIC8qIFZHQ0Zf
KiBmbGFncyAgICAgICAgICAgICAgICAgKi8KKyAgICBzdHJ1Y3QgY3B1X3VzZXJfcmVncyB1c2Vy
X3JlZ3M7ICAgICAgICAgLyogVXNlci1sZXZlbCBDUFUgcmVnaXN0ZXJzICAgICAqLworICAgIHN0
cnVjdCB0cmFwX2luZm8gdHJhcF9jdHh0WzI1Nl07ICAgICAgICAvKiBWaXJ0dWFsIElEVCAgICAg
ICAgICAgICAgICAgICovCisgICAgdW5zaWduZWQgbG9uZyBsZHRfYmFzZSwgbGR0X2VudHM7ICAg
ICAgIC8qIExEVCAobGluZWFyIGFkZHJlc3MsICMgZW50cykgKi8KKyAgICB1bnNpZ25lZCBsb25n
IGdkdF9mcmFtZXNbMTZdLCBnZHRfZW50czsgLyogR0RUIChtYWNoaW5lIGZyYW1lcywgIyBlbnRz
KSAqLworICAgIHVuc2lnbmVkIGxvbmcga2VybmVsX3NzLCBrZXJuZWxfc3A7ICAgICAvKiBWaXJ0
dWFsIFRTUyAob25seSBTUzEvU1AxKSAgICovCisgICAgLyogTkIuIFVzZXIgcGFnZXRhYmxlIG9u
IHg4Ni82NCBpcyBwbGFjZWQgaW4gY3RybHJlZ1sxXS4gKi8KKyAgICB1bnNpZ25lZCBsb25nIGN0
cmxyZWdbOF07ICAgICAgICAgICAgICAgLyogQ1IwLUNSNyAoY29udHJvbCByZWdpc3RlcnMpICAq
LworICAgIHVuc2lnbmVkIGxvbmcgZGVidWdyZWdbOF07ICAgICAgICAgICAgICAvKiBEQjAtREI3
IChkZWJ1ZyByZWdpc3RlcnMpICAgICovCisjaWZkZWYgX19pMzg2X18KKyAgICB1bnNpZ25lZCBs
b25nIGV2ZW50X2NhbGxiYWNrX2NzOyAgICAgICAgLyogQ1M6RUlQIG9mIGV2ZW50IGNhbGxiYWNr
ICAgICAqLworICAgIHVuc2lnbmVkIGxvbmcgZXZlbnRfY2FsbGJhY2tfZWlwOworICAgIHVuc2ln
bmVkIGxvbmcgZmFpbHNhZmVfY2FsbGJhY2tfY3M7ICAgICAvKiBDUzpFSVAgb2YgZmFpbHNhZmUg
Y2FsbGJhY2sgICovCisgICAgdW5zaWduZWQgbG9uZyBmYWlsc2FmZV9jYWxsYmFja19laXA7Cisj
ZWxzZQorICAgIHVuc2lnbmVkIGxvbmcgZXZlbnRfY2FsbGJhY2tfZWlwOworICAgIHVuc2lnbmVk
IGxvbmcgZmFpbHNhZmVfY2FsbGJhY2tfZWlwOworI2lmZGVmIF9fWEVOX18KKyAgICB1bmlvbiB7
CisgICAgICAgIHVuc2lnbmVkIGxvbmcgc3lzY2FsbF9jYWxsYmFja19laXA7CisgICAgICAgIHN0
cnVjdCB7CisgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZXZlbnRfY2FsbGJhY2tfY3M7ICAgIC8q
IGNvbXBhdCBDUyBvZiBldmVudCBjYiAgICAgKi8KKyAgICAgICAgICAgIHVuc2lnbmVkIGludCBm
YWlsc2FmZV9jYWxsYmFja19jczsgLyogY29tcGF0IENTIG9mIGZhaWxzYWZlIGNiICAqLworICAg
ICAgICB9OworICAgIH07CisjZWxzZQorICAgIHVuc2lnbmVkIGxvbmcgc3lzY2FsbF9jYWxsYmFj
a19laXA7CisjZW5kaWYKKyNlbmRpZgorICAgIHVuc2lnbmVkIGxvbmcgdm1fYXNzaXN0OyAgICAg
ICAgICAgICAgICAvKiBWTUFTU1RfVFlQRV8qIGJpdG1hcCAqLworI2lmZGVmIF9feDg2XzY0X18K
KyAgICAvKiBTZWdtZW50IGJhc2UgYWRkcmVzc2VzLiAqLworICAgIHVpbnQ2NF90ICAgICAgZnNf
YmFzZTsKKyAgICB1aW50NjRfdCAgICAgIGdzX2Jhc2Vfa2VybmVsOworICAgIHVpbnQ2NF90ICAg
ICAgZ3NfYmFzZV91c2VyOworI2VuZGlmCit9OwordHlwZWRlZiBzdHJ1Y3QgdmNwdV9ndWVzdF9j
b250ZXh0IHZjcHVfZ3Vlc3RfY29udGV4dF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUodmNw
dV9ndWVzdF9jb250ZXh0X3QpOworCitzdHJ1Y3QgYXJjaF9zaGFyZWRfaW5mbyB7CisgICAgLyoK
KyAgICAgKiBOdW1iZXIgb2YgdmFsaWQgZW50cmllcyBpbiB0aGUgcDJtIHRhYmxlKHMpIGFuY2hv
cmVkIGF0CisgICAgICogcGZuX3RvX21mbl9mcmFtZV9saXN0X2xpc3QgYW5kL29yIHAybV92YWRk
ci4KKyAgICAgKi8KKyAgICB1bnNpZ25lZCBsb25nIG1heF9wZm47CisgICAgLyoKKyAgICAgKiBG
cmFtZSBjb250YWluaW5nIGxpc3Qgb2YgbWZucyBjb250YWluaW5nIGxpc3Qgb2YgbWZucyBjb250
YWluaW5nIHAybS4KKyAgICAgKiBBIHZhbHVlIG9mIDAgaW5kaWNhdGVzIGl0IGhhcyBub3QgeWV0
IGJlZW4gc2V0IHVwLCB+MCBpbmRpY2F0ZXMgaXQgaGFzCisgICAgICogYmVlbiBzZXQgdG8gaW52
YWxpZCBlLmcuIGR1ZSB0byB0aGUgcDJtIGJlaW5nIHRvbyBsYXJnZSBmb3IgdGhlIDMtbGV2ZWwK
KyAgICAgKiBwMm0gdHJlZS4gSW4gdGhpcyBjYXNlIHRoZSBsaW5lYXIgbWFwcGVyIHAybSBsaXN0
IGFuY2hvcmVkIGF0IHAybV92YWRkcgorICAgICAqIGlzIHRvIGJlIHVzZWQuCisgICAgICovCisg
ICAgeGVuX3Bmbl90ICAgICBwZm5fdG9fbWZuX2ZyYW1lX2xpc3RfbGlzdDsKKyAgICB1bnNpZ25l
ZCBsb25nIG5taV9yZWFzb247CisgICAgLyoKKyAgICAgKiBGb2xsb3dpbmcgdGhyZWUgZmllbGRz
IGFyZSB2YWxpZCBpZiBwMm1fY3IzIGNvbnRhaW5zIGEgdmFsdWUgZGlmZmVyZW50CisgICAgICog
ZnJvbSAwLgorICAgICAqIHAybV9jcjMgaXMgdGhlIHJvb3Qgb2YgdGhlIGFkZHJlc3Mgc3BhY2Ug
d2hlcmUgcDJtX3ZhZGRyIGlzIHZhbGlkLgorICAgICAqIHAybV9jcjMgaXMgaW4gdGhlIHNhbWUg
Zm9ybWF0IGFzIGEgY3IzIHZhbHVlIGluIHRoZSB2Y3B1IHJlZ2lzdGVyIHN0YXRlCisgICAgICog
YW5kIGhvbGRzIHRoZSBmb2xkZWQgbWFjaGluZSBmcmFtZSBudW1iZXIgKHZpYSB4ZW5fcGZuX3Rv
X2NyMykgb2YgYQorICAgICAqIEwzIG9yIEw0IHBhZ2UgdGFibGUuCisgICAgICogcDJtX3ZhZGRy
IGhvbGRzIHRoZSB2aXJ0dWFsIGFkZHJlc3Mgb2YgdGhlIGxpbmVhciBwMm0gbGlzdC4gQWxsIGVu
dHJpZXMKKyAgICAgKiBpbiB0aGUgcmFuZ2UgWzAuLi5tYXhfcGZuWyBhcmUgYWNjZXNzaWJsZSB2
aWEgdGhpcyBwb2ludGVyLgorICAgICAqIHAybV9nZW5lcmF0aW9uIHdpbGwgYmUgaW5jcmVtZW50
ZWQgYnkgdGhlIGd1ZXN0IGJlZm9yZSBhbmQgYWZ0ZXIgZWFjaAorICAgICAqIGNoYW5nZSBvZiB0
aGUgbWFwcGluZ3Mgb2YgdGhlIHAybSBsaXN0LiBwMm1fZ2VuZXJhdGlvbiBzdGFydHMgYXQgMCBh
bmQKKyAgICAgKiBhIHZhbHVlIHdpdGggdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdCBzZXQgaW5k
aWNhdGVzIHRoYXQgYSBtYXBwaW5nCisgICAgICogdXBkYXRlIGlzIGluIHByb2dyZXNzLiBUaGlz
IGFsbG93cyBndWVzdCBleHRlcm5hbCBzb2Z0d2FyZSAoZS5nLiBpbiBEb20wKQorICAgICAqIHRv
IHZlcmlmeSB0aGF0IHJlYWQgbWFwcGluZ3MgYXJlIGNvbnNpc3RlbnQgYW5kIHdoZXRoZXIgdGhl
eSBoYXZlIGNoYW5nZWQKKyAgICAgKiBzaW5jZSB0aGUgbGFzdCBjaGVjay4KKyAgICAgKiBNb2Rp
ZnlpbmcgYSBwMm0gZWxlbWVudCBpbiB0aGUgbGluZWFyIHAybSBsaXN0IGlzIGFsbG93ZWQgdmlh
IGFuIGF0b21pYworICAgICAqIHdyaXRlIG9ubHkuCisgICAgICovCisgICAgdW5zaWduZWQgbG9u
ZyBwMm1fY3IzOyAgICAgICAgIC8qIGNyMyB2YWx1ZSBvZiB0aGUgcDJtIGFkZHJlc3Mgc3BhY2Ug
Ki8KKyAgICB1bnNpZ25lZCBsb25nIHAybV92YWRkcjsgICAgICAgLyogdmlydHVhbCBhZGRyZXNz
IG9mIHRoZSBwMm0gbGlzdCAqLworICAgIHVuc2lnbmVkIGxvbmcgcDJtX2dlbmVyYXRpb247ICAv
KiBnZW5lcmF0aW9uIGNvdW50IG9mIHAybSBtYXBwaW5nICovCisjaWZkZWYgX19pMzg2X18KKyAg
ICAvKiBUaGVyZSdzIG5vIHJvb20gZm9yIHRoaXMgZmllbGQgaW4gdGhlIGdlbmVyaWMgc3RydWN0
dXJlLiAqLworICAgIHVpbnQzMl90IHdjX3NlY19oaTsKKyNlbmRpZgorfTsKK3R5cGVkZWYgc3Ry
dWN0IGFyY2hfc2hhcmVkX2luZm8gYXJjaF9zaGFyZWRfaW5mb190OworCisjaWYgZGVmaW5lZChf
X1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCisvKgorICogc3RydWN0IHhlbl9hcmNo
X2RvbWFpbmNvbmZpZydzIEFCSSBpcyBjb3ZlcmVkIGJ5CisgKiBYRU5fRE9NQ1RMX0lOVEVSRkFD
RV9WRVJTSU9OLgorICovCitzdHJ1Y3QgeGVuX2FyY2hfZG9tYWluY29uZmlnIHsKKyNkZWZpbmUg
X1hFTl9YODZfRU1VX0xBUElDICAgICAgICAgIDAKKyNkZWZpbmUgWEVOX1g4Nl9FTVVfTEFQSUMg
ICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX0xBUElDKQorI2RlZmluZSBfWEVOX1g4Nl9FTVVf
SFBFVCAgICAgICAgICAgMQorI2RlZmluZSBYRU5fWDg2X0VNVV9IUEVUICAgICAgICAgICAgKDFV
PDxfWEVOX1g4Nl9FTVVfSFBFVCkKKyNkZWZpbmUgX1hFTl9YODZfRU1VX1BNICAgICAgICAgICAg
IDIKKyNkZWZpbmUgWEVOX1g4Nl9FTVVfUE0gICAgICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1V
X1BNKQorI2RlZmluZSBfWEVOX1g4Nl9FTVVfUlRDICAgICAgICAgICAgMworI2RlZmluZSBYRU5f
WDg2X0VNVV9SVEMgICAgICAgICAgICAgKDFVPDxfWEVOX1g4Nl9FTVVfUlRDKQorI2RlZmluZSBf
WEVOX1g4Nl9FTVVfSU9BUElDICAgICAgICAgNAorI2RlZmluZSBYRU5fWDg2X0VNVV9JT0FQSUMg
ICAgICAgICAgKDFVPDxfWEVOX1g4Nl9FTVVfSU9BUElDKQorI2RlZmluZSBfWEVOX1g4Nl9FTVVf
UElDICAgICAgICAgICAgNQorI2RlZmluZSBYRU5fWDg2X0VNVV9QSUMgICAgICAgICAgICAgKDFV
PDxfWEVOX1g4Nl9FTVVfUElDKQorI2RlZmluZSBfWEVOX1g4Nl9FTVVfVkdBICAgICAgICAgICAg
NgorI2RlZmluZSBYRU5fWDg2X0VNVV9WR0EgICAgICAgICAgICAgKDFVPDxfWEVOX1g4Nl9FTVVf
VkdBKQorI2RlZmluZSBfWEVOX1g4Nl9FTVVfSU9NTVUgICAgICAgICAgNworI2RlZmluZSBYRU5f
WDg2X0VNVV9JT01NVSAgICAgICAgICAgKDFVPDxfWEVOX1g4Nl9FTVVfSU9NTVUpCisjZGVmaW5l
IF9YRU5fWDg2X0VNVV9QSVQgICAgICAgICAgICA4CisjZGVmaW5lIFhFTl9YODZfRU1VX1BJVCAg
ICAgICAgICAgICAoMVU8PF9YRU5fWDg2X0VNVV9QSVQpCisjZGVmaW5lIF9YRU5fWDg2X0VNVV9V
U0VfUElSUSAgICAgICA5CisjZGVmaW5lIFhFTl9YODZfRU1VX1VTRV9QSVJRICAgICAgICAoMVU8
PF9YRU5fWDg2X0VNVV9VU0VfUElSUSkKKworI2RlZmluZSBYRU5fWDg2X0VNVV9BTEwgICAgICAg
ICAgICAgKFhFTl9YODZfRU1VX0xBUElDIHwgWEVOX1g4Nl9FTVVfSFBFVCB8ICBcCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX1g4Nl9FTVVfUE0gfCBYRU5fWDg2X0VN
VV9SVEMgfCAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5f
WDg2X0VNVV9JT0FQSUMgfCBYRU5fWDg2X0VNVV9QSUMgfCAgXAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFhFTl9YODZfRU1VX1ZHQSB8IFhFTl9YODZfRU1VX0lPTU1VIHwg
ICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX1g4Nl9FTVVfUElU
IHwgWEVOX1g4Nl9FTVVfVVNFX1BJUlEpCisgICAgdWludDMyX3QgZW11bGF0aW9uX2ZsYWdzOwor
fTsKKworLyogTG9jYXRpb24gb2Ygb25saW5lIFZDUFUgYml0bWFwLiAqLworI2RlZmluZSBYRU5f
QUNQSV9DUFVfTUFQICAgICAgICAgICAgIDB4YWYwMAorI2RlZmluZSBYRU5fQUNQSV9DUFVfTUFQ
X0xFTiAgICAgICAgICgoSFZNX01BWF9WQ1BVUyArIDcpIC8gOCkKKworLyogR1BFMCBiaXQgc2V0
IGR1cmluZyBDUFUgaG90cGx1ZyAqLworI2RlZmluZSBYRU5fQUNQSV9HUEUwX0NQVUhQX0JJVCAg
ICAgIDIKKyNlbmRpZgorCisjZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAqLworCisvKgorICogYCBl
bnVtIG5lZ19lcnJub3ZhbAorICogYCBIWVBFUlZJU09SX2ZwdV90YXNrc3dpdGNoKGludCBzZXQp
OworICogYAorICogU2V0cyAoaWYgc2V0IT0wKSBvciBjbGVhcnMgKGlmIHNldD09MCkgQ1IwLlRT
LgorICovCisKKy8qCisgKiBgIGVudW0gbmVnX2Vycm5vdmFsCisgKiBgIEhZUEVSVklTT1Jfc2V0
X2RlYnVncmVnKGludCByZWdubywgdW5zaWduZWQgbG9uZyB2YWx1ZSk7CisgKgorICogYCB1bnNp
Z25lZCBsb25nCisgKiBgIEhZUEVSVklTT1JfZ2V0X2RlYnVncmVnKGludCByZWdubyk7CisgKiBG
b3IgMDw9cmVnPD03LCByZXR1cm5zIHRoZSBkZWJ1ZyByZWdpc3RlciB2YWx1ZS4KKyAqIEZvciBv
dGhlciB2YWx1ZXMgb2YgcmVnLCByZXR1cm5zICgodW5zaWduZWQgbG9uZyktRUlOVkFMKS4KKyAq
IChVbmZvcnR1bmF0ZWx5LCB0aGlzIGludGVyZmFjZSBpcyBkZWZlY3RpdmUuKQorICovCisKKy8q
CisgKiBQcmVmaXggZm9yY2VzIGVtdWxhdGlvbiBvZiBzb21lIG5vbi10cmFwcGluZyBpbnN0cnVj
dGlvbnMuCisgKiBDdXJyZW50bHkgb25seSBDUFVJRC4KKyAqLworI2lmZGVmIF9fQVNTRU1CTFlf
XworI2RlZmluZSBYRU5fRU1VTEFURV9QUkVGSVggLmJ5dGUgMHgwZiwweDBiLDB4NzgsMHg2NSww
eDZlIDsKKyNkZWZpbmUgWEVOX0NQVUlEICAgICAgICAgIFhFTl9FTVVMQVRFX1BSRUZJWCBjcHVp
ZAorI2Vsc2UKKyNkZWZpbmUgWEVOX0VNVUxBVEVfUFJFRklYICIuYnl0ZSAweDBmLDB4MGIsMHg3
OCwweDY1LDB4NmUgOyAiCisjZGVmaW5lIFhFTl9DUFVJRCAgICAgICAgICBYRU5fRU1VTEFURV9Q
UkVGSVggImNwdWlkIgorI2VuZGlmCisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfQVJDSF9YODZf
WEVOX0hfXyAqLworCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1m
aWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAor
ICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1
ZGUveGVuL3hzbS9hcmNoLXg4Nl8zMi5oIGIvaW5jbHVkZS94ZW4veHNtL2FyY2gteDg2XzMyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDU4NDJiMgotLS0gL2Rldi9udWxs
CisrKyBiL2luY2x1ZGUveGVuL3hzbS9hcmNoLXg4Nl8zMi5oCkBAIC0wLDAgKzEsMjcgQEAKKy8q
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyAqIGFyY2gteDg2XzMyLmgKKyAqIAorICogR3Vlc3QgT1Mg
aW50ZXJmYWNlIHRvIHg4NiAzMi1iaXQgWGVuLgorICogCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVi
eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5
CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMg
KHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVz
dHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8g
dXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNl
LCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBw
ZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1
YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5
cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVk
IGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2Fy
ZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJS
QU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO
T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxF
IEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBG
Uk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNF
IE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQ29weXJpZ2h0
IChjKSAyMDA0LTIwMDYsIEsgQSBGcmFzZXIKKyAqLworCisjaW5jbHVkZSAiYXJjaC14ODYveGVu
LmgiCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi94c20vYXJjaC14ODZfNjQuaCBiL2luY2x1ZGUv
eGVuL3hzbS9hcmNoLXg4Nl82NC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjQwOTgwNWYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi94c20vYXJjaC14ODZfNjQu
aApAQCAtMCwwICsxLDQzIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBhcmNoLXg4Nl82
NC5oCisgKiAKKyAqIEd1ZXN0IE9TIGludGVyZmFjZSB0byB4ODYgNjQtYml0IFhlbi4KKyAqIAor
ICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBw
ZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRl
ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFsIGluIHRo
ZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0
aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwg
ZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29m
dHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICog
ZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoK
KyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5v
dGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBw
b3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVE
ICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElN
UExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5P
TklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENPUFlS
SUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisg
KiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9U
SEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBU
SEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRX
QVJFLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAwNC0yMDA2LCBLIEEgRnJhc2VyCisgKi8KKwor
I2luY2x1ZGUgImFyY2gteDg2L3hlbi5oIgorCisvKgorICogYCBlbnVtIG5lZ19lcnJub3ZhbAor
ICogYCBIWVBFUlZJU09SX3NldF9jYWxsYmFja3ModW5zaWduZWQgbG9uZyBldmVudF9zZWxlY3Rv
ciwKKyAqIGAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZXZlbnRfYWRk
cmVzcywKKyAqIGAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZmFpbHNh
ZmVfc2VsZWN0b3IsCisgKiBgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25n
IGZhaWxzYWZlX2FkZHJlc3MpOworICogYAorICogUmVnaXN0ZXIgZm9yIGNhbGxiYWNrcyBvbiBl
dmVudHMuICBXaGVuIGFuIGV2ZW50IChmcm9tIGFuIGV2ZW50CisgKiBjaGFubmVsKSBvY2N1cnMs
IGV2ZW50X2FkZHJlc3MgaXMgdXNlZCBhcyB0aGUgdmFsdWUgb2YgZWlwLgorICoKKyAqIEEgc2lt
aWxhciBjYWxsYmFjayBvY2N1cnMgaWYgdGhlIHNlZ21lbnQgc2VsZWN0b3JzIGFyZSBpbnZhbGlk
LgorICogZmFpbHNhZmVfYWRkcmVzcyBpcyB1c2VkIGFzIHRoZSB2YWx1ZSBvZiBlaXAuCisgKgor
ICogT24geDg2XzY0LCBldmVudF9zZWxlY3RvciBhbmQgZmFpbHNhZmVfc2VsZWN0b3IgYXJlIGln
bm9yZWQgKD8/PykuCisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3hzbS9jYWxsYmFjay5o
IGIvaW5jbHVkZS94ZW4veHNtL2NhbGxiYWNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uOGY5Mzc4OAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL3hzbS9jYWxs
YmFjay5oCkBAIC0wLDAgKzEsMTIxIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBjYWxs
YmFjay5oCisgKgorICogUmVnaXN0ZXIgZ3Vlc3QgT1MgY2FsbGJhY2tzIHdpdGggWGVuLgorICoK
KyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg
cGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0
ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0
aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRh
dGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs
IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNv
ZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAq
IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6
CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu
b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg
cG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURF
RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJ
TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBO
T05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZ
UklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgor
ICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBP
VEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEgg
VEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZU
V0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDYsIElhbiBDYW1wYmVsbAorICovCisKKyNp
Zm5kZWYgX19YRU5fUFVCTElDX0NBTExCQUNLX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfQ0FM
TEJBQ0tfSF9fCisKKyNpbmNsdWRlICJ4ZW4uaCIKKworLyoKKyAqIFByb3RvdHlwZSBmb3IgdGhp
cyBoeXBlcmNhbGwgaXM6CisgKiAgIGxvbmcgY2FsbGJhY2tfb3AoaW50IGNtZCwgdm9pZCAqZXh0
cmFfYXJncykKKyAqIEBjbWQgICAgICAgID09IENBTExCQUNLT1BfPz8/IChjYWxsYmFjayBvcGVy
YXRpb24pLgorICogQGV4dHJhX2FyZ3MgPT0gT3BlcmF0aW9uLXNwZWNpZmljIGV4dHJhIGFyZ3Vt
ZW50cyAoTlVMTCBpZiBub25lKS4KKyAqLworCisvKiB4ODY6IENhbGxiYWNrIGZvciBldmVudCBk
ZWxpdmVyeS4gKi8KKyNkZWZpbmUgQ0FMTEJBQ0tUWVBFX2V2ZW50ICAgICAgICAgICAgICAgICAw
CisKKy8qIHg4NjogRmFpbHNhZmUgY2FsbGJhY2sgd2hlbiBndWVzdCBzdGF0ZSBjYW5ub3QgYmUg
cmVzdG9yZWQgYnkgWGVuLiAqLworI2RlZmluZSBDQUxMQkFDS1RZUEVfZmFpbHNhZmUgICAgICAg
ICAgICAgIDEKKworLyogeDg2LzY0IGh5cGVydmlzb3I6IFN5c2NhbGwgYnkgNjQtYml0IGd1ZXN0
IGFwcCAoJzY0LW9uLTY0LW9uLTY0JykuICovCisjZGVmaW5lIENBTExCQUNLVFlQRV9zeXNjYWxs
ICAgICAgICAgICAgICAgMgorCisvKgorICogeDg2LzMyIGh5cGVydmlzb3I6IE9ubHkgYXZhaWxh
YmxlIG9uIHg4Ni8zMiB3aGVuIHN1cGVydmlzb3JfbW9kZV9rZXJuZWwKKyAqICAgICBmZWF0dXJl
IGlzIGVuYWJsZWQuIERvIG5vdCB1c2UgdGhpcyBjYWxsYmFjayB0eXBlIGluIG5ldyBjb2RlLgor
ICovCisjZGVmaW5lIENBTExCQUNLVFlQRV9zeXNlbnRlcl9kZXByZWNhdGVkICAgMworCisvKiB4
ODY6IENhbGxiYWNrIGZvciBOTUkgZGVsaXZlcnkuICovCisjZGVmaW5lIENBTExCQUNLVFlQRV9u
bWkgICAgICAgICAgICAgICAgICAgNAorCisvKgorICogeDg2OiBzeXNlbnRlciBpcyBvbmx5IGF2
YWlsYWJsZSBhcyBmb2xsb3dzOgorICogLSAzMi1iaXQgaHlwZXJ2aXNvcjogd2l0aCB0aGUgc3Vw
ZXJ2aXNvcl9tb2RlX2tlcm5lbCBmZWF0dXJlIGVuYWJsZWQKKyAqIC0gNjQtYml0IGh5cGVydmlz
b3I6IDMyLWJpdCBndWVzdCBhcHBsaWNhdGlvbnMgb24gSW50ZWwgQ1BVcworICogICAgICAgICAg
ICAgICAgICAgICAgKCczMi1vbi0zMi1vbi02NCcsICczMi1vbi02NC1vbi02NCcpCisgKiAgICAg
ICAgICAgICAgICAgICAgICBbbmIuIGFsc28gNjQtYml0IGd1ZXN0IGFwcGxpY2F0aW9ucyBvbiBJ
bnRlbCBDUFVzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICgnNjQtb24tNjQtb24tNjQn
KSwgYnV0IHN5c2NhbGwgaXMgcHJlZmVycmVkXQorICovCisjZGVmaW5lIENBTExCQUNLVFlQRV9z
eXNlbnRlciAgICAgICAgICAgICAgNQorCisvKgorICogeDg2LzY0IGh5cGVydmlzb3I6IFN5c2Nh
bGwgYnkgMzItYml0IGd1ZXN0IGFwcCBvbiBBTUQgQ1BVcworICogICAgICAgICAgICAgICAgICAg
ICgnMzItb24tMzItb24tNjQnLCAnMzItb24tNjQtb24tNjQnKQorICovCisjZGVmaW5lIENBTExC
QUNLVFlQRV9zeXNjYWxsMzIgICAgICAgICAgICAgNworCisvKgorICogRGlzYWJsZSBldmVudCBk
ZWxpdmVyIGR1cmluZyBjYWxsYmFjaz8gVGhpcyBmbGFnIGlzIGlnbm9yZWQgZm9yIGV2ZW50IGFu
ZAorICogTk1JIGNhbGxiYWNrczogZXZlbnQgZGVsaXZlcnkgaXMgdW5jb25kaXRpb25hbGx5IGRp
c2FibGVkLgorICovCisjZGVmaW5lIF9DQUxMQkFDS0ZfbWFza19ldmVudHMgICAgICAgICAgICAg
MAorI2RlZmluZSBDQUxMQkFDS0ZfbWFza19ldmVudHMgICAgICAgICAgICAgICgxVSA8PCBfQ0FM
TEJBQ0tGX21hc2tfZXZlbnRzKQorCisvKgorICogUmVnaXN0ZXIgYSBjYWxsYmFjay4KKyAqLwor
I2RlZmluZSBDQUxMQkFDS09QX3JlZ2lzdGVyICAgICAgICAgICAgICAgIDAKK3N0cnVjdCBjYWxs
YmFja19yZWdpc3RlciB7CisgICAgdWludDE2X3QgdHlwZTsKKyAgICB1aW50MTZfdCBmbGFnczsK
KyAgICB4ZW5fY2FsbGJhY2tfdCBhZGRyZXNzOworfTsKK3R5cGVkZWYgc3RydWN0IGNhbGxiYWNr
X3JlZ2lzdGVyIGNhbGxiYWNrX3JlZ2lzdGVyX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShj
YWxsYmFja19yZWdpc3Rlcl90KTsKKworLyoKKyAqIFVucmVnaXN0ZXIgYSBjYWxsYmFjay4KKyAq
CisgKiBOb3QgYWxsIGNhbGxiYWNrcyBjYW4gYmUgdW5yZWdpc3RlcmVkLiAtRUlOVkFMIHdpbGwg
YmUgcmV0dXJuZWQgaWYKKyAqIHlvdSBhdHRlbXB0IHRvIHVucmVnaXN0ZXIgc3VjaCBhIGNhbGxi
YWNrLgorICovCisjZGVmaW5lIENBTExCQUNLT1BfdW5yZWdpc3RlciAgICAgICAgICAgICAgMQor
c3RydWN0IGNhbGxiYWNrX3VucmVnaXN0ZXIgeworICAgIHVpbnQxNl90IHR5cGU7CisgICAgdWlu
dDE2X3QgX3VudXNlZDsKK307Cit0eXBlZGVmIHN0cnVjdCBjYWxsYmFja191bnJlZ2lzdGVyIGNh
bGxiYWNrX3VucmVnaXN0ZXJfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKGNhbGxiYWNrX3Vu
cmVnaXN0ZXJfdCk7CisKKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDAzMDIw
NworI3VuZGVmIENBTExCQUNLVFlQRV9zeXNlbnRlcgorI2RlZmluZSBDQUxMQkFDS1RZUEVfc3lz
ZW50ZXIgQ0FMTEJBQ0tUWVBFX3N5c2VudGVyX2RlcHJlY2F0ZWQKKyNlbmRpZgorCisjZW5kaWYg
LyogX19YRU5fUFVCTElDX0NBTExCQUNLX0hfXyAqLworCisvKgorICogTG9jYWwgdmFyaWFibGVz
OgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6
IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6Cisg
Ki8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3hzbS9kb20wX29wcy5oIGIvaW5jbHVkZS94ZW4v
eHNtL2RvbTBfb3BzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzhkNzY0
ZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL3hzbS9kb20wX29wcy5oCkBAIC0wLDAg
KzEsMTIwIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBkb20wX29wcy5oCisgKiAKKyAq
IFByb2Nlc3MgY29tbWFuZCByZXF1ZXN0cyBmcm9tIGRvbWFpbi0wIGd1ZXN0IE9TLgorICogCisg
KiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBl
cnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVk
IGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhl
IFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRp
b24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBk
aXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0
d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBm
dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgor
ICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90
aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBv
cnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg
IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1Q
TElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9O
SU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJ
R0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAq
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI
RVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRI
RSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdB
UkUuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDMsIEIgRHJhZ292aWMKKyAqIENvcHly
aWdodCAoYykgMjAwMi0yMDA2LCBLIEZyYXNlcgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElD
X0RPTTBfT1BTX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfRE9NMF9PUFNfSF9fCisKKyNpbmNs
dWRlICJ4ZW4uaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS5oIgorCisjaWYgX19YRU5fSU5URVJGQUNF
X1ZFUlNJT05fXyA+PSAweDAwMDMwMjA0CisjZXJyb3IgImRvbTBfb3BzLmggaXMgYSBjb21wYXRp
YmlsaXR5IGludGVyZmFjZSBvbmx5IgorI2VuZGlmCisKKyNkZWZpbmUgRE9NMF9JTlRFUkZBQ0Vf
VkVSU0lPTiBYRU5QRl9JTlRFUkZBQ0VfVkVSU0lPTgorCisjZGVmaW5lIERPTTBfU0VUVElNRSAg
ICAgICAgICBYRU5QRl9zZXR0aW1lCisjZGVmaW5lIGRvbTBfc2V0dGltZSAgICAgICAgICB4ZW5w
Zl9zZXR0aW1lCisjZGVmaW5lIGRvbTBfc2V0dGltZV90ICAgICAgICB4ZW5wZl9zZXR0aW1lX3QK
KworI2RlZmluZSBET00wX0FERF9NRU1UWVBFICAgICAgWEVOUEZfYWRkX21lbXR5cGUKKyNkZWZp
bmUgZG9tMF9hZGRfbWVtdHlwZSAgICAgIHhlbnBmX2FkZF9tZW10eXBlCisjZGVmaW5lIGRvbTBf
YWRkX21lbXR5cGVfdCAgICB4ZW5wZl9hZGRfbWVtdHlwZV90CisKKyNkZWZpbmUgRE9NMF9ERUxf
TUVNVFlQRSAgICAgIFhFTlBGX2RlbF9tZW10eXBlCisjZGVmaW5lIGRvbTBfZGVsX21lbXR5cGUg
ICAgICB4ZW5wZl9kZWxfbWVtdHlwZQorI2RlZmluZSBkb20wX2RlbF9tZW10eXBlX3QgICAgeGVu
cGZfZGVsX21lbXR5cGVfdAorCisjZGVmaW5lIERPTTBfUkVBRF9NRU1UWVBFICAgICBYRU5QRl9y
ZWFkX21lbXR5cGUKKyNkZWZpbmUgZG9tMF9yZWFkX21lbXR5cGUgICAgIHhlbnBmX3JlYWRfbWVt
dHlwZQorI2RlZmluZSBkb20wX3JlYWRfbWVtdHlwZV90ICAgeGVucGZfcmVhZF9tZW10eXBlX3QK
KworI2RlZmluZSBET00wX01JQ1JPQ09ERSAgICAgICAgWEVOUEZfbWljcm9jb2RlX3VwZGF0ZQor
I2RlZmluZSBkb20wX21pY3JvY29kZSAgICAgICAgeGVucGZfbWljcm9jb2RlX3VwZGF0ZQorI2Rl
ZmluZSBkb20wX21pY3JvY29kZV90ICAgICAgeGVucGZfbWljcm9jb2RlX3VwZGF0ZV90CisKKyNk
ZWZpbmUgRE9NMF9QTEFURk9STV9RVUlSSyAgIFhFTlBGX3BsYXRmb3JtX3F1aXJrCisjZGVmaW5l
IGRvbTBfcGxhdGZvcm1fcXVpcmsgICB4ZW5wZl9wbGF0Zm9ybV9xdWlyaworI2RlZmluZSBkb20w
X3BsYXRmb3JtX3F1aXJrX3QgeGVucGZfcGxhdGZvcm1fcXVpcmtfdAorCit0eXBlZGVmIHVpbnQ2
NF90IGNwdW1hcF90OworCisvKiBVbnN1cHBvcnRlZCBsZWdhY3kgb3BlcmF0aW9uIC0tIGRlZmlu
ZWQgZm9yIEFQSSBjb21wYXRpYmlsaXR5LiAqLworI2RlZmluZSBET00wX01TUiAgICAgICAgICAg
ICAgICAgMTUKK3N0cnVjdCBkb20wX21zciB7CisgICAgLyogSU4gdmFyaWFibGVzLiAqLworICAg
IHVpbnQzMl90IHdyaXRlOworICAgIGNwdW1hcF90IGNwdV9tYXNrOworICAgIHVpbnQzMl90IG1z
cjsKKyAgICB1aW50MzJfdCBpbjE7CisgICAgdWludDMyX3QgaW4yOworICAgIC8qIE9VVCB2YXJp
YWJsZXMuICovCisgICAgdWludDMyX3Qgb3V0MTsKKyAgICB1aW50MzJfdCBvdXQyOworfTsKK3R5
cGVkZWYgc3RydWN0IGRvbTBfbXNyIGRvbTBfbXNyX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRM
RShkb20wX21zcl90KTsKKworLyogVW5zdXBwb3J0ZWQgbGVnYWN5IG9wZXJhdGlvbiAtLSBkZWZp
bmVkIGZvciBBUEkgY29tcGF0aWJpbGl0eS4gKi8KKyNkZWZpbmUgRE9NMF9QSFlTSUNBTF9NRU1P
UllfTUFQIDQwCitzdHJ1Y3QgZG9tMF9tZW1vcnlfbWFwX2VudHJ5IHsKKyAgICB1aW50NjRfdCBz
dGFydCwgZW5kOworICAgIHVpbnQzMl90IGZsYWdzOyAvKiByZXNlcnZlZCAqLworICAgIHVpbnQ4
X3QgIGlzX3JhbTsKK307Cit0eXBlZGVmIHN0cnVjdCBkb20wX21lbW9yeV9tYXBfZW50cnkgZG9t
MF9tZW1vcnlfbWFwX2VudHJ5X3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShkb20wX21lbW9y
eV9tYXBfZW50cnlfdCk7CisKK3N0cnVjdCBkb20wX29wIHsKKyAgICB1aW50MzJfdCBjbWQ7Cisg
ICAgdWludDMyX3QgaW50ZXJmYWNlX3ZlcnNpb247IC8qIERPTTBfSU5URVJGQUNFX1ZFUlNJT04g
Ki8KKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCBkb20wX21zciAgICAgICAgICAgICAgIG1z
cjsKKyAgICAgICAgc3RydWN0IGRvbTBfc2V0dGltZSAgICAgICAgICAgc2V0dGltZTsKKyAgICAg
ICAgc3RydWN0IGRvbTBfYWRkX21lbXR5cGUgICAgICAgYWRkX21lbXR5cGU7CisgICAgICAgIHN0
cnVjdCBkb20wX2RlbF9tZW10eXBlICAgICAgIGRlbF9tZW10eXBlOworICAgICAgICBzdHJ1Y3Qg
ZG9tMF9yZWFkX21lbXR5cGUgICAgICByZWFkX21lbXR5cGU7CisgICAgICAgIHN0cnVjdCBkb20w
X21pY3JvY29kZSAgICAgICAgIG1pY3JvY29kZTsKKyAgICAgICAgc3RydWN0IGRvbTBfcGxhdGZv
cm1fcXVpcmsgICAgcGxhdGZvcm1fcXVpcms7CisgICAgICAgIHN0cnVjdCBkb20wX21lbW9yeV9t
YXBfZW50cnkgIHBoeXNpY2FsX21lbW9yeV9tYXA7CisgICAgICAgIHVpbnQ4X3QgICAgICAgICAg
ICAgICAgICAgICAgIHBhZFsxMjhdOworICAgIH0gdTsKK307Cit0eXBlZGVmIHN0cnVjdCBkb20w
X29wIGRvbTBfb3BfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKGRvbTBfb3BfdCk7CisKKyNl
bmRpZiAvKiBfX1hFTl9QVUJMSUNfRE9NMF9PUFNfSF9fICovCisKKy8qCisgKiBMb2NhbCB2YXJp
YWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9m
ZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVu
ZDoKKyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4veHNtL2RvbWN0bC5oIGIvaW5jbHVkZS94
ZW4veHNtL2RvbWN0bC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwMDI3
YWIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi94c20vZG9tY3RsLmgKQEAgLTAsMCAr
MSwxMjY3IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBkb21jdGwuaAorICogCisgKiBE
b21haW4gbWFuYWdlbWVudCBvcGVyYXRpb25zLiBGb3IgdXNlIGJ5IG5vZGUgY29udHJvbCBzdGFj
ay4KKyAqIAorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us
IHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQg
YXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiBk
ZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91
dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwg
cHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGllcyBv
ZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2Fy
ZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJt
aXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJz
dGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElT
IFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Mg
T1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRIT1JT
IE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9S
IE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBU
T1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJ
T04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4g
VEhFIFNPRlRXQVJFLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAwMi0yMDAzLCBCIERyYWdvdmlj
CisgKiBDb3B5cmlnaHQgKGMpIDIwMDItMjAwNiwgSyBGcmFzZXIKKyAqLworCisjaWZuZGVmIF9f
WEVOX1BVQkxJQ19ET01DVExfSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19ET01DVExfSF9fCisK
KyNpZiAhZGVmaW5lZChfX1hFTl9fKSAmJiAhZGVmaW5lZChfX1hFTl9UT09MU19fKQorI2Vycm9y
ICJkb21jdGwgb3BlcmF0aW9ucyBhcmUgaW50ZW5kZWQgZm9yIHVzZSBieSBub2RlIGNvbnRyb2wg
dG9vbHMgb25seSIKKyNlbmRpZgorCisjaW5jbHVkZSAieGVuLmgiCisjaW5jbHVkZSAiZXZlbnRf
Y2hhbm5lbC5oIgorI2luY2x1ZGUgImdyYW50X3RhYmxlLmgiCisjaW5jbHVkZSAiaHZtL3NhdmUu
aCIKKyNpbmNsdWRlICJtZW1vcnkuaCIKKworI2RlZmluZSBYRU5fRE9NQ1RMX0lOVEVSRkFDRV9W
RVJTSU9OIDB4MDAwMDAwMGUKKworLyoKKyAqIE5CLiB4ZW5fZG9tY3RsLmRvbWFpbiBpcyBhbiBJ
Ti9PVVQgcGFyYW1ldGVyIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAqIElmIGl0IGlzIHNwZWNpZmll
ZCBhcyB6ZXJvLCBhbiBpZCBpcyBhdXRvLWFsbG9jYXRlZCBhbmQgcmV0dXJuZWQuCisgKi8KKy8q
IFhFTl9ET01DVExfY3JlYXRlZG9tYWluICovCitzdHJ1Y3QgeGVuX2RvbWN0bF9jcmVhdGVkb21h
aW4geworICAgIC8qIElOIHBhcmFtZXRlcnMgKi8KKyAgICB1aW50MzJfdCBzc2lkcmVmOworICAg
IHhlbl9kb21haW5faGFuZGxlX3QgaGFuZGxlOworIC8qIElzIHRoaXMgYW4gSFZNIGd1ZXN0IChh
cyBvcHBvc2VkIHRvIGEgUFZIIG9yIFBWIGd1ZXN0KT8gKi8KKyNkZWZpbmUgX1hFTl9ET01DVExf
Q0RGX2h2bV9ndWVzdCAgICAgMAorI2RlZmluZSBYRU5fRE9NQ1RMX0NERl9odm1fZ3Vlc3QgICAg
ICAoMVU8PF9YRU5fRE9NQ1RMX0NERl9odm1fZ3Vlc3QpCisgLyogVXNlIGhhcmR3YXJlLWFzc2lz
dGVkIHBhZ2luZyBpZiBhdmFpbGFibGU/ICovCisjZGVmaW5lIF9YRU5fRE9NQ1RMX0NERl9oYXAg
ICAgICAgICAgIDEKKyNkZWZpbmUgWEVOX0RPTUNUTF9DREZfaGFwICAgICAgICAgICAgKDFVPDxf
WEVOX0RPTUNUTF9DREZfaGFwKQorIC8qIFNob3VsZCBkb21haW4gbWVtb3J5IGludGVncml0eSBi
ZSB2ZXJpZmVkIGJ5IHRib290IGR1cmluZyBTeD8gKi8KKyNkZWZpbmUgX1hFTl9ET01DVExfQ0RG
X3MzX2ludGVncml0eSAgMgorI2RlZmluZSBYRU5fRE9NQ1RMX0NERl9zM19pbnRlZ3JpdHkgICAo
MVU8PF9YRU5fRE9NQ1RMX0NERl9zM19pbnRlZ3JpdHkpCisgLyogRGlzYWJsZSBvdXQtb2Ytc3lu
YyBzaGFkb3cgcGFnZSB0YWJsZXM/ICovCisjZGVmaW5lIF9YRU5fRE9NQ1RMX0NERl9vb3Nfb2Zm
ICAgICAgIDMKKyNkZWZpbmUgWEVOX0RPTUNUTF9DREZfb29zX29mZiAgICAgICAgKDFVPDxfWEVO
X0RPTUNUTF9DREZfb29zX29mZikKKyAvKiBJcyB0aGlzIGEgeGVuc3RvcmUgZG9tYWluPyAqLwor
I2RlZmluZSBfWEVOX0RPTUNUTF9DREZfeHNfZG9tYWluICAgICA0CisjZGVmaW5lIFhFTl9ET01D
VExfQ0RGX3hzX2RvbWFpbiAgICAgICgxVTw8X1hFTl9ET01DVExfQ0RGX3hzX2RvbWFpbikKKyAg
ICB1aW50MzJfdCBmbGFnczsKKyAgICBzdHJ1Y3QgeGVuX2FyY2hfZG9tYWluY29uZmlnIGNvbmZp
ZzsKK307CisKKy8qIFhFTl9ET01DVExfZ2V0ZG9tYWluaW5mbyAqLworc3RydWN0IHhlbl9kb21j
dGxfZ2V0ZG9tYWluaW5mbyB7CisgICAgLyogT1VUIHZhcmlhYmxlcy4gKi8KKyAgICBkb21pZF90
ICBkb21haW47ICAgICAgICAgICAgICAvKiBBbHNvIGVjaG9lZCBpbiBkb21jdGwuZG9tYWluICov
CisgLyogRG9tYWluIGlzIHNjaGVkdWxlZCB0byBkaWUuICovCisjZGVmaW5lIF9YRU5fRE9NSU5G
X2R5aW5nICAgICAwCisjZGVmaW5lIFhFTl9ET01JTkZfZHlpbmcgICAgICAoMVU8PF9YRU5fRE9N
SU5GX2R5aW5nKQorIC8qIERvbWFpbiBpcyBhbiBIVk0gZ3Vlc3QgKGFzIG9wcG9zZWQgdG8gYSBQ
ViBndWVzdCkuICovCisjZGVmaW5lIF9YRU5fRE9NSU5GX2h2bV9ndWVzdCAxCisjZGVmaW5lIFhF
Tl9ET01JTkZfaHZtX2d1ZXN0ICAoMVU8PF9YRU5fRE9NSU5GX2h2bV9ndWVzdCkKKyAvKiBUaGUg
Z3Vlc3QgT1MgaGFzIHNodXQgZG93bi4gKi8KKyNkZWZpbmUgX1hFTl9ET01JTkZfc2h1dGRvd24g
IDIKKyNkZWZpbmUgWEVOX0RPTUlORl9zaHV0ZG93biAgICgxVTw8X1hFTl9ET01JTkZfc2h1dGRv
d24pCisgLyogQ3VycmVudGx5IHBhdXNlZCBieSBjb250cm9sIHNvZnR3YXJlLiAqLworI2RlZmlu
ZSBfWEVOX0RPTUlORl9wYXVzZWQgICAgMworI2RlZmluZSBYRU5fRE9NSU5GX3BhdXNlZCAgICAg
KDFVPDxfWEVOX0RPTUlORl9wYXVzZWQpCisgLyogQ3VycmVudGx5IGJsb2NrZWQgcGVuZGluZyBh
biBldmVudC4gICAgICovCisjZGVmaW5lIF9YRU5fRE9NSU5GX2Jsb2NrZWQgICA0CisjZGVmaW5l
IFhFTl9ET01JTkZfYmxvY2tlZCAgICAoMVU8PF9YRU5fRE9NSU5GX2Jsb2NrZWQpCisgLyogRG9t
YWluIGlzIGN1cnJlbnRseSBydW5uaW5nLiAgICAgICAgICAgICovCisjZGVmaW5lIF9YRU5fRE9N
SU5GX3J1bm5pbmcgICA1CisjZGVmaW5lIFhFTl9ET01JTkZfcnVubmluZyAgICAoMVU8PF9YRU5f
RE9NSU5GX3J1bm5pbmcpCisgLyogQmVpbmcgZGVidWdnZWQuICAqLworI2RlZmluZSBfWEVOX0RP
TUlORl9kZWJ1Z2dlZCAgNgorI2RlZmluZSBYRU5fRE9NSU5GX2RlYnVnZ2VkICAgKDFVPDxfWEVO
X0RPTUlORl9kZWJ1Z2dlZCkKKy8qIGRvbWFpbiBpcyBhIHhlbnN0b3JlIGRvbWFpbiAqLworI2Rl
ZmluZSBfWEVOX0RPTUlORl94c19kb21haW4gNworI2RlZmluZSBYRU5fRE9NSU5GX3hzX2RvbWFp
biAgKDFVPDxfWEVOX0RPTUlORl94c19kb21haW4pCisvKiBkb21haW4gaGFzIGhhcmR3YXJlIGFz
c2lzdGVkIHBhZ2luZyAqLworI2RlZmluZSBfWEVOX0RPTUlORl9oYXAgICAgICAgOAorI2RlZmlu
ZSBYRU5fRE9NSU5GX2hhcCAgICAgICAgKDFVPDxfWEVOX0RPTUlORl9oYXApCisgLyogWEVOX0RP
TUlORl9zaHV0ZG93biBndWVzdC1zdXBwbGllZCBjb2RlLiAgKi8KKyNkZWZpbmUgWEVOX0RPTUlO
Rl9zaHV0ZG93bm1hc2sgMjU1CisjZGVmaW5lIFhFTl9ET01JTkZfc2h1dGRvd25zaGlmdCAxNgor
ICAgIHVpbnQzMl90IGZsYWdzOyAgICAgICAgICAgICAgLyogWEVOX0RPTUlORl8qICovCisgICAg
dWludDY0X2FsaWduZWRfdCB0b3RfcGFnZXM7CisgICAgdWludDY0X2FsaWduZWRfdCBtYXhfcGFn
ZXM7CisgICAgdWludDY0X2FsaWduZWRfdCBvdXRzdGFuZGluZ19wYWdlczsKKyAgICB1aW50NjRf
YWxpZ25lZF90IHNocl9wYWdlczsKKyAgICB1aW50NjRfYWxpZ25lZF90IHBhZ2VkX3BhZ2VzOwor
ICAgIHVpbnQ2NF9hbGlnbmVkX3Qgc2hhcmVkX2luZm9fZnJhbWU7IC8qIEdNRk4gb2Ygc2hhcmVk
X2luZm8gc3RydWN0ICovCisgICAgdWludDY0X2FsaWduZWRfdCBjcHVfdGltZTsKKyAgICB1aW50
MzJfdCBucl9vbmxpbmVfdmNwdXM7ICAgIC8qIE51bWJlciBvZiBWQ1BVcyBjdXJyZW50bHkgb25s
aW5lLiAqLworI2RlZmluZSBYRU5fSU5WQUxJRF9NQVhfVkNQVV9JRCAofjBVKSAvKiBEb21haW4g
aGFzIG5vIHZjcHVzPyAqLworICAgIHVpbnQzMl90IG1heF92Y3B1X2lkOyAgICAgICAgLyogTWF4
aW11bSBWQ1BVSUQgaW4gdXNlIGJ5IHRoaXMgZG9tYWluLiAqLworICAgIHVpbnQzMl90IHNzaWRy
ZWY7CisgICAgeGVuX2RvbWFpbl9oYW5kbGVfdCBoYW5kbGU7CisgICAgdWludDMyX3QgY3B1cG9v
bDsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX2dldGRvbWFpbmluZm8geGVuX2RvbWN0
bF9nZXRkb21haW5pbmZvX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9tY3RsX2dl
dGRvbWFpbmluZm9fdCk7CisKKworLyogWEVOX0RPTUNUTF9nZXRtZW1saXN0ICovCitzdHJ1Y3Qg
eGVuX2RvbWN0bF9nZXRtZW1saXN0IHsKKyAgICAvKiBJTiB2YXJpYWJsZXMuICovCisgICAgLyog
TWF4IGVudHJpZXMgdG8gd3JpdGUgdG8gb3V0cHV0IGJ1ZmZlci4gKi8KKyAgICB1aW50NjRfYWxp
Z25lZF90IG1heF9wZm5zOworICAgIC8qIFN0YXJ0IGluZGV4IGluIGd1ZXN0J3MgcGFnZSBsaXN0
LiAqLworICAgIHVpbnQ2NF9hbGlnbmVkX3Qgc3RhcnRfcGZuOworICAgIFhFTl9HVUVTVF9IQU5E
TEVfNjQodWludDY0KSBidWZmZXI7CisgICAgLyogT1VUIHZhcmlhYmxlcy4gKi8KKyAgICB1aW50
NjRfYWxpZ25lZF90IG51bV9wZm5zOworfTsKKworCisvKiBYRU5fRE9NQ1RMX2dldHBhZ2VmcmFt
ZWluZm8gKi8KKworI2RlZmluZSBYRU5fRE9NQ1RMX1BGSU5GT19MVEFCX1NISUZUIDI4CisjZGVm
aW5lIFhFTl9ET01DVExfUEZJTkZPX05PVEFCICAgKDB4MFU8PDI4KQorI2RlZmluZSBYRU5fRE9N
Q1RMX1BGSU5GT19MMVRBQiAgICgweDFVPDwyOCkKKyNkZWZpbmUgWEVOX0RPTUNUTF9QRklORk9f
TDJUQUIgICAoMHgyVTw8MjgpCisjZGVmaW5lIFhFTl9ET01DVExfUEZJTkZPX0wzVEFCICAgKDB4
M1U8PDI4KQorI2RlZmluZSBYRU5fRE9NQ1RMX1BGSU5GT19MNFRBQiAgICgweDRVPDwyOCkKKyNk
ZWZpbmUgWEVOX0RPTUNUTF9QRklORk9fTFRBQlRZUEVfTUFTSyAoMHg3VTw8MjgpCisjZGVmaW5l
IFhFTl9ET01DVExfUEZJTkZPX0xQSU5UQUIgKDB4MVU8PDMxKQorI2RlZmluZSBYRU5fRE9NQ1RM
X1BGSU5GT19YVEFCICAgICgweGZVPDwyOCkgLyogaW52YWxpZCBwYWdlICovCisjZGVmaW5lIFhF
Tl9ET01DVExfUEZJTkZPX1hBTExPQyAgKDB4ZVU8PDI4KSAvKiBhbGxvY2F0ZS1vbmx5IHBhZ2Ug
Ki8KKyNkZWZpbmUgWEVOX0RPTUNUTF9QRklORk9fQlJPS0VOICAoMHhkVTw8MjgpIC8qIGJyb2tl
biBwYWdlICovCisjZGVmaW5lIFhFTl9ET01DVExfUEZJTkZPX0xUQUJfTUFTSyAoMHhmVTw8Mjgp
CisKKy8qIFhFTl9ET01DVExfZ2V0cGFnZWZyYW1laW5mbzMgKi8KK3N0cnVjdCB4ZW5fZG9tY3Rs
X2dldHBhZ2VmcmFtZWluZm8zIHsKKyAgICAvKiBJTiB2YXJpYWJsZXMuICovCisgICAgdWludDY0
X2FsaWduZWRfdCBudW07CisgICAgLyogSU4vT1VUIHZhcmlhYmxlcy4gKi8KKyAgICBYRU5fR1VF
U1RfSEFORExFXzY0KHhlbl9wZm5fdCkgYXJyYXk7Cit9OworCisKKy8qCisgKiBDb250cm9sIHNo
YWRvdyBwYWdldGFibGVzIG9wZXJhdGlvbgorICovCisvKiBYRU5fRE9NQ1RMX3NoYWRvd19vcCAq
LworCisvKiBEaXNhYmxlIHNoYWRvdyBtb2RlLiAqLworI2RlZmluZSBYRU5fRE9NQ1RMX1NIQURP
V19PUF9PRkYgICAgICAgICAwCisKKy8qIEVuYWJsZSBzaGFkb3cgbW9kZSAobW9kZSBjb250YWlu
cyBPUmVkIFhFTl9ET01DVExfU0hBRE9XX0VOQUJMRV8qIGZsYWdzKS4gKi8KKyNkZWZpbmUgWEVO
X0RPTUNUTF9TSEFET1dfT1BfRU5BQkxFICAgICAgMzIKKworLyogTG9nLWRpcnR5IGJpdG1hcCBv
cGVyYXRpb25zLiAqLworIC8qIFJldHVybiB0aGUgYml0bWFwIGFuZCBjbGVhbiBpbnRlcm5hbCBj
b3B5IGZvciBuZXh0IHJvdW5kLiAqLworI2RlZmluZSBYRU5fRE9NQ1RMX1NIQURPV19PUF9DTEVB
TiAgICAgICAxMQorIC8qIFJldHVybiB0aGUgYml0bWFwIGJ1dCBkbyBub3QgbW9kaWZ5IGludGVy
bmFsIGNvcHkuICovCisjZGVmaW5lIFhFTl9ET01DVExfU0hBRE9XX09QX1BFRUsgICAgICAgIDEy
CisKKy8qIE1lbW9yeSBhbGxvY2F0aW9uIGFjY2Vzc29ycy4gKi8KKyNkZWZpbmUgWEVOX0RPTUNU
TF9TSEFET1dfT1BfR0VUX0FMTE9DQVRJT04gICAzMAorI2RlZmluZSBYRU5fRE9NQ1RMX1NIQURP
V19PUF9TRVRfQUxMT0NBVElPTiAgIDMxCisKKy8qIExlZ2FjeSBlbmFibGUgb3BlcmF0aW9ucy4g
Ki8KKyAvKiBFcXVpdi4gdG8gRU5BQkxFIHdpdGggbm8gbW9kZSBmbGFncy4gKi8KKyNkZWZpbmUg
WEVOX0RPTUNUTF9TSEFET1dfT1BfRU5BQkxFX1RFU1QgICAgICAgMQorIC8qIEVxdWl2LiB0byBF
TkFCTEUgd2l0aCBtb2RlIGZsYWcgRU5BQkxFX0xPR19ESVJUWS4gKi8KKyNkZWZpbmUgWEVOX0RP
TUNUTF9TSEFET1dfT1BfRU5BQkxFX0xPR0RJUlRZICAgMgorIC8qCisgICogTm8gbG9uZ2VyIHN1
cHBvcnRlZCwgd2FzIGVxdWl2LiB0byBFTkFCTEUgd2l0aCBtb2RlIGZsYWdzCisgICogRU5BQkxF
X1JFRkNPVU5UIGFuZCBFTkFCTEVfVFJBTlNMQVRFOgorI2RlZmluZSBYRU5fRE9NQ1RMX1NIQURP
V19PUF9FTkFCTEVfVFJBTlNMQVRFICAzCisgICovCisKKy8qIE1vZGUgZmxhZ3MgZm9yIFhFTl9E
T01DVExfU0hBRE9XX09QX0VOQUJMRS4gKi8KKyAvKgorICAqIFNoYWRvdyBwYWdldGFibGVzIGFy
ZSByZWZjb3VudGVkOiBndWVzdCBkb2VzIG5vdCB1c2UgZXhwbGljaXQgbW11CisgICogb3BlcmF0
aW9ucyBub3Igd3JpdGUtcHJvdGVjdCBpdHMgcGFnZXRhYmxlcy4KKyAgKi8KKyNkZWZpbmUgWEVO
X0RPTUNUTF9TSEFET1dfRU5BQkxFX1JFRkNPVU5UICAoMSA8PCAxKQorIC8qCisgICogTG9nIHBh
Z2VzIGluIGEgYml0bWFwIGFzIHRoZXkgYXJlIGRpcnRpZWQuCisgICogVXNlZCBmb3IgbGl2ZSBy
ZWxvY2F0aW9uIHRvIGRldGVybWluZSB3aGljaCBwYWdlcyBtdXN0IGJlIHJlLXNlbnQuCisgICov
CisjZGVmaW5lIFhFTl9ET01DVExfU0hBRE9XX0VOQUJMRV9MT0dfRElSVFkgKDEgPDwgMikKKyAv
KgorICAqIEF1dG9tYXRpY2FsbHkgdHJhbnNsYXRlIEdQRk5zIGludG8gTUZOcy4KKyAgKi8KKyNk
ZWZpbmUgWEVOX0RPTUNUTF9TSEFET1dfRU5BQkxFX1RSQU5TTEFURSAoMSA8PCAzKQorIC8qCisg
ICogWGVuIGRvZXMgbm90IHN0ZWFsIHZpcnR1YWwgYWRkcmVzcyBzcGFjZSBmcm9tIHRoZSBndWVz
dC4KKyAgKiBSZXF1aXJlcyBIVk0gc3VwcG9ydC4KKyAgKi8KKyNkZWZpbmUgWEVOX0RPTUNUTF9T
SEFET1dfRU5BQkxFX0VYVEVSTkFMICAoMSA8PCA0KQorCisvKiBNb2RlIGZsYWdzIGZvciBYRU5f
RE9NQ1RMX1NIQURPV19PUF97Q0xFQU4sUEVFS30uICovCisgLyoKKyAgKiBUaGlzIGlzIHRoZSBm
aW5hbCBpdGVyYXRpb246IFJlcXVlc3RpbmcgdG8gaW5jbHVkZSBwYWdlcyBtYXBwZWQKKyAgKiB3
cml0YWJseSBieSB0aGUgaHlwZXJ2aXNvciBpbiB0aGUgZGlydHkgYml0bWFwLgorICAqLworI2Rl
ZmluZSBYRU5fRE9NQ1RMX1NIQURPV19MT0dESVJUWV9GSU5BTCAgICgxIDw8IDApCisKK3N0cnVj
dCB4ZW5fZG9tY3RsX3NoYWRvd19vcF9zdGF0cyB7CisgICAgdWludDMyX3QgZmF1bHRfY291bnQ7
CisgICAgdWludDMyX3QgZGlydHlfY291bnQ7Cit9OworCitzdHJ1Y3QgeGVuX2RvbWN0bF9zaGFk
b3dfb3AgeworICAgIC8qIElOIHZhcmlhYmxlcy4gKi8KKyAgICB1aW50MzJfdCAgICAgICBvcDsg
ICAgICAgLyogWEVOX0RPTUNUTF9TSEFET1dfT1BfKiAqLworCisgICAgLyogT1BfRU5BQkxFOiBY
RU5fRE9NQ1RMX1NIQURPV19FTkFCTEVfKiAqLworICAgIC8qIE9QX1BFQUsgLyBPUF9DTEVBTjog
WEVOX0RPTUNUTF9TSEFET1dfTE9HRElSVFlfKiAqLworICAgIHVpbnQzMl90ICAgICAgIG1vZGU7
CisKKyAgICAvKiBPUF9HRVRfQUxMT0NBVElPTiAvIE9QX1NFVF9BTExPQ0FUSU9OICovCisgICAg
dWludDMyX3QgICAgICAgbWI7ICAgICAgIC8qIFNoYWRvdyBtZW1vcnkgYWxsb2NhdGlvbiBpbiBN
QiAqLworCisgICAgLyogT1BfUEVFSyAvIE9QX0NMRUFOICovCisgICAgWEVOX0dVRVNUX0hBTkRM
RV82NCh1aW50OCkgZGlydHlfYml0bWFwOworICAgIHVpbnQ2NF9hbGlnbmVkX3QgcGFnZXM7IC8q
IFNpemUgb2YgYnVmZmVyLiBVcGRhdGVkIHdpdGggYWN0dWFsIHNpemUuICovCisgICAgc3RydWN0
IHhlbl9kb21jdGxfc2hhZG93X29wX3N0YXRzIHN0YXRzOworfTsKKworCisvKiBYRU5fRE9NQ1RM
X21heF9tZW0gKi8KK3N0cnVjdCB4ZW5fZG9tY3RsX21heF9tZW0geworICAgIC8qIElOIHZhcmlh
Ymxlcy4gKi8KKyAgICB1aW50NjRfYWxpZ25lZF90IG1heF9tZW1rYjsKK307CisKKworLyogWEVO
X0RPTUNUTF9zZXR2Y3B1Y29udGV4dCAqLworLyogWEVOX0RPTUNUTF9nZXR2Y3B1Y29udGV4dCAq
Lworc3RydWN0IHhlbl9kb21jdGxfdmNwdWNvbnRleHQgeworICAgIHVpbnQzMl90ICAgICAgICAg
ICAgICB2Y3B1OyAgICAgICAgICAgICAgICAgIC8qIElOICovCisgICAgWEVOX0dVRVNUX0hBTkRM
RV82NCh2Y3B1X2d1ZXN0X2NvbnRleHRfdCkgY3R4dDsgLyogSU4vT1VUICovCit9OworCisKKy8q
IFhFTl9ET01DVExfZ2V0dmNwdWluZm8gKi8KK3N0cnVjdCB4ZW5fZG9tY3RsX2dldHZjcHVpbmZv
IHsKKyAgICAvKiBJTiB2YXJpYWJsZXMuICovCisgICAgdWludDMyX3QgdmNwdTsKKyAgICAvKiBP
VVQgdmFyaWFibGVzLiAqLworICAgIHVpbnQ4X3QgIG9ubGluZTsgICAgICAgICAgICAgICAgICAv
KiBjdXJyZW50bHkgb25saW5lIChub3QgaG90cGx1Z2dlZCk/ICovCisgICAgdWludDhfdCAgYmxv
Y2tlZDsgICAgICAgICAgICAgICAgIC8qIGJsb2NrZWQgd2FpdGluZyBmb3IgYW4gZXZlbnQ/ICov
CisgICAgdWludDhfdCAgcnVubmluZzsgICAgICAgICAgICAgICAgIC8qIGN1cnJlbnRseSBzY2hl
ZHVsZWQgb24gaXRzIENQVT8gKi8KKyAgICB1aW50NjRfYWxpZ25lZF90IGNwdV90aW1lOyAgICAg
ICAgLyogdG90YWwgY3B1IHRpbWUgY29uc3VtZWQgKG5zKSAqLworICAgIHVpbnQzMl90IGNwdTsg
ICAgICAgICAgICAgICAgICAgICAvKiBjdXJyZW50IG1hcHBpbmcgICAqLworfTsKKworCisvKiBH
ZXQvc2V0IHRoZSBOVU1BIG5vZGUocykgd2l0aCB3aGljaCB0aGUgZ3Vlc3QgaGFzIGFmZmluaXR5
IHdpdGguICovCisvKiBYRU5fRE9NQ1RMX3NldG5vZGVhZmZpbml0eSAqLworLyogWEVOX0RPTUNU
TF9nZXRub2RlYWZmaW5pdHkgKi8KK3N0cnVjdCB4ZW5fZG9tY3RsX25vZGVhZmZpbml0eSB7Cisg
ICAgc3RydWN0IHhlbmN0bF9iaXRtYXAgbm9kZW1hcDsvKiBJTiAqLworfTsKKworCisvKiBHZXQv
c2V0IHdoaWNoIHBoeXNpY2FsIGNwdXMgYSB2Y3B1IGNhbiBleGVjdXRlIG9uLiAqLworLyogWEVO
X0RPTUNUTF9zZXR2Y3B1YWZmaW5pdHkgKi8KKy8qIFhFTl9ET01DVExfZ2V0dmNwdWFmZmluaXR5
ICovCitzdHJ1Y3QgeGVuX2RvbWN0bF92Y3B1YWZmaW5pdHkgeworICAgIC8qIElOIHZhcmlhYmxl
cy4gKi8KKyAgICB1aW50MzJfdCAgdmNwdTsKKyAvKiBTZXQvZ2V0IHRoZSBoYXJkIGFmZmluaXR5
IGZvciB2Y3B1ICovCisjZGVmaW5lIF9YRU5fVkNQVUFGRklOSVRZX0hBUkQgIDAKKyNkZWZpbmUg
WEVOX1ZDUFVBRkZJTklUWV9IQVJEICAgKDFVPDxfWEVOX1ZDUFVBRkZJTklUWV9IQVJEKQorIC8q
IFNldC9nZXQgdGhlIHNvZnQgYWZmaW5pdHkgZm9yIHZjcHUgKi8KKyNkZWZpbmUgX1hFTl9WQ1BV
QUZGSU5JVFlfU09GVCAgMQorI2RlZmluZSBYRU5fVkNQVUFGRklOSVRZX1NPRlQgICAoMVU8PF9Y
RU5fVkNQVUFGRklOSVRZX1NPRlQpCisgLyogVW5kbyBTQ0hFRE9QX3Bpbl9vdmVycmlkZSAqLwor
I2RlZmluZSBfWEVOX1ZDUFVBRkZJTklUWV9GT1JDRSAyCisjZGVmaW5lIFhFTl9WQ1BVQUZGSU5J
VFlfRk9SQ0UgICgxVTw8X1hFTl9WQ1BVQUZGSU5JVFlfRk9SQ0UpCisgICAgdWludDMyX3QgZmxh
Z3M7CisgICAgLyoKKyAgICAgKiBJTi9PVVQgdmFyaWFibGVzLgorICAgICAqCisgICAgICogQm90
aCBhcmUgSU4vT1VUIGZvciBYRU5fRE9NQ1RMX3NldHZjcHVhZmZpbml0eSwgaW4gd2hpY2ggY2Fz
ZSB0aGV5CisgICAgICogY29udGFpbiBlZmZlY3RpdmUgaGFyZCBvci9hbmQgc29mdCBhZmZpbml0
eS4gVGhhdCBpcywgdXBvbiBzdWNjZXNzZnVsCisgICAgICogcmV0dXJuLCBjcHVtYXBfc29mdCwg
Y29udGFpbnMgdGhlIGludGVyc2VjdGlvbiBvZiB0aGUgc29mdCBhZmZpbml0eSwKKyAgICAgKiBo
YXJkIGFmZmluaXR5IGFuZCB0aGUgY3B1cG9vbCdzIG9ubGluZSBDUFVzIGZvciB0aGUgZG9tYWlu
IChpZgorICAgICAqIFhFTl9WQ1BVQUZGSU5JVFlfU09GVCB3YXMgc2V0IGluIGZsYWdzKS4gY3B1
bWFwX2hhcmQgY29udGFpbnMgdGhlCisgICAgICogaW50ZXJzZWN0aW9uIGJldHdlZW4gaGFyZCBh
ZmZpbml0eSBhbmQgdGhlIGNwdXBvb2wncyBvbmxpbmUgQ1BVcyAoaWYKKyAgICAgKiBYRU5fVkNQ
VUFGRklOSVRZX0hBUkQgd2FzIHNldCBpbiBmbGFncykuCisgICAgICoKKyAgICAgKiBCb3RoIGFy
ZSBPVVQtb25seSBmb3IgWEVOX0RPTUNUTF9nZXR2Y3B1YWZmaW5pdHksIGluIHdoaWNoIGNhc2Ug
dGhleQorICAgICAqIGNvbnRhaW4gdGhlIHBsYWluIGhhcmQgYW5kL29yIHNvZnQgYWZmaW5pdHkg
bWFza3MgdGhhdCB3ZXJlIHNldCBkdXJpbmcKKyAgICAgKiBwcmV2aW91cyBzdWNjZXNzZnVsIGNh
bGxzIHRvIFhFTl9ET01DVExfc2V0dmNwdWFmZmluaXR5IChvciB0aGUKKyAgICAgKiBkZWZhdWx0
IHZhbHVlcyksIHdpdGhvdXQgaW50ZXJzZWN0aW5nIG9yIGFsdGVyaW5nIHRoZW0gaW4gYW55IHdh
eS4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgeGVuY3RsX2JpdG1hcCBjcHVtYXBfaGFyZDsKKyAgICBz
dHJ1Y3QgeGVuY3RsX2JpdG1hcCBjcHVtYXBfc29mdDsKK307CisKKworLyogWEVOX0RPTUNUTF9t
YXhfdmNwdXMgKi8KK3N0cnVjdCB4ZW5fZG9tY3RsX21heF92Y3B1cyB7CisgICAgdWludDMyX3Qg
bWF4OyAgICAgICAgICAgLyogbWF4aW11bSBudW1iZXIgb2YgdmNwdXMgKi8KK307CisKKworLyog
WEVOX0RPTUNUTF9zY2hlZHVsZXJfb3AgKi8KKy8qIFNjaGVkdWxlciB0eXBlcy4gKi8KKy8qICNk
ZWZpbmUgWEVOX1NDSEVEVUxFUl9TRURGICA0IChSZW1vdmVkKSAqLworI2RlZmluZSBYRU5fU0NI
RURVTEVSX0NSRURJVCAgIDUKKyNkZWZpbmUgWEVOX1NDSEVEVUxFUl9DUkVESVQyICA2CisjZGVm
aW5lIFhFTl9TQ0hFRFVMRVJfQVJJTkM2NTMgNworI2RlZmluZSBYRU5fU0NIRURVTEVSX1JURFMg
ICAgIDgKKyNkZWZpbmUgWEVOX1NDSEVEVUxFUl9OVUxMICAgICA5CisKK3N0cnVjdCB4ZW5fZG9t
Y3RsX3NjaGVkX2NyZWRpdCB7CisgICAgdWludDE2X3Qgd2VpZ2h0OworICAgIHVpbnQxNl90IGNh
cDsKK307CisKK3N0cnVjdCB4ZW5fZG9tY3RsX3NjaGVkX2NyZWRpdDIgeworICAgIHVpbnQxNl90
IHdlaWdodDsKKyAgICB1aW50MTZfdCBjYXA7Cit9OworCitzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hl
ZF9ydGRzIHsKKyAgICB1aW50MzJfdCBwZXJpb2Q7CisgICAgdWludDMyX3QgYnVkZ2V0OworLyog
Q2FuIHRoaXMgdkNQVSBleGVjdXRlIGJleW9uZCBpdHMgcmVzZXJ2ZWQgYW1vdW50IG9mIHRpbWU/
ICovCisjZGVmaW5lIF9YRU5fRE9NQ1RMX1NDSEVEUlRfZXh0cmEgICAwCisjZGVmaW5lIFhFTl9E
T01DVExfU0NIRURSVF9leHRyYSAgICAoMVU8PF9YRU5fRE9NQ1RMX1NDSEVEUlRfZXh0cmEpCisg
ICAgdWludDMyX3QgZmxhZ3M7Cit9OworCit0eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVk
cGFyYW1fdmNwdSB7CisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hl
ZF9jcmVkaXQgY3JlZGl0OworICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZF9jcmVkaXQy
IGNyZWRpdDI7CisgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVkX3J0ZHMgcnRkczsKKyAg
ICB9IHU7CisgICAgdWludDMyX3QgdmNwdWlkOworfSB4ZW5fZG9tY3RsX3NjaGVkcGFyYW1fdmNw
dV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9zY2hlZHBhcmFtX3ZjcHVf
dCk7CisKKy8qCisgKiBTZXQgb3IgZ2V0IGluZm8/CisgKiBGb3Igc2NoZWR1bGVycyBzdXBwb3J0
aW5nIHBlci12Y3B1IHNldHRpbmdzIChlLmcuLCBSVERTKToKKyAqICBYRU5fRE9NQ1RMX1NDSEVE
T1BfcHV0aW5mbyBzZXRzIHBhcmFtcyBmb3IgYWxsIHZjcHVzOworICogIFhFTl9ET01DVExfU0NI
RURPUF9nZXRpbmZvIGdldHMgZGVmYXVsdCBwYXJhbXM7CisgKiAgWEVOX0RPTUNUTF9TQ0hFRE9Q
X3B1dChnZXQpdmNwdWluZm8gc2V0cyAoZ2V0cykgcGFyYW1zIG9mIHZjcHVzOworICoKKyAqIEZv
ciBzY2hlZHVsZXJzIG5vdCBzdXBwb3J0aW5nIHBlci12Y3B1IHNldHRpbmdzOgorICogIFhFTl9E
T01DVExfU0NIRURPUF9wdXRpbmZvIHNldHMgcGFyYW1zIGZvciBhbGwgdmNwdXM7CisgKiAgWEVO
X0RPTUNUTF9TQ0hFRE9QX2dldGluZm8gZ2V0cyBkb21haW4td2lzZSBwYXJhbXM7CisgKiAgWEVO
X0RPTUNUTF9TQ0hFRE9QX3B1dChnZXQpdmNwdWluZm8gcmV0dXJucyBlcnJvcjsKKyAqLworI2Rl
ZmluZSBYRU5fRE9NQ1RMX1NDSEVET1BfcHV0aW5mbyAwCisjZGVmaW5lIFhFTl9ET01DVExfU0NI
RURPUF9nZXRpbmZvIDEKKyNkZWZpbmUgWEVOX0RPTUNUTF9TQ0hFRE9QX3B1dHZjcHVpbmZvIDIK
KyNkZWZpbmUgWEVOX0RPTUNUTF9TQ0hFRE9QX2dldHZjcHVpbmZvIDMKK3N0cnVjdCB4ZW5fZG9t
Y3RsX3NjaGVkdWxlcl9vcCB7CisgICAgdWludDMyX3Qgc2NoZWRfaWQ7ICAvKiBYRU5fU0NIRURV
TEVSXyogKi8KKyAgICB1aW50MzJfdCBjbWQ7ICAgICAgIC8qIFhFTl9ET01DVExfU0NIRURPUF8q
ICovCisgICAgLyogSU4vT1VUICovCisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3QgeGVuX2Rv
bWN0bF9zY2hlZF9jcmVkaXQgY3JlZGl0OworICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hl
ZF9jcmVkaXQyIGNyZWRpdDI7CisgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVkX3J0ZHMg
cnRkczsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQo
eGVuX2RvbWN0bF9zY2hlZHBhcmFtX3ZjcHVfdCkgdmNwdXM7CisgICAgICAgICAgICAvKgorICAg
ICAgICAgICAgICogSU46IE51bWJlciBvZiBlbGVtZW50cyBpbiB2Y3B1cyBhcnJheS4KKyAgICAg
ICAgICAgICAqIE9VVDogTnVtYmVyIG9mIHByb2Nlc3NlZCBlbGVtZW50cyBvZiB2Y3B1cyBhcnJh
eS4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgdWludDMyX3QgbnJfdmNwdXM7CisgICAg
ICAgICAgICB1aW50MzJfdCBwYWRkaW5nOworICAgICAgICB9IHY7CisgICAgfSB1OworfTsKKwor
CisvKiBYRU5fRE9NQ1RMX3NldGRvbWFpbmhhbmRsZSAqLworc3RydWN0IHhlbl9kb21jdGxfc2V0
ZG9tYWluaGFuZGxlIHsKKyAgICB4ZW5fZG9tYWluX2hhbmRsZV90IGhhbmRsZTsKK307CisKKwor
LyogWEVOX0RPTUNUTF9zZXRkZWJ1Z2dpbmcgKi8KK3N0cnVjdCB4ZW5fZG9tY3RsX3NldGRlYnVn
Z2luZyB7CisgICAgdWludDhfdCBlbmFibGU7Cit9OworCisKKy8qIFhFTl9ET01DVExfaXJxX3Bl
cm1pc3Npb24gKi8KK3N0cnVjdCB4ZW5fZG9tY3RsX2lycV9wZXJtaXNzaW9uIHsKKyAgICB1aW50
OF90IHBpcnE7CisgICAgdWludDhfdCBhbGxvd19hY2Nlc3M7ICAgIC8qIGZsYWcgdG8gc3BlY2lm
eSBlbmFibGUvZGlzYWJsZSBvZiBJUlEgYWNjZXNzICovCit9OworCisKKy8qIFhFTl9ET01DVExf
aW9tZW1fcGVybWlzc2lvbiAqLworc3RydWN0IHhlbl9kb21jdGxfaW9tZW1fcGVybWlzc2lvbiB7
CisgICAgdWludDY0X2FsaWduZWRfdCBmaXJzdF9tZm47LyogZmlyc3QgcGFnZSAocGh5c2ljYWwg
cGFnZSBudW1iZXIpIGluIHJhbmdlICovCisgICAgdWludDY0X2FsaWduZWRfdCBucl9tZm5zOyAg
LyogbnVtYmVyIG9mIHBhZ2VzIGluIHJhbmdlICg+MCkgKi8KKyAgICB1aW50OF90ICBhbGxvd19h
Y2Nlc3M7ICAgICAvKiBhbGxvdyAoITApIG9yIGRlbnkgKDApIGFjY2VzcyB0byByYW5nZT8gKi8K
K307CisKKworLyogWEVOX0RPTUNUTF9pb3BvcnRfcGVybWlzc2lvbiAqLworc3RydWN0IHhlbl9k
b21jdGxfaW9wb3J0X3Blcm1pc3Npb24geworICAgIHVpbnQzMl90IGZpcnN0X3BvcnQ7ICAgICAg
ICAgICAgICAvKiBmaXJzdCBwb3J0IGludCByYW5nZSAqLworICAgIHVpbnQzMl90IG5yX3BvcnRz
OyAgICAgICAgICAgICAgICAvKiBzaXplIG9mIHBvcnQgcmFuZ2UgKi8KKyAgICB1aW50OF90ICBh
bGxvd19hY2Nlc3M7ICAgICAgICAgICAgLyogYWxsb3cgb3IgZGVueSBhY2Nlc3MgdG8gcmFuZ2U/
ICovCit9OworCisKKy8qIFhFTl9ET01DVExfaHlwZXJjYWxsX2luaXQgKi8KK3N0cnVjdCB4ZW5f
ZG9tY3RsX2h5cGVyY2FsbF9pbml0IHsKKyAgICB1aW50NjRfYWxpZ25lZF90ICBnbWZuOyAgICAg
ICAgICAgLyogR01GTiB0byBiZSBpbml0aWFsaXNlZCAqLworfTsKKworCisvKiBYRU5fRE9NQ1RM
X3NldHRpbWVvZmZzZXQgKi8KK3N0cnVjdCB4ZW5fZG9tY3RsX3NldHRpbWVvZmZzZXQgeworICAg
IGludDY0X2FsaWduZWRfdCB0aW1lX29mZnNldF9zZWNvbmRzOyAvKiBhcHBsaWVkIHRvIGRvbWFp
biB3YWxsY2xvY2sgdGltZSAqLworfTsKKworLyogWEVOX0RPTUNUTF9nZXRodm1jb250ZXh0ICov
CisvKiBYRU5fRE9NQ1RMX3NldGh2bWNvbnRleHQgKi8KK3N0cnVjdCB4ZW5fZG9tY3RsX2h2bWNv
bnRleHQgeworICAgIHVpbnQzMl90IHNpemU7IC8qIElOL09VVDogc2l6ZSBvZiBidWZmZXIgLyBi
eXRlcyBmaWxsZWQgKi8KKyAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQ4KSBidWZmZXI7IC8q
IElOL09VVDogZGF0YSwgb3IgY2FsbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICogZ2V0aHZtY29udGV4dCB3aXRoIE5VTEwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqIGJ1ZmZlciB0byBnZXQgc2l6ZSByZXEnZCAqLworfTsKKworCisv
KiBYRU5fRE9NQ1RMX3NldF9hZGRyZXNzX3NpemUgKi8KKy8qIFhFTl9ET01DVExfZ2V0X2FkZHJl
c3Nfc2l6ZSAqLworc3RydWN0IHhlbl9kb21jdGxfYWRkcmVzc19zaXplIHsKKyAgICB1aW50MzJf
dCBzaXplOworfTsKKworCisvKiBYRU5fRE9NQ1RMX3NlbmR0cmlnZ2VyICovCisjZGVmaW5lIFhF
Tl9ET01DVExfU0VORFRSSUdHRVJfTk1JICAgIDAKKyNkZWZpbmUgWEVOX0RPTUNUTF9TRU5EVFJJ
R0dFUl9SRVNFVCAgMQorI2RlZmluZSBYRU5fRE9NQ1RMX1NFTkRUUklHR0VSX0lOSVQgICAyCisj
ZGVmaW5lIFhFTl9ET01DVExfU0VORFRSSUdHRVJfUE9XRVIgIDMKKyNkZWZpbmUgWEVOX0RPTUNU
TF9TRU5EVFJJR0dFUl9TTEVFUCAgNAorc3RydWN0IHhlbl9kb21jdGxfc2VuZHRyaWdnZXIgewor
ICAgIHVpbnQzMl90ICB0cmlnZ2VyOyAgLyogSU4gKi8KKyAgICB1aW50MzJfdCAgdmNwdTsgICAg
IC8qIElOICovCit9OworCisKKy8qIEFzc2lnbiBhIGRldmljZSB0byBhIGd1ZXN0LiBTZXRzIHVw
IElPTU1VIHN0cnVjdHVyZXMuICovCisvKiBYRU5fRE9NQ1RMX2Fzc2lnbl9kZXZpY2UgKi8KKy8q
CisgKiBYRU5fRE9NQ1RMX3Rlc3RfYXNzaWduX2RldmljZTogUGFzcyBET01JRF9JTlZBTElEIHRv
IGZpbmQgb3V0IHdoZXRoZXIgdGhlCisgKiBnaXZlbiBkZXZpY2UgaXMgYXNzaWduZWQgdG8gYW55
IERvbVUgYXQgYWxsLiBQYXNzIGEgc3BlY2lmaWMgZG9tYWluIElEIHRvCisgKiBmaW5kIG91dCB3
aGV0aGVyIHRoZSBnaXZlbiBkZXZpY2UgY2FuIGJlIGFzc2lnbmVkIHRvIHRoYXQgZG9tYWluLgor
ICovCisvKgorICogWEVOX0RPTUNUTF9kZWFzc2lnbl9kZXZpY2U6IFRoZSBiZWhhdmlvciBvZiB0
aGlzIERPTUNUTCBkaWZmZXJzCisgKiBiZXR3ZWVuIHRoZSBkaWZmZXJlbnQgdHlwZSBvZiBkZXZp
Y2U6CisgKiAgLSBQQ0kgZGV2aWNlIChYRU5fRE9NQ1RMX0RFVl9QQ0kpIHdpbGwgYmUgcmVhc3Np
Z25lZCB0byBET00wCisgKiAgLSBEVCBkZXZpY2UgKFhFTl9ET01DVExfREVWX0RUKSB3aWxsIGxl
ZnQgdW5hc3NpZ25lZC4gRE9NMAorICogIHdpbGwgaGF2ZSB0byBjYWxsIFhFTl9ET01DVExfYXNz
aWduX2RldmljZSBpbiBvcmRlciB0byB1c2UgdGhlCisgKiAgZGV2aWNlLgorICovCisjZGVmaW5l
IFhFTl9ET01DVExfREVWX1BDSSAgICAgIDAKKyNkZWZpbmUgWEVOX0RPTUNUTF9ERVZfRFQgICAg
ICAgMQorc3RydWN0IHhlbl9kb21jdGxfYXNzaWduX2RldmljZSB7CisgICAgLyogSU4gKi8KKyAg
ICB1aW50MzJfdCBkZXY7ICAgLyogWEVOX0RPTUNUTF9ERVZfKiAqLworICAgIHVpbnQzMl90IGZs
YWdzOworI2RlZmluZSBYRU5fRE9NQ1RMX0RFVl9SRE1fUkVMQVhFRCAgICAgIDEgLyogYXNzaWdu
IG9ubHkgKi8KKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1aW50
MzJfdCBtYWNoaW5lX3NiZGY7ICAgLyogbWFjaGluZSBQQ0kgSUQgb2YgYXNzaWduZWQgZGV2aWNl
ICovCisgICAgICAgIH0gcGNpOworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgdWludDMy
X3Qgc2l6ZTsgLyogTGVuZ3RoIG9mIHRoZSBwYXRoICovCisgICAgICAgICAgICBYRU5fR1VFU1Rf
SEFORExFXzY0KGNoYXIpIHBhdGg7IC8qIHBhdGggdG8gdGhlIGRldmljZSB0cmVlIG5vZGUgKi8K
KyAgICAgICAgfSBkdDsKKyAgICB9IHU7Cit9OworCisvKiBSZXRyaWV2ZSBzaWJsaW5nIGRldmlj
ZXMgaW5mb21hdGlvbiBvZiBtYWNoaW5lX3NiZGYgKi8KKy8qIFhFTl9ET01DVExfZ2V0X2Rldmlj
ZV9ncm91cCAqLworc3RydWN0IHhlbl9kb21jdGxfZ2V0X2RldmljZV9ncm91cCB7CisgICAgdWlu
dDMyX3QgIG1hY2hpbmVfc2JkZjsgICAgIC8qIElOICovCisgICAgdWludDMyX3QgIG1heF9zZGV2
czsgICAgICAgIC8qIElOICovCisgICAgdWludDMyX3QgIG51bV9zZGV2czsgICAgICAgIC8qIE9V
VCAqLworICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQodWludDMyKSAgc2Rldl9hcnJheTsgICAvKiBP
VVQgKi8KK307CisKKy8qIFBhc3MtdGhyb3VnaCBpbnRlcnJ1cHRzOiBiaW5kIHJlYWwgaXJxIC0+
IGh2bSBkZXZmbi4gKi8KKy8qIFhFTl9ET01DVExfYmluZF9wdF9pcnEgKi8KKy8qIFhFTl9ET01D
VExfdW5iaW5kX3B0X2lycSAqLworZW51bSBwdF9pcnFfdHlwZSB7CisgICAgUFRfSVJRX1RZUEVf
UENJLAorICAgIFBUX0lSUV9UWVBFX0lTQSwKKyAgICBQVF9JUlFfVFlQRV9NU0ksCisgICAgUFRf
SVJRX1RZUEVfTVNJX1RSQU5TTEFURSwKKyAgICBQVF9JUlFfVFlQRV9TUEksICAgIC8qIEFSTTog
dmFsaWQgcmFuZ2UgMzItMTAxOSAqLworfTsKK3N0cnVjdCB4ZW5fZG9tY3RsX2JpbmRfcHRfaXJx
IHsKKyAgICB1aW50MzJfdCBtYWNoaW5lX2lycTsKKyAgICB1aW50MzJfdCBpcnFfdHlwZTsgLyog
ZW51bSBwdF9pcnFfdHlwZSAqLworCisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3QgeworICAg
ICAgICAgICAgdWludDhfdCBpc2FfaXJxOworICAgICAgICB9IGlzYTsKKyAgICAgICAgc3RydWN0
IHsKKyAgICAgICAgICAgIHVpbnQ4X3QgYnVzOworICAgICAgICAgICAgdWludDhfdCBkZXZpY2U7
CisgICAgICAgICAgICB1aW50OF90IGludHg7CisgICAgICAgIH0gcGNpOworICAgICAgICBzdHJ1
Y3QgeworICAgICAgICAgICAgdWludDhfdCBndmVjOworICAgICAgICAgICAgdWludDMyX3QgZ2Zs
YWdzOworI2RlZmluZSBYRU5fRE9NQ1RMX1ZNU0lfWDg2X0RFU1RfSURfTUFTSyAweDAwMDBmZgor
I2RlZmluZSBYRU5fRE9NQ1RMX1ZNU0lfWDg2X1JIX01BU0sgICAgICAweDAwMDEwMAorI2RlZmlu
ZSBYRU5fRE9NQ1RMX1ZNU0lfWDg2X0RNX01BU0sgICAgICAweDAwMDIwMAorI2RlZmluZSBYRU5f
RE9NQ1RMX1ZNU0lfWDg2X0RFTElWX01BU0sgICAweDAwNzAwMAorI2RlZmluZSBYRU5fRE9NQ1RM
X1ZNU0lfWDg2X1RSSUdfTUFTSyAgICAweDAwODAwMAorI2RlZmluZSBYRU5fRE9NQ1RMX1ZNU0lf
WDg2X1VOTUFTS0VEICAgICAweDAxMDAwMAorCisgICAgICAgICAgICB1aW50NjRfYWxpZ25lZF90
IGd0YWJsZTsKKyAgICAgICAgfSBtc2k7CisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1
aW50MTZfdCBzcGk7CisgICAgICAgIH0gc3BpOworICAgIH0gdTsKK307CisKKworLyogQmluZCBt
YWNoaW5lIEkvTyBhZGRyZXNzIHJhbmdlIC0+IEhWTSBhZGRyZXNzIHJhbmdlLiAqLworLyogWEVO
X0RPTUNUTF9tZW1vcnlfbWFwcGluZyAqLworLyogUmV0dXJucworICAgLSB6ZXJvICAgICBzdWNj
ZXNzLCBldmVyeXRoaW5nIGRvbmUKKyAgIC0gLUUyQklHICAgcGFzc2VkIGluIG5yX21mbnMgdmFs
dWUgdG9vIGxhcmdlIGZvciB0aGUgaW1wbGVtZW50YXRpb24KKyAgIC0gcG9zaXRpdmUgcGFydGlh
bCBzdWNjZXNzIGZvciB0aGUgZmlyc3QgPHJlc3VsdD4gcGFnZSBmcmFtZXMgKHdpdGgKKyAgICAg
ICAgICAgICAgPHJlc3VsdD4gbGVzcyB0aGFuIG5yX21mbnMpLCByZXF1aXJpbmcgcmUtaW52b2Nh
dGlvbiBieSB0aGUKKyAgICAgICAgICAgICAgY2FsbGVyIGFmdGVyIHVwZGF0aW5nIGlucHV0cwor
ICAgLSBuZWdhdGl2ZSBlcnJvcjsgb3RoZXIgdGhhbiAtRTJCSUcKKyovCisjZGVmaW5lIERQQ0lf
QUREX01BUFBJTkcgICAgICAgICAxCisjZGVmaW5lIERQQ0lfUkVNT1ZFX01BUFBJTkcgICAgICAw
CitzdHJ1Y3QgeGVuX2RvbWN0bF9tZW1vcnlfbWFwcGluZyB7CisgICAgdWludDY0X2FsaWduZWRf
dCBmaXJzdF9nZm47IC8qIGZpcnN0IHBhZ2UgKGh2bSBndWVzdCBwaHlzIHBhZ2UpIGluIHJhbmdl
ICovCisgICAgdWludDY0X2FsaWduZWRfdCBmaXJzdF9tZm47IC8qIGZpcnN0IHBhZ2UgKG1hY2hp
bmUgcGFnZSkgaW4gcmFuZ2UgKi8KKyAgICB1aW50NjRfYWxpZ25lZF90IG5yX21mbnM7ICAgLyog
bnVtYmVyIG9mIHBhZ2VzIGluIHJhbmdlICg+MCkgKi8KKyAgICB1aW50MzJfdCBhZGRfbWFwcGlu
ZzsgICAgICAgLyogYWRkIG9yIHJlbW92ZSBtYXBwaW5nICovCisgICAgdWludDMyX3QgcGFkZGlu
ZzsgICAgICAgICAgIC8qIHBhZGRpbmcgZm9yIDY0LWJpdCBhbGlnbmVkIHN0cnVjdHVyZSAqLwor
fTsKKworCisvKiBCaW5kIG1hY2hpbmUgSS9PIHBvcnQgcmFuZ2UgLT4gSFZNIEkvTyBwb3J0IHJh
bmdlLiAqLworLyogWEVOX0RPTUNUTF9pb3BvcnRfbWFwcGluZyAqLworc3RydWN0IHhlbl9kb21j
dGxfaW9wb3J0X21hcHBpbmcgeworICAgIHVpbnQzMl90IGZpcnN0X2dwb3J0OyAgICAgLyogZmly
c3QgZ3Vlc3QgSU8gcG9ydCovCisgICAgdWludDMyX3QgZmlyc3RfbXBvcnQ7ICAgICAvKiBmaXJz
dCBtYWNoaW5lIElPIHBvcnQgKi8KKyAgICB1aW50MzJfdCBucl9wb3J0czsgICAgICAgIC8qIHNp
emUgb2YgcG9ydCByYW5nZSAqLworICAgIHVpbnQzMl90IGFkZF9tYXBwaW5nOyAgICAgLyogYWRk
IG9yIHJlbW92ZSBtYXBwaW5nICovCit9OworCisKKy8qCisgKiBQaW4gY2FjaGluZyB0eXBlIG9m
IFJBTSBzcGFjZSBmb3IgeDg2IEhWTSBkb21VLgorICovCisvKiBYRU5fRE9NQ1RMX3Bpbl9tZW1f
Y2FjaGVhdHRyICovCisvKiBDYWNoaW5nIHR5cGVzOiB0aGVzZSBoYXBwZW4gdG8gYmUgdGhlIHNh
bWUgYXMgeDg2IE1UUlIvUEFUIHR5cGUgY29kZXMuICovCisjZGVmaW5lIFhFTl9ET01DVExfTUVN
X0NBQ0hFQVRUUl9VQyAgMAorI2RlZmluZSBYRU5fRE9NQ1RMX01FTV9DQUNIRUFUVFJfV0MgIDEK
KyNkZWZpbmUgWEVOX0RPTUNUTF9NRU1fQ0FDSEVBVFRSX1dUICA0CisjZGVmaW5lIFhFTl9ET01D
VExfTUVNX0NBQ0hFQVRUUl9XUCAgNQorI2RlZmluZSBYRU5fRE9NQ1RMX01FTV9DQUNIRUFUVFJf
V0IgIDYKKyNkZWZpbmUgWEVOX0RPTUNUTF9NRU1fQ0FDSEVBVFRSX1VDTSA3CisjZGVmaW5lIFhF
Tl9ET01DVExfREVMRVRFX01FTV9DQUNIRUFUVFIgKH4odWludDMyX3QpMCkKK3N0cnVjdCB4ZW5f
ZG9tY3RsX3Bpbl9tZW1fY2FjaGVhdHRyIHsKKyAgICB1aW50NjRfYWxpZ25lZF90IHN0YXJ0LCBl
bmQ7CisgICAgdWludDMyX3QgdHlwZTsgLyogWEVOX0RPTUNUTF9NRU1fQ0FDSEVBVFRSXyogKi8K
K307CisKKworLyogWEVOX0RPTUNUTF9zZXRfZXh0X3ZjcHVjb250ZXh0ICovCisvKiBYRU5fRE9N
Q1RMX2dldF9leHRfdmNwdWNvbnRleHQgKi8KK3N0cnVjdCB4ZW5fZG9tY3RsX2V4dF92Y3B1Y29u
dGV4dCB7CisgICAgLyogSU46IFZDUFUgdGhhdCB0aGlzIGNhbGwgYXBwbGllcyB0by4gKi8KKyAg
ICB1aW50MzJfdCAgICAgICAgIHZjcHU7CisgICAgLyoKKyAgICAgKiBTRVQ6IFNpemUgb2Ygc3Ry
dWN0IChJTikKKyAgICAgKiBHRVQ6IFNpemUgb2Ygc3RydWN0IChPVVQsIHVwIHRvIDEyOCBieXRl
cykKKyAgICAgKi8KKyAgICB1aW50MzJfdCAgICAgICAgIHNpemU7CisjaWYgZGVmaW5lZChfX2kz
ODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQorICAgIC8qIFNZU0NBTEwgZnJvbSAzMi1iaXQg
bW9kZSBhbmQgU1lTRU5URVIgY2FsbGJhY2sgaW5mb3JtYXRpb24uICovCisgICAgLyogTkIuIFNZ
U0NBTEwgZnJvbSA2NC1iaXQgbW9kZSBpcyBjb250YWluZWQgaW4gdmNwdV9ndWVzdF9jb250ZXh0
X3QgKi8KKyAgICB1aW50NjRfYWxpZ25lZF90IHN5c2NhbGwzMl9jYWxsYmFja19laXA7CisgICAg
dWludDY0X2FsaWduZWRfdCBzeXNlbnRlcl9jYWxsYmFja19laXA7CisgICAgdWludDE2X3QgICAg
ICAgICBzeXNjYWxsMzJfY2FsbGJhY2tfY3M7CisgICAgdWludDE2X3QgICAgICAgICBzeXNlbnRl
cl9jYWxsYmFja19jczsKKyAgICB1aW50OF90ICAgICAgICAgIHN5c2NhbGwzMl9kaXNhYmxlc19l
dmVudHM7CisgICAgdWludDhfdCAgICAgICAgICBzeXNlbnRlcl9kaXNhYmxlc19ldmVudHM7Cisj
aWYgZGVmaW5lZChfX0dOVUNfXykKKyAgICB1bmlvbiB7CisgICAgICAgIHVpbnQ2NF9hbGlnbmVk
X3QgbWNnX2NhcDsKKyAgICAgICAgc3RydWN0IGh2bV92bWNlX3ZjcHUgdm1jZTsKKyAgICB9Owor
I2Vsc2UKKyAgICBzdHJ1Y3QgaHZtX3ZtY2VfdmNwdSB2bWNlOworI2VuZGlmCisjZW5kaWYKK307
CisKKy8qCisgKiBTZXQgdGhlIHRhcmdldCBkb21haW4gZm9yIGEgZG9tYWluCisgKi8KKy8qIFhF
Tl9ET01DVExfc2V0X3RhcmdldCAqLworc3RydWN0IHhlbl9kb21jdGxfc2V0X3RhcmdldCB7Cisg
ICAgZG9taWRfdCB0YXJnZXQ7Cit9OworCisjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l
ZChfX3g4Nl82NF9fKQorIyBkZWZpbmUgWEVOX0NQVUlEX0lOUFVUX1VOVVNFRCAgMHhGRkZGRkZG
RgorLyogWEVOX0RPTUNUTF9zZXRfY3B1aWQgKi8KK3N0cnVjdCB4ZW5fZG9tY3RsX2NwdWlkIHsK
KyAgdWludDMyX3QgaW5wdXRbMl07CisgIHVpbnQzMl90IGVheDsKKyAgdWludDMyX3QgZWJ4Owor
ICB1aW50MzJfdCBlY3g7CisgIHVpbnQzMl90IGVkeDsKK307CisjZW5kaWYKKworLyoKKyAqIEFy
cmFuZ2VzIHRoYXQgaWYgdGhlIGRvbWFpbiBzdXNwZW5kcyAoc3BlY2lmaWNhbGx5LCBpZiBpdCBz
aHV0cworICogZG93biB3aXRoIGNvZGUgU0hVVERPV05fc3VzcGVuZCksIHRoaXMgZXZlbnQgY2hh
bm5lbCB3aWxsIGJlCisgKiBub3RpZmllZC4KKyAqCisgKiBUaGlzIGlzIF9pbnN0ZWFkIG9mXyB0
aGUgdXN1YWwgbm90aWZpY2F0aW9uIHRvIHRoZSBnbG9iYWwKKyAqIFZJUlFfRE9NX0VYQy4gIChJ
biBtb3N0IHN5c3RlbXMgdGhhdCBwaXJxIGlzIG93bmVkIGJ5IHhlbnN0b3JlZC4pCisgKgorICog
T25seSBvbmUgc3Vic2NyaXB0aW9uIHBlciBkb21haW4gaXMgcG9zc2libGUuICBMYXN0IHN1YnNj
cmliZXIKKyAqIHdpbnM7IG90aGVycyBhcmUgc2lsZW50bHkgZGlzcGxhY2VkLgorICoKKyAqIE5C
IHRoYXQgY29udHJhcnkgdG8gdGhlIHJhdGhlciBnZW5lcmFsIG5hbWUsIGl0IG9ubHkgYXBwbGll
cyB0bworICogZG9tYWluIHNodXRkb3duIHdpdGggY29kZSBzdXNwZW5kLiAgU2h1dGRvd24gZm9y
IG90aGVyIHJlYXNvbnMKKyAqIChpbmNsdWRpbmcgY3Jhc2gpLCBhbmQgZG9tYWluIGRlYXRoLCBh
cmUgbm90aWZpZWQgdG8gVklSUV9ET01fRVhDCisgKiByZWdhcmRsZXNzLgorICovCisvKiBYRU5f
RE9NQ1RMX3N1YnNjcmliZSAqLworc3RydWN0IHhlbl9kb21jdGxfc3Vic2NyaWJlIHsKKyAgICB1
aW50MzJfdCBwb3J0OyAvKiBJTiAqLworfTsKKworLyoKKyAqIERlZmluZSB0aGUgbWF4aW11bSBt
YWNoaW5lIGFkZHJlc3Mgc2l6ZSB3aGljaCBzaG91bGQgYmUgYWxsb2NhdGVkCisgKiB0byBhIGd1
ZXN0LgorICovCisvKiBYRU5fRE9NQ1RMX3NldF9tYWNoaW5lX2FkZHJlc3Nfc2l6ZSAqLworLyog
WEVOX0RPTUNUTF9nZXRfbWFjaGluZV9hZGRyZXNzX3NpemUgKi8KKworLyoKKyAqIERvIG5vdCBp
bmplY3Qgc3B1cmlvdXMgcGFnZSBmYXVsdHMgaW50byB0aGlzIGRvbWFpbi4KKyAqLworLyogWEVO
X0RPTUNUTF9zdXBwcmVzc19zcHVyaW91c19wYWdlX2ZhdWx0cyAqLworCisvKiBYRU5fRE9NQ1RM
X2RlYnVnX29wICovCisjZGVmaW5lIFhFTl9ET01DVExfREVCVUdfT1BfU0lOR0xFX1NURVBfT0ZG
ICAgICAgICAgMAorI2RlZmluZSBYRU5fRE9NQ1RMX0RFQlVHX09QX1NJTkdMRV9TVEVQX09OICAg
ICAgICAgIDEKK3N0cnVjdCB4ZW5fZG9tY3RsX2RlYnVnX29wIHsKKyAgICB1aW50MzJfdCBvcDsg
ICAvKiBJTiAqLworICAgIHVpbnQzMl90IHZjcHU7IC8qIElOICovCit9OworCisvKgorICogUmVx
dWVzdCBhIHBhcnRpY3VsYXIgcmVjb3JkIGZyb20gdGhlIEhWTSBjb250ZXh0CisgKi8KKy8qIFhF
Tl9ET01DVExfZ2V0aHZtY29udGV4dF9wYXJ0aWFsICovCitzdHJ1Y3QgeGVuX2RvbWN0bF9odm1j
b250ZXh0X3BhcnRpYWwgeworICAgIHVpbnQzMl90IHR5cGU7ICAgICAgICAgICAgICAgICAgICAg
IC8qIElOOiBUeXBlIG9mIHJlY29yZCByZXF1aXJlZCAqLworICAgIHVpbnQzMl90IGluc3RhbmNl
OyAgICAgICAgICAgICAgICAgIC8qIElOOiBJbnN0YW5jZSBvZiB0aGF0IHR5cGUgKi8KKyAgICB1
aW50NjRfYWxpZ25lZF90IGJ1ZnN6OyAgICAgICAgICAgICAvKiBJTjogc2l6ZSBvZiBidWZmZXIg
Ki8KKyAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQ4KSBidWZmZXI7ICAvKiBPVVQ6IGJ1ZmZl
ciB0byB3cml0ZSByZWNvcmQgaW50byAqLworfTsKKworLyogWEVOX0RPTUNUTF9kaXNhYmxlX21p
Z3JhdGUgKi8KK3N0cnVjdCB4ZW5fZG9tY3RsX2Rpc2FibGVfbWlncmF0ZSB7CisgICAgdWludDMy
X3QgZGlzYWJsZTsgLyogSU46IDE6IGRpc2FibGUgbWlncmF0aW9uIGFuZCByZXN0b3JlICovCit9
OworCisKKy8qIFhFTl9ET01DVExfZ2V0dHNjaW5mbyAqLworLyogWEVOX0RPTUNUTF9zZXR0c2Np
bmZvICovCitzdHJ1Y3QgeGVuX2RvbWN0bF90c2NfaW5mbyB7CisgICAgLyogSU4vT1VUICovCisg
ICAgdWludDMyX3QgdHNjX21vZGU7CisgICAgdWludDMyX3QgZ3RzY19raHo7CisgICAgdWludDMy
X3QgaW5jYXJuYXRpb247CisgICAgdWludDMyX3QgcGFkOworICAgIHVpbnQ2NF9hbGlnbmVkX3Qg
ZWxhcHNlZF9uc2VjOworfTsKKworLyogWEVOX0RPTUNUTF9nZGJzeF9ndWVzdG1lbWlvICAgICAg
Z3Vlc3QgbWVtIGlvICovCitzdHJ1Y3QgeGVuX2RvbWN0bF9nZGJzeF9tZW1pbyB7CisgICAgLyog
SU4gKi8KKyAgICB1aW50NjRfYWxpZ25lZF90IHBnZDN2YWw7Lyogb3B0aW9uYWw6IGluaXRfbW0u
cGdkWzNdIHZhbHVlICovCisgICAgdWludDY0X2FsaWduZWRfdCBndmE7ICAgIC8qIGd1ZXN0IHZp
cnR1YWwgYWRkcmVzcyAqLworICAgIHVpbnQ2NF9hbGlnbmVkX3QgdXZhOyAgICAvKiB1c2VyIGJ1
ZmZlciB2aXJ0dWFsIGFkZHJlc3MgKi8KKyAgICB1aW50MzJfdCAgICAgICAgIGxlbjsgICAgLyog
bnVtYmVyIG9mIGJ5dGVzIHRvIHJlYWQvd3JpdGUgKi8KKyAgICB1aW50OF90ICAgICAgICAgIGd3
cjsgICAgLyogMCA9IHJlYWQgZnJvbSBndWVzdC4gMSA9IHdyaXRlIHRvIGd1ZXN0ICovCisgICAg
LyogT1VUICovCisgICAgdWludDMyX3QgICAgICAgICByZW1haW47IC8qIGJ5dGVzIHJlbWFpbmlu
ZyB0byBiZSBjb3BpZWQgKi8KK307CisKKy8qIFhFTl9ET01DVExfZ2Ric3hfcGF1c2V2Y3B1ICov
CisvKiBYRU5fRE9NQ1RMX2dkYnN4X3VucGF1c2V2Y3B1ICovCitzdHJ1Y3QgeGVuX2RvbWN0bF9n
ZGJzeF9wYXVzZXVucF92Y3B1IHsgLyogcGF1c2UvdW5wYXVzZSBhIHZjcHUgKi8KKyAgICB1aW50
MzJfdCAgICAgICAgIHZjcHU7ICAgICAgICAgLyogd2hpY2ggdmNwdSAqLworfTsKKworLyogWEVO
X0RPTUNUTF9nZGJzeF9kb21zdGF0dXMgKi8KK3N0cnVjdCB4ZW5fZG9tY3RsX2dkYnN4X2RvbXN0
YXR1cyB7CisgICAgLyogT1VUICovCisgICAgdWludDhfdCAgICAgICAgICBwYXVzZWQ7ICAgICAv
KiBpcyB0aGUgZG9tYWluIHBhdXNlZCAqLworICAgIHVpbnQzMl90ICAgICAgICAgdmNwdV9pZDsg
ICAgLyogYW55IHZjcHUgaW4gYW4gZXZlbnQ/ICovCisgICAgdWludDMyX3QgICAgICAgICB2Y3B1
X2V2OyAgICAvKiBpZiB5ZXMsIHdoYXQgZXZlbnQ/ICovCit9OworCisvKgorICogVk0gZXZlbnQg
b3BlcmF0aW9ucworICovCisKKy8qIFhFTl9ET01DVExfdm1fZXZlbnRfb3AgKi8KKworLyoKKyAq
IFRoZXJlIGFyZSBjdXJyZW50bHkgdGhyZWUgcmluZ3MgYXZhaWxhYmxlIGZvciBWTSBldmVudHM6
CisgKiBzaGFyaW5nLCBtb25pdG9yIGFuZCBwYWdpbmcuIFRoaXMgaHlwZXJjYWxsIGFsbG93cyBv
bmUgdG8KKyAqIGNvbnRyb2wgdGhlc2UgcmluZ3MgKGVuYWJsZS9kaXNhYmxlKSwgYXMgd2VsbCBh
cyB0byBzaWduYWwKKyAqIHRvIHRoZSBoeXBlcnZpc29yIHRvIHB1bGwgcmVzcG9uc2VzIChyZXN1
bWUpIGZyb20gdGhlIGdpdmVuCisgKiByaW5nLgorICovCisjZGVmaW5lIFhFTl9WTV9FVkVOVF9F
TkFCTEUgICAgICAgICAgICAgICAwCisjZGVmaW5lIFhFTl9WTV9FVkVOVF9ESVNBQkxFICAgICAg
ICAgICAgICAxCisjZGVmaW5lIFhFTl9WTV9FVkVOVF9SRVNVTUUgICAgICAgICAgICAgICAyCisK
Ky8qCisgKiBEb21haW4gbWVtb3J5IHBhZ2luZworICogUGFnZSBtZW1vcnkgaW4gYW5kIG91dC4K
KyAqIERvbWN0bCBpbnRlcmZhY2UgdG8gc2V0IHVwIGFuZCB0ZWFyIGRvd24gdGhlIAorICogcGFn
ZXI8LT5oeXBlcnZpc29yIGludGVyZmFjZS4gVXNlIFhFTk1FTV9wYWdpbmdfb3AqCisgKiB0byBw
ZXJmb3JtIHBlci1wYWdlIG9wZXJhdGlvbnMuCisgKgorICogVGhlIFhFTl9WTV9FVkVOVF9QQUdJ
TkdfRU5BQkxFIGRvbWN0bCByZXR1cm5zIHNldmVyYWwKKyAqIG5vbi1zdGFuZGFyZCBlcnJvciBj
b2RlcyB0byBpbmRpY2F0ZSB3aHkgcGFnaW5nIGNvdWxkIG5vdCBiZSBlbmFibGVkOgorICogRU5P
REVWIC0gaG9zdCBsYWNrcyBIQVAgc3VwcG9ydCAoRVBUL05QVCkgb3IgSEFQIGlzIGRpc2FibGVk
IGluIGd1ZXN0CisgKiBFTUxJTksgLSBndWVzdCBoYXMgaW9tbXUgcGFzc3Rocm91Z2ggZW5hYmxl
ZAorICogRVhERVYgIC0gZ3Vlc3QgaGFzIFBvRCBlbmFibGVkCisgKiBFQlVTWSAgLSBndWVzdCBo
YXMgb3IgaGFkIHBhZ2luZyBlbmFibGVkLCByaW5nIGJ1ZmZlciBzdGlsbCBhY3RpdmUKKyAqLwor
I2RlZmluZSBYRU5fRE9NQ1RMX1ZNX0VWRU5UX09QX1BBR0lORyAgICAgICAgICAgIDEKKworLyoK
KyAqIE1vbml0b3IgaGVscGVyLgorICoKKyAqIEFzIHdpdGggcGFnaW5nLCB1c2UgdGhlIGRvbWN0
bCBmb3IgdGVhcmRvd24vc2V0dXAgb2YgdGhlCisgKiBoZWxwZXI8LT5oeXBlcnZpc29yIGludGVy
ZmFjZS4KKyAqCisgKiBUaGUgbW9uaXRvciBpbnRlcmZhY2UgY2FuIGJlIHVzZWQgdG8gcmVnaXN0
ZXIgZm9yIHZhcmlvdXMgVk0gZXZlbnRzLiBGb3IKKyAqIGV4YW1wbGUsIHRoZXJlIGFyZSBIVk0g
aHlwZXJjYWxscyB0byBzZXQgdGhlIHBlci1wYWdlIGFjY2VzcyBwZXJtaXNzaW9ucworICogb2Yg
ZXZlcnkgcGFnZSBpbiBhIGRvbWFpbi4gIFdoZW4gb25lIG9mIHRoZXNlIHBlcm1pc3Npb25zLS1p
bmRlcGVuZGVudCwKKyAqIHJlYWQsIHdyaXRlLCBhbmQgZXhlY3V0ZS0taXMgdmlvbGF0ZWQsIHRo
ZSBWQ1BVIGlzIHBhdXNlZCBhbmQgYSBtZW1vcnkgZXZlbnQKKyAqIGlzIHNlbnQgd2l0aCB3aGF0
IGhhcHBlbmVkLiBUaGUgbWVtb3J5IGV2ZW50IGhhbmRsZXIgY2FuIHRoZW4gcmVzdW1lIHRoZQor
ICogVkNQVSBhbmQgcmVkbyB0aGUgYWNjZXNzIHdpdGggYSBYRU5fVk1fRVZFTlRfUkVTVU1FIG9w
dGlvbi4KKyAqCisgKiBTZWUgcHVibGljL3ZtX2V2ZW50LmggZm9yIHRoZSBsaXN0IG9mIGF2YWls
YWJsZSBldmVudHMgdGhhdCBjYW4gYmUKKyAqIHN1YnNjcmliZWQgdG8gdmlhIHRoZSBtb25pdG9y
IGludGVyZmFjZS4KKyAqCisgKiBUaGUgWEVOX1ZNX0VWRU5UX01PTklUT1JfKiBkb21jdGxzIHJl
dHVybnMKKyAqIG5vbi1zdGFuZGFyZCBlcnJvciBjb2RlcyB0byBpbmRpY2F0ZSB3aHkgYWNjZXNz
IGNvdWxkIG5vdCBiZSBlbmFibGVkOgorICogRU5PREVWIC0gaG9zdCBsYWNrcyBIQVAgc3VwcG9y
dCAoRVBUL05QVCkgb3IgSEFQIGlzIGRpc2FibGVkIGluIGd1ZXN0CisgKiBFQlVTWSAgLSBndWVz
dCBoYXMgb3IgaGFkIGFjY2VzcyBlbmFibGVkLCByaW5nIGJ1ZmZlciBzdGlsbCBhY3RpdmUKKyAq
CisgKi8KKyNkZWZpbmUgWEVOX0RPTUNUTF9WTV9FVkVOVF9PUF9NT05JVE9SICAgICAgICAgICAy
CisKKy8qCisgKiBTaGFyaW5nIEVOT01FTSBoZWxwZXIuCisgKgorICogQXMgd2l0aCBwYWdpbmcs
IHVzZSB0aGUgZG9tY3RsIGZvciB0ZWFyZG93bi9zZXR1cCBvZiB0aGUKKyAqIGhlbHBlcjwtPmh5
cGVydmlzb3IgaW50ZXJmYWNlLgorICoKKyAqIElmIHNldHVwLCB0aGlzIHJpbmcgaXMgdXNlZCB0
byBjb21tdW5pY2F0ZSBmYWlsZWQgYWxsb2NhdGlvbnMKKyAqIGluIHRoZSB1bnNoYXJlIHBhdGgu
IFhFTk1FTV9zaGFyaW5nX29wX3Jlc3VtZSBpcyB1c2VkIHRvIHdha2UgdXAKKyAqIHZjcHVzIHRo
YXQgY291bGQgbm90IHVuc2hhcmUuCisgKgorICogTm90ZSB0aGF0IHNocmluZyBjYW4gYmUgdHVy
bmVkIG9uIChhcyBwZXIgdGhlIGRvbWN0bCBiZWxvdykKKyAqICp3aXRob3V0KiB0aGlzIHJpbmcg
YmVpbmcgc2V0dXAuCisgKi8KKyNkZWZpbmUgWEVOX0RPTUNUTF9WTV9FVkVOVF9PUF9TSEFSSU5H
ICAgICAgICAgICAzCisKKy8qIFVzZSBmb3IgdGVhcmRvd24vc2V0dXAgb2YgaGVscGVyPC0+aHlw
ZXJ2aXNvciBpbnRlcmZhY2UgZm9yIHBhZ2luZywgCisgKiBhY2Nlc3MgYW5kIHNoYXJpbmcuKi8K
K3N0cnVjdCB4ZW5fZG9tY3RsX3ZtX2V2ZW50X29wIHsKKyAgICB1aW50MzJfdCAgICAgICBvcDsg
ICAgICAgICAgIC8qIFhFTl9WTV9FVkVOVF8qICovCisgICAgdWludDMyX3QgICAgICAgbW9kZTsg
ICAgICAgICAvKiBYRU5fRE9NQ1RMX1ZNX0VWRU5UX09QXyogKi8KKworICAgIHVpbnQzMl90IHBv
cnQ7ICAgICAgICAgICAgICAvKiBPVVQ6IGV2ZW50IGNoYW5uZWwgZm9yIHJpbmcgKi8KK307CisK
Ky8qCisgKiBNZW1vcnkgc2hhcmluZyBvcGVyYXRpb25zCisgKi8KKy8qIFhFTl9ET01DVExfbWVt
X3NoYXJpbmdfb3AuCisgKiBUaGUgQ09OVFJPTCBzdWItZG9tY3RsIGlzIHVzZWQgZm9yIGJyaW5n
dXAvdGVhcmRvd24uICovCisjZGVmaW5lIFhFTl9ET01DVExfTUVNX1NIQVJJTkdfQ09OVFJPTCAg
ICAgICAgICAwCisKK3N0cnVjdCB4ZW5fZG9tY3RsX21lbV9zaGFyaW5nX29wIHsKKyAgICB1aW50
OF90IG9wOyAvKiBYRU5fRE9NQ1RMX01FTV9TSEFSSU5HXyogKi8KKworICAgIHVuaW9uIHsKKyAg
ICAgICAgdWludDhfdCBlbmFibGU7ICAgICAgICAgICAgICAgICAgIC8qIENPTlRST0wgKi8KKyAg
ICB9IHU7Cit9OworCitzdHJ1Y3QgeGVuX2RvbWN0bF9hdWRpdF9wMm0geworICAgIC8qIE9VVCBl
cnJvciBjb3VudHMgKi8KKyAgICB1aW50NjRfdCBvcnBoYW5zOworICAgIHVpbnQ2NF90IG0ycF9i
YWQ7CisgICAgdWludDY0X3QgcDJtX2JhZDsKK307CisKK3N0cnVjdCB4ZW5fZG9tY3RsX3NldF92
aXJxX2hhbmRsZXIgeworICAgIHVpbnQzMl90IHZpcnE7IC8qIElOICovCit9OworCisjaWYgZGVm
aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQorLyogWEVOX0RPTUNUTF9zZXR2
Y3B1ZXh0c3RhdGUgKi8KKy8qIFhFTl9ET01DVExfZ2V0dmNwdWV4dHN0YXRlICovCitzdHJ1Y3Qg
eGVuX2RvbWN0bF92Y3B1ZXh0c3RhdGUgeworICAgIC8qIElOOiBWQ1BVIHRoYXQgdGhpcyBjYWxs
IGFwcGxpZXMgdG8uICovCisgICAgdWludDMyX3QgICAgICAgICB2Y3B1OworICAgIC8qCisgICAg
ICogU0VUOiBJZ25vcmVkLgorICAgICAqIEdFVDogeGZlYXR1cmUgc3VwcG9ydCBtYXNrIG9mIHN0
cnVjdCAoSU4vT1VUKQorICAgICAqIHhmZWF0dXJlIG1hc2sgaXMgc2VydmVkIGFzIGlkZW50aWZp
Y2F0aW9ucyBvZiB0aGUgc2F2aW5nIGZvcm1hdAorICAgICAqIHNvIHRoYXQgY29tcGF0aWJsZSBD
UFVzIGNhbiBoYXZlIGEgY2hlY2sgb24gZm9ybWF0IHRvIGRlY2lkZQorICAgICAqIHdoZXRoZXIg
aXQgY2FuIHJlc3RvcmUuCisgICAgICovCisgICAgdWludDY0X2FsaWduZWRfdCAgICAgICAgIHhm
ZWF0dXJlX21hc2s7CisgICAgLyoKKyAgICAgKiBTRVQ6IFNpemUgb2Ygc3RydWN0IChJTikKKyAg
ICAgKiBHRVQ6IFNpemUgb2Ygc3RydWN0IChJTi9PVVQpCisgICAgICovCisgICAgdWludDY0X2Fs
aWduZWRfdCAgICAgICAgIHNpemU7CisgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh1aW50NjQpIGJ1
ZmZlcjsKK307CisjZW5kaWYKKworLyogWEVOX0RPTUNUTF9zZXRfYWNjZXNzX3JlcXVpcmVkOiBz
ZXRzIHdoZXRoZXIgYSBtZW1vcnkgZXZlbnQgbGlzdGVuZXIKKyAqIG11c3QgYmUgcHJlc2VudCB0
byBoYW5kbGUgcGFnZSBhY2Nlc3MgZXZlbnRzOiBpZiBmYWxzZSwgdGhlIHBhZ2UKKyAqIGFjY2Vz
cyB3aWxsIHJldmVydCB0byBmdWxsIHBlcm1pc3Npb25zIGlmIG5vIG9uZSBpcyBsaXN0ZW5pbmc7
CisgKiAgKi8KK3N0cnVjdCB4ZW5fZG9tY3RsX3NldF9hY2Nlc3NfcmVxdWlyZWQgeworICAgIHVp
bnQ4X3QgYWNjZXNzX3JlcXVpcmVkOworfTsKKworc3RydWN0IHhlbl9kb21jdGxfc2V0X2Jyb2tl
bl9wYWdlX3AybSB7CisgICAgdWludDY0X2FsaWduZWRfdCBwZm47Cit9OworCisvKgorICogWEVO
X0RPTUNUTF9zZXRfbWF4X2V2dGNobjogc2V0cyB0aGUgbWF4aW11bSBldmVudCBjaGFubmVsIHBv
cnQKKyAqIG51bWJlciB0aGUgZ3Vlc3QgbWF5IHVzZS4gIFVzZSB0aGlzIGxpbWl0IHRoZSBhbW91
bnQgb2YgcmVzb3VyY2VzCisgKiAoZ2xvYmFsIG1hcHBpbmcgc3BhY2UsIHhlbmhlYXApIGEgZ3Vl
c3QgbWF5IHVzZSBmb3IgZXZlbnQgY2hhbm5lbHMuCisgKi8KK3N0cnVjdCB4ZW5fZG9tY3RsX3Nl
dF9tYXhfZXZ0Y2huIHsKKyAgICB1aW50MzJfdCBtYXhfcG9ydDsKK307CisKKy8qCisgKiBBUk06
IENsZWFuIGFuZCBpbnZhbGlkYXRlIGNhY2hlcyBhc3NvY2lhdGVkIHdpdGggZ2l2ZW4gcmVnaW9u
IG9mCisgKiBndWVzdCBtZW1vcnkuCisgKi8KK3N0cnVjdCB4ZW5fZG9tY3RsX2NhY2hlZmx1c2gg
eworICAgIC8qIElOOiBwYWdlIHJhbmdlIHRvIGZsdXNoLiAqLworICAgIHhlbl9wZm5fdCBzdGFy
dF9wZm4sIG5yX3BmbnM7Cit9OworCisjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf
X3g4Nl82NF9fKQorc3RydWN0IHhlbl9kb21jdGxfdmNwdV9tc3IgeworICAgIHVpbnQzMl90ICAg
ICAgICAgaW5kZXg7CisgICAgdWludDMyX3QgICAgICAgICByZXNlcnZlZDsKKyAgICB1aW50NjRf
YWxpZ25lZF90IHZhbHVlOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxfdmNwdV9tc3Ig
eGVuX2RvbWN0bF92Y3B1X21zcl90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0
bF92Y3B1X21zcl90KTsKKworLyoKKyAqIFhFTl9ET01DVExfc2V0X3ZjcHVfbXNycyAvIFhFTl9E
T01DVExfZ2V0X3ZjcHVfbXNycy4KKyAqCisgKiBJbnB1dDoKKyAqIC0gQSBOVUxMICdtc3JzJyBn
dWVzdCBoYW5kbGUgaXMgYSByZXF1ZXN0IGZvciB0aGUgbWF4aW11bSAnbXNyX2NvdW50Jy4KKyAq
IC0gT3RoZXJ3aXNlLCAnbXNyX2NvdW50JyBpcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gJ21z
cnMnLgorICoKKyAqIE91dHB1dCBmb3IgZ2V0OgorICogLSBJZiAnbXNyX2NvdW50JyBpcyBsZXNz
IHRoYW4gdGhlIG51bWJlciBYZW4gbmVlZHMgdG8gd3JpdGUsIC1FTk9CVUZTIHNoYWxsCisgKiAg
IGJlIHJldHVybmVkIGFuZCAnbXNyX2NvdW50JyB1cGRhdGVkIHRvIHJlZmxlY3QgdGhlIGludGVu
ZGVkIG51bWJlci4KKyAqIC0gT24gc3VjY2VzcywgJ21zcl9jb3VudCcgc2hhbGwgaW5kaWNhdGUg
dGhlIG51bWJlciBvZiBNU1JzIHdyaXR0ZW4sIHdoaWNoCisgKiAgIG1heSBiZSBsZXNzIHRoYW4g
dGhlIG1heGltdW0gaWYgc29tZSBhcmUgbm90IGN1cnJlbnRseSB1c2VkIGJ5IHRoZSB2Y3B1Lgor
ICoKKyAqIE91dHB1dCBmb3Igc2V0OgorICogLSBJZiBYZW4gZW5jb3VudGVycyBhbiBlcnJvciB3
aXRoIGEgc3BlY2lmaWMgTVNSLCAtRUlOVkFMIHNoYWxsIGJlIHJldHVybmVkCisgKiAgIGFuZCAn
bXNyX2NvdW50JyBzaGFsbCBiZSBzZXQgdG8gdGhlIG9mZmVuZGluZyBpbmRleCwgdG8gYWlkIGRl
YnVnZ2luZy4KKyAqLworc3RydWN0IHhlbl9kb21jdGxfdmNwdV9tc3JzIHsKKyAgICB1aW50MzJf
dCB2Y3B1OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSU4gICAgICovCisg
ICAgdWludDMyX3QgbXNyX2NvdW50OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElO
L09VVCAqLworICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQoeGVuX2RvbWN0bF92Y3B1X21zcl90KSBt
c3JzOyAvKiBJTi9PVVQgKi8KK307CisjZW5kaWYKKworLyogWEVOX0RPTUNUTF9zZXR2bnVtYWlu
Zm86IHNwZWNpZmllcyBhIHZpcnR1YWwgTlVNQSB0b3BvbG9neSBmb3IgdGhlIGd1ZXN0ICovCitz
dHJ1Y3QgeGVuX2RvbWN0bF92bnVtYSB7CisgICAgLyogSU46IG51bWJlciBvZiB2TlVNQSBub2Rl
cyB0byBzZXR1cC4gU2hhbGwgYmUgZ3JlYXRlciB0aGFuIDAgKi8KKyAgICB1aW50MzJfdCBucl92
bm9kZXM7CisgICAgLyogSU46IG51bWJlciBvZiBtZW1vcnkgcmFuZ2VzIHRvIHNldHVwICovCisg
ICAgdWludDMyX3QgbnJfdm1lbXJhbmdlczsKKyAgICAvKgorICAgICAqIElOOiBudW1iZXIgb2Yg
dkNQVXMgb2YgdGhlIGRvbWFpbiAodXNlZCBhcyBzaXplIG9mIHRoZSB2Y3B1X3RvX3Zub2RlCisg
ICAgICogYXJyYXkgZGVjbGFyZWQgYmVsb3cpLiBTaGFsbCBiZSBlcXVhbCB0byB0aGUgZG9tYWlu
J3MgbWF4X3ZjcHVzLgorICAgICAqLworICAgIHVpbnQzMl90IG5yX3ZjcHVzOworICAgIHVpbnQz
Ml90IHBhZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbXVzdCBiZSB6ZXJv
ICovCisKKyAgICAvKgorICAgICAqIElOOiBhcnJheSBmb3Igc3BlY2lmeWluZyB0aGUgZGlzdGFu
Y2VzIG9mIHRoZSB2TlVNQSBub2RlcworICAgICAqIGJldHdlZW4gZWFjaCBvdGhlcnMuIFNoYWxs
IGhhdmUgbnJfdm5vZGVzKm5yX3Zub2RlcyBlbGVtZW50cy4KKyAgICAgKi8KKyAgICBYRU5fR1VF
U1RfSEFORExFXzY0KHVpbnQpIHZkaXN0YW5jZTsKKyAgICAvKgorICAgICAqIElOOiBhcnJheSBm
b3Igc3BlY2lmeWluZyB0byB3aGF0IHZOVU1BIG5vZGUgZWFjaCB2Q1BVIGJlbG9uZ3MuCisgICAg
ICogU2hhbGwgaGF2ZSBucl92Y3B1cyBlbGVtZW50cy4KKyAgICAgKi8KKyAgICBYRU5fR1VFU1Rf
SEFORExFXzY0KHVpbnQpIHZjcHVfdG9fdm5vZGU7CisgICAgLyoKKyAgICAgKiBJTjogYXJyYXkg
Zm9yIHNwZWNpZnlpbmcgb24gd2hhdCBwaHlzaWNhbCBOVU1BIG5vZGUgZWFjaCB2TlVNQQorICAg
ICAqIG5vZGUgaXMgcGxhY2VkLiBTaGFsbCBoYXZlIG5yX3Zub2RlcyBlbGVtZW50cy4KKyAgICAg
Ki8KKyAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQpIHZub2RlX3RvX3Bub2RlOworICAgIC8q
CisgICAgICogSU46IGFycmF5IGZvciBzcGVjaWZ5aW5nIHRoZSBtZW1vcnkgcmFuZ2VzLiBTaGFs
bCBoYXZlCisgICAgICogbnJfdm1lbXJhbmdlcyBlbGVtZW50cy4KKyAgICAgKi8KKyAgICBYRU5f
R1VFU1RfSEFORExFXzY0KHhlbl92bWVtcmFuZ2VfdCkgdm1lbXJhbmdlOworfTsKKworc3RydWN0
IHhlbl9kb21jdGxfcHNyX2NtdF9vcCB7CisjZGVmaW5lIFhFTl9ET01DVExfUFNSX0NNVF9PUF9E
RVRBQ0ggICAgICAgICAwCisjZGVmaW5lIFhFTl9ET01DVExfUFNSX0NNVF9PUF9BVFRBQ0ggICAg
ICAgICAxCisjZGVmaW5lIFhFTl9ET01DVExfUFNSX0NNVF9PUF9RVUVSWV9STUlEICAgICAyCisg
ICAgdWludDMyX3QgY21kOworICAgIHVpbnQzMl90IGRhdGE7Cit9OworCisvKiAgWEVOX0RPTUNU
TF9NT05JVE9SXyoKKyAqCisgKiBFbmFibGUvZGlzYWJsZSBtb25pdG9yaW5nIHZhcmlvdXMgVk0g
ZXZlbnRzLgorICogVGhpcyBkb21jdGwgY29uZmlndXJlcyB3aGF0IGV2ZW50cyB3aWxsIGJlIHJl
cG9ydGVkIHRvIGhlbHBlciBhcHBzCisgKiB2aWEgdGhlIHJpbmcgYnVmZmVyICJNT05JVE9SIi4g
VGhlIHJpbmcgaGFzIHRvIGJlIGZpcnN0IGVuYWJsZWQKKyAqIHdpdGggdGhlIGRvbWN0bCBYRU5f
RE9NQ1RMX1ZNX0VWRU5UX09QX01PTklUT1IuCisgKgorICogR0VUX0NBUEFCSUxJVElFUyBjYW4g
YmUgdXNlZCB0byBkZXRlcm1pbmUgd2hpY2ggb2YgdGhlc2UgZmVhdHVyZXMgaXMKKyAqIGF2YWls
YWJsZSBvbiBhIGdpdmVuIHBsYXRmb3JtLgorICoKKyAqIE5PVElDRTogbWVtX2FjY2VzcyBldmVu
dHMgYXJlIGFsc28gZGVsaXZlcmVkIHZpYSB0aGUgIk1PTklUT1IiIHJpbmcgYnVmZmVyOworICog
aG93ZXZlciwgZW5hYmxpbmcvZGlzYWJsaW5nIHRob3NlIGV2ZW50cyBpcyBwZXJmb3JtZWQgd2l0
aCB0aGUgdXNlIG9mCisgKiBtZW1vcnlfb3AgaHlwZXJjYWxscyEKKyAqLworI2RlZmluZSBYRU5f
RE9NQ1RMX01PTklUT1JfT1BfRU5BQkxFICAgICAgICAgICAgMAorI2RlZmluZSBYRU5fRE9NQ1RM
X01PTklUT1JfT1BfRElTQUJMRSAgICAgICAgICAgMQorI2RlZmluZSBYRU5fRE9NQ1RMX01PTklU
T1JfT1BfR0VUX0NBUEFCSUxJVElFUyAgMgorI2RlZmluZSBYRU5fRE9NQ1RMX01PTklUT1JfT1Bf
RU1VTEFURV9FQUNIX1JFUCAgMworCisjZGVmaW5lIFhFTl9ET01DVExfTU9OSVRPUl9FVkVOVF9X
UklURV9DVFJMUkVHICAgICAgICAgMAorI2RlZmluZSBYRU5fRE9NQ1RMX01PTklUT1JfRVZFTlRf
TU9WX1RPX01TUiAgICAgICAgICAgIDEKKyNkZWZpbmUgWEVOX0RPTUNUTF9NT05JVE9SX0VWRU5U
X1NJTkdMRVNURVAgICAgICAgICAgICAyCisjZGVmaW5lIFhFTl9ET01DVExfTU9OSVRPUl9FVkVO
VF9TT0ZUV0FSRV9CUkVBS1BPSU5UICAgMworI2RlZmluZSBYRU5fRE9NQ1RMX01PTklUT1JfRVZF
TlRfR1VFU1RfUkVRVUVTVCAgICAgICAgIDQKKyNkZWZpbmUgWEVOX0RPTUNUTF9NT05JVE9SX0VW
RU5UX0RFQlVHX0VYQ0VQVElPTiAgICAgICA1CisjZGVmaW5lIFhFTl9ET01DVExfTU9OSVRPUl9F
VkVOVF9DUFVJRCAgICAgICAgICAgICAgICAgNgorI2RlZmluZSBYRU5fRE9NQ1RMX01PTklUT1Jf
RVZFTlRfUFJJVklMRUdFRF9DQUxMICAgICAgIDcKKyNkZWZpbmUgWEVOX0RPTUNUTF9NT05JVE9S
X0VWRU5UX0lOVEVSUlVQVCAgICAgICAgICAgICA4CisjZGVmaW5lIFhFTl9ET01DVExfTU9OSVRP
Ul9FVkVOVF9ERVNDX0FDQ0VTUyAgICAgICAgICAgOQorI2RlZmluZSBYRU5fRE9NQ1RMX01PTklU
T1JfRVZFTlRfRU1VTF9VTklNUExFTUVOVEVEICAgIDEwCisKK3N0cnVjdCB4ZW5fZG9tY3RsX21v
bml0b3Jfb3AgeworICAgIHVpbnQzMl90IG9wOyAvKiBYRU5fRE9NQ1RMX01PTklUT1JfT1BfKiAq
LworCisgICAgLyoKKyAgICAgKiBXaGVuIHVzZWQgd2l0aCBFTkFCTEUvRElTQUJMRSB0aGlzIGhh
cyB0byBiZSBzZXQgdG8KKyAgICAgKiB0aGUgcmVxdWVzdGVkIFhFTl9ET01DVExfTU9OSVRPUl9F
VkVOVF8qIHZhbHVlLgorICAgICAqIFdpdGggR0VUX0NBUEFCSUxJVElFUyB0aGlzIGZpZWxkIHJl
dHVybnMgYSBiaXRtYXAgb2YKKyAgICAgKiBldmVudHMgc3VwcG9ydGVkIGJ5IHRoZSBwbGF0Zm9y
bSwgaW4gdGhlIGZvcm1hdAorICAgICAqICgxIDw8IFhFTl9ET01DVExfTU9OSVRPUl9FVkVOVF8q
KS4KKyAgICAgKi8KKyAgICB1aW50MzJfdCBldmVudDsKKworICAgIC8qCisgICAgICogRnVydGhl
ciBvcHRpb25zIHdoZW4gaXNzdWluZyBYRU5fRE9NQ1RMX01PTklUT1JfT1BfRU5BQkxFLgorICAg
ICAqLworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIC8qIFdoaWNo
IGNvbnRyb2wgcmVnaXN0ZXIgKi8KKyAgICAgICAgICAgIHVpbnQ4X3QgaW5kZXg7CisgICAgICAg
ICAgICAvKiBQYXVzZSB2Q1BVIHVudGlsIHJlc3BvbnNlICovCisgICAgICAgICAgICB1aW50OF90
IHN5bmM7CisgICAgICAgICAgICAvKiBTZW5kIGV2ZW50IG9ubHkgb24gYSBjaGFuZ2Ugb2YgdmFs
dWUgKi8KKyAgICAgICAgICAgIHVpbnQ4X3Qgb25jaGFuZ2Vvbmx5OworICAgICAgICAgICAgLyog
QWxsaWdubWVudCBwYWRkaW5nICovCisgICAgICAgICAgICB1aW50OF90IHBhZDE7CisgICAgICAg
ICAgICB1aW50MzJfdCBwYWQyOworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIFNlbmQg
ZXZlbnQgb25seSBpZiB0aGUgY2hhbmdlZCBiaXQgaW4gdGhlIGNvbnRyb2wgcmVnaXN0ZXIKKyAg
ICAgICAgICAgICAqIGlzIG5vdCBtYXNrZWQuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAg
IHVpbnQ2NF9hbGlnbmVkX3QgYml0bWFzazsKKyAgICAgICAgfSBtb3ZfdG9fY3I7CisKKyAgICAg
ICAgc3RydWN0IHsKKyAgICAgICAgICAgIHVpbnQzMl90IG1zcjsKKyAgICAgICAgfSBtb3ZfdG9f
bXNyOworCisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICAvKiBQYXVzZSB2Q1BVIHVudGls
IHJlc3BvbnNlICovCisgICAgICAgICAgICB1aW50OF90IHN5bmM7CisgICAgICAgICAgICB1aW50
OF90IGFsbG93X3VzZXJzcGFjZTsKKyAgICAgICAgfSBndWVzdF9yZXF1ZXN0OworCisgICAgICAg
IHN0cnVjdCB7CisgICAgICAgICAgICAvKiBQYXVzZSB2Q1BVIHVudGlsIHJlc3BvbnNlICovCisg
ICAgICAgICAgICB1aW50OF90IHN5bmM7CisgICAgICAgIH0gZGVidWdfZXhjZXB0aW9uOworICAg
IH0gdTsKK307CisKK3N0cnVjdCB4ZW5fZG9tY3RsX3Bzcl9jYXRfb3AgeworI2RlZmluZSBYRU5f
RE9NQ1RMX1BTUl9DQVRfT1BfU0VUX0wzX0NCTSAgICAgMAorI2RlZmluZSBYRU5fRE9NQ1RMX1BT
Ul9DQVRfT1BfR0VUX0wzX0NCTSAgICAgMQorI2RlZmluZSBYRU5fRE9NQ1RMX1BTUl9DQVRfT1Bf
U0VUX0wzX0NPREUgICAgMgorI2RlZmluZSBYRU5fRE9NQ1RMX1BTUl9DQVRfT1BfU0VUX0wzX0RB
VEEgICAgMworI2RlZmluZSBYRU5fRE9NQ1RMX1BTUl9DQVRfT1BfR0VUX0wzX0NPREUgICAgNAor
I2RlZmluZSBYRU5fRE9NQ1RMX1BTUl9DQVRfT1BfR0VUX0wzX0RBVEEgICAgNQorI2RlZmluZSBY
RU5fRE9NQ1RMX1BTUl9DQVRfT1BfU0VUX0wyX0NCTSAgICAgNgorI2RlZmluZSBYRU5fRE9NQ1RM
X1BTUl9DQVRfT1BfR0VUX0wyX0NCTSAgICAgNworICAgIHVpbnQzMl90IGNtZDsgICAgICAgLyog
SU46IFhFTl9ET01DVExfUFNSX0NBVF9PUF8qICovCisgICAgdWludDMyX3QgdGFyZ2V0OyAgICAv
KiBJTiAqLworICAgIHVpbnQ2NF90IGRhdGE7ICAgICAgLyogSU4vT1VUICovCit9OworCitzdHJ1
Y3QgeGVuX2RvbWN0bF9zZXRfZ250dGFiX2xpbWl0cyB7CisgICAgdWludDMyX3QgZ3JhbnRfZnJh
bWVzOyAgICAgLyogSU4gKi8KKyAgICB1aW50MzJfdCBtYXB0cmFja19mcmFtZXM7ICAvKiBJTiAq
LworfTsKKworLyogWEVOX0RPTUNUTF92dWFydF9vcCAqLworc3RydWN0IHhlbl9kb21jdGxfdnVh
cnRfb3AgeworI2RlZmluZSBYRU5fRE9NQ1RMX1ZVQVJUX09QX0lOSVQgIDAKKyAgICAgICAgdWlu
dDMyX3QgY21kOyAgICAgICAgICAgLyogWEVOX0RPTUNUTF9WVUFSVF9PUF8qICovCisjZGVmaW5l
IFhFTl9ET01DVExfVlVBUlRfVFlQRV9WUEwwMTEgMAorICAgICAgICB1aW50MzJfdCB0eXBlOyAg
ICAgICAgICAvKiBJTiAtIHR5cGUgb2YgdnVhcnQuCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqICAgICAgQ3VycmVudGx5IG9ubHkgdnBsMDExIHN1cHBvcnRlZC4KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgIHVpbnQ2NF9hbGlnbmVkX3QgIGdm
bjsgIC8qIElOIC0gZ3Vlc3QgZ2ZuIHRvIGJlIHVzZWQgYXMgYQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKiAgICAgIHJpbmcgYnVmZmVyLgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKi8KKyAgICAgICAgZG9taWRfdCBjb25zb2xlX2RvbWlkOyAgLyogSU4gLSBk
b21pZCBvZiBkb21haW4gcnVubmluZyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICogICAgICBiYWNrZW5kIGNvbnNvbGUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqLworICAgICAgICB1aW50OF90IHBhZFsyXTsKKyAgICAgICAgZXZ0Y2huX3BvcnRfdCBl
dnRjaG47ICAgLyogT1VUIC0gcmVtb3RlIHBvcnQgb2YgdGhlIGV2ZW50CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqICAgICAgIGNoYW5uZWwgdXNlZCBmb3Igc2VuZGluZworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICByaW5nIGJ1ZmZlciBldmVudHMu
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworfTsKKworc3RydWN0IHhlbl9k
b21jdGwgeworICAgIHVpbnQzMl90IGNtZDsKKyNkZWZpbmUgWEVOX0RPTUNUTF9jcmVhdGVkb21h
aW4gICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBYRU5fRE9NQ1RMX2Rlc3Ryb3lkb21haW4g
ICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIFhFTl9ET01DVExfcGF1c2Vkb21haW4gICAgICAg
ICAgICAgICAgICAgIDMKKyNkZWZpbmUgWEVOX0RPTUNUTF91bnBhdXNlZG9tYWluICAgICAgICAg
ICAgICAgICAgNAorI2RlZmluZSBYRU5fRE9NQ1RMX2dldGRvbWFpbmluZm8gICAgICAgICAgICAg
ICAgICA1CisjZGVmaW5lIFhFTl9ET01DVExfZ2V0bWVtbGlzdCAgICAgICAgICAgICAgICAgICAg
IDYKKy8qICNkZWZpbmUgWEVOX0RPTUNUTF9nZXRwYWdlZnJhbWVpbmZvICAgICAgICAgICAgNyBP
YnNvbGV0ZSAtIHVzZSBnZXRwYWdlZnJhbWVpbmZvMyAqLworLyogI2RlZmluZSBYRU5fRE9NQ1RM
X2dldHBhZ2VmcmFtZWluZm8yICAgICAgICAgICA4IE9ic29sZXRlIC0gdXNlIGdldHBhZ2VmcmFt
ZWluZm8zICovCisjZGVmaW5lIFhFTl9ET01DVExfc2V0dmNwdWFmZmluaXR5ICAgICAgICAgICAg
ICAgIDkKKyNkZWZpbmUgWEVOX0RPTUNUTF9zaGFkb3dfb3AgICAgICAgICAgICAgICAgICAgICAx
MAorI2RlZmluZSBYRU5fRE9NQ1RMX21heF9tZW0gICAgICAgICAgICAgICAgICAgICAgIDExCisj
ZGVmaW5lIFhFTl9ET01DVExfc2V0dmNwdWNvbnRleHQgICAgICAgICAgICAgICAgMTIKKyNkZWZp
bmUgWEVOX0RPTUNUTF9nZXR2Y3B1Y29udGV4dCAgICAgICAgICAgICAgICAxMworI2RlZmluZSBY
RU5fRE9NQ1RMX2dldHZjcHVpbmZvICAgICAgICAgICAgICAgICAgIDE0CisjZGVmaW5lIFhFTl9E
T01DVExfbWF4X3ZjcHVzICAgICAgICAgICAgICAgICAgICAgMTUKKyNkZWZpbmUgWEVOX0RPTUNU
TF9zY2hlZHVsZXJfb3AgICAgICAgICAgICAgICAgICAxNgorI2RlZmluZSBYRU5fRE9NQ1RMX3Nl
dGRvbWFpbmhhbmRsZSAgICAgICAgICAgICAgIDE3CisjZGVmaW5lIFhFTl9ET01DVExfc2V0ZGVi
dWdnaW5nICAgICAgICAgICAgICAgICAgMTgKKyNkZWZpbmUgWEVOX0RPTUNUTF9pcnFfcGVybWlz
c2lvbiAgICAgICAgICAgICAgICAxOQorI2RlZmluZSBYRU5fRE9NQ1RMX2lvbWVtX3Blcm1pc3Np
b24gICAgICAgICAgICAgIDIwCisjZGVmaW5lIFhFTl9ET01DVExfaW9wb3J0X3Blcm1pc3Npb24g
ICAgICAgICAgICAgMjEKKyNkZWZpbmUgWEVOX0RPTUNUTF9oeXBlcmNhbGxfaW5pdCAgICAgICAg
ICAgICAgICAyMgorI2RlZmluZSBYRU5fRE9NQ1RMX2FyY2hfc2V0dXAgICAgICAgICAgICAgICAg
ICAgIDIzIC8qIE9ic29sZXRlIElBNjQgb25seSAqLworI2RlZmluZSBYRU5fRE9NQ1RMX3NldHRp
bWVvZmZzZXQgICAgICAgICAgICAgICAgIDI0CisjZGVmaW5lIFhFTl9ET01DVExfZ2V0dmNwdWFm
ZmluaXR5ICAgICAgICAgICAgICAgMjUKKyNkZWZpbmUgWEVOX0RPTUNUTF9yZWFsX21vZGVfYXJl
YSAgICAgICAgICAgICAgICAyNiAvKiBPYnNvbGV0ZSBQUEMgb25seSAqLworI2RlZmluZSBYRU5f
RE9NQ1RMX3Jlc3VtZWRvbWFpbiAgICAgICAgICAgICAgICAgIDI3CisjZGVmaW5lIFhFTl9ET01D
VExfc2VuZHRyaWdnZXIgICAgICAgICAgICAgICAgICAgMjgKKyNkZWZpbmUgWEVOX0RPTUNUTF9z
dWJzY3JpYmUgICAgICAgICAgICAgICAgICAgICAyOQorI2RlZmluZSBYRU5fRE9NQ1RMX2dldGh2
bWNvbnRleHQgICAgICAgICAgICAgICAgIDMzCisjZGVmaW5lIFhFTl9ET01DVExfc2V0aHZtY29u
dGV4dCAgICAgICAgICAgICAgICAgMzQKKyNkZWZpbmUgWEVOX0RPTUNUTF9zZXRfYWRkcmVzc19z
aXplICAgICAgICAgICAgICAzNQorI2RlZmluZSBYRU5fRE9NQ1RMX2dldF9hZGRyZXNzX3NpemUg
ICAgICAgICAgICAgIDM2CisjZGVmaW5lIFhFTl9ET01DVExfYXNzaWduX2RldmljZSAgICAgICAg
ICAgICAgICAgMzcKKyNkZWZpbmUgWEVOX0RPTUNUTF9iaW5kX3B0X2lycSAgICAgICAgICAgICAg
ICAgICAzOAorI2RlZmluZSBYRU5fRE9NQ1RMX21lbW9yeV9tYXBwaW5nICAgICAgICAgICAgICAg
IDM5CisjZGVmaW5lIFhFTl9ET01DVExfaW9wb3J0X21hcHBpbmcgICAgICAgICAgICAgICAgNDAK
KyNkZWZpbmUgWEVOX0RPTUNUTF9waW5fbWVtX2NhY2hlYXR0ciAgICAgICAgICAgICA0MQorI2Rl
ZmluZSBYRU5fRE9NQ1RMX3NldF9leHRfdmNwdWNvbnRleHQgICAgICAgICAgIDQyCisjZGVmaW5l
IFhFTl9ET01DVExfZ2V0X2V4dF92Y3B1Y29udGV4dCAgICAgICAgICAgNDMKKyNkZWZpbmUgWEVO
X0RPTUNUTF9zZXRfb3B0X2ZlYXR1cmUgICAgICAgICAgICAgICA0NCAvKiBPYnNvbGV0ZSBJQTY0
IG9ubHkgKi8KKyNkZWZpbmUgWEVOX0RPTUNUTF90ZXN0X2Fzc2lnbl9kZXZpY2UgICAgICAgICAg
ICA0NQorI2RlZmluZSBYRU5fRE9NQ1RMX3NldF90YXJnZXQgICAgICAgICAgICAgICAgICAgIDQ2
CisjZGVmaW5lIFhFTl9ET01DVExfZGVhc3NpZ25fZGV2aWNlICAgICAgICAgICAgICAgNDcKKyNk
ZWZpbmUgWEVOX0RPTUNUTF91bmJpbmRfcHRfaXJxICAgICAgICAgICAgICAgICA0OAorI2RlZmlu
ZSBYRU5fRE9NQ1RMX3NldF9jcHVpZCAgICAgICAgICAgICAgICAgICAgIDQ5CisjZGVmaW5lIFhF
Tl9ET01DVExfZ2V0X2RldmljZV9ncm91cCAgICAgICAgICAgICAgNTAKKyNkZWZpbmUgWEVOX0RP
TUNUTF9zZXRfbWFjaGluZV9hZGRyZXNzX3NpemUgICAgICA1MQorI2RlZmluZSBYRU5fRE9NQ1RM
X2dldF9tYWNoaW5lX2FkZHJlc3Nfc2l6ZSAgICAgIDUyCisjZGVmaW5lIFhFTl9ET01DVExfc3Vw
cHJlc3Nfc3B1cmlvdXNfcGFnZV9mYXVsdHMgNTMKKyNkZWZpbmUgWEVOX0RPTUNUTF9kZWJ1Z19v
cCAgICAgICAgICAgICAgICAgICAgICA1NAorI2RlZmluZSBYRU5fRE9NQ1RMX2dldGh2bWNvbnRl
eHRfcGFydGlhbCAgICAgICAgIDU1CisjZGVmaW5lIFhFTl9ET01DVExfdm1fZXZlbnRfb3AgICAg
ICAgICAgICAgICAgICAgNTYKKyNkZWZpbmUgWEVOX0RPTUNUTF9tZW1fc2hhcmluZ19vcCAgICAg
ICAgICAgICAgICA1NworI2RlZmluZSBYRU5fRE9NQ1RMX2Rpc2FibGVfbWlncmF0ZSAgICAgICAg
ICAgICAgIDU4CisjZGVmaW5lIFhFTl9ET01DVExfZ2V0dHNjaW5mbyAgICAgICAgICAgICAgICAg
ICAgNTkKKyNkZWZpbmUgWEVOX0RPTUNUTF9zZXR0c2NpbmZvICAgICAgICAgICAgICAgICAgICA2
MAorI2RlZmluZSBYRU5fRE9NQ1RMX2dldHBhZ2VmcmFtZWluZm8zICAgICAgICAgICAgIDYxCisj
ZGVmaW5lIFhFTl9ET01DVExfc2V0dmNwdWV4dHN0YXRlICAgICAgICAgICAgICAgNjIKKyNkZWZp
bmUgWEVOX0RPTUNUTF9nZXR2Y3B1ZXh0c3RhdGUgICAgICAgICAgICAgICA2MworI2RlZmluZSBY
RU5fRE9NQ1RMX3NldF9hY2Nlc3NfcmVxdWlyZWQgICAgICAgICAgIDY0CisjZGVmaW5lIFhFTl9E
T01DVExfYXVkaXRfcDJtICAgICAgICAgICAgICAgICAgICAgNjUKKyNkZWZpbmUgWEVOX0RPTUNU
TF9zZXRfdmlycV9oYW5kbGVyICAgICAgICAgICAgICA2NgorI2RlZmluZSBYRU5fRE9NQ1RMX3Nl
dF9icm9rZW5fcGFnZV9wMm0gICAgICAgICAgIDY3CisjZGVmaW5lIFhFTl9ET01DVExfc2V0bm9k
ZWFmZmluaXR5ICAgICAgICAgICAgICAgNjgKKyNkZWZpbmUgWEVOX0RPTUNUTF9nZXRub2RlYWZm
aW5pdHkgICAgICAgICAgICAgICA2OQorI2RlZmluZSBYRU5fRE9NQ1RMX3NldF9tYXhfZXZ0Y2hu
ICAgICAgICAgICAgICAgIDcwCisjZGVmaW5lIFhFTl9ET01DVExfY2FjaGVmbHVzaCAgICAgICAg
ICAgICAgICAgICAgNzEKKyNkZWZpbmUgWEVOX0RPTUNUTF9nZXRfdmNwdV9tc3JzICAgICAgICAg
ICAgICAgICA3MgorI2RlZmluZSBYRU5fRE9NQ1RMX3NldF92Y3B1X21zcnMgICAgICAgICAgICAg
ICAgIDczCisjZGVmaW5lIFhFTl9ET01DVExfc2V0dm51bWFpbmZvICAgICAgICAgICAgICAgICAg
NzQKKyNkZWZpbmUgWEVOX0RPTUNUTF9wc3JfY210X29wICAgICAgICAgICAgICAgICAgICA3NQor
I2RlZmluZSBYRU5fRE9NQ1RMX21vbml0b3Jfb3AgICAgICAgICAgICAgICAgICAgIDc3CisjZGVm
aW5lIFhFTl9ET01DVExfcHNyX2NhdF9vcCAgICAgICAgICAgICAgICAgICAgNzgKKyNkZWZpbmUg
WEVOX0RPTUNUTF9zb2Z0X3Jlc2V0ICAgICAgICAgICAgICAgICAgICA3OQorI2RlZmluZSBYRU5f
RE9NQ1RMX3NldF9nbnR0YWJfbGltaXRzICAgICAgICAgICAgIDgwCisjZGVmaW5lIFhFTl9ET01D
VExfdnVhcnRfb3AgICAgICAgICAgICAgICAgICAgICAgODEKKyNkZWZpbmUgWEVOX0RPTUNUTF9n
ZGJzeF9ndWVzdG1lbWlvICAgICAgICAgICAgMTAwMAorI2RlZmluZSBYRU5fRE9NQ1RMX2dkYnN4
X3BhdXNldmNwdSAgICAgICAgICAgICAxMDAxCisjZGVmaW5lIFhFTl9ET01DVExfZ2Ric3hfdW5w
YXVzZXZjcHUgICAgICAgICAgIDEwMDIKKyNkZWZpbmUgWEVOX0RPTUNUTF9nZGJzeF9kb21zdGF0
dXMgICAgICAgICAgICAgMTAwMworICAgIHVpbnQzMl90IGludGVyZmFjZV92ZXJzaW9uOyAvKiBY
RU5fRE9NQ1RMX0lOVEVSRkFDRV9WRVJTSU9OICovCisgICAgZG9taWRfdCAgZG9tYWluOworICAg
IHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfY3JlYXRlZG9tYWluICAgICAgY3Jl
YXRlZG9tYWluOworICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9nZXRkb21haW5pbmZvICAgICBn
ZXRkb21haW5pbmZvOworICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9nZXRtZW1saXN0ICAgICAg
ICBnZXRtZW1saXN0OworICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9nZXRwYWdlZnJhbWVpbmZv
MyBnZXRwYWdlZnJhbWVpbmZvMzsKKyAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfbm9kZWFmZmlu
aXR5ICAgICAgbm9kZWFmZmluaXR5OworICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF92Y3B1YWZm
aW5pdHkgICAgICB2Y3B1YWZmaW5pdHk7CisgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX3NoYWRv
d19vcCAgICAgICAgIHNoYWRvd19vcDsKKyAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfbWF4X21l
bSAgICAgICAgICAgbWF4X21lbTsKKyAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfdmNwdWNvbnRl
eHQgICAgICAgdmNwdWNvbnRleHQ7CisgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX2dldHZjcHVp
bmZvICAgICAgIGdldHZjcHVpbmZvOworICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9tYXhfdmNw
dXMgICAgICAgICBtYXhfdmNwdXM7CisgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVkdWxl
cl9vcCAgICAgIHNjaGVkdWxlcl9vcDsKKyAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfc2V0ZG9t
YWluaGFuZGxlICAgc2V0ZG9tYWluaGFuZGxlOworICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9z
ZXRkZWJ1Z2dpbmcgICAgICBzZXRkZWJ1Z2dpbmc7CisgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3Rs
X2lycV9wZXJtaXNzaW9uICAgIGlycV9wZXJtaXNzaW9uOworICAgICAgICBzdHJ1Y3QgeGVuX2Rv
bWN0bF9pb21lbV9wZXJtaXNzaW9uICBpb21lbV9wZXJtaXNzaW9uOworICAgICAgICBzdHJ1Y3Qg
eGVuX2RvbWN0bF9pb3BvcnRfcGVybWlzc2lvbiBpb3BvcnRfcGVybWlzc2lvbjsKKyAgICAgICAg
c3RydWN0IHhlbl9kb21jdGxfaHlwZXJjYWxsX2luaXQgICAgaHlwZXJjYWxsX2luaXQ7CisgICAg
ICAgIHN0cnVjdCB4ZW5fZG9tY3RsX3NldHRpbWVvZmZzZXQgICAgIHNldHRpbWVvZmZzZXQ7Cisg
ICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX2Rpc2FibGVfbWlncmF0ZSAgIGRpc2FibGVfbWlncmF0
ZTsKKyAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfdHNjX2luZm8gICAgICAgICAgdHNjX2luZm87
CisgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX2h2bWNvbnRleHQgICAgICAgIGh2bWNvbnRleHQ7
CisgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX2h2bWNvbnRleHRfcGFydGlhbCBodm1jb250ZXh0
X3BhcnRpYWw7CisgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX2FkZHJlc3Nfc2l6ZSAgICAgIGFk
ZHJlc3Nfc2l6ZTsKKyAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfc2VuZHRyaWdnZXIgICAgICAg
c2VuZHRyaWdnZXI7CisgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX2dldF9kZXZpY2VfZ3JvdXAg
IGdldF9kZXZpY2VfZ3JvdXA7CisgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX2Fzc2lnbl9kZXZp
Y2UgICAgIGFzc2lnbl9kZXZpY2U7CisgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX2JpbmRfcHRf
aXJxICAgICAgIGJpbmRfcHRfaXJxOworICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9tZW1vcnlf
bWFwcGluZyAgICBtZW1vcnlfbWFwcGluZzsKKyAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfaW9w
b3J0X21hcHBpbmcgICAgaW9wb3J0X21hcHBpbmc7CisgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3Rs
X3Bpbl9tZW1fY2FjaGVhdHRyIHBpbl9tZW1fY2FjaGVhdHRyOworICAgICAgICBzdHJ1Y3QgeGVu
X2RvbWN0bF9leHRfdmNwdWNvbnRleHQgICBleHRfdmNwdWNvbnRleHQ7CisgICAgICAgIHN0cnVj
dCB4ZW5fZG9tY3RsX3NldF90YXJnZXQgICAgICAgIHNldF90YXJnZXQ7CisgICAgICAgIHN0cnVj
dCB4ZW5fZG9tY3RsX3N1YnNjcmliZSAgICAgICAgIHN1YnNjcmliZTsKKyAgICAgICAgc3RydWN0
IHhlbl9kb21jdGxfZGVidWdfb3AgICAgICAgICAgZGVidWdfb3A7CisgICAgICAgIHN0cnVjdCB4
ZW5fZG9tY3RsX3ZtX2V2ZW50X29wICAgICAgIHZtX2V2ZW50X29wOworICAgICAgICBzdHJ1Y3Qg
eGVuX2RvbWN0bF9tZW1fc2hhcmluZ19vcCAgICBtZW1fc2hhcmluZ19vcDsKKyNpZiBkZWZpbmVk
KF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCisgICAgICAgIHN0cnVjdCB4ZW5fZG9t
Y3RsX2NwdWlkICAgICAgICAgICAgIGNwdWlkOworICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF92
Y3B1ZXh0c3RhdGUgICAgICB2Y3B1ZXh0c3RhdGU7CisgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3Rs
X3ZjcHVfbXNycyAgICAgICAgIHZjcHVfbXNyczsKKyNlbmRpZgorICAgICAgICBzdHJ1Y3QgeGVu
X2RvbWN0bF9zZXRfYWNjZXNzX3JlcXVpcmVkIGFjY2Vzc19yZXF1aXJlZDsKKyAgICAgICAgc3Ry
dWN0IHhlbl9kb21jdGxfYXVkaXRfcDJtICAgICAgICAgYXVkaXRfcDJtOworICAgICAgICBzdHJ1
Y3QgeGVuX2RvbWN0bF9zZXRfdmlycV9oYW5kbGVyICBzZXRfdmlycV9oYW5kbGVyOworICAgICAg
ICBzdHJ1Y3QgeGVuX2RvbWN0bF9zZXRfbWF4X2V2dGNobiAgICBzZXRfbWF4X2V2dGNobjsKKyAg
ICAgICAgc3RydWN0IHhlbl9kb21jdGxfZ2Ric3hfbWVtaW8gICAgICAgZ2Ric3hfZ3Vlc3RfbWVt
aW87CisgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX3NldF9icm9rZW5fcGFnZV9wMm0gc2V0X2Jy
b2tlbl9wYWdlX3AybTsKKyAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfY2FjaGVmbHVzaCAgICAg
ICAgY2FjaGVmbHVzaDsKKyAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfZ2Ric3hfcGF1c2V1bnBf
dmNwdSBnZGJzeF9wYXVzZXVucF92Y3B1OworICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9nZGJz
eF9kb21zdGF0dXMgICBnZGJzeF9kb21zdGF0dXM7CisgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3Rs
X3ZudW1hICAgICAgICAgICAgIHZudW1hOworICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9wc3Jf
Y210X29wICAgICAgICBwc3JfY210X29wOworICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9tb25p
dG9yX29wICAgICAgICBtb25pdG9yX29wOworICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9wc3Jf
Y2F0X29wICAgICAgICBwc3JfY2F0X29wOworICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9zZXRf
Z250dGFiX2xpbWl0cyBzZXRfZ250dGFiX2xpbWl0czsKKyAgICAgICAgc3RydWN0IHhlbl9kb21j
dGxfdnVhcnRfb3AgICAgICAgICAgdnVhcnRfb3A7CisgICAgICAgIHVpbnQ4X3QgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhZFsxMjhdOworICAgIH0gdTsKK307Cit0eXBlZGVmIHN0cnVj
dCB4ZW5fZG9tY3RsIHhlbl9kb21jdGxfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9k
b21jdGxfdCk7CisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfRE9NQ1RMX0hfXyAqLworCisvKgor
ICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgor
ICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9k
ZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3hzbS9lbGZub3Rl
LmggYi9pbmNsdWRlL3hlbi94c20vZWxmbm90ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjkzNmFhNjUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi94c20vZWxm
bm90ZS5oCkBAIC0wLDAgKzEsMjgzIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBlbGZu
b3RlLmgKKyAqCisgKiBEZWZpbml0aW9ucyB1c2VkIGZvciB0aGUgWGVuIEVMRiBub3Rlcy4KKyAq
CisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55
IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lh
dGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4g
dGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0
YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNo
LCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9mIHRoZSBT
b2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisg
KiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
OgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24g
bm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFs
IHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklE
RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICog
SU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg
Tk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09Q
WVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIK
KyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Ig
T1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRI
IFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09G
VFdBUkUuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA2LCBJYW4gQ2FtcGJlbGwsIFhlblNvdXJj
ZSBMdGQuCisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfRUxGTk9URV9IX18KKyNkZWZpbmUg
X19YRU5fUFVCTElDX0VMRk5PVEVfSF9fCisKKy8qCisgKiBgaW5jb250ZW50cyAyMDAgZWxmbm90
ZXMgRUxGIG5vdGVzCisgKgorICogVGhlIG5vdGVzIHNob3VsZCBsaXZlIGluIGEgUFRfTk9URSBz
ZWdtZW50IGFuZCBoYXZlICJYZW4iIGluIHRoZQorICogbmFtZSBmaWVsZC4KKyAqCisgKiBOdW1l
cmljIHR5cGVzIGFyZSBlaXRoZXIgNCBvciA4IGJ5dGVzIGRlcGVuZGluZyBvbiB0aGUgY29udGVu
dCBvZgorICogdGhlIGRlc2MgZmllbGQuCisgKgorICogTEVHQUNZIGluZGljYXRlZCB0aGUgZmll
bGRzIGluIHRoZSBsZWdhY3kgX194ZW5fZ3Vlc3Qgc3RyaW5nIHdoaWNoCisgKiB0aGlzIGEgbm90
ZSB0eXBlIHJlcGxhY2VzLgorICoKKyAqIFN0cmluZyB2YWx1ZXMgKGZvciBub24tbGVnYWN5KSBh
cmUgTlVMTCB0ZXJtaW5hdGVkIEFTQ0lJLCBhbHNvIGtub3duCisgKiBhcyBBU0NJWiB0eXBlLgor
ICovCisKKy8qCisgKiBOQU1FPVZBTFVFIHBhaXIgKHN0cmluZykuCisgKi8KKyNkZWZpbmUgWEVO
X0VMRk5PVEVfSU5GTyAgICAgICAgICAgMAorCisvKgorICogVGhlIHZpcnR1YWwgYWRkcmVzcyBv
ZiB0aGUgZW50cnkgcG9pbnQgKG51bWVyaWMpLgorICoKKyAqIExFR0FDWTogVklSVF9FTlRSWQor
ICovCisjZGVmaW5lIFhFTl9FTEZOT1RFX0VOVFJZICAgICAgICAgIDEKKworLyogVGhlIHZpcnR1
YWwgYWRkcmVzcyBvZiB0aGUgaHlwZXJjYWxsIHRyYW5zZmVyIHBhZ2UgKG51bWVyaWMpLgorICoK
KyAqIExFR0FDWTogSFlQRVJDQUxMX1BBR0UuIChuLmIuIGxlZ2FjeSB2YWx1ZSBpcyBhIHBoeXNp
Y2FsIHBhZ2UKKyAqIG51bWJlciBub3QgYSB2aXJ0dWFsIGFkZHJlc3MpCisgKi8KKyNkZWZpbmUg
WEVOX0VMRk5PVEVfSFlQRVJDQUxMX1BBR0UgMgorCisvKiBUaGUgdmlydHVhbCBhZGRyZXNzIHdo
ZXJlIHRoZSBrZXJuZWwgaW1hZ2Ugc2hvdWxkIGJlIG1hcHBlZCAobnVtZXJpYykuCisgKgorICog
RGVmYXVsdHMgdG8gMC4KKyAqCisgKiBMRUdBQ1k6IFZJUlRfQkFTRQorICovCisjZGVmaW5lIFhF
Tl9FTEZOT1RFX1ZJUlRfQkFTRSAgICAgIDMKKworLyoKKyAqIFRoZSBvZmZzZXQgb2YgdGhlIEVM
RiBwYWRkciBmaWVsZCBmcm9tIHRoZSBhY3R1YWwgcmVxdWlyZWQKKyAqIHBzZXVkby1waHlzaWNh
bCBhZGRyZXNzIChudW1lcmljKS4KKyAqCisgKiBUaGlzIGlzIHVzZWQgdG8gbWFpbnRhaW4gYmFj
a3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBvbGRlciBrZXJuZWxzCisgKiB3aGljaCB3cm90ZSBf
X1BBR0VfT0ZGU0VUIGludG8gdGhhdCBmaWVsZC4gVGhpcyBmaWVsZCBkZWZhdWx0cyB0byAwCisg
KiBpZiBub3QgcHJlc2VudC4KKyAqCisgKiBMRUdBQ1k6IEVMRl9QQUREUl9PRkZTRVQuIChuLmIu
IGxlZ2FjeSBkZWZhdWx0IGlzIFZJUlRfQkFTRSkKKyAqLworI2RlZmluZSBYRU5fRUxGTk9URV9Q
QUREUl9PRkZTRVQgICA0CisKKy8qCisgKiBUaGUgdmVyc2lvbiBvZiBYZW4gdGhhdCB3ZSB3b3Jr
IHdpdGggKHN0cmluZykuCisgKgorICogTEVHQUNZOiBYRU5fVkVSCisgKi8KKyNkZWZpbmUgWEVO
X0VMRk5PVEVfWEVOX1ZFUlNJT04gICAgNQorCisvKgorICogVGhlIG5hbWUgb2YgdGhlIGd1ZXN0
IG9wZXJhdGluZyBzeXN0ZW0gKHN0cmluZykuCisgKgorICogTEVHQUNZOiBHVUVTVF9PUworICov
CisjZGVmaW5lIFhFTl9FTEZOT1RFX0dVRVNUX09TICAgICAgIDYKKworLyoKKyAqIFRoZSB2ZXJz
aW9uIG9mIHRoZSBndWVzdCBvcGVyYXRpbmcgc3lzdGVtIChzdHJpbmcpLgorICoKKyAqIExFR0FD
WTogR1VFU1RfVkVSCisgKi8KKyNkZWZpbmUgWEVOX0VMRk5PVEVfR1VFU1RfVkVSU0lPTiAgNwor
CisvKgorICogVGhlIGxvYWRlciB0eXBlIChzdHJpbmcpLgorICoKKyAqIExFR0FDWTogTE9BREVS
CisgKi8KKyNkZWZpbmUgWEVOX0VMRk5PVEVfTE9BREVSICAgICAgICAgOAorCisvKgorICogVGhl
IGtlcm5lbCBzdXBwb3J0cyBQQUUgKHg4Ni8zMiBvbmx5LCBzdHJpbmcgPSAieWVzIiwgIm5vIiBv
cgorICogImJpbW9kYWwiKS4KKyAqCisgKiBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIFhlbiAzLjAu
MyBhbmQgZWFybGllciB0aGUgImJpbW9kYWwiIHNldHRpbmcKKyAqIG1heSBiZSBnaXZlbiBhcyAi
eWVzLGJpbW9kYWwiIHdoaWNoIHdpbGwgY2F1c2Ugb2xkZXIgWGVuIHRvIHRyZWF0CisgKiB0aGlz
IGtlcm5lbCBhcyBQQUUuCisgKgorICogTEVHQUNZOiBQQUUgKG4uYi4gVGhlIGxlZ2FjeSBpbnRl
cmZhY2UgaW5jbHVkZWQgYSBwcm92aXNpb24gdG8KKyAqIGluZGljYXRlICdleHRlbmRlZC1jcjMn
IHN1cHBvcnQgYWxsb3dpbmcgTDMgcGFnZSB0YWJsZXMgdG8gYmUKKyAqIHBsYWNlZCBhYm92ZSA0
Ry4gSXQgaXMgYXNzdW1lZCB0aGF0IGFueSBrZXJuZWwgbmV3IGVub3VnaCB0byB1c2UKKyAqIHRo
ZXNlIEVMRiBub3RlcyB3aWxsIGluY2x1ZGUgdGhpcyBhbmQgdGhlcmVmb3JlICJ5ZXMiIGhlcmUg
aXMKKyAqIGVxdWl2YWxlbnQgdG8gInllc1tlbnRlbmRlZC1jcjNdIiBpbiB0aGUgX194ZW5fZ3Vl
c3QgaW50ZXJmYWNlLgorICovCisjZGVmaW5lIFhFTl9FTEZOT1RFX1BBRV9NT0RFICAgICAgIDkK
KworLyoKKyAqIFRoZSBmZWF0dXJlcyBzdXBwb3J0ZWQvcmVxdWlyZWQgYnkgdGhpcyBrZXJuZWwg
KHN0cmluZykuCisgKgorICogVGhlIHN0cmluZyBtdXN0IGNvbnNpc3Qgb2YgYSBsaXN0IG9mIGZl
YXR1cmUgbmFtZXMgKGFzIGdpdmVuIGluCisgKiBmZWF0dXJlcy5oLCB3aXRob3V0IHRoZSAiWEVO
RkVBVF8iIHByZWZpeCkgc2VwYXJhdGVkIGJ5ICd8JworICogY2hhcmFjdGVycy4gSWYgYSBmZWF0
dXJlIGlzIHJlcXVpcmVkIGZvciB0aGUga2VybmVsIHRvIGZ1bmN0aW9uCisgKiB0aGVuIHRoZSBm
ZWF0dXJlIG5hbWUgbXVzdCBiZSBwcmVjZWRlZCBieSBhICchJyBjaGFyYWN0ZXIuCisgKgorICog
TEVHQUNZOiBGRUFUVVJFUworICovCisjZGVmaW5lIFhFTl9FTEZOT1RFX0ZFQVRVUkVTICAgICAg
MTAKKworLyoKKyAqIFRoZSBrZXJuZWwgcmVxdWlyZXMgdGhlIHN5bWJvbCB0YWJsZSB0byBiZSBs
b2FkZWQgKHN0cmluZyA9ICJ5ZXMiIG9yICJubyIpCisgKiBMRUdBQ1k6IEJTRF9TWU1UQUIgKG4u
Yi4gVGhlIGxlZ2FjeSB0cmVhdGVkIHRoZSBwcmVzZW5jZSBvciBhYnNlbmNlCisgKiBvZiB0aGlz
IHN0cmluZyBhcyBhIGJvb2xlYW4gZmxhZyByYXRoZXIgdGhhbiByZXF1aXJpbmcgInllcyIgb3IK
KyAqICJubyIuCisgKi8KKyNkZWZpbmUgWEVOX0VMRk5PVEVfQlNEX1NZTVRBQiAgICAxMQorCisv
KgorICogVGhlIGxvd2VzdCBhZGRyZXNzIHRoZSBoeXBlcnZpc29yIGhvbGUgY2FuIGJlZ2luIGF0
IChudW1lcmljKS4KKyAqCisgKiBUaGlzIG11c3Qgbm90IGJlIHNldCBoaWdoZXIgdGhhbiBIWVBF
UlZJU09SX1ZJUlRfU1RBUlQuIEl0cyBwcmVzZW5jZQorICogYWxzbyBpbmRpY2F0ZXMgdG8gdGhl
IGh5cGVydmlzb3IgdGhhdCB0aGUga2VybmVsIGNhbiBkZWFsIHdpdGggdGhlCisgKiBob2xlIHN0
YXJ0aW5nIGF0IGEgaGlnaGVyIGFkZHJlc3MuCisgKi8KKyNkZWZpbmUgWEVOX0VMRk5PVEVfSFZf
U1RBUlRfTE9XICAxMgorCisvKgorICogTGlzdCBvZiBtYWRkcl90LXNpemVkIG1hc2svdmFsdWUg
cGFpcnMgZGVzY3JpYmluZyBob3cgdG8gcmVjb2duaXplCisgKiAobm9uLXByZXNlbnQpIEwxIHBh
Z2UgdGFibGUgZW50cmllcyBjYXJyeWluZyB2YWxpZCBNRk5zIChudW1lcmljKS4KKyAqLworI2Rl
ZmluZSBYRU5fRUxGTk9URV9MMV9NRk5fVkFMSUQgIDEzCisKKy8qCisgKiBXaGV0aGVyIG9yIG5v
dCB0aGUgZ3Vlc3Qgc3VwcG9ydHMgY29vcGVyYXRpdmUgc3VzcGVuZCBjYW5jZWxsYXRpb24uCisg
KiBUaGlzIGlzIGEgbnVtZXJpYyB2YWx1ZS4KKyAqCisgKiBEZWZhdWx0IGlzIDAKKyAqLworI2Rl
ZmluZSBYRU5fRUxGTk9URV9TVVNQRU5EX0NBTkNFTCAxNAorCisvKgorICogVGhlIChub24tZGVm
YXVsdCkgbG9jYXRpb24gdGhlIGluaXRpYWwgcGh5cy10by1tYWNoaW5lIG1hcCBzaG91bGQgYmUK
KyAqIHBsYWNlZCBhdCBieSB0aGUgaHlwZXJ2aXNvciAoRG9tMCkgb3IgdGhlIHRvb2xzIChEb21V
KS4KKyAqIFRoZSBrZXJuZWwgbXVzdCBiZSBwcmVwYXJlZCBmb3IgdGhpcyBtYXBwaW5nIHRvIGJl
IGVzdGFibGlzaGVkIHVzaW5nCisgKiBsYXJnZSBwYWdlcywgZGVzcGl0ZSBzdWNoIG90aGVyd2lz
ZSBub3QgYmVpbmcgYXZhaWxhYmxlIHRvIGd1ZXN0cy4gTm90ZQorICogdGhhdCB0aGVzZSBsYXJn
ZSBwYWdlcyBtYXkgYmUgbWlzYWxpZ25lZCBpbiBQRk4gc3BhY2UgKHRoZXknbGwgb2J2aW91c2x5
CisgKiBiZSBhbGlnbmVkIGluIE1GTiBhbmQgdmlydHVhbCBhZGRyZXNzIHNwYWNlcykuCisgKiBU
aGUga2VybmVsIG11c3QgYWxzbyBiZSBhYmxlIHRvIGhhbmRsZSB0aGUgcGFnZSB0YWJsZSBwYWdl
cyB1c2VkIGZvcgorICogdGhpcyBtYXBwaW5nIG5vdCBiZWluZyBhY2Nlc3NpYmxlIHRocm91Z2gg
dGhlIGluaXRpYWwgbWFwcGluZy4KKyAqIChPbmx5IHg4Ni02NCBzdXBwb3J0cyB0aGlzIGF0IHBy
ZXNlbnQuKQorICovCisjZGVmaW5lIFhFTl9FTEZOT1RFX0lOSVRfUDJNICAgICAgMTUKKworLyoK
KyAqIFdoZXRoZXIgb3Igbm90IHRoZSBndWVzdCBjYW4gZGVhbCB3aXRoIGJlaW5nIHBhc3NlZCBh
biBpbml0cmQgbm90CisgKiBtYXBwZWQgdGhyb3VnaCBpdHMgaW5pdGlhbCBwYWdlIHRhYmxlcy4K
KyAqLworI2RlZmluZSBYRU5fRUxGTk9URV9NT0RfU1RBUlRfUEZOIDE2CisKKy8qCisgKiBUaGUg
ZmVhdHVyZXMgc3VwcG9ydGVkIGJ5IHRoaXMga2VybmVsIChudW1lcmljKS4KKyAqCisgKiBPdGhl
ciB0aGFuIFhFTl9FTEZOT1RFX0ZFQVRVUkVTIG9uIHByZS00LjIgWGVuLCB0aGlzIG5vdGUgYWxs
b3dzIGEKKyAqIGtlcm5lbCB0byBzcGVjaWZ5IHN1cHBvcnQgZm9yIGZlYXR1cmVzIHRoYXQgb2xk
ZXIgaHlwZXJ2aXNvcnMgZG9uJ3QKKyAqIGtub3cgYWJvdXQuIFRoZSBzZXQgb2YgZmVhdHVyZXMg
NC4yIGFuZCBuZXdlciBoeXBlcnZpc29ycyB3aWxsCisgKiBjb25zaWRlciBzdXBwb3J0ZWQgYnkg
dGhlIGtlcm5lbCBpcyB0aGUgY29tYmluYXRpb24gb2YgdGhlIHNldHMKKyAqIHNwZWNpZmllZCB0
aHJvdWdoIHRoaXMgYW5kIHRoZSBzdHJpbmcgbm90ZS4KKyAqCisgKiBMRUdBQ1k6IEZFQVRVUkVT
CisgKi8KKyNkZWZpbmUgWEVOX0VMRk5PVEVfU1VQUE9SVEVEX0ZFQVRVUkVTIDE3CisKKy8qCisg
KiBQaHlzaWNhbCBlbnRyeSBwb2ludCBpbnRvIHRoZSBrZXJuZWwuCisgKgorICogMzJiaXQgZW50
cnkgcG9pbnQgaW50byB0aGUga2VybmVsLiBXaGVuIHJlcXVlc3RlZCB0byBsYXVuY2ggdGhlCisg
KiBndWVzdCBrZXJuZWwgaW4gYSBIVk0gY29udGFpbmVyLCBYZW4gd2lsbCB1c2UgdGhpcyBlbnRy
eSBwb2ludCB0bworICogbGF1bmNoIHRoZSBndWVzdCBpbiAzMmJpdCBwcm90ZWN0ZWQgbW9kZSB3
aXRoIHBhZ2luZyBkaXNhYmxlZC4KKyAqIElnbm9yZWQgb3RoZXJ3aXNlLgorICovCisjZGVmaW5l
IFhFTl9FTEZOT1RFX1BIWVMzMl9FTlRSWSAxOAorCisvKgorICogVGhlIG51bWJlciBvZiB0aGUg
aGlnaGVzdCBlbGZub3RlIGRlZmluZWQuCisgKi8KKyNkZWZpbmUgWEVOX0VMRk5PVEVfTUFYIFhF
Tl9FTEZOT1RFX1BIWVMzMl9FTlRSWQorCisvKgorICogU3lzdGVtIGluZm9ybWF0aW9uIGV4cG9y
dGVkIHRocm91Z2ggY3Jhc2ggbm90ZXMuCisgKgorICogVGhlIGtleGVjIC8ga2R1bXAgY29kZSB3
aWxsIGNyZWF0ZSBvbmUgWEVOX0VMRk5PVEVfQ1JBU0hfSU5GTyAKKyAqIG5vdGUgaW4gY2FzZSBv
ZiBhIHN5c3RlbSBjcmFzaC4gVGhpcyBub3RlIHdpbGwgY29udGFpbiB2YXJpb3VzCisgKiBpbmZv
cm1hdGlvbiBhYm91dCB0aGUgc3lzdGVtLCBzZWUgeGVuL2luY2x1ZGUveGVuL2VsZmNvcmUuaC4K
KyAqLworI2RlZmluZSBYRU5fRUxGTk9URV9DUkFTSF9JTkZPIDB4MTAwMDAwMQorCisvKgorICog
U3lzdGVtIHJlZ2lzdGVycyBleHBvcnRlZCB0aHJvdWdoIGNyYXNoIG5vdGVzLgorICoKKyAqIFRo
ZSBrZXhlYyAvIGtkdW1wIGNvZGUgd2lsbCBjcmVhdGUgb25lIFhFTl9FTEZOT1RFX0NSQVNIX1JF
R1MgCisgKiBub3RlIHBlciBjcHUgaW4gY2FzZSBvZiBhIHN5c3RlbSBjcmFzaC4gVGhpcyBub3Rl
IGlzIGFyY2hpdGVjdHVyZQorICogc3BlY2lmaWMgYW5kIHdpbGwgY29udGFpbiByZWdpc3RlcnMg
bm90IHNhdmVkIGluIHRoZSAiQ09SRSIgbm90ZS4KKyAqIFNlZSB4ZW4vaW5jbHVkZS94ZW4vZWxm
Y29yZS5oIGZvciBtb3JlIGluZm9ybWF0aW9uLgorICovCisjZGVmaW5lIFhFTl9FTEZOT1RFX0NS
QVNIX1JFR1MgMHgxMDAwMDAyCisKKworLyoKKyAqIHhlbiBkdW1wLWNvcmUgbm9uZSBub3RlLgor
ICogeG0gZHVtcC1jb3JlIGNvZGUgd2lsbCBjcmVhdGUgb25lIFhFTl9FTEZOT1RFX0RVTVBDT1JF
X05PTkUKKyAqIGluIGl0cyBkdW1wIGZpbGUgdG8gaW5kaWNhdGUgdGhhdCB0aGUgZmlsZSBpcyB4
ZW4gZHVtcC1jb3JlCisgKiBmaWxlLiBUaGlzIG5vdGUgZG9lc24ndCBoYXZlIGFueSBvdGhlciBp
bmZvcm1hdGlvbi4KKyAqIFNlZSB0b29scy9saWJ4Yy94Y19jb3JlLmggZm9yIG1vcmUgaW5mb3Jt
YXRpb24uCisgKi8KKyNkZWZpbmUgWEVOX0VMRk5PVEVfRFVNUENPUkVfTk9ORSAgICAgICAgICAg
ICAgIDB4MjAwMDAwMAorCisvKgorICogeGVuIGR1bXAtY29yZSBoZWFkZXIgbm90ZS4KKyAqIHht
IGR1bXAtY29yZSBjb2RlIHdpbGwgY3JlYXRlIG9uZSBYRU5fRUxGTk9URV9EVU1QQ09SRV9IRUFE
RVIKKyAqIGluIGl0cyBkdW1wIGZpbGUuCisgKiBTZWUgdG9vbHMvbGlieGMveGNfY29yZS5oIGZv
ciBtb3JlIGluZm9ybWF0aW9uLgorICovCisjZGVmaW5lIFhFTl9FTEZOT1RFX0RVTVBDT1JFX0hF
QURFUiAgICAgICAgICAgICAweDIwMDAwMDEKKworLyoKKyAqIHhlbiBkdW1wLWNvcmUgeGVuIHZl
cnNpb24gbm90ZS4KKyAqIHhtIGR1bXAtY29yZSBjb2RlIHdpbGwgY3JlYXRlIG9uZSBYRU5fRUxG
Tk9URV9EVU1QQ09SRV9YRU5fVkVSU0lPTgorICogaW4gaXRzIGR1bXAgZmlsZS4gSXQgY29udGFp
bnMgdGhlIHhlbiB2ZXJzaW9uIG9idGFpbmVkIHZpYSB0aGUKKyAqIFhFTlZFUiBoeXBlcmNhbGwu
CisgKiBTZWUgdG9vbHMvbGlieGMveGNfY29yZS5oIGZvciBtb3JlIGluZm9ybWF0aW9uLgorICov
CisjZGVmaW5lIFhFTl9FTEZOT1RFX0RVTVBDT1JFX1hFTl9WRVJTSU9OICAgICAgICAweDIwMDAw
MDIKKworLyoKKyAqIHhlbiBkdW1wLWNvcmUgZm9ybWF0IHZlcnNpb24gbm90ZS4KKyAqIHhtIGR1
bXAtY29yZSBjb2RlIHdpbGwgY3JlYXRlIG9uZSBYRU5fRUxGTk9URV9EVU1QQ09SRV9GT1JNQVRf
VkVSU0lPTgorICogaW4gaXRzIGR1bXAgZmlsZS4gSXQgY29udGFpbnMgYSBmb3JtYXQgdmVyc2lv
biBpZGVudGlmaWVyLgorICogU2VlIHRvb2xzL2xpYnhjL3hjX2NvcmUuaCBmb3IgbW9yZSBpbmZv
cm1hdGlvbi4KKyAqLworI2RlZmluZSBYRU5fRUxGTk9URV9EVU1QQ09SRV9GT1JNQVRfVkVSU0lP
TiAgICAgMHgyMDAwMDAzCisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfRUxGTk9URV9IX18gKi8K
KworLyoKKyAqIExvY2FsIHZhcmlhYmxlczoKKyAqIG1vZGU6IEMKKyAqIGMtZmlsZS1zdHlsZTog
IkJTRCIKKyAqIGMtYmFzaWMtb2Zmc2V0OiA0CisgKiB0YWItd2lkdGg6IDQKKyAqIGluZGVudC10
YWJzLW1vZGU6IG5pbAorICogRW5kOgorICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi94c20v
ZXJybm8uaCBiL2luY2x1ZGUveGVuL3hzbS9lcnJuby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjMwNWMxMTIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi94c20v
ZXJybm8uaApAQCAtMCwwICsxLDEyNCBAQAorLyoKKyAqIFRoZXJlIGFyZSB0d28gZXhwZWN0ZWQg
d2F5cyBvZiBpbmNsdWRpbmcgdGhpcyBoZWFkZXIuCisgKgorICogMSkgVGhlICJkZWZhdWx0IiBj
YXNlIChleHBlY3RlZCBmcm9tIHRvb2xzIGV0YykuCisgKgorICogU2ltcGx5ICNpbmNsdWRlIDxw
dWJsaWMvZXJybm8uaD4KKyAqCisgKiBJbiB0aGlzIGNpcmN1bXN0YW5jZSwgbm9ybWFsIGhlYWRl
ciBndWFyZHMgYXBwbHkgYW5kIHRoZSBpbmNsdWRlciBzaGFsbCBnZXQKKyAqIGFuIGVudW1lcmF0
aW9uIGluIHRoZSBYRU5feHh4IG5hbWVzcGFjZSwgYXBwcm9wcmlhdGUgZm9yIEMgb3IgYXNzZW1i
bHkuCisgKgorICogMikgVGhlIHNwZWNpYWwgY2FzZSB3aGVyZSB0aGUgaW5jbHVkZXIgcHJvdmlk
ZXMgYSBYRU5fRVJSTk8oKSBpbiBzY29wZS4KKyAqCisgKiBJbiB0aGlzIGNhc2UsIG5vIGluY2x1
c2lvbiBndWFyZHMgYXBwbHkgYW5kIHRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yCisgKiB0
aGVpciBYRU5fRVJSTk8oKSBiZWluZyBhcHByb3ByaWF0ZSBpbiB0aGUgaW5jbHVkZWQgY29udGV4
dC4gIFRoZSBoZWFkZXIKKyAqIHdpbGwgdW5pbGF0ZXJhbGx5ICN1bmRlZiBYRU5fRVJSTk8oKS4K
KyAqLworCisjaWZuZGVmIFhFTl9FUlJOTworCisvKgorICogSW5jbHVkZXIgaGFzIG5vdCBwcm92
aWRlZCBhIGN1c3RvbSBYRU5fRVJSTk8oKS4gIEFycmFuZ2UgZm9yIG5vcm1hbCBoZWFkZXIKKyAq
IGd1YXJkcywgYW4gYXV0b21hdGljIGVudW0gKGZvciBDIGNvZGUpIGFuZCBjb25zdGFudHMgaW4g
dGhlIFhFTl94eHgKKyAqIG5hbWVzcGFjZS4KKyAqLworI2lmbmRlZiBfX1hFTl9QVUJMSUNfRVJS
Tk9fSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19FUlJOT19IX18KKworI2RlZmluZSBYRU5fRVJS
Tk9fREVGQVVMVF9JTkNMVURFCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCisKKyNkZWZpbmUgWEVO
X0VSUk5PKG5hbWUsIHZhbHVlKSBYRU5fIyNuYW1lID0gdmFsdWUsCitlbnVtIHhlbl9lcnJubyB7
CisKKyNlbGlmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPCAweDAwMDQwNzAwCisKKyNkZWZp
bmUgWEVOX0VSUk5PKG5hbWUsIHZhbHVlKSAuZXF1IFhFTl8jI25hbWUsIHZhbHVlCisKKyNlbmRp
ZiAvKiBfX0FTU0VNQkxZX18gKi8KKworI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19FUlJOT19IX18g
Ki8KKyNlbmRpZiAvKiAhWEVOX0VSUk5PICovCisKKy8qIGAgZW51bSBuZWdfZXJybm92YWwgeyAg
WyAtRWZvbyBmb3IgZWFjaCBFZm9vIGluIHRoZSBsaXN0IGJlbG93IF0gIH0gKi8KKy8qIGAgZW51
bSBlcnJub3ZhbCB7ICovCisKKyNpZmRlZiBYRU5fRVJSTk8KKworLyoKKyAqIFZhbHVlcyBvcmln
aW5hdGluZyBmcm9tIHg4NiBMaW51eC4gUGxlYXNlIGNvbnNpZGVyIHVzaW5nIHJlc3BlY3RpdmUK
KyAqIHZhbHVlcyB3aGVuIGFkZGluZyBuZXcgZGVmaW5pdGlvbnMgaGVyZS4KKyAqCisgKiBUaGUg
c2V0IG9mIGlkZW50aWZpZXJzIHRvIGJlIGFkZGVkIGhlcmUgc2hvdWxkbid0IGV4dGVuZCBiZXlv
bmQgd2hhdAorICogUE9TSVggbWFuZGF0ZXMgKHNlZSBlLmcuCisgKiBodHRwOi8vcHVicy5vcGVu
Z3JvdXAub3JnL29ubGluZXB1YnMvOTY5OTkxOTc5OS9iYXNlZGVmcy9lcnJuby5oLmh0bWwpCisg
KiB3aXRoIHRoZSBleGNlcHRpb24gdGhhdCB3ZSBzdXBwb3J0IHNvbWUgb3B0aW9uYWwgKFhTUikg
dmFsdWVzCisgKiBzcGVjaWZpZWQgdGhlcmUgKGJ1dCBubyBuZXcgb25lcyBzaG91bGQgYmUgYWRk
ZWQpLgorICovCisKK1hFTl9FUlJOTyhFUEVSTSwJIDEpCS8qIE9wZXJhdGlvbiBub3QgcGVybWl0
dGVkICovCitYRU5fRVJSTk8oRU5PRU5ULAkgMikJLyogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9y
eSAqLworWEVOX0VSUk5PKEVTUkNILAkgMykJLyogTm8gc3VjaCBwcm9jZXNzICovCisjaWZkZWYg
X19YRU5fXyAvKiBJbnRlcm5hbCBvbmx5LCBzaG91bGQgbmV2ZXIgYmUgZXhwb3NlZCB0byB0aGUg
Z3Vlc3QuICovCitYRU5fRVJSTk8oRUlOVFIsCSA0KQkvKiBJbnRlcnJ1cHRlZCBzeXN0ZW0gY2Fs
bCAqLworI2VuZGlmCitYRU5fRVJSTk8oRUlPLAkJIDUpCS8qIEkvTyBlcnJvciAqLworWEVOX0VS
Uk5PKEVOWElPLAkgNikJLyogTm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcyAqLworWEVOX0VSUk5P
KEUyQklHLAkgNykJLyogQXJnIGxpc3QgdG9vIGxvbmcgKi8KK1hFTl9FUlJOTyhFTk9FWEVDLAkg
OCkJLyogRXhlYyBmb3JtYXQgZXJyb3IgKi8KK1hFTl9FUlJOTyhFQkFERiwJIDkpCS8qIEJhZCBm
aWxlIG51bWJlciAqLworWEVOX0VSUk5PKEVDSElMRCwJMTApCS8qIE5vIGNoaWxkIHByb2Nlc3Nl
cyAqLworWEVOX0VSUk5PKEVBR0FJTiwJMTEpCS8qIFRyeSBhZ2FpbiAqLworWEVOX0VSUk5PKEVX
T1VMREJMT0NLLAkxMSkJLyogT3BlcmF0aW9uIHdvdWxkIGJsb2NrLiAgQWxpYXNlcyBFQUdBSU4g
Ki8KK1hFTl9FUlJOTyhFTk9NRU0sCTEyKQkvKiBPdXQgb2YgbWVtb3J5ICovCitYRU5fRVJSTk8o
RUFDQ0VTLAkxMykJLyogUGVybWlzc2lvbiBkZW5pZWQgKi8KK1hFTl9FUlJOTyhFRkFVTFQsCTE0
KQkvKiBCYWQgYWRkcmVzcyAqLworWEVOX0VSUk5PKEVCVVNZLAkxNikJLyogRGV2aWNlIG9yIHJl
c291cmNlIGJ1c3kgKi8KK1hFTl9FUlJOTyhFRVhJU1QsCTE3KQkvKiBGaWxlIGV4aXN0cyAqLwor
WEVOX0VSUk5PKEVYREVWLAkxOCkJLyogQ3Jvc3MtZGV2aWNlIGxpbmsgKi8KK1hFTl9FUlJOTyhF
Tk9ERVYsCTE5KQkvKiBObyBzdWNoIGRldmljZSAqLworWEVOX0VSUk5PKEVJU0RJUiwJMjEpCS8q
IElzIGEgZGlyZWN0b3J5ICovCitYRU5fRVJSTk8oRUlOVkFMLAkyMikJLyogSW52YWxpZCBhcmd1
bWVudCAqLworWEVOX0VSUk5PKEVORklMRSwJMjMpCS8qIEZpbGUgdGFibGUgb3ZlcmZsb3cgKi8K
K1hFTl9FUlJOTyhFTUZJTEUsCTI0KQkvKiBUb28gbWFueSBvcGVuIGZpbGVzICovCitYRU5fRVJS
Tk8oRU5PU1BDLAkyOCkJLyogTm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UgKi8KK1hFTl9FUlJOTyhF
Uk9GUywJMzApCS8qIFJlYWQtb25seSBmaWxlIHN5c3RlbSAqLworWEVOX0VSUk5PKEVNTElOSywJ
MzEpCS8qIFRvbyBtYW55IGxpbmtzICovCitYRU5fRVJSTk8oRURPTSwJCTMzKQkvKiBNYXRoIGFy
Z3VtZW50IG91dCBvZiBkb21haW4gb2YgZnVuYyAqLworWEVOX0VSUk5PKEVSQU5HRSwJMzQpCS8q
IE1hdGggcmVzdWx0IG5vdCByZXByZXNlbnRhYmxlICovCitYRU5fRVJSTk8oRURFQURMSywJMzUp
CS8qIFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyICovCitYRU5fRVJSTk8oRURFQURMT0NL
LAkzNSkJLyogUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIuIEFsaWFzZXMgRURFQURMSyAq
LworWEVOX0VSUk5PKEVOQU1FVE9PTE9ORywJMzYpCS8qIEZpbGUgbmFtZSB0b28gbG9uZyAqLwor
WEVOX0VSUk5PKEVOT0xDSywJMzcpCS8qIE5vIHJlY29yZCBsb2NrcyBhdmFpbGFibGUgKi8KK1hF
Tl9FUlJOTyhFTk9TWVMsCTM4KQkvKiBGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQgKi8KK1hFTl9F
UlJOTyhFTk9URU1QVFksCTM5KQkvKiBEaXJlY3Rvcnkgbm90IGVtcHR5ICovCitYRU5fRVJSTk8o
RU5PREFUQSwJNjEpCS8qIE5vIGRhdGEgYXZhaWxhYmxlICovCitYRU5fRVJSTk8oRVRJTUUsCTYy
KQkvKiBUaW1lciBleHBpcmVkICovCitYRU5fRVJSTk8oRUJBRE1TRywJNzQpCS8qIE5vdCBhIGRh
dGEgbWVzc2FnZSAqLworWEVOX0VSUk5PKEVPVkVSRkxPVywJNzUpCS8qIFZhbHVlIHRvbyBsYXJn
ZSBmb3IgZGVmaW5lZCBkYXRhIHR5cGUgKi8KK1hFTl9FUlJOTyhFSUxTRVEsCTg0KQkvKiBJbGxl
Z2FsIGJ5dGUgc2VxdWVuY2UgKi8KKyNpZmRlZiBfX1hFTl9fIC8qIEludGVybmFsIG9ubHksIHNo
b3VsZCBuZXZlciBiZSBleHBvc2VkIHRvIHRoZSBndWVzdC4gKi8KK1hFTl9FUlJOTyhFUkVTVEFS
VCwJODUpCS8qIEludGVycnVwdGVkIHN5c3RlbSBjYWxsIHNob3VsZCBiZSByZXN0YXJ0ZWQgKi8K
KyNlbmRpZgorWEVOX0VSUk5PKEVOT1RTT0NLLAk4OCkJLyogU29ja2V0IG9wZXJhdGlvbiBvbiBu
b24tc29ja2V0ICovCitYRU5fRVJSTk8oRU9QTk9UU1VQUCwJOTUpCS8qIE9wZXJhdGlvbiBub3Qg
c3VwcG9ydGVkIG9uIHRyYW5zcG9ydCBlbmRwb2ludCAqLworWEVOX0VSUk5PKEVBRERSSU5VU0Us
CTk4KQkvKiBBZGRyZXNzIGFscmVhZHkgaW4gdXNlICovCitYRU5fRVJSTk8oRUFERFJOT1RBVkFJ
TCwgOTkpCS8qIENhbm5vdCBhc3NpZ24gcmVxdWVzdGVkIGFkZHJlc3MgKi8KK1hFTl9FUlJOTyhF
Tk9CVUZTLAkxMDUpCS8qIE5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUgKi8KK1hFTl9FUlJOTyhF
SVNDT05OLAkxMDYpCS8qIFRyYW5zcG9ydCBlbmRwb2ludCBpcyBhbHJlYWR5IGNvbm5lY3RlZCAq
LworWEVOX0VSUk5PKEVOT1RDT05OLAkxMDcpCS8qIFRyYW5zcG9ydCBlbmRwb2ludCBpcyBub3Qg
Y29ubmVjdGVkICovCitYRU5fRVJSTk8oRVRJTUVET1VULAkxMTApCS8qIENvbm5lY3Rpb24gdGlt
ZWQgb3V0ICovCisKKyN1bmRlZiBYRU5fRVJSTk8KKyNlbmRpZiAvKiBYRU5fRVJSTk8gKi8KKy8q
IGAgfSAqLworCisvKiBDbGVhbiB1cCBmcm9tIGEgZGVmYXVsdCBpbmNsdWRlLiAgQ2xvc2UgdGhl
IGVudW0gKGZvciBDKS4gKi8KKyNpZmRlZiBYRU5fRVJSTk9fREVGQVVMVF9JTkNMVURFCisjdW5k
ZWYgWEVOX0VSUk5PX0RFRkFVTFRfSU5DTFVERQorI2lmbmRlZiBfX0FTU0VNQkxZX18KK307Cisj
ZW5kaWYKKworI2VuZGlmIC8qIFhFTl9FUlJOT19ERUZBVUxUX0lOQ0xVREUgKi8KZGlmZiAtLWdp
dCBhL2luY2x1ZGUveGVuL3hzbS9ldmVudF9jaGFubmVsLmggYi9pbmNsdWRlL3hlbi94c20vZXZl
bnRfY2hhbm5lbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0YzU0OWQK
LS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi94c20vZXZlbnRfY2hhbm5lbC5oCkBAIC0w
LDAgKzEsMzg1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBldmVudF9jaGFubmVsLmgK
KyAqCisgKiBFdmVudCBjaGFubmVscyBiZXR3ZWVuIGRvbWFpbnMuCisgKgorICogUGVybWlzc2lv
biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWlu
aW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0
aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3
aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICog
cmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwg
c3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0
byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRv
IGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUg
YWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBi
ZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0
aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJ
VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xV
RElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
LAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVO
VC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJT
IEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJ
U0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUg
T1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAq
IENvcHlyaWdodCAoYykgMjAwMy0yMDA0LCBLIEEgRnJhc2VyLgorICovCisKKyNpZm5kZWYgX19Y
RU5fUFVCTElDX0VWRU5UX0NIQU5ORUxfSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19FVkVOVF9D
SEFOTkVMX0hfXworCisjaW5jbHVkZSAieGVuLmgiCisKKy8qCisgKiBgaW5jb250ZW50cyAxNTAg
ZXZ0Y2huIEV2ZW50IENoYW5uZWxzCisgKgorICogRXZlbnQgY2hhbm5lbHMgYXJlIHRoZSBiYXNp
YyBwcmltaXRpdmUgcHJvdmlkZWQgYnkgWGVuIGZvciBldmVudAorICogbm90aWZpY2F0aW9ucy4g
QW4gZXZlbnQgaXMgdGhlIFhlbiBlcXVpdmFsZW50IG9mIGEgaGFyZHdhcmUKKyAqIGludGVycnVw
dC4gVGhleSBlc3NlbnRpYWxseSBzdG9yZSBvbmUgYml0IG9mIGluZm9ybWF0aW9uLCB0aGUgZXZl
bnQKKyAqIG9mIGludGVyZXN0IGlzIHNpZ25hbGxlZCBieSB0cmFuc2l0aW9uaW5nIHRoaXMgYml0
IGZyb20gMCB0byAxLgorICoKKyAqIE5vdGlmaWNhdGlvbnMgYXJlIHJlY2VpdmVkIGJ5IGEgZ3Vl
c3QgdmlhIGFuIHVwY2FsbCBmcm9tIFhlbiwKKyAqIGluZGljYXRpbmcgd2hlbiBhbiBldmVudCBh
cnJpdmVzIChzZXR0aW5nIHRoZSBiaXQpLiBGdXJ0aGVyCisgKiBub3RpZmljYXRpb25zIGFyZSBt
YXNrZWQgdW50aWwgdGhlIGJpdCBpcyBjbGVhcmVkIGFnYWluICh0aGVyZWZvcmUsCisgKiBndWVz
dHMgbXVzdCBjaGVjayB0aGUgdmFsdWUgb2YgdGhlIGJpdCBhZnRlciByZS1lbmFibGluZyBldmVu
dAorICogZGVsaXZlcnkgdG8gZW5zdXJlIG5vIG1pc3NlZCBub3RpZmljYXRpb25zKS4KKyAqCisg
KiBFdmVudCBub3RpZmljYXRpb25zIGNhbiBiZSBtYXNrZWQgYnkgc2V0dGluZyBhIGZsYWc7IHRo
aXMgaXMKKyAqIGVxdWl2YWxlbnQgdG8gZGlzYWJsaW5nIGludGVycnVwdHMgYW5kIGNhbiBiZSB1
c2VkIHRvIGVuc3VyZQorICogYXRvbWljaXR5IG9mIGNlcnRhaW4gb3BlcmF0aW9ucyBpbiB0aGUg
Z3Vlc3Qga2VybmVsLgorICoKKyAqIEV2ZW50IGNoYW5uZWxzIGFyZSByZXByZXNlbnRlZCBieSB0
aGUgZXZ0Y2huXyogZmllbGRzIGluCisgKiBzdHJ1Y3Qgc2hhcmVkX2luZm8gYW5kIHN0cnVjdCB2
Y3B1X2luZm8uCisgKi8KKworLyoKKyAqIGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJW
SVNPUl9ldmVudF9jaGFubmVsX29wKGVudW0gZXZlbnRfY2hhbm5lbF9vcCBjbWQsIHZvaWQgKmFy
Z3MpCisgKiBgCisgKiBAY21kICA9PSBFVlRDSE5PUF8qIChldmVudC1jaGFubmVsIG9wZXJhdGlv
bikuCisgKiBAYXJncyA9PSBzdHJ1Y3QgZXZ0Y2huXyogT3BlcmF0aW9uLXNwZWNpZmljIGV4dHJh
IGFyZ3VtZW50cyAoTlVMTCBpZiBub25lKS4KKyAqLworCisvKiBgIGVudW0gZXZlbnRfY2hhbm5l
bF9vcCB7IC8vIEVWVENITk9QXyogPT4gc3RydWN0IGV2dGNobl8qICovCisjZGVmaW5lIEVWVENI
Tk9QX2JpbmRfaW50ZXJkb21haW4gMAorI2RlZmluZSBFVlRDSE5PUF9iaW5kX3ZpcnEgICAgICAg
IDEKKyNkZWZpbmUgRVZUQ0hOT1BfYmluZF9waXJxICAgICAgICAyCisjZGVmaW5lIEVWVENITk9Q
X2Nsb3NlICAgICAgICAgICAgMworI2RlZmluZSBFVlRDSE5PUF9zZW5kICAgICAgICAgICAgIDQK
KyNkZWZpbmUgRVZUQ0hOT1Bfc3RhdHVzICAgICAgICAgICA1CisjZGVmaW5lIEVWVENITk9QX2Fs
bG9jX3VuYm91bmQgICAgNgorI2RlZmluZSBFVlRDSE5PUF9iaW5kX2lwaSAgICAgICAgIDcKKyNk
ZWZpbmUgRVZUQ0hOT1BfYmluZF92Y3B1ICAgICAgICA4CisjZGVmaW5lIEVWVENITk9QX3VubWFz
ayAgICAgICAgICAgOQorI2RlZmluZSBFVlRDSE5PUF9yZXNldCAgICAgICAgICAgMTAKKyNkZWZp
bmUgRVZUQ0hOT1BfaW5pdF9jb250cm9sICAgIDExCisjZGVmaW5lIEVWVENITk9QX2V4cGFuZF9h
cnJheSAgICAxMgorI2RlZmluZSBFVlRDSE5PUF9zZXRfcHJpb3JpdHkgICAgMTMKKy8qIGAgfSAq
LworCit0eXBlZGVmIHVpbnQzMl90IGV2dGNobl9wb3J0X3Q7CitERUZJTkVfWEVOX0dVRVNUX0hB
TkRMRShldnRjaG5fcG9ydF90KTsKKworLyoKKyAqIEVWVENITk9QX2FsbG9jX3VuYm91bmQ6IEFs
bG9jYXRlIGEgcG9ydCBpbiBkb21haW4gPGRvbT4gYW5kIG1hcmsgYXMKKyAqIGFjY2VwdGluZyBp
bnRlcmRvbWFpbiBiaW5kaW5ncyBmcm9tIGRvbWFpbiA8cmVtb3RlX2RvbT4uIEEgZnJlc2ggcG9y
dAorICogaXMgYWxsb2NhdGVkIGluIDxkb20+IGFuZCByZXR1cm5lZCBhcyA8cG9ydD4uCisgKiBO
T1RFUzoKKyAqICAxLiBJZiB0aGUgY2FsbGVyIGlzIHVucHJpdmlsZWdlZCB0aGVuIDxkb20+IG11
c3QgYmUgRE9NSURfU0VMRi4KKyAqICAyLiA8cmVtb3RlX2RvbT4gbWF5IGJlIERPTUlEX1NFTEYs
IGFsbG93aW5nIGxvb3BiYWNrIGNvbm5lY3Rpb25zLgorICovCitzdHJ1Y3QgZXZ0Y2huX2FsbG9j
X3VuYm91bmQgeworICAgIC8qIElOIHBhcmFtZXRlcnMgKi8KKyAgICBkb21pZF90IGRvbSwgcmVt
b3RlX2RvbTsKKyAgICAvKiBPVVQgcGFyYW1ldGVycyAqLworICAgIGV2dGNobl9wb3J0X3QgcG9y
dDsKK307Cit0eXBlZGVmIHN0cnVjdCBldnRjaG5fYWxsb2NfdW5ib3VuZCBldnRjaG5fYWxsb2Nf
dW5ib3VuZF90OworCisvKgorICogRVZUQ0hOT1BfYmluZF9pbnRlcmRvbWFpbjogQ29uc3RydWN0
IGFuIGludGVyZG9tYWluIGV2ZW50IGNoYW5uZWwgYmV0d2VlbgorICogdGhlIGNhbGxpbmcgZG9t
YWluIGFuZCA8cmVtb3RlX2RvbT4uIDxyZW1vdGVfZG9tLHJlbW90ZV9wb3J0PiBtdXN0IGlkZW50
aWZ5CisgKiBhIHBvcnQgdGhhdCBpcyB1bmJvdW5kIGFuZCBtYXJrZWQgYXMgYWNjZXB0aW5nIGJp
bmRpbmdzIGZyb20gdGhlIGNhbGxpbmcKKyAqIGRvbWFpbi4gQSBmcmVzaCBwb3J0IGlzIGFsbG9j
YXRlZCBpbiB0aGUgY2FsbGluZyBkb21haW4gYW5kIHJldHVybmVkIGFzCisgKiA8bG9jYWxfcG9y
dD4uCisgKgorICogSW4gY2FzZSB0aGUgcGVlciBkb21haW4gaGFzIGFscmVhZHkgdHJpZWQgdG8g
c2V0IG91ciBldmVudCBjaGFubmVsCisgKiBwZW5kaW5nLCBiZWZvcmUgaXQgd2FzIGJvdW5kLCBF
VlRDSE5PUF9iaW5kX2ludGVyZG9tYWluIGFsd2F5cyBzZXRzCisgKiB0aGUgbG9jYWwgZXZlbnQg
Y2hhbm5lbCBwZW5kaW5nLgorICoKKyAqIFRoZSB1c3VhbCBwYXR0ZXJuIG9mIHVzZSwgaW4gdGhl
IGd1ZXN0J3MgdXBjYWxsIChvciBzdWJzZXF1ZW50CisgKiBoYW5kbGVyKSBpcyBhcyBmb2xsb3dz
OiAoUmUtZW5hYmxlIHRoZSBldmVudCBjaGFubmVsIGZvciBzdWJzZXF1ZW50CisgKiBzaWduYWxs
aW5nIGFuZCB0aGVuKSBjaGVjayBmb3IgdGhlIGV4aXN0ZW5jZSBvZiB3aGF0ZXZlciBjb25kaXRp
b24KKyAqIGlzIGJlaW5nIHdhaXRlZCBmb3IgYnkgb3RoZXIgbWVhbnMsIGFuZCB0YWtlIHdoYXRl
dmVyIGFjdGlvbiBpcworICogbmVlZGVkIChpZiBhbnkpLgorICoKKyAqIE5PVEVTOgorICogIDEu
IDxyZW1vdGVfZG9tPiBtYXkgYmUgRE9NSURfU0VMRiwgYWxsb3dpbmcgbG9vcGJhY2sgY29ubmVj
dGlvbnMuCisgKi8KK3N0cnVjdCBldnRjaG5fYmluZF9pbnRlcmRvbWFpbiB7CisgICAgLyogSU4g
cGFyYW1ldGVycy4gKi8KKyAgICBkb21pZF90IHJlbW90ZV9kb207CisgICAgZXZ0Y2huX3BvcnRf
dCByZW1vdGVfcG9ydDsKKyAgICAvKiBPVVQgcGFyYW1ldGVycy4gKi8KKyAgICBldnRjaG5fcG9y
dF90IGxvY2FsX3BvcnQ7Cit9OwordHlwZWRlZiBzdHJ1Y3QgZXZ0Y2huX2JpbmRfaW50ZXJkb21h
aW4gZXZ0Y2huX2JpbmRfaW50ZXJkb21haW5fdDsKKworLyoKKyAqIEVWVENITk9QX2JpbmRfdmly
cTogQmluZCBhIGxvY2FsIGV2ZW50IGNoYW5uZWwgdG8gVklSUSA8aXJxPiBvbiBzcGVjaWZpZWQK
KyAqIHZjcHUuCisgKiBOT1RFUzoKKyAqICAxLiBWaXJ0dWFsIElSUXMgYXJlIGNsYXNzaWZpZWQg
YXMgcGVyLXZjcHUgb3IgZ2xvYmFsLiBTZWUgdGhlIFZJUlEgbGlzdAorICogICAgIGluIHhlbi5o
IGZvciB0aGUgY2xhc3NpZmljYXRpb24gb2YgZWFjaCBWSVJRLgorICogIDIuIEdsb2JhbCBWSVJR
cyBtdXN0IGJlIGFsbG9jYXRlZCBvbiBWQ1BVMCBidXQgY2FuIHN1YnNlcXVlbnRseSBiZQorICog
ICAgIHJlLWJvdW5kIHZpYSBFVlRDSE5PUF9iaW5kX3ZjcHUuCisgKiAgMy4gUGVyLXZjcHUgVklS
UXMgbWF5IGJlIGJvdW5kIHRvIGF0IG1vc3Qgb25lIGV2ZW50IGNoYW5uZWwgcGVyIHZjcHUuCisg
KiAgICAgVGhlIGFsbG9jYXRlZCBldmVudCBjaGFubmVsIGlzIGJvdW5kIHRvIHRoZSBzcGVjaWZp
ZWQgdmNwdSBhbmQgdGhlCisgKiAgICAgYmluZGluZyBjYW5ub3QgYmUgY2hhbmdlZC4KKyAqLwor
c3RydWN0IGV2dGNobl9iaW5kX3ZpcnEgeworICAgIC8qIElOIHBhcmFtZXRlcnMuICovCisgICAg
dWludDMyX3QgdmlycTsgLyogZW51bSB2aXJxICovCisgICAgdWludDMyX3QgdmNwdTsKKyAgICAv
KiBPVVQgcGFyYW1ldGVycy4gKi8KKyAgICBldnRjaG5fcG9ydF90IHBvcnQ7Cit9OwordHlwZWRl
ZiBzdHJ1Y3QgZXZ0Y2huX2JpbmRfdmlycSBldnRjaG5fYmluZF92aXJxX3Q7CisKKy8qCisgKiBF
VlRDSE5PUF9iaW5kX3BpcnE6IEJpbmQgYSBsb2NhbCBldmVudCBjaGFubmVsIHRvIGEgcmVhbCBJ
UlEgKFBJUlEgPGlycT4pLgorICogTk9URVM6CisgKiAgMS4gQSBwaHlzaWNhbCBJUlEgbWF5IGJl
IGJvdW5kIHRvIGF0IG1vc3Qgb25lIGV2ZW50IGNoYW5uZWwgcGVyIGRvbWFpbi4KKyAqICAyLiBP
bmx5IGEgc3VmZmljaWVudGx5LXByaXZpbGVnZWQgZG9tYWluIG1heSBiaW5kIHRvIGEgcGh5c2lj
YWwgSVJRLgorICovCitzdHJ1Y3QgZXZ0Y2huX2JpbmRfcGlycSB7CisgICAgLyogSU4gcGFyYW1l
dGVycy4gKi8KKyAgICB1aW50MzJfdCBwaXJxOworI2RlZmluZSBCSU5EX1BJUlFfX1dJTExfU0hB
UkUgMQorICAgIHVpbnQzMl90IGZsYWdzOyAvKiBCSU5EX1BJUlFfXyogKi8KKyAgICAvKiBPVVQg
cGFyYW1ldGVycy4gKi8KKyAgICBldnRjaG5fcG9ydF90IHBvcnQ7Cit9OwordHlwZWRlZiBzdHJ1
Y3QgZXZ0Y2huX2JpbmRfcGlycSBldnRjaG5fYmluZF9waXJxX3Q7CisKKy8qCisgKiBFVlRDSE5P
UF9iaW5kX2lwaTogQmluZCBhIGxvY2FsIGV2ZW50IGNoYW5uZWwgdG8gcmVjZWl2ZSBldmVudHMu
CisgKiBOT1RFUzoKKyAqICAxLiBUaGUgYWxsb2NhdGVkIGV2ZW50IGNoYW5uZWwgaXMgYm91bmQg
dG8gdGhlIHNwZWNpZmllZCB2Y3B1LiBUaGUgYmluZGluZworICogICAgIG1heSBub3QgYmUgY2hh
bmdlZC4KKyAqLworc3RydWN0IGV2dGNobl9iaW5kX2lwaSB7CisgICAgdWludDMyX3QgdmNwdTsK
KyAgICAvKiBPVVQgcGFyYW1ldGVycy4gKi8KKyAgICBldnRjaG5fcG9ydF90IHBvcnQ7Cit9Owor
dHlwZWRlZiBzdHJ1Y3QgZXZ0Y2huX2JpbmRfaXBpIGV2dGNobl9iaW5kX2lwaV90OworCisvKgor
ICogRVZUQ0hOT1BfY2xvc2U6IENsb3NlIGEgbG9jYWwgZXZlbnQgY2hhbm5lbCA8cG9ydD4uIElm
IHRoZSBjaGFubmVsIGlzCisgKiBpbnRlcmRvbWFpbiB0aGVuIHRoZSByZW1vdGUgZW5kIGlzIHBs
YWNlZCBpbiB0aGUgdW5ib3VuZCBzdGF0ZQorICogKEVWVENITlNUQVRfdW5ib3VuZCksIGF3YWl0
aW5nIGEgbmV3IGNvbm5lY3Rpb24uCisgKi8KK3N0cnVjdCBldnRjaG5fY2xvc2UgeworICAgIC8q
IElOIHBhcmFtZXRlcnMuICovCisgICAgZXZ0Y2huX3BvcnRfdCBwb3J0OworfTsKK3R5cGVkZWYg
c3RydWN0IGV2dGNobl9jbG9zZSBldnRjaG5fY2xvc2VfdDsKKworLyoKKyAqIEVWVENITk9QX3Nl
bmQ6IFNlbmQgYW4gZXZlbnQgdG8gdGhlIHJlbW90ZSBlbmQgb2YgdGhlIGNoYW5uZWwgd2hvc2Ug
bG9jYWwKKyAqIGVuZHBvaW50IGlzIDxwb3J0Pi4KKyAqLworc3RydWN0IGV2dGNobl9zZW5kIHsK
KyAgICAvKiBJTiBwYXJhbWV0ZXJzLiAqLworICAgIGV2dGNobl9wb3J0X3QgcG9ydDsKK307Cit0
eXBlZGVmIHN0cnVjdCBldnRjaG5fc2VuZCBldnRjaG5fc2VuZF90OworCisvKgorICogRVZUQ0hO
T1Bfc3RhdHVzOiBHZXQgdGhlIGN1cnJlbnQgc3RhdHVzIG9mIHRoZSBjb21tdW5pY2F0aW9uIGNo
YW5uZWwgd2hpY2gKKyAqIGhhcyBhbiBlbmRwb2ludCBhdCA8ZG9tLCBwb3J0Pi4KKyAqIE5PVEVT
OgorICogIDEuIDxkb20+IG1heSBiZSBzcGVjaWZpZWQgYXMgRE9NSURfU0VMRi4KKyAqICAyLiBP
bmx5IGEgc3VmZmljaWVudGx5LXByaXZpbGVnZWQgZG9tYWluIG1heSBvYnRhaW4gdGhlIHN0YXR1
cyBvZiBhbiBldmVudAorICogICAgIGNoYW5uZWwgZm9yIHdoaWNoIDxkb20+IGlzIG5vdCBET01J
RF9TRUxGLgorICovCitzdHJ1Y3QgZXZ0Y2huX3N0YXR1cyB7CisgICAgLyogSU4gcGFyYW1ldGVy
cyAqLworICAgIGRvbWlkX3QgIGRvbTsKKyAgICBldnRjaG5fcG9ydF90IHBvcnQ7CisgICAgLyog
T1VUIHBhcmFtZXRlcnMgKi8KKyNkZWZpbmUgRVZUQ0hOU1RBVF9jbG9zZWQgICAgICAgMCAgLyog
Q2hhbm5lbCBpcyBub3QgaW4gdXNlLiAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgRVZUQ0hO
U1RBVF91bmJvdW5kICAgICAgMSAgLyogQ2hhbm5lbCBpcyB3YWl0aW5nIGludGVyZG9tIGNvbm5l
Y3Rpb24uKi8KKyNkZWZpbmUgRVZUQ0hOU1RBVF9pbnRlcmRvbWFpbiAgMiAgLyogQ2hhbm5lbCBp
cyBjb25uZWN0ZWQgdG8gcmVtb3RlIGRvbWFpbi4gKi8KKyNkZWZpbmUgRVZUQ0hOU1RBVF9waXJx
ICAgICAgICAgMyAgLyogQ2hhbm5lbCBpcyBib3VuZCB0byBhIHBoeXMgSVJRIGxpbmUuICAgKi8K
KyNkZWZpbmUgRVZUQ0hOU1RBVF92aXJxICAgICAgICAgNCAgLyogQ2hhbm5lbCBpcyBib3VuZCB0
byBhIHZpcnR1YWwgSVJRIGxpbmUgKi8KKyNkZWZpbmUgRVZUQ0hOU1RBVF9pcGkgICAgICAgICAg
NSAgLyogQ2hhbm5lbCBpcyBib3VuZCB0byBhIHZpcnR1YWwgSVBJIGxpbmUgKi8KKyAgICB1aW50
MzJfdCBzdGF0dXM7CisgICAgdWludDMyX3QgdmNwdTsgICAgICAgICAgICAgICAgIC8qIFZDUFUg
dG8gd2hpY2ggdGhpcyBjaGFubmVsIGlzIGJvdW5kLiAgICovCisgICAgdW5pb24geworICAgICAg
ICBzdHJ1Y3QgeworICAgICAgICAgICAgZG9taWRfdCBkb207CisgICAgICAgIH0gdW5ib3VuZDsg
ICAgICAgICAgICAgICAgIC8qIEVWVENITlNUQVRfdW5ib3VuZCAqLworICAgICAgICBzdHJ1Y3Qg
eworICAgICAgICAgICAgZG9taWRfdCBkb207CisgICAgICAgICAgICBldnRjaG5fcG9ydF90IHBv
cnQ7CisgICAgICAgIH0gaW50ZXJkb21haW47ICAgICAgICAgICAgIC8qIEVWVENITlNUQVRfaW50
ZXJkb21haW4gKi8KKyAgICAgICAgdWludDMyX3QgcGlycTsgICAgICAgICAgICAgLyogRVZUQ0hO
U1RBVF9waXJxICAgICAgICAqLworICAgICAgICB1aW50MzJfdCB2aXJxOyAgICAgICAgICAgICAv
KiBFVlRDSE5TVEFUX3ZpcnEgICAgICAgICovCisgICAgfSB1OworfTsKK3R5cGVkZWYgc3RydWN0
IGV2dGNobl9zdGF0dXMgZXZ0Y2huX3N0YXR1c190OworCisvKgorICogRVZUQ0hOT1BfYmluZF92
Y3B1OiBTcGVjaWZ5IHdoaWNoIHZjcHUgYSBjaGFubmVsIHNob3VsZCBub3RpZnkgd2hlbiBhbgor
ICogZXZlbnQgaXMgcGVuZGluZy4KKyAqIE5PVEVTOgorICogIDEuIElQSS1ib3VuZCBjaGFubmVs
cyBhbHdheXMgbm90aWZ5IHRoZSB2Y3B1IHNwZWNpZmllZCBhdCBiaW5kIHRpbWUuCisgKiAgICAg
VGhpcyBiaW5kaW5nIGNhbm5vdCBiZSBjaGFuZ2VkLgorICogIDIuIFBlci1WQ1BVIFZJUlEgY2hh
bm5lbHMgYWx3YXlzIG5vdGlmeSB0aGUgdmNwdSBzcGVjaWZpZWQgYXQgYmluZCB0aW1lLgorICog
ICAgIFRoaXMgYmluZGluZyBjYW5ub3QgYmUgY2hhbmdlZC4KKyAqICAzLiBBbGwgb3RoZXIgY2hh
bm5lbHMgbm90aWZ5IHZjcHUwIGJ5IGRlZmF1bHQuIFRoaXMgZGVmYXVsdCBpcyBzZXQgd2hlbgor
ICogICAgIHRoZSBjaGFubmVsIGlzIGFsbG9jYXRlZCAoYSBwb3J0IHRoYXQgaXMgZnJlZWQgYW5k
IHN1YnNlcXVlbnRseSByZXVzZWQKKyAqICAgICBoYXMgaXRzIGJpbmRpbmcgcmVzZXQgdG8gdmNw
dTApLgorICovCitzdHJ1Y3QgZXZ0Y2huX2JpbmRfdmNwdSB7CisgICAgLyogSU4gcGFyYW1ldGVy
cy4gKi8KKyAgICBldnRjaG5fcG9ydF90IHBvcnQ7CisgICAgdWludDMyX3QgdmNwdTsKK307Cit0
eXBlZGVmIHN0cnVjdCBldnRjaG5fYmluZF92Y3B1IGV2dGNobl9iaW5kX3ZjcHVfdDsKKworLyoK
KyAqIEVWVENITk9QX3VubWFzazogVW5tYXNrIHRoZSBzcGVjaWZpZWQgbG9jYWwgZXZlbnQtY2hh
bm5lbCBwb3J0IGFuZCBkZWxpdmVyCisgKiBhIG5vdGlmaWNhdGlvbiB0byB0aGUgYXBwcm9wcmlh
dGUgVkNQVSBpZiBhbiBldmVudCBpcyBwZW5kaW5nLgorICovCitzdHJ1Y3QgZXZ0Y2huX3VubWFz
ayB7CisgICAgLyogSU4gcGFyYW1ldGVycy4gKi8KKyAgICBldnRjaG5fcG9ydF90IHBvcnQ7Cit9
OwordHlwZWRlZiBzdHJ1Y3QgZXZ0Y2huX3VubWFzayBldnRjaG5fdW5tYXNrX3Q7CisKKy8qCisg
KiBFVlRDSE5PUF9yZXNldDogQ2xvc2UgYWxsIGV2ZW50IGNoYW5uZWxzIGFzc29jaWF0ZWQgd2l0
aCBzcGVjaWZpZWQgZG9tYWluLgorICogTk9URVM6CisgKiAgMS4gPGRvbT4gbWF5IGJlIHNwZWNp
ZmllZCBhcyBET01JRF9TRUxGLgorICogIDIuIE9ubHkgYSBzdWZmaWNpZW50bHktcHJpdmlsZWdl
ZCBkb21haW4gbWF5IHNwZWNpZnkgb3RoZXIgdGhhbiBET01JRF9TRUxGLgorICogIDMuIERlc3Ry
b3lzIGFsbCBjb250cm9sIGJsb2NrcyBhbmQgZXZlbnQgYXJyYXksIHJlc2V0cyBldmVudCBjaGFu
bmVsCisgKiAgICAgb3BlcmF0aW9ucyB0byAyLWxldmVsIEFCSSBpZiBjYWxsZWQgd2l0aCA8ZG9t
PiA9PSBET01JRF9TRUxGIGFuZCBGSUZPCisgKiAgICAgQUJJIHdhcyB1c2VkLiBHdWVzdHMgc2hv
dWxkIG5vdCBiaW5kIGV2ZW50cyBkdXJpbmcgRVZUQ0hOT1BfcmVzZXQgY2FsbAorICogICAgIGFz
IHRoZXNlIGV2ZW50cyBhcmUgbGlrZWx5IHRvIGJlIGxvc3QuCisgKi8KK3N0cnVjdCBldnRjaG5f
cmVzZXQgeworICAgIC8qIElOIHBhcmFtZXRlcnMuICovCisgICAgZG9taWRfdCBkb207Cit9Owor
dHlwZWRlZiBzdHJ1Y3QgZXZ0Y2huX3Jlc2V0IGV2dGNobl9yZXNldF90OworCisvKgorICogRVZU
Q0hOT1BfaW5pdF9jb250cm9sOiBpbml0aWFsaXplIHRoZSBjb250cm9sIGJsb2NrIGZvciB0aGUg
RklGTyBBQkkuCisgKgorICogTm90ZTogYW55IGV2ZW50cyB0aGF0IGFyZSBjdXJyZW50bHkgcGVu
ZGluZyB3aWxsIG5vdCBiZSByZXNlbnQgYW5kCisgKiB3aWxsIGJlIGxvc3QuICBHdWVzdHMgc2hv
dWxkIGNhbGwgdGhpcyBiZWZvcmUgYmluZGluZyBhbnkgZXZlbnQgdG8KKyAqIGF2b2lkIGxvc2lu
ZyBhbnkgZXZlbnRzLgorICovCitzdHJ1Y3QgZXZ0Y2huX2luaXRfY29udHJvbCB7CisgICAgLyog
SU4gcGFyYW1ldGVycy4gKi8KKyAgICB1aW50NjRfdCBjb250cm9sX2dmbjsKKyAgICB1aW50MzJf
dCBvZmZzZXQ7CisgICAgdWludDMyX3QgdmNwdTsKKyAgICAvKiBPVVQgcGFyYW1ldGVycy4gKi8K
KyAgICB1aW50OF90IGxpbmtfYml0czsKKyAgICB1aW50OF90IF9wYWRbN107Cit9OwordHlwZWRl
ZiBzdHJ1Y3QgZXZ0Y2huX2luaXRfY29udHJvbCBldnRjaG5faW5pdF9jb250cm9sX3Q7CisKKy8q
CisgKiBFVlRDSE5PUF9leHBhbmRfYXJyYXk6IGFkZCBhbiBhZGRpdGlvbmFsIHBhZ2UgdG8gdGhl
IGV2ZW50IGFycmF5LgorICovCitzdHJ1Y3QgZXZ0Y2huX2V4cGFuZF9hcnJheSB7CisgICAgLyog
SU4gcGFyYW1ldGVycy4gKi8KKyAgICB1aW50NjRfdCBhcnJheV9nZm47Cit9OwordHlwZWRlZiBz
dHJ1Y3QgZXZ0Y2huX2V4cGFuZF9hcnJheSBldnRjaG5fZXhwYW5kX2FycmF5X3Q7CisKKy8qCisg
KiBFVlRDSE5PUF9zZXRfcHJpb3JpdHk6IHNldCB0aGUgcHJpb3JpdHkgZm9yIGFuIGV2ZW50IGNo
YW5uZWwuCisgKi8KK3N0cnVjdCBldnRjaG5fc2V0X3ByaW9yaXR5IHsKKyAgICAvKiBJTiBwYXJh
bWV0ZXJzLiAqLworICAgIHVpbnQzMl90IHBvcnQ7CisgICAgdWludDMyX3QgcHJpb3JpdHk7Cit9
OwordHlwZWRlZiBzdHJ1Y3QgZXZ0Y2huX3NldF9wcmlvcml0eSBldnRjaG5fc2V0X3ByaW9yaXR5
X3Q7CisKKy8qCisgKiBgIGVudW0gbmVnX2Vycm5vdmFsCisgKiBgIEhZUEVSVklTT1JfZXZlbnRf
Y2hhbm5lbF9vcF9jb21wYXQoc3RydWN0IGV2dGNobl9vcCAqb3ApCisgKiBgCisgKiBTdXBlcmNl
ZGVkIGJ5IG5ldyBldmVudF9jaGFubmVsX29wKCkgaHlwZXJjYWxsIHNpbmNlIDB4MDAwMzAyMDIu
CisgKi8KK3N0cnVjdCBldnRjaG5fb3AgeworICAgIHVpbnQzMl90IGNtZDsgLyogZW51bSBldmVu
dF9jaGFubmVsX29wICovCisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3QgZXZ0Y2huX2FsbG9j
X3VuYm91bmQgICAgYWxsb2NfdW5ib3VuZDsKKyAgICAgICAgc3RydWN0IGV2dGNobl9iaW5kX2lu
dGVyZG9tYWluIGJpbmRfaW50ZXJkb21haW47CisgICAgICAgIHN0cnVjdCBldnRjaG5fYmluZF92
aXJxICAgICAgICBiaW5kX3ZpcnE7CisgICAgICAgIHN0cnVjdCBldnRjaG5fYmluZF9waXJxICAg
ICAgICBiaW5kX3BpcnE7CisgICAgICAgIHN0cnVjdCBldnRjaG5fYmluZF9pcGkgICAgICAgICBi
aW5kX2lwaTsKKyAgICAgICAgc3RydWN0IGV2dGNobl9jbG9zZSAgICAgICAgICAgIGNsb3NlOwor
ICAgICAgICBzdHJ1Y3QgZXZ0Y2huX3NlbmQgICAgICAgICAgICAgc2VuZDsKKyAgICAgICAgc3Ry
dWN0IGV2dGNobl9zdGF0dXMgICAgICAgICAgIHN0YXR1czsKKyAgICAgICAgc3RydWN0IGV2dGNo
bl9iaW5kX3ZjcHUgICAgICAgIGJpbmRfdmNwdTsKKyAgICAgICAgc3RydWN0IGV2dGNobl91bm1h
c2sgICAgICAgICAgIHVubWFzazsKKyAgICB9IHU7Cit9OwordHlwZWRlZiBzdHJ1Y3QgZXZ0Y2hu
X29wIGV2dGNobl9vcF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoZXZ0Y2huX29wX3QpOwor
CisvKgorICogMi1sZXZlbCBBQkkKKyAqLworCisjZGVmaW5lIEVWVENITl8yTF9OUl9DSEFOTkVM
UyAoc2l6ZW9mKHhlbl91bG9uZ190KSAqIHNpemVvZih4ZW5fdWxvbmdfdCkgKiA2NCkKKworLyoK
KyAqIEZJRk8gQUJJCisgKi8KKworLyogRXZlbnRzIG1heSBoYXZlIHByaW9yaXRpZXMgZnJvbSAw
IChoaWdoZXN0KSB0byAxNSAobG93ZXN0KS4gKi8KKyNkZWZpbmUgRVZUQ0hOX0ZJRk9fUFJJT1JJ
VFlfTUFYICAgICAwCisjZGVmaW5lIEVWVENITl9GSUZPX1BSSU9SSVRZX0RFRkFVTFQgNworI2Rl
ZmluZSBFVlRDSE5fRklGT19QUklPUklUWV9NSU4gICAgIDE1CisKKyNkZWZpbmUgRVZUQ0hOX0ZJ
Rk9fTUFYX1FVRVVFUyAoRVZUQ0hOX0ZJRk9fUFJJT1JJVFlfTUlOICsgMSkKKwordHlwZWRlZiB1
aW50MzJfdCBldmVudF93b3JkX3Q7CisKKyNkZWZpbmUgRVZUQ0hOX0ZJRk9fUEVORElORyAzMQor
I2RlZmluZSBFVlRDSE5fRklGT19NQVNLRUQgIDMwCisjZGVmaW5lIEVWVENITl9GSUZPX0xJTktF
RCAgMjkKKyNkZWZpbmUgRVZUQ0hOX0ZJRk9fQlVTWSAgICAyOAorCisjZGVmaW5lIEVWVENITl9G
SUZPX0xJTktfQklUUyAxNworI2RlZmluZSBFVlRDSE5fRklGT19MSU5LX01BU0sgKCgxIDw8IEVW
VENITl9GSUZPX0xJTktfQklUUykgLSAxKQorCisjZGVmaW5lIEVWVENITl9GSUZPX05SX0NIQU5O
RUxTICgxIDw8IEVWVENITl9GSUZPX0xJTktfQklUUykKKworc3RydWN0IGV2dGNobl9maWZvX2Nv
bnRyb2xfYmxvY2sgeworICAgIHVpbnQzMl90IHJlYWR5OworICAgIHVpbnQzMl90IF9yc3ZkOwor
ICAgIHVpbnQzMl90IGhlYWRbRVZUQ0hOX0ZJRk9fTUFYX1FVRVVFU107Cit9OwordHlwZWRlZiBz
dHJ1Y3QgZXZ0Y2huX2ZpZm9fY29udHJvbF9ibG9jayBldnRjaG5fZmlmb19jb250cm9sX2Jsb2Nr
X3Q7CisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfRVZFTlRfQ0hBTk5FTF9IX18gKi8KKworLyoK
KyAqIExvY2FsIHZhcmlhYmxlczoKKyAqIG1vZGU6IEMKKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIK
KyAqIGMtYmFzaWMtb2Zmc2V0OiA0CisgKiB0YWItd2lkdGg6IDQKKyAqIGluZGVudC10YWJzLW1v
ZGU6IG5pbAorICogRW5kOgorICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi94c20vZmVhdHVy
ZXMuaCBiL2luY2x1ZGUveGVuL3hzbS9mZWF0dXJlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjFhOTg5YjgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi94c20v
ZmVhdHVyZXMuaApAQCAtMCwwICsxLDEyMCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICog
ZmVhdHVyZXMuaAorICogCisgKiBGZWF0dXJlIGZsYWdzLCByZXBvcnRlZCBieSBYRU5WRVJfZ2V0
X2ZlYXR1cmVzLgorICogCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9m
IGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3
YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwg
dG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGlu
ZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks
IG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwg
Y29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl
IFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0
aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVz
IG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09G
VFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwg
RVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAq
IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERB
TUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O
VFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4g
Q09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFM
SU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA2LCBLZWlyIEZy
YXNlciA8a2VpckB4ZW5zb3VyY2UuY29tPgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElDX0ZF
QVRVUkVTX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfRkVBVFVSRVNfSF9fCisKKy8qCisgKiBg
aW5jb250ZW50cyAyMDAgZWxmbm90ZXNfZmVhdHVyZXMgWEVOX0VMRk5PVEVfRkVBVFVSRVMKKyAq
CisgKiBUaGUgbGlzdCBvZiBhbGwgdGhlIGZlYXR1cmVzIHRoZSBndWVzdCBzdXBwb3J0cy4gVGhl
eSBhcmUgc2V0IGJ5CisgKiBwYXJzaW5nIHRoZSBYRU5fRUxGTk9URV9GRUFUVVJFUyBhbmQgWEVO
X0VMRk5PVEVfU1VQUE9SVEVEX0ZFQVRVUkVTCisgKiBzdHJpbmcuIFRoZSBmb3JtYXQgaXMgdGhl
ICBmZWF0dXJlIG5hbWVzIChhcyBnaXZlbiBoZXJlIHdpdGhvdXQgdGhlCisgKiAiWEVORkVBVF8i
IHByZWZpeCkgc2VwYXJhdGVkIGJ5ICd8JyBjaGFyYWN0ZXJzLgorICogSWYgYSBmZWF0dXJlIGlz
IHJlcXVpcmVkIGZvciB0aGUga2VybmVsIHRvIGZ1bmN0aW9uIHRoZW4gdGhlIGZlYXR1cmUgbmFt
ZQorICogbXVzdCBiZSBwcmVjZWRlZCBieSBhICchJyBjaGFyYWN0ZXIuCisgKgorICogTm90ZSB0
aGF0IGlmIFhFTl9FTEZOT1RFX1NVUFBPUlRFRF9GRUFUVVJFUyBpcyB1c2VkLCB0aGVuIGluIHRo
ZQorICogWEVORkVBVF9kb20wIE1VU1QgYmUgc2V0IGlmIHRoZSBndWVzdCBpcyB0byBiZSBib290
ZWQgYXMgZG9tMCwKKyAqLworCisvKgorICogSWYgc2V0LCB0aGUgZ3Vlc3QgZG9lcyBub3QgbmVl
ZCB0byB3cml0ZS1wcm90ZWN0IGl0cyBwYWdldGFibGVzLCBhbmQgY2FuCisgKiB1cGRhdGUgdGhl
bSB2aWEgZGlyZWN0IHdyaXRlcy4KKyAqLworI2RlZmluZSBYRU5GRUFUX3dyaXRhYmxlX3BhZ2Vf
dGFibGVzICAgICAgIDAKKworLyoKKyAqIElmIHNldCwgdGhlIGd1ZXN0IGRvZXMgbm90IG5lZWQg
dG8gd3JpdGUtcHJvdGVjdCBpdHMgc2VnbWVudCBkZXNjcmlwdG9yCisgKiB0YWJsZXMsIGFuZCBj
YW4gdXBkYXRlIHRoZW0gdmlhIGRpcmVjdCB3cml0ZXMuCisgKi8KKyNkZWZpbmUgWEVORkVBVF93
cml0YWJsZV9kZXNjcmlwdG9yX3RhYmxlcyAxCisKKy8qCisgKiBJZiBzZXQsIHRyYW5zbGF0aW9u
IGJldHdlZW4gdGhlIGd1ZXN0J3MgJ3BzZXVkby1waHlzaWNhbCcgYWRkcmVzcyBzcGFjZQorICog
YW5kIHRoZSBob3N0J3MgbWFjaGluZSBhZGRyZXNzIHNwYWNlIGFyZSBoYW5kbGVkIGJ5IHRoZSBo
eXBlcnZpc29yLiBJbiB0aGlzCisgKiBtb2RlIHRoZSBndWVzdCBkb2VzIG5vdCBuZWVkIHRvIHBl
cmZvcm0gcGh5cy10by9mcm9tLW1hY2hpbmUgdHJhbnNsYXRpb25zCisgKiB3aGVuIHBlcmZvcm1p
bmcgcGFnZSB0YWJsZSBvcGVyYXRpb25zLgorICovCisjZGVmaW5lIFhFTkZFQVRfYXV0b190cmFu
c2xhdGVkX3BoeXNtYXAgICAgMgorCisvKiBJZiBzZXQsIHRoZSBndWVzdCBpcyBydW5uaW5nIGlu
IHN1cGVydmlzb3IgbW9kZSAoZS5nLiwgeDg2IHJpbmcgMCkuICovCisjZGVmaW5lIFhFTkZFQVRf
c3VwZXJ2aXNvcl9tb2RlX2tlcm5lbCAgICAgMworCisvKgorICogSWYgc2V0LCB0aGUgZ3Vlc3Qg
ZG9lcyBub3QgbmVlZCB0byBhbGxvY2F0ZSB4ODYgUEFFIHBhZ2UgZGlyZWN0b3JpZXMKKyAqIGJl
bG93IDRHQi4gVGhpcyBmbGFnIGlzIHVzdWFsbHkgaW1wbGllZCBieSBhdXRvX3RyYW5zbGF0ZWRf
cGh5c21hcC4KKyAqLworI2RlZmluZSBYRU5GRUFUX3BhZV9wZ2Rpcl9hYm92ZV80Z2IgICAgICAg
IDQKKworLyogeDg2OiBEb2VzIHRoaXMgWGVuIGhvc3Qgc3VwcG9ydCB0aGUgTU1VX1BUX1VQREFU
RV9QUkVTRVJWRV9BRCBoeXBlcmNhbGw/ICovCisjZGVmaW5lIFhFTkZFQVRfbW11X3B0X3VwZGF0
ZV9wcmVzZXJ2ZV9hZCAgNQorCisvKiB4ODY6IERvZXMgdGhpcyBYZW4gaG9zdCBzdXBwb3J0IHRo
ZSBNTVVfe0NMRUFSLENPUFl9X1BBR0UgaHlwZXJjYWxsPyAqLworI2RlZmluZSBYRU5GRUFUX2hp
Z2htZW1fYXNzaXN0ICAgICAgICAgICAgIDYKKworLyoKKyAqIElmIHNldCwgR05UVEFCT1BfbWFw
X2dyYW50X3JlZiBob25vcnMgZmxhZ3MgdG8gYmUgcGxhY2VkIGludG8gZ3Vlc3Qga2VybmVsCisg
KiBhdmFpbGFibGUgcHRlIGJpdHMuCisgKi8KKyNkZWZpbmUgWEVORkVBVF9nbnR0YWJfbWFwX2F2
YWlsX2JpdHMgICAgICA3CisKKy8qIHg4NjogRG9lcyB0aGlzIFhlbiBob3N0IHN1cHBvcnQgdGhl
IEhWTSBjYWxsYmFjayB2ZWN0b3IgdHlwZT8gKi8KKyNkZWZpbmUgWEVORkVBVF9odm1fY2FsbGJh
Y2tfdmVjdG9yICAgICAgICA4CisKKy8qIHg4NjogcHZjbG9jayBhbGdvcml0aG0gaXMgc2FmZSB0
byB1c2Ugb24gSFZNICovCisjZGVmaW5lIFhFTkZFQVRfaHZtX3NhZmVfcHZjbG9jayAgICAgICAg
ICAgOQorCisvKiB4ODY6IHBpcnEgY2FuIGJlIHVzZWQgYnkgSFZNIGd1ZXN0cyAqLworI2RlZmlu
ZSBYRU5GRUFUX2h2bV9waXJxcyAgICAgICAgICAgICAgICAgMTAKKworLyogb3BlcmF0aW9uIGFz
IERvbTAgaXMgc3VwcG9ydGVkICovCisjZGVmaW5lIFhFTkZFQVRfZG9tMCAgICAgICAgICAgICAg
ICAgICAgICAxMQorCisvKiBYZW4gYWxzbyBtYXBzIGdyYW50IHJlZmVyZW5jZXMgYXQgcGZuID0g
bWZuLgorICogVGhpcyBmZWF0dXJlIGZsYWcgaXMgZGVwcmVjYXRlZCBhbmQgc2hvdWxkIG5vdCBi
ZSB1c2VkLgorI2RlZmluZSBYRU5GRUFUX2dyYW50X21hcF9pZGVudGl0eSAgICAgICAgMTIKKyAq
LworCisvKiBHdWVzdCBjYW4gdXNlIFhFTk1FTUZfdm5vZGUgdG8gc3BlY2lmeSB2aXJ0dWFsIG5v
ZGUgZm9yIG1lbW9yeSBvcC4gKi8KKyNkZWZpbmUgWEVORkVBVF9tZW1vcnlfb3Bfdm5vZGVfc3Vw
cG9ydGVkIDEzCisKKy8qIGFybTogSHlwZXJ2aXNvciBzdXBwb3J0cyBBUk0gU01DIGNhbGxpbmcg
Y29udmVudGlvbi4gKi8KKyNkZWZpbmUgWEVORkVBVF9BUk1fU01DQ0Nfc3VwcG9ydGVkICAgICAg
IDE0CisKKyNkZWZpbmUgWEVORkVBVF9OUl9TVUJNQVBTIDEKKworI2VuZGlmIC8qIF9fWEVOX1BV
QkxJQ19GRUFUVVJFU19IX18gKi8KKworLyoKKyAqIExvY2FsIHZhcmlhYmxlczoKKyAqIG1vZGU6
IEMKKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKKyAqIGMtYmFzaWMtb2Zmc2V0OiA0CisgKiB0YWIt
d2lkdGg6IDQKKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorICogRW5kOgorICovCmRpZmYgLS1n
aXQgYS9pbmNsdWRlL3hlbi94c20vZ3JhbnRfdGFibGUuaCBiL2luY2x1ZGUveGVuL3hzbS9ncmFu
dF90YWJsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxODAzNmUKLS0t
IC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi94c20vZ3JhbnRfdGFibGUuaApAQCAtMCwwICsx
LDY4NSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogZ3JhbnRfdGFibGUuaAorICoKKyAq
IEludGVyZmFjZSBmb3IgZ3JhbnRpbmcgZm9yZWlnbiBhY2Nlc3MgdG8gcGFnZSBmcmFtZXMsIGFu
ZCByZWNlaXZpbmcKKyAqIHBhZ2Utb3duZXJzaGlwIHRyYW5zZmVycy4KKyAqCisgKiBQZXJtaXNz
aW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRh
aW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50
YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJl
IHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisg
KiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRl
LCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5k
IHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQg
dG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRo
ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxs
IGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9m
IHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwg
V0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5D
TFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VN
RU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERF
UlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBB
UklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FS
RSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgor
ICogQ29weXJpZ2h0IChjKSAyMDA0LCBLIEEgRnJhc2VyCisgKi8KKworI2lmbmRlZiBfX1hFTl9Q
VUJMSUNfR1JBTlRfVEFCTEVfSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19HUkFOVF9UQUJMRV9I
X18KKworI2luY2x1ZGUgInhlbi5oIgorCisvKgorICogYGluY29udGVudHMgMTUwIGdudHRhYiBH
cmFudCBUYWJsZXMKKyAqCisgKiBYZW4ncyBncmFudCB0YWJsZXMgcHJvdmlkZSBhIGdlbmVyaWMg
bWVjaGFuaXNtIHRvIG1lbW9yeSBzaGFyaW5nCisgKiBiZXR3ZWVuIGRvbWFpbnMuIFRoaXMgc2hh
cmVkIG1lbW9yeSBpbnRlcmZhY2UgdW5kZXJwaW5zIHRoZSBzcGxpdAorICogZGV2aWNlIGRyaXZl
cnMgZm9yIGJsb2NrIGFuZCBuZXR3b3JrIElPLgorICoKKyAqIEVhY2ggZG9tYWluIGhhcyBpdHMg
b3duIGdyYW50IHRhYmxlLiBUaGlzIGlzIGEgZGF0YSBzdHJ1Y3R1cmUgdGhhdAorICogaXMgc2hh
cmVkIHdpdGggWGVuOyBpdCBhbGxvd3MgdGhlIGRvbWFpbiB0byB0ZWxsIFhlbiB3aGF0IGtpbmQg
b2YKKyAqIHBlcm1pc3Npb25zIG90aGVyIGRvbWFpbnMgaGF2ZSBvbiBpdHMgcGFnZXMuIEVudHJp
ZXMgaW4gdGhlIGdyYW50CisgKiB0YWJsZSBhcmUgaWRlbnRpZmllZCBieSBncmFudCByZWZlcmVu
Y2VzLiBBIGdyYW50IHJlZmVyZW5jZSBpcyBhbgorICogaW50ZWdlciwgd2hpY2ggaW5kZXhlcyBp
bnRvIHRoZSBncmFudCB0YWJsZS4gSXQgYWN0cyBhcyBhCisgKiBjYXBhYmlsaXR5IHdoaWNoIHRo
ZSBncmFudGVlIGNhbiB1c2UgdG8gcGVyZm9ybSBvcGVyYXRpb25zIG9uIHRoZQorICogZ3JhbnRl
cidzIG1lbW9yeS4KKyAqCisgKiBUaGlzIGNhcGFiaWxpdHktYmFzZWQgc3lzdGVtIGFsbG93cyBz
aGFyZWQtbWVtb3J5IGNvbW11bmljYXRpb25zCisgKiBiZXR3ZWVuIHVucHJpdmlsZWdlZCBkb21h
aW5zLiBBIGdyYW50IHJlZmVyZW5jZSBhbHNvIGVuY2Fwc3VsYXRlcworICogdGhlIGRldGFpbHMg
b2YgYSBzaGFyZWQgcGFnZSwgcmVtb3ZpbmcgdGhlIG5lZWQgZm9yIGEgZG9tYWluIHRvCisgKiBr
bm93IHRoZSByZWFsIG1hY2hpbmUgYWRkcmVzcyBvZiBhIHBhZ2UgaXQgaXMgc2hhcmluZy4gVGhp
cyBtYWtlcworICogaXQgcG9zc2libGUgdG8gc2hhcmUgbWVtb3J5IGNvcnJlY3RseSB3aXRoIGRv
bWFpbnMgcnVubmluZyBpbgorICogZnVsbHkgdmlydHVhbGlzZWQgbWVtb3J5LgorICovCisKKy8q
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogR1JBTlQgVEFCTEUgUkVQUkVT
RU5UQVRJT04KKyAqLworCisvKiBTb21lIHJvdWdoIGd1aWRlbGluZXMgb24gYWNjZXNzaW5nIGFu
ZCB1cGRhdGluZyBncmFudC10YWJsZSBlbnRyaWVzCisgKiBpbiBhIGNvbmN1cnJlbmN5LXNhZmUg
bWFubmVyLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgTGludXggY29udGFpbnMgYQorICogcmVmZXJl
bmNlIGltcGxlbWVudGF0aW9uIGZvciBndWVzdCBPU2VzIChkcml2ZXJzL3hlbi9ncmFudF90YWJs
ZS5jLCBzZWUKKyAqIGh0dHA6Ly9naXQua2VybmVsLm9yZy8/cD1saW51eC9rZXJuZWwvZ2l0L3Rv
cnZhbGRzL2xpbnV4LmdpdDthPWJsb2I7Zj1kcml2ZXJzL3hlbi9ncmFudC10YWJsZS5jO2hiPUhF
QUQKKyAqCisgKiBOQi4gV01CIGlzIGEgbm8tb3Agb24gY3VycmVudC1nZW5lcmF0aW9uIHg4NiBw
cm9jZXNzb3JzLiBIb3dldmVyLCBhCisgKiAgICAgY29tcGlsZXIgYmFycmllciB3aWxsIHN0aWxs
IGJlIHJlcXVpcmVkLgorICoKKyAqIEludHJvZHVjaW5nIGEgdmFsaWQgZW50cnkgaW50byB0aGUg
Z3JhbnQgdGFibGU6CisgKiAgMS4gV3JpdGUgZW50LT5kb21pZC4KKyAqICAyLiBXcml0ZSBlbnQt
PmZyYW1lOgorICogICAgICBHVEZfcGVybWl0X2FjY2VzczogICBGcmFtZSB0byB3aGljaCBhY2Nl
c3MgaXMgcGVybWl0dGVkLgorICogICAgICBHVEZfYWNjZXB0X3RyYW5zZmVyOiBQc2V1ZG8tcGh5
cyBmcmFtZSBzbG90IGJlaW5nIGZpbGxlZCBieSBuZXcKKyAqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZnJhbWUsIG9yIHplcm8gaWYgbm9uZS4KKyAqICAzLiBXcml0ZSBtZW1vcnkgYmFycmll
ciAoV01CKS4KKyAqICA0LiBXcml0ZSBlbnQtPmZsYWdzLCBpbmMuIHZhbGlkIHR5cGUuCisgKgor
ICogSW52YWxpZGF0aW5nIGFuIHVudXNlZCBHVEZfcGVybWl0X2FjY2VzcyBlbnRyeToKKyAqICAx
LiBmbGFncyA9IGVudC0+ZmxhZ3MuCisgKiAgMi4gT2JzZXJ2ZSB0aGF0ICEoZmxhZ3MgJiAoR1RG
X3JlYWRpbmd8R1RGX3dyaXRpbmcpKS4KKyAqICAzLiBDaGVjayByZXN1bHQgb2YgU01QLXNhZmUg
Q01QWENIRygmZW50LT5mbGFncywgZmxhZ3MsIDApLgorICogIE5CLiBObyBuZWVkIGZvciBXTUIg
YXMgcmV1c2Ugb2YgZW50cnkgaXMgY29udHJvbC1kZXBlbmRlbnQgb24gc3VjY2VzcyBvZgorICog
ICAgICBzdGVwIDMsIGFuZCBhbGwgYXJjaGl0ZWN0dXJlcyBndWFyYW50ZWUgb3JkZXJpbmcgb2Yg
Y3RybC1kZXAgd3JpdGVzLgorICoKKyAqIEludmFsaWRhdGluZyBhbiBpbi11c2UgR1RGX3Blcm1p
dF9hY2Nlc3MgZW50cnk6CisgKiAgVGhpcyBjYW5ub3QgYmUgZG9uZSBkaXJlY3RseS4gUmVxdWVz
dCBhc3Npc3RhbmNlIGZyb20gdGhlIGRvbWFpbiBjb250cm9sbGVyCisgKiAgd2hpY2ggY2FuIHNl
dCBhIHRpbWVvdXQgb24gdGhlIHVzZSBvZiBhIGdyYW50IGVudHJ5IGFuZCB0YWtlIG5lY2Vzc2Fy
eQorICogIGFjdGlvbi4gKE5CLiBUaGlzIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQhKS4KKyAqCisg
KiBJbnZhbGlkYXRpbmcgYW4gdW51c2VkIEdURl9hY2NlcHRfdHJhbnNmZXIgZW50cnk6CisgKiAg
MS4gZmxhZ3MgPSBlbnQtPmZsYWdzLgorICogIDIuIE9ic2VydmUgdGhhdCAhKGZsYWdzICYgR1RG
X3RyYW5zZmVyX2NvbW1pdHRlZCkuIFsqXQorICogIDMuIENoZWNrIHJlc3VsdCBvZiBTTVAtc2Fm
ZSBDTVBYQ0hHKCZlbnQtPmZsYWdzLCBmbGFncywgMCkuCisgKiAgTkIuIE5vIG5lZWQgZm9yIFdN
QiBhcyByZXVzZSBvZiBlbnRyeSBpcyBjb250cm9sLWRlcGVuZGVudCBvbiBzdWNjZXNzIG9mCisg
KiAgICAgIHN0ZXAgMywgYW5kIGFsbCBhcmNoaXRlY3R1cmVzIGd1YXJhbnRlZSBvcmRlcmluZyBv
ZiBjdHJsLWRlcCB3cml0ZXMuCisgKiAgWypdIElmIEdURl90cmFuc2Zlcl9jb21taXR0ZWQgaXMg
c2V0IHRoZW4gdGhlIGdyYW50IGVudHJ5IGlzICdjb21taXR0ZWQnLgorICogICAgICBUaGUgZ3Vl
c3QgbXVzdCAvbm90LyBtb2RpZnkgdGhlIGdyYW50IGVudHJ5IHVudGlsIHRoZSBhZGRyZXNzIG9m
IHRoZQorICogICAgICB0cmFuc2ZlcnJlZCBmcmFtZSBpcyB3cml0dGVuLiBJdCBpcyBzYWZlIGZv
ciB0aGUgZ3Vlc3QgdG8gc3BpbiB3YWl0aW5nCisgKiAgICAgIGZvciB0aGlzIHRvIG9jY3VyIChk
ZXRlY3QgYnkgb2JzZXJ2aW5nIEdURl90cmFuc2Zlcl9jb21wbGV0ZWQgaW4KKyAqICAgICAgZW50
LT5mbGFncykuCisgKgorICogSW52YWxpZGF0aW5nIGEgY29tbWl0dGVkIEdURl9hY2NlcHRfdHJh
bnNmZXIgZW50cnk6CisgKiAgMS4gV2FpdCBmb3IgKGVudC0+ZmxhZ3MgJiBHVEZfdHJhbnNmZXJf
Y29tcGxldGVkKS4KKyAqCisgKiBDaGFuZ2luZyBhIEdURl9wZXJtaXRfYWNjZXNzIGZyb20gd3Jp
dGFibGUgdG8gcmVhZC1vbmx5OgorICogIFVzZSBTTVAtc2FmZSBDTVBYQ0hHIHRvIHNldCBHVEZf
cmVhZG9ubHksIHdoaWxlIGNoZWNraW5nICFHVEZfd3JpdGluZy4KKyAqCisgKiBDaGFuZ2luZyBh
IEdURl9wZXJtaXRfYWNjZXNzIGZyb20gcmVhZC1vbmx5IHRvIHdyaXRhYmxlOgorICogIFVzZSBT
TVAtc2FmZSBiaXQtc2V0dGluZyBpbnN0cnVjdGlvbi4KKyAqLworCisvKgorICogUmVmZXJlbmNl
IHRvIGEgZ3JhbnQgZW50cnkgaW4gYSBzcGVjaWZpZWQgZG9tYWluJ3MgZ3JhbnQgdGFibGUuCisg
Ki8KK3R5cGVkZWYgdWludDMyX3QgZ3JhbnRfcmVmX3Q7CisKKy8qCisgKiBBIGdyYW50IHRhYmxl
IGNvbXByaXNlcyBhIHBhY2tlZCBhcnJheSBvZiBncmFudCBlbnRyaWVzIGluIG9uZSBvciBtb3Jl
CisgKiBwYWdlIGZyYW1lcyBzaGFyZWQgYmV0d2VlbiBYZW4gYW5kIGEgZ3Vlc3QuCisgKiBbWEVO
XTogVGhpcyBmaWVsZCBpcyB3cml0dGVuIGJ5IFhlbiBhbmQgcmVhZCBieSB0aGUgc2hhcmluZyBn
dWVzdC4KKyAqIFtHU1RdOiBUaGlzIGZpZWxkIGlzIHdyaXR0ZW4gYnkgdGhlIGd1ZXN0IGFuZCBy
ZWFkIGJ5IFhlbi4KKyAqLworCisvKgorICogVmVyc2lvbiAxIG9mIHRoZSBncmFudCB0YWJsZSBl
bnRyeSBzdHJ1Y3R1cmUgaXMgbWFpbnRhaW5lZCBwdXJlbHkKKyAqIGZvciBiYWNrd2FyZHMgY29t
cGF0aWJpbGl0eS4gIE5ldyBndWVzdHMgc2hvdWxkIHVzZSB2ZXJzaW9uIDIuCisgKi8KKyNpZiBf
X1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDAzMDIwYQorI2RlZmluZSBncmFudF9lbnRy
eV92MSBncmFudF9lbnRyeQorI2RlZmluZSBncmFudF9lbnRyeV92MV90IGdyYW50X2VudHJ5X3QK
KyNlbmRpZgorc3RydWN0IGdyYW50X2VudHJ5X3YxIHsKKyAgICAvKiBHVEZfeHh4OiB2YXJpb3Vz
IHR5cGUgYW5kIGZsYWcgaW5mb3JtYXRpb24uICBbWEVOLEdTVF0gKi8KKyAgICB1aW50MTZfdCBm
bGFnczsKKyAgICAvKiBUaGUgZG9tYWluIGJlaW5nIGdyYW50ZWQgZm9yZWlnbiBwcml2aWxlZ2Vz
LiBbR1NUXSAqLworICAgIGRvbWlkX3QgIGRvbWlkOworICAgIC8qCisgICAgICogR1RGX3Blcm1p
dF9hY2Nlc3M6IEdGTiB0aGF0IEBkb21pZCBpcyBhbGxvd2VkIHRvIG1hcCBhbmQgYWNjZXNzLiBb
R1NUXQorICAgICAqIEdURl9hY2NlcHRfdHJhbnNmZXI6IEdGTiB0aGF0IEBkb21pZCBpcyBhbGxv
d2VkIHRvIHRyYW5zZmVyIGludG8uIFtHU1RdCisgICAgICogR1RGX3RyYW5zZmVyX2NvbXBsZXRl
ZDogTUZOIHdob3NlIG93bmVyc2hpcCB0cmFuc2ZlcnJlZCBieSBAZG9taWQKKyAgICAgKiAgICAg
ICAgICAgICAgICAgICAgICAgICAobm9uLXRyYW5zbGF0ZWQgZ3Vlc3RzIG9ubHkpLiBbWEVOXQor
ICAgICAqLworICAgIHVpbnQzMl90IGZyYW1lOworfTsKK3R5cGVkZWYgc3RydWN0IGdyYW50X2Vu
dHJ5X3YxIGdyYW50X2VudHJ5X3YxX3Q7CisKKy8qIFRoZSBmaXJzdCBmZXcgZ3JhbnQgdGFibGUg
ZW50cmllcyB3aWxsIGJlIHByZXNlcnZlZCBhY3Jvc3MgZ3JhbnQgdGFibGUKKyAqIHZlcnNpb24g
Y2hhbmdlcyBhbmQgbWF5IGJlIHByZS1wb3B1bGF0ZWQgYXQgZG9tYWluIGNyZWF0aW9uIGJ5IHRv
b2xzLgorICovCisjZGVmaW5lIEdOVFRBQl9OUl9SRVNFUlZFRF9FTlRSSUVTICAgICA4CisjZGVm
aW5lIEdOVFRBQl9SRVNFUlZFRF9DT05TT0xFICAgICAgICAwCisjZGVmaW5lIEdOVFRBQl9SRVNF
UlZFRF9YRU5TVE9SRSAgICAgICAxCisKKy8qCisgKiBUeXBlIG9mIGdyYW50IGVudHJ5LgorICog
IEdURl9pbnZhbGlkOiBUaGlzIGdyYW50IGVudHJ5IGdyYW50cyBubyBwcml2aWxlZ2VzLgorICog
IEdURl9wZXJtaXRfYWNjZXNzOiBBbGxvdyBAZG9taWQgdG8gbWFwL2FjY2VzcyBAZnJhbWUuCisg
KiAgR1RGX2FjY2VwdF90cmFuc2ZlcjogQWxsb3cgQGRvbWlkIHRvIHRyYW5zZmVyIG93bmVyc2hp
cCBvZiBvbmUgcGFnZSBmcmFtZQorICogICAgICAgICAgICAgICAgICAgICAgIHRvIHRoaXMgZ3Vl
c3QuIFhlbiB3cml0ZXMgdGhlIHBhZ2UgbnVtYmVyIHRvIEBmcmFtZS4KKyAqICBHVEZfdHJhbnNp
dGl2ZTogQWxsb3cgQGRvbWlkIHRvIHRyYW5zaXRpdmVseSBhY2Nlc3MgYSBzdWJyYW5nZSBvZgor
ICogICAgICAgICAgICAgICAgICBAdHJhbnNfZ3JhbnQgaW4gQHRyYW5zX2RvbWlkLiAgTm8gbWFw
cGluZ3MgYXJlIGFsbG93ZWQuCisgKi8KKyNkZWZpbmUgR1RGX2ludmFsaWQgICAgICAgICAoMFU8
PDApCisjZGVmaW5lIEdURl9wZXJtaXRfYWNjZXNzICAgKDFVPDwwKQorI2RlZmluZSBHVEZfYWNj
ZXB0X3RyYW5zZmVyICgyVTw8MCkKKyNkZWZpbmUgR1RGX3RyYW5zaXRpdmUgICAgICAoM1U8PDAp
CisjZGVmaW5lIEdURl90eXBlX21hc2sgICAgICAgKDNVPDwwKQorCisvKgorICogU3ViZmxhZ3Mg
Zm9yIEdURl9wZXJtaXRfYWNjZXNzLgorICogIEdURl9yZWFkb25seTogUmVzdHJpY3QgQGRvbWlk
IHRvIHJlYWQtb25seSBtYXBwaW5ncyBhbmQgYWNjZXNzZXMuIFtHU1RdCisgKiAgR1RGX3JlYWRp
bmc6IEdyYW50IGVudHJ5IGlzIGN1cnJlbnRseSBtYXBwZWQgZm9yIHJlYWRpbmcgYnkgQGRvbWlk
LiBbWEVOXQorICogIEdURl93cml0aW5nOiBHcmFudCBlbnRyeSBpcyBjdXJyZW50bHkgbWFwcGVk
IGZvciB3cml0aW5nIGJ5IEBkb21pZC4gW1hFTl0KKyAqICBHVEZfUEFULCBHVEZfUFdULCBHVEZf
UENEOiAoeDg2KSBjYWNoZSBhdHRyaWJ1dGUgZmxhZ3MgZm9yIHRoZSBncmFudCBbR1NUXQorICog
IEdURl9zdWJfcGFnZTogR3JhbnQgYWNjZXNzIHRvIG9ubHkgYSBzdWJyYW5nZSBvZiB0aGUgcGFn
ZS4gIEBkb21pZAorICogICAgICAgICAgICAgICAgd2lsbCBvbmx5IGJlIGFsbG93ZWQgdG8gY29w
eSBmcm9tIHRoZSBncmFudCwgYW5kIG5vdAorICogICAgICAgICAgICAgICAgbWFwIGl0LiBbR1NU
XQorICovCisjZGVmaW5lIF9HVEZfcmVhZG9ubHkgICAgICAgKDIpCisjZGVmaW5lIEdURl9yZWFk
b25seSAgICAgICAgKDFVPDxfR1RGX3JlYWRvbmx5KQorI2RlZmluZSBfR1RGX3JlYWRpbmcgICAg
ICAgICgzKQorI2RlZmluZSBHVEZfcmVhZGluZyAgICAgICAgICgxVTw8X0dURl9yZWFkaW5nKQor
I2RlZmluZSBfR1RGX3dyaXRpbmcgICAgICAgICg0KQorI2RlZmluZSBHVEZfd3JpdGluZyAgICAg
ICAgICgxVTw8X0dURl93cml0aW5nKQorI2RlZmluZSBfR1RGX1BXVCAgICAgICAgICAgICg1KQor
I2RlZmluZSBHVEZfUFdUICAgICAgICAgICAgICgxVTw8X0dURl9QV1QpCisjZGVmaW5lIF9HVEZf
UENEICAgICAgICAgICAgKDYpCisjZGVmaW5lIEdURl9QQ0QgICAgICAgICAgICAgKDFVPDxfR1RG
X1BDRCkKKyNkZWZpbmUgX0dURl9QQVQgICAgICAgICAgICAoNykKKyNkZWZpbmUgR1RGX1BBVCAg
ICAgICAgICAgICAoMVU8PF9HVEZfUEFUKQorI2RlZmluZSBfR1RGX3N1Yl9wYWdlICAgICAgICg4
KQorI2RlZmluZSBHVEZfc3ViX3BhZ2UgICAgICAgICgxVTw8X0dURl9zdWJfcGFnZSkKKworLyoK
KyAqIFN1YmZsYWdzIGZvciBHVEZfYWNjZXB0X3RyYW5zZmVyOgorICogIEdURl90cmFuc2Zlcl9j
b21taXR0ZWQ6IFhlbiBzZXRzIHRoaXMgZmxhZyB0byBpbmRpY2F0ZSB0aGF0IGl0IGlzIGNvbW1p
dHRlZAorICogICAgICB0byB0cmFuc2ZlcnJpbmcgb3duZXJzaGlwIG9mIGEgcGFnZSBmcmFtZS4g
V2hlbiBhIGd1ZXN0IHNlZXMgdGhpcyBmbGFnCisgKiAgICAgIGl0IG11c3QgL25vdC8gbW9kaWZ5
IHRoZSBncmFudCBlbnRyeSB1bnRpbCBHVEZfdHJhbnNmZXJfY29tcGxldGVkIGlzCisgKiAgICAg
IHNldCBieSBYZW4uCisgKiAgR1RGX3RyYW5zZmVyX2NvbXBsZXRlZDogSXQgaXMgc2FmZSBmb3Ig
dGhlIGd1ZXN0IHRvIHNwaW4td2FpdCBvbiB0aGlzIGZsYWcKKyAqICAgICAgYWZ0ZXIgcmVhZGlu
ZyBHVEZfdHJhbnNmZXJfY29tbWl0dGVkLiBYZW4gd2lsbCBhbHdheXMgd3JpdGUgdGhlIGZyYW1l
CisgKiAgICAgIGFkZHJlc3MsIGZvbGxvd2VkIGJ5IE9SaW5nIHRoaXMgZmxhZywgaW4gYSB0aW1l
bHkgbWFubmVyLgorICovCisjZGVmaW5lIF9HVEZfdHJhbnNmZXJfY29tbWl0dGVkICgyKQorI2Rl
ZmluZSBHVEZfdHJhbnNmZXJfY29tbWl0dGVkICAoMVU8PF9HVEZfdHJhbnNmZXJfY29tbWl0dGVk
KQorI2RlZmluZSBfR1RGX3RyYW5zZmVyX2NvbXBsZXRlZCAoMykKKyNkZWZpbmUgR1RGX3RyYW5z
ZmVyX2NvbXBsZXRlZCAgKDFVPDxfR1RGX3RyYW5zZmVyX2NvbXBsZXRlZCkKKworLyoKKyAqIFZl
cnNpb24gMiBncmFudCB0YWJsZSBlbnRyaWVzLiAgVGhlc2UgZnVsZmlsIHRoZSBzYW1lIHJvbGUg
YXMKKyAqIHZlcnNpb24gMSBlbnRyaWVzLCBidXQgY2FuIHJlcHJlc2VudCBtb3JlIGNvbXBsaWNh
dGVkIG9wZXJhdGlvbnMuCisgKiBBbnkgZ2l2ZW4gZG9tYWluIHdpbGwgaGF2ZSBlaXRoZXIgYSB2
ZXJzaW9uIDEgb3IgYSB2ZXJzaW9uIDIgdGFibGUsCisgKiBhbmQgZXZlcnkgZW50cnkgaW4gdGhl
IHRhYmxlIHdpbGwgYmUgdGhlIHNhbWUgdmVyc2lvbi4KKyAqCisgKiBUaGUgaW50ZXJmYWNlIGJ5
IHdoaWNoIGRvbWFpbnMgdXNlIGdyYW50IHJlZmVyZW5jZXMgZG9lcyBub3QgZGVwZW5kCisgKiBv
biB0aGUgZ3JhbnQgdGFibGUgdmVyc2lvbiBpbiB1c2UgYnkgdGhlIG90aGVyIGRvbWFpbi4KKyAq
LworI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPj0gMHgwMDAzMDIwYQorLyoKKyAqIFZl
cnNpb24gMSBhbmQgdmVyc2lvbiAyIGdyYW50IGVudHJpZXMgc2hhcmUgYSBjb21tb24gcHJlZml4
LiAgVGhlCisgKiBmaWVsZHMgb2YgdGhlIHByZWZpeCBhcmUgZG9jdW1lbnRlZCBhcyBwYXJ0IG9m
IHN0cnVjdAorICogZ3JhbnRfZW50cnlfdjEuCisgKi8KK3N0cnVjdCBncmFudF9lbnRyeV9oZWFk
ZXIgeworICAgIHVpbnQxNl90IGZsYWdzOworICAgIGRvbWlkX3QgIGRvbWlkOworfTsKK3R5cGVk
ZWYgc3RydWN0IGdyYW50X2VudHJ5X2hlYWRlciBncmFudF9lbnRyeV9oZWFkZXJfdDsKKworLyoK
KyAqIFZlcnNpb24gMiBvZiB0aGUgZ3JhbnQgZW50cnkgc3RydWN0dXJlLgorICovCit1bmlvbiBn
cmFudF9lbnRyeV92MiB7CisgICAgZ3JhbnRfZW50cnlfaGVhZGVyX3QgaGRyOworCisgICAgLyoK
KyAgICAgKiBUaGlzIG1lbWJlciBpcyB1c2VkIGZvciBWMS1zdHlsZSBmdWxsIHBhZ2UgZ3JhbnRz
LCB3aGVyZSBlaXRoZXI6CisgICAgICoKKyAgICAgKiAtLSBoZHIudHlwZSBpcyBHVEZfYWNjZXB0
X3RyYW5zZmVyLCBvcgorICAgICAqIC0tIGhkci50eXBlIGlzIEdURl9wZXJtaXRfYWNjZXNzIGFu
ZCBHVEZfc3ViX3BhZ2UgaXMgbm90IHNldC4KKyAgICAgKgorICAgICAqIEluIHRoYXQgY2FzZSwg
dGhlIGZyYW1lIGZpZWxkIGhhcyB0aGUgc2FtZSBzZW1hbnRpY3MgYXMgdGhlCisgICAgICogZmll
bGQgb2YgdGhlIHNhbWUgbmFtZSBpbiB0aGUgVjEgZW50cnkgc3RydWN0dXJlLgorICAgICAqLwor
ICAgIHN0cnVjdCB7CisgICAgICAgIGdyYW50X2VudHJ5X2hlYWRlcl90IGhkcjsKKyAgICAgICAg
dWludDMyX3QgcGFkMDsKKyAgICAgICAgdWludDY0X3QgZnJhbWU7CisgICAgfSBmdWxsX3BhZ2U7
CisKKyAgICAvKgorICAgICAqIElmIHRoZSBncmFudCB0eXBlIGlzIEdURl9ncmFudF9hY2Nlc3Mg
YW5kIEdURl9zdWJfcGFnZSBpcyBzZXQsCisgICAgICogQGRvbWlkIGlzIGFsbG93ZWQgdG8gYWNj
ZXNzIGJ5dGVzIFtAcGFnZV9vZmYsQHBhZ2Vfb2ZmK0BsZW5ndGgpCisgICAgICogaW4gZnJhbWUg
QGZyYW1lLgorICAgICAqLworICAgIHN0cnVjdCB7CisgICAgICAgIGdyYW50X2VudHJ5X2hlYWRl
cl90IGhkcjsKKyAgICAgICAgdWludDE2X3QgcGFnZV9vZmY7CisgICAgICAgIHVpbnQxNl90IGxl
bmd0aDsKKyAgICAgICAgdWludDY0X3QgZnJhbWU7CisgICAgfSBzdWJfcGFnZTsKKworICAgIC8q
CisgICAgICogSWYgdGhlIGdyYW50IGlzIEdURl90cmFuc2l0aXZlLCBAZG9taWQgaXMgYWxsb3dl
ZCB0byB1c2UgdGhlCisgICAgICogZ3JhbnQgQGdyZWYgaW4gZG9tYWluIEB0cmFuc19kb21pZCwg
YXMgaWYgaXQgd2FzIHRoZSBsb2NhbAorICAgICAqIGRvbWFpbi4gIE9idmlvdXNseSwgdGhlIHRy
YW5zaXRpdmUgYWNjZXNzIG11c3QgYmUgY29tcGF0aWJsZQorICAgICAqIHdpdGggdGhlIG9yaWdp
bmFsIGdyYW50LgorICAgICAqCisgICAgICogVGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBYZW4gZG9l
cyBub3QgYWxsb3cgdHJhbnNpdGl2ZSBncmFudHMKKyAgICAgKiB0byBiZSBtYXBwZWQuCisgICAg
ICovCisgICAgc3RydWN0IHsKKyAgICAgICAgZ3JhbnRfZW50cnlfaGVhZGVyX3QgaGRyOworICAg
ICAgICBkb21pZF90IHRyYW5zX2RvbWlkOworICAgICAgICB1aW50MTZfdCBwYWQwOworICAgICAg
ICBncmFudF9yZWZfdCBncmVmOworICAgIH0gdHJhbnNpdGl2ZTsKKworICAgIHVpbnQzMl90IF9f
c3BhY2VyWzRdOyAvKiBQYWQgdG8gYSBwb3dlciBvZiB0d28gKi8KK307Cit0eXBlZGVmIHVuaW9u
IGdyYW50X2VudHJ5X3YyIGdyYW50X2VudHJ5X3YyX3Q7CisKK3R5cGVkZWYgdWludDE2X3QgZ3Jh
bnRfc3RhdHVzX3Q7CisKKyNlbmRpZiAvKiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fICovCisK
Ky8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogR1JBTlQgVEFCTEUgUVVF
UklFUyBBTkQgVVNFUworICovCisKKy8qIGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJW
SVNPUl9ncmFudF90YWJsZV9vcChlbnVtIGdyYW50X3RhYmxlX29wIGNtZCwKKyAqIGAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2b2lkICphcmdzLAorICogYCAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIGludCBjb3VudCkKKyAqIGAKKyAqCisgKiBAYXJncyBwb2ludHMgdG8g
YW4gYXJyYXkgb2YgYSBwZXItY29tbWFuZCBkYXRhIHN0cnVjdHVyZS4gVGhlIGFycmF5CisgKiBo
YXMgQGNvdW50IG1lbWJlcnMKKyAqLworCisvKiBgIGVudW0gZ3JhbnRfdGFibGVfb3AgeyAvLyBH
TlRUQUJPUF8qID0+IHN0cnVjdCBnbnR0YWJfKiAqLworI2RlZmluZSBHTlRUQUJPUF9tYXBfZ3Jh
bnRfcmVmICAgICAgICAwCisjZGVmaW5lIEdOVFRBQk9QX3VubWFwX2dyYW50X3JlZiAgICAgIDEK
KyNkZWZpbmUgR05UVEFCT1Bfc2V0dXBfdGFibGUgICAgICAgICAgMgorI2RlZmluZSBHTlRUQUJP
UF9kdW1wX3RhYmxlICAgICAgICAgICAzCisjZGVmaW5lIEdOVFRBQk9QX3RyYW5zZmVyICAgICAg
ICAgICAgIDQKKyNkZWZpbmUgR05UVEFCT1BfY29weSAgICAgICAgICAgICAgICAgNQorI2RlZmlu
ZSBHTlRUQUJPUF9xdWVyeV9zaXplICAgICAgICAgICA2CisjZGVmaW5lIEdOVFRBQk9QX3VubWFw
X2FuZF9yZXBsYWNlICAgIDcKKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fID49IDB4MDAw
MzAyMGEKKyNkZWZpbmUgR05UVEFCT1Bfc2V0X3ZlcnNpb24gICAgICAgICAgOAorI2RlZmluZSBH
TlRUQUJPUF9nZXRfc3RhdHVzX2ZyYW1lcyAgICA5CisjZGVmaW5lIEdOVFRBQk9QX2dldF92ZXJz
aW9uICAgICAgICAgIDEwCisjZGVmaW5lIEdOVFRBQk9QX3N3YXBfZ3JhbnRfcmVmCSAgICAgIDEx
CisjZGVmaW5lIEdOVFRBQk9QX2NhY2hlX2ZsdXNoCSAgICAgIDEyCisjZW5kaWYgLyogX19YRU5f
SU5URVJGQUNFX1ZFUlNJT05fXyAqLworLyogYCB9ICovCisKKy8qCisgKiBIYW5kbGUgdG8gdHJh
Y2sgYSBtYXBwaW5nIGNyZWF0ZWQgdmlhIGEgZ3JhbnQgcmVmZXJlbmNlLgorICovCit0eXBlZGVm
IHVpbnQzMl90IGdyYW50X2hhbmRsZV90OworCisvKgorICogR05UVEFCT1BfbWFwX2dyYW50X3Jl
ZjogTWFwIHRoZSBncmFudCBlbnRyeSAoPGRvbT4sPHJlZj4pIGZvciBhY2Nlc3MKKyAqIGJ5IGRl
dmljZXMgYW5kL29yIGhvc3QgQ1BVcy4gSWYgc3VjY2Vzc2Z1bCwgPGhhbmRsZT4gaXMgYSB0cmFj
a2luZyBudW1iZXIKKyAqIHRoYXQgbXVzdCBiZSBwcmVzZW50ZWQgbGF0ZXIgdG8gZGVzdHJveSB0
aGUgbWFwcGluZyhzKS4gT24gZXJyb3IsIDxzdGF0dXM+CisgKiBpcyBhIG5lZ2F0aXZlIHN0YXR1
cyBjb2RlLgorICogTk9URVM6CisgKiAgMS4gSWYgR05UTUFQX2RldmljZV9tYXAgaXMgc3BlY2lm
aWVkIHRoZW4gPGRldl9idXNfYWRkcj4gaXMgdGhlIGFkZHJlc3MKKyAqICAgICB2aWEgd2hpY2gg
SS9PIGRldmljZXMgbWF5IGFjY2VzcyB0aGUgZ3JhbnRlZCBmcmFtZS4KKyAqICAyLiBJZiBHTlRN
QVBfaG9zdF9tYXAgaXMgc3BlY2lmaWVkIHRoZW4gYSBtYXBwaW5nIHdpbGwgYmUgYWRkZWQgYXQK
KyAqICAgICBlaXRoZXIgYSBob3N0IHZpcnR1YWwgYWRkcmVzcyBpbiB0aGUgY3VycmVudCBhZGRy
ZXNzIHNwYWNlLCBvciBhdAorICogICAgIGEgUFRFIGF0IHRoZSBzcGVjaWZpZWQgbWFjaGluZSBh
ZGRyZXNzLiAgVGhlIHR5cGUgb2YgbWFwcGluZyB0bworICogICAgIHBlcmZvcm0gaXMgc2VsZWN0
ZWQgdGhyb3VnaCB0aGUgR05UTUFQX2NvbnRhaW5zX3B0ZSBmbGFnLCBhbmQgdGhlCisgKiAgICAg
YWRkcmVzcyBpcyBzcGVjaWZpZWQgaW4gPGhvc3RfYWRkcj4uCisgKiAgMy4gTWFwcGluZ3Mgc2hv
dWxkIG9ubHkgYmUgZGVzdHJveWVkIHZpYSBHTlRUQUJPUF91bm1hcF9ncmFudF9yZWYuIElmIGEK
KyAqICAgICBob3N0IG1hcHBpbmcgaXMgZGVzdHJveWVkIGJ5IG90aGVyIG1lYW5zIHRoZW4gaXQg
aXMgKk5PVCogZ3VhcmFudGVlZAorICogICAgIHRvIGJlIGFjY291bnRlZCB0byB0aGUgY29ycmVj
dCBncmFudCByZWZlcmVuY2UhCisgKi8KK3N0cnVjdCBnbnR0YWJfbWFwX2dyYW50X3JlZiB7Cisg
ICAgLyogSU4gcGFyYW1ldGVycy4gKi8KKyAgICB1aW50NjRfdCBob3N0X2FkZHI7CisgICAgdWlu
dDMyX3QgZmxhZ3M7ICAgICAgICAgICAgICAgLyogR05UTUFQXyogKi8KKyAgICBncmFudF9yZWZf
dCByZWY7CisgICAgZG9taWRfdCAgZG9tOworICAgIC8qIE9VVCBwYXJhbWV0ZXJzLiAqLworICAg
IGludDE2X3QgIHN0YXR1czsgICAgICAgICAgICAgIC8qID0+IGVudW0gZ3JhbnRfc3RhdHVzICov
CisgICAgZ3JhbnRfaGFuZGxlX3QgaGFuZGxlOworICAgIHVpbnQ2NF90IGRldl9idXNfYWRkcjsK
K307Cit0eXBlZGVmIHN0cnVjdCBnbnR0YWJfbWFwX2dyYW50X3JlZiBnbnR0YWJfbWFwX2dyYW50
X3JlZl90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoZ250dGFiX21hcF9ncmFudF9yZWZfdCk7
CisKKy8qCisgKiBHTlRUQUJPUF91bm1hcF9ncmFudF9yZWY6IERlc3Ryb3kgb25lIG9yIG1vcmUg
Z3JhbnQtcmVmZXJlbmNlIG1hcHBpbmdzCisgKiB0cmFja2VkIGJ5IDxoYW5kbGU+LiBJZiA8aG9z
dF9hZGRyPiBvciA8ZGV2X2J1c19hZGRyPiBpcyB6ZXJvLCB0aGF0CisgKiBmaWVsZCBpcyBpZ25v
cmVkLiBJZiBub24temVybywgdGhleSBtdXN0IHJlZmVyIHRvIGEgZGV2aWNlL2hvc3QgbWFwcGlu
ZworICogdGhhdCBpcyB0cmFja2VkIGJ5IDxoYW5kbGU+CisgKiBOT1RFUzoKKyAqICAxLiBUaGUg
Y2FsbCBtYXkgZmFpbCBpbiBhbiB1bmRlZmluZWQgbWFubmVyIGlmIGVpdGhlciBtYXBwaW5nIGlz
IG5vdAorICogICAgIHRyYWNrZWQgYnkgPGhhbmRsZT4uCisgKiAgMy4gQWZ0ZXIgZXhlY3V0aW5n
IGEgYmF0Y2ggb2YgdW5tYXBzLCBpdCBpcyBndWFyYW50ZWVkIHRoYXQgbm8gc3RhbGUKKyAqICAg
ICBtYXBwaW5ncyB3aWxsIHJlbWFpbiBpbiB0aGUgZGV2aWNlIG9yIGhvc3QgVExCcy4KKyAqLwor
c3RydWN0IGdudHRhYl91bm1hcF9ncmFudF9yZWYgeworICAgIC8qIElOIHBhcmFtZXRlcnMuICov
CisgICAgdWludDY0X3QgaG9zdF9hZGRyOworICAgIHVpbnQ2NF90IGRldl9idXNfYWRkcjsKKyAg
ICBncmFudF9oYW5kbGVfdCBoYW5kbGU7CisgICAgLyogT1VUIHBhcmFtZXRlcnMuICovCisgICAg
aW50MTZfdCAgc3RhdHVzOyAgICAgICAgICAgICAgLyogPT4gZW51bSBncmFudF9zdGF0dXMgKi8K
K307Cit0eXBlZGVmIHN0cnVjdCBnbnR0YWJfdW5tYXBfZ3JhbnRfcmVmIGdudHRhYl91bm1hcF9n
cmFudF9yZWZfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKGdudHRhYl91bm1hcF9ncmFudF9y
ZWZfdCk7CisKKy8qCisgKiBHTlRUQUJPUF9zZXR1cF90YWJsZTogU2V0IHVwIGEgZ3JhbnQgdGFi
bGUgZm9yIDxkb20+IGNvbXByaXNpbmcgYXQgbGVhc3QKKyAqIDxucl9mcmFtZXM+IHBhZ2VzLiBU
aGUgZnJhbWUgYWRkcmVzc2VzIGFyZSB3cml0dGVuIHRvIHRoZSA8ZnJhbWVfbGlzdD4uCisgKiBP
bmx5IDxucl9mcmFtZXM+IGFkZHJlc3NlcyBhcmUgd3JpdHRlbiwgZXZlbiBpZiB0aGUgdGFibGUg
aXMgbGFyZ2VyLgorICogTk9URVM6CisgKiAgMS4gPGRvbT4gbWF5IGJlIHNwZWNpZmllZCBhcyBE
T01JRF9TRUxGLgorICogIDIuIE9ubHkgYSBzdWZmaWNpZW50bHktcHJpdmlsZWdlZCBkb21haW4g
bWF5IHNwZWNpZnkgPGRvbT4gIT0gRE9NSURfU0VMRi4KKyAqICAzLiBYZW4gbWF5IG5vdCBzdXBw
b3J0IG1vcmUgdGhhbiBhIHNpbmdsZSBncmFudC10YWJsZSBwYWdlIHBlciBkb21haW4uCisgKi8K
K3N0cnVjdCBnbnR0YWJfc2V0dXBfdGFibGUgeworICAgIC8qIElOIHBhcmFtZXRlcnMuICovCisg
ICAgZG9taWRfdCAgZG9tOworICAgIHVpbnQzMl90IG5yX2ZyYW1lczsKKyAgICAvKiBPVVQgcGFy
YW1ldGVycy4gKi8KKyAgICBpbnQxNl90ICBzdGF0dXM7ICAgICAgICAgICAgICAvKiA9PiBlbnVt
IGdyYW50X3N0YXR1cyAqLworI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPCAweDAwMDQw
MzAwCisgICAgWEVOX0dVRVNUX0hBTkRMRSh1bG9uZykgZnJhbWVfbGlzdDsKKyNlbHNlCisgICAg
WEVOX0dVRVNUX0hBTkRMRSh4ZW5fcGZuX3QpIGZyYW1lX2xpc3Q7CisjZW5kaWYKK307Cit0eXBl
ZGVmIHN0cnVjdCBnbnR0YWJfc2V0dXBfdGFibGUgZ250dGFiX3NldHVwX3RhYmxlX3Q7CitERUZJ
TkVfWEVOX0dVRVNUX0hBTkRMRShnbnR0YWJfc2V0dXBfdGFibGVfdCk7CisKKy8qCisgKiBHTlRU
QUJPUF9kdW1wX3RhYmxlOiBEdW1wIHRoZSBjb250ZW50cyBvZiB0aGUgZ3JhbnQgdGFibGUgdG8g
dGhlCisgKiB4ZW4gY29uc29sZS4gRGVidWdnaW5nIHVzZSBvbmx5LgorICovCitzdHJ1Y3QgZ250
dGFiX2R1bXBfdGFibGUgeworICAgIC8qIElOIHBhcmFtZXRlcnMuICovCisgICAgZG9taWRfdCBk
b207CisgICAgLyogT1VUIHBhcmFtZXRlcnMuICovCisgICAgaW50MTZfdCBzdGF0dXM7ICAgICAg
ICAgICAgICAgLyogPT4gZW51bSBncmFudF9zdGF0dXMgKi8KK307Cit0eXBlZGVmIHN0cnVjdCBn
bnR0YWJfZHVtcF90YWJsZSBnbnR0YWJfZHVtcF90YWJsZV90OworREVGSU5FX1hFTl9HVUVTVF9I
QU5ETEUoZ250dGFiX2R1bXBfdGFibGVfdCk7CisKKy8qCisgKiBHTlRUQUJPUF90cmFuc2Zlcjog
VHJhbnNmZXIgPGZyYW1lPiB0byBhIGZvcmVpZ24gZG9tYWluLiBUaGUgZm9yZWlnbiBkb21haW4K
KyAqIGhhcyBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgaXRzIGludGVyZXN0IGluIHRoZSB0cmFuc2Zl
ciB2aWEgPGRvbWlkLCByZWY+LgorICoKKyAqIE5vdGUgdGhhdCwgZXZlbiBpZiB0aGUgdHJhbnNm
ZXIgZmFpbHMsIHRoZSBzcGVjaWZpZWQgcGFnZSBubyBsb25nZXIgYmVsb25ncworICogdG8gdGhl
IGNhbGxpbmcgZG9tYWluICp1bmxlc3MqIHRoZSBlcnJvciBpcyBHTlRTVF9iYWRfcGFnZS4KKyAq
CisgKiBOb3RlIGZ1cnRoZXIgdGhhdCBvbmx5IFBWIGd1ZXN0cyBjYW4gdXNlIHRoaXMgb3BlcmF0
aW9uLgorICovCitzdHJ1Y3QgZ250dGFiX3RyYW5zZmVyIHsKKyAgICAvKiBJTiBwYXJhbWV0ZXJz
LiAqLworICAgIHhlbl9wZm5fdCAgICAgbWZuOworICAgIGRvbWlkX3QgICAgICAgZG9taWQ7Cisg
ICAgZ3JhbnRfcmVmX3QgICByZWY7CisgICAgLyogT1VUIHBhcmFtZXRlcnMuICovCisgICAgaW50
MTZfdCAgICAgICBzdGF0dXM7Cit9OwordHlwZWRlZiBzdHJ1Y3QgZ250dGFiX3RyYW5zZmVyIGdu
dHRhYl90cmFuc2Zlcl90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoZ250dGFiX3RyYW5zZmVy
X3QpOworCisKKy8qCisgKiBHTlRUQUJPUF9jb3B5OiBIeXBlcnZpc29yIGJhc2VkIGNvcHkKKyAq
IHNvdXJjZSBhbmQgZGVzdGluYXRpb25zIGNhbiBiZSBlaXRoZXJzIE1GTnMgb3IsIGZvciBmb3Jl
aWduIGRvbWFpbnMsCisgKiBncmFudCByZWZlcmVuY2VzLiB0aGUgZm9yZWlnbiBkb21haW4gaGFz
IHRvIGdyYW50IHJlYWQvd3JpdGUgYWNjZXNzCisgKiBpbiBpdHMgZ3JhbnQgdGFibGUuCisgKgor
ICogVGhlIGZsYWdzIHNwZWNpZnkgd2hhdCB0eXBlIHNvdXJjZSBhbmQgZGVzdGluYXRpb25zIGFy
ZSAoZWl0aGVyIE1GTgorICogb3IgZ3JhbnQgcmVmZXJlbmNlKS4KKyAqCisgKiBOb3RlIHRoYXQg
dGhpcyBjYW4gYWxzbyBiZSB1c2VkIHRvIGNvcHkgZGF0YSBiZXR3ZWVuIHR3byBkb21haW5zCisg
KiB2aWEgYSB0aGlyZCBwYXJ0eSBpZiB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBkb21haW5z
IGhhZCBwcmV2aW91c2x5CisgKiBncmFudCBhcHByb3ByaWF0ZSBhY2Nlc3MgdG8gdGhlaXIgcGFn
ZXMgdG8gdGhlIHRoaXJkIHBhcnR5LgorICoKKyAqIHNvdXJjZV9vZmZzZXQgc3BlY2lmaWVzIGFu
IG9mZnNldCBpbiB0aGUgc291cmNlIGZyYW1lLCBkZXN0X29mZnNldAorICogdGhlIG9mZnNldCBp
biB0aGUgdGFyZ2V0IGZyYW1lIGFuZCAgbGVuIHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mCisgKiBi
eXRlcyB0byBiZSBjb3BpZWQuCisgKi8KKworI2RlZmluZSBfR05UQ09QWV9zb3VyY2VfZ3JlZiAg
ICAgICgwKQorI2RlZmluZSBHTlRDT1BZX3NvdXJjZV9ncmVmICAgICAgICgxPDxfR05UQ09QWV9z
b3VyY2VfZ3JlZikKKyNkZWZpbmUgX0dOVENPUFlfZGVzdF9ncmVmICAgICAgICAoMSkKKyNkZWZp
bmUgR05UQ09QWV9kZXN0X2dyZWYgICAgICAgICAoMTw8X0dOVENPUFlfZGVzdF9ncmVmKQorCitz
dHJ1Y3QgZ250dGFiX2NvcHkgeworICAgIC8qIElOIHBhcmFtZXRlcnMuICovCisgICAgc3RydWN0
IGdudHRhYl9jb3B5X3B0ciB7CisgICAgICAgIHVuaW9uIHsKKyAgICAgICAgICAgIGdyYW50X3Jl
Zl90IHJlZjsKKyAgICAgICAgICAgIHhlbl9wZm5fdCAgIGdtZm47CisgICAgICAgIH0gdTsKKyAg
ICAgICAgZG9taWRfdCAgZG9taWQ7CisgICAgICAgIHVpbnQxNl90IG9mZnNldDsKKyAgICB9IHNv
dXJjZSwgZGVzdDsKKyAgICB1aW50MTZfdCAgICAgIGxlbjsKKyAgICB1aW50MTZfdCAgICAgIGZs
YWdzOyAgICAgICAgICAvKiBHTlRDT1BZXyogKi8KKyAgICAvKiBPVVQgcGFyYW1ldGVycy4gKi8K
KyAgICBpbnQxNl90ICAgICAgIHN0YXR1czsKK307Cit0eXBlZGVmIHN0cnVjdCBnbnR0YWJfY29w
eSAgZ250dGFiX2NvcHlfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKGdudHRhYl9jb3B5X3Qp
OworCisvKgorICogR05UVEFCT1BfcXVlcnlfc2l6ZTogUXVlcnkgdGhlIGN1cnJlbnQgYW5kIG1h
eGltdW0gc2l6ZXMgb2YgdGhlIHNoYXJlZAorICogZ3JhbnQgdGFibGUuCisgKiBOT1RFUzoKKyAq
ICAxLiA8ZG9tPiBtYXkgYmUgc3BlY2lmaWVkIGFzIERPTUlEX1NFTEYuCisgKiAgMi4gT25seSBh
IHN1ZmZpY2llbnRseS1wcml2aWxlZ2VkIGRvbWFpbiBtYXkgc3BlY2lmeSA8ZG9tPiAhPSBET01J
RF9TRUxGLgorICovCitzdHJ1Y3QgZ250dGFiX3F1ZXJ5X3NpemUgeworICAgIC8qIElOIHBhcmFt
ZXRlcnMuICovCisgICAgZG9taWRfdCAgZG9tOworICAgIC8qIE9VVCBwYXJhbWV0ZXJzLiAqLwor
ICAgIHVpbnQzMl90IG5yX2ZyYW1lczsKKyAgICB1aW50MzJfdCBtYXhfbnJfZnJhbWVzOworICAg
IGludDE2X3QgIHN0YXR1czsgICAgICAgICAgICAgIC8qID0+IGVudW0gZ3JhbnRfc3RhdHVzICov
Cit9OwordHlwZWRlZiBzdHJ1Y3QgZ250dGFiX3F1ZXJ5X3NpemUgZ250dGFiX3F1ZXJ5X3NpemVf
dDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKGdudHRhYl9xdWVyeV9zaXplX3QpOworCisvKgor
ICogR05UVEFCT1BfdW5tYXBfYW5kX3JlcGxhY2U6IERlc3Ryb3kgb25lIG9yIG1vcmUgZ3JhbnQt
cmVmZXJlbmNlIG1hcHBpbmdzCisgKiB0cmFja2VkIGJ5IDxoYW5kbGU+IGJ1dCBhdG9taWNhbGx5
IHJlcGxhY2UgdGhlIHBhZ2UgdGFibGUgZW50cnkgd2l0aCBvbmUKKyAqIHBvaW50aW5nIHRvIHRo
ZSBtYWNoaW5lIGFkZHJlc3MgdW5kZXIgPG5ld19hZGRyPi4gIDxuZXdfYWRkcj4gd2lsbCBiZQor
ICogcmVkaXJlY3RlZCB0byB0aGUgbnVsbCBlbnRyeS4KKyAqIE5PVEVTOgorICogIDEuIFRoZSBj
YWxsIG1heSBmYWlsIGluIGFuIHVuZGVmaW5lZCBtYW5uZXIgaWYgZWl0aGVyIG1hcHBpbmcgaXMg
bm90CisgKiAgICAgdHJhY2tlZCBieSA8aGFuZGxlPi4KKyAqICAyLiBBZnRlciBleGVjdXRpbmcg
YSBiYXRjaCBvZiB1bm1hcHMsIGl0IGlzIGd1YXJhbnRlZWQgdGhhdCBubyBzdGFsZQorICogICAg
IG1hcHBpbmdzIHdpbGwgcmVtYWluIGluIHRoZSBkZXZpY2Ugb3IgaG9zdCBUTEJzLgorICovCitz
dHJ1Y3QgZ250dGFiX3VubWFwX2FuZF9yZXBsYWNlIHsKKyAgICAvKiBJTiBwYXJhbWV0ZXJzLiAq
LworICAgIHVpbnQ2NF90IGhvc3RfYWRkcjsKKyAgICB1aW50NjRfdCBuZXdfYWRkcjsKKyAgICBn
cmFudF9oYW5kbGVfdCBoYW5kbGU7CisgICAgLyogT1VUIHBhcmFtZXRlcnMuICovCisgICAgaW50
MTZfdCAgc3RhdHVzOyAgICAgICAgICAgICAgLyogPT4gZW51bSBncmFudF9zdGF0dXMgKi8KK307
Cit0eXBlZGVmIHN0cnVjdCBnbnR0YWJfdW5tYXBfYW5kX3JlcGxhY2UgZ250dGFiX3VubWFwX2Fu
ZF9yZXBsYWNlX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShnbnR0YWJfdW5tYXBfYW5kX3Jl
cGxhY2VfdCk7CisKKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fID49IDB4MDAwMzAyMGEK
Ky8qCisgKiBHTlRUQUJPUF9zZXRfdmVyc2lvbjogUmVxdWVzdCBhIHBhcnRpY3VsYXIgdmVyc2lv
biBvZiB0aGUgZ3JhbnQKKyAqIHRhYmxlIHNoYXJlZCB0YWJsZSBzdHJ1Y3R1cmUuICBUaGlzIG9w
ZXJhdGlvbiBjYW4gb25seSBiZSBwZXJmb3JtZWQKKyAqIG9uY2UgaW4gYW55IGdpdmVuIGRvbWFp
bi4gIEl0IG11c3QgYmUgcGVyZm9ybWVkIGJlZm9yZSBhbnkgZ3JhbnRzCisgKiBhcmUgYWN0aXZh
dGVkOyBvdGhlcndpc2UsIHRoZSBkb21haW4gd2lsbCBiZSBzdHVjayB3aXRoIHZlcnNpb24gMS4K
KyAqIFRoZSBvbmx5IGRlZmluZWQgdmVyc2lvbnMgYXJlIDEgYW5kIDIuCisgKi8KK3N0cnVjdCBn
bnR0YWJfc2V0X3ZlcnNpb24geworICAgIC8qIElOL09VVCBwYXJhbWV0ZXJzICovCisgICAgdWlu
dDMyX3QgdmVyc2lvbjsKK307Cit0eXBlZGVmIHN0cnVjdCBnbnR0YWJfc2V0X3ZlcnNpb24gZ250
dGFiX3NldF92ZXJzaW9uX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShnbnR0YWJfc2V0X3Zl
cnNpb25fdCk7CisKKworLyoKKyAqIEdOVFRBQk9QX2dldF9zdGF0dXNfZnJhbWVzOiBHZXQgdGhl
IGxpc3Qgb2YgZnJhbWVzIHVzZWQgdG8gc3RvcmUgZ3JhbnQKKyAqIHN0YXR1cyBmb3IgPGRvbT4u
IEluIGdyYW50IGZvcm1hdCB2ZXJzaW9uIDIsIHRoZSBzdGF0dXMgaXMgc2VwYXJhdGVkCisgKiBm
cm9tIHRoZSBvdGhlciBzaGFyZWQgZ3JhbnQgZmllbGRzIHRvIGFsbG93IG1vcmUgZWZmaWNpZW50
IHN5bmNocm9uaXphdGlvbgorICogdXNpbmcgYmFycmllcnMgaW5zdGVhZCBvZiBhdG9taWMgY21w
ZXhjaCBvcGVyYXRpb25zLgorICogPG5yX2ZyYW1lcz4gc3BlY2lmeSB0aGUgc2l6ZSBvZiB2ZWN0
b3IgPGZyYW1lX2xpc3Q+LgorICogVGhlIGZyYW1lIGFkZHJlc3NlcyBhcmUgcmV0dXJuZWQgaW4g
dGhlIDxmcmFtZV9saXN0Pi4KKyAqIE9ubHkgPG5yX2ZyYW1lcz4gYWRkcmVzc2VzIGFyZSByZXR1
cm5lZCwgZXZlbiBpZiB0aGUgdGFibGUgaXMgbGFyZ2VyLgorICogTk9URVM6CisgKiAgMS4gPGRv
bT4gbWF5IGJlIHNwZWNpZmllZCBhcyBET01JRF9TRUxGLgorICogIDIuIE9ubHkgYSBzdWZmaWNp
ZW50bHktcHJpdmlsZWdlZCBkb21haW4gbWF5IHNwZWNpZnkgPGRvbT4gIT0gRE9NSURfU0VMRi4K
KyAqLworc3RydWN0IGdudHRhYl9nZXRfc3RhdHVzX2ZyYW1lcyB7CisgICAgLyogSU4gcGFyYW1l
dGVycy4gKi8KKyAgICB1aW50MzJfdCBucl9mcmFtZXM7CisgICAgZG9taWRfdCAgZG9tOworICAg
IC8qIE9VVCBwYXJhbWV0ZXJzLiAqLworICAgIGludDE2X3QgIHN0YXR1czsgICAgICAgICAgICAg
IC8qID0+IGVudW0gZ3JhbnRfc3RhdHVzICovCisgICAgWEVOX0dVRVNUX0hBTkRMRSh1aW50NjRf
dCkgZnJhbWVfbGlzdDsKK307Cit0eXBlZGVmIHN0cnVjdCBnbnR0YWJfZ2V0X3N0YXR1c19mcmFt
ZXMgZ250dGFiX2dldF9zdGF0dXNfZnJhbWVzX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShn
bnR0YWJfZ2V0X3N0YXR1c19mcmFtZXNfdCk7CisKKy8qCisgKiBHTlRUQUJPUF9nZXRfdmVyc2lv
bjogR2V0IHRoZSBncmFudCB0YWJsZSB2ZXJzaW9uIHdoaWNoIGlzIGluCisgKiBlZmZlY3QgZm9y
IGRvbWFpbiA8ZG9tPi4KKyAqLworc3RydWN0IGdudHRhYl9nZXRfdmVyc2lvbiB7CisgICAgLyog
SU4gcGFyYW1ldGVycyAqLworICAgIGRvbWlkX3QgZG9tOworICAgIHVpbnQxNl90IHBhZDsKKyAg
ICAvKiBPVVQgcGFyYW1ldGVycyAqLworICAgIHVpbnQzMl90IHZlcnNpb247Cit9OwordHlwZWRl
ZiBzdHJ1Y3QgZ250dGFiX2dldF92ZXJzaW9uIGdudHRhYl9nZXRfdmVyc2lvbl90OworREVGSU5F
X1hFTl9HVUVTVF9IQU5ETEUoZ250dGFiX2dldF92ZXJzaW9uX3QpOworCisvKgorICogR05UVEFC
T1Bfc3dhcF9ncmFudF9yZWY6IFN3YXAgdGhlIGNvbnRlbnRzIG9mIHR3byBncmFudCBlbnRyaWVz
LgorICovCitzdHJ1Y3QgZ250dGFiX3N3YXBfZ3JhbnRfcmVmIHsKKyAgICAvKiBJTiBwYXJhbWV0
ZXJzICovCisgICAgZ3JhbnRfcmVmX3QgcmVmX2E7CisgICAgZ3JhbnRfcmVmX3QgcmVmX2I7Cisg
ICAgLyogT1VUIHBhcmFtZXRlcnMgKi8KKyAgICBpbnQxNl90IHN0YXR1czsgICAgICAgICAgICAg
LyogPT4gZW51bSBncmFudF9zdGF0dXMgKi8KK307Cit0eXBlZGVmIHN0cnVjdCBnbnR0YWJfc3dh
cF9ncmFudF9yZWYgZ250dGFiX3N3YXBfZ3JhbnRfcmVmX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hB
TkRMRShnbnR0YWJfc3dhcF9ncmFudF9yZWZfdCk7CisKKy8qCisgKiBJc3N1ZSBvbmUgb3IgbW9y
ZSBjYWNoZSBtYWludGVuYW5jZSBvcGVyYXRpb25zIG9uIGEgcG9ydGlvbiBvZiBhCisgKiBwYWdl
IGdyYW50ZWQgdG8gdGhlIGNhbGxpbmcgZG9tYWluIGJ5IGEgZm9yZWlnbiBkb21haW4uCisgKi8K
K3N0cnVjdCBnbnR0YWJfY2FjaGVfZmx1c2ggeworICAgIHVuaW9uIHsKKyAgICAgICAgdWludDY0
X3QgZGV2X2J1c19hZGRyOworICAgICAgICBncmFudF9yZWZfdCByZWY7CisgICAgfSBhOworICAg
IHVpbnQxNl90IG9mZnNldDsgLyogb2Zmc2V0IGZyb20gc3RhcnQgb2YgZ3JhbnQgKi8KKyAgICB1
aW50MTZfdCBsZW5ndGg7IC8qIHNpemUgd2l0aGluIHRoZSBncmFudCAqLworI2RlZmluZSBHTlRU
QUJfQ0FDSEVfQ0xFQU4gICAgICAgICAgKDE8PDApCisjZGVmaW5lIEdOVFRBQl9DQUNIRV9JTlZB
TCAgICAgICAgICAoMTw8MSkKKyNkZWZpbmUgR05UVEFCX0NBQ0hFX1NPVVJDRV9HUkVGICAgICgx
PDwzMSkKKyAgICB1aW50MzJfdCBvcDsKK307Cit0eXBlZGVmIHN0cnVjdCBnbnR0YWJfY2FjaGVf
Zmx1c2ggZ250dGFiX2NhY2hlX2ZsdXNoX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShnbnR0
YWJfY2FjaGVfZmx1c2hfdCk7CisKKyNlbmRpZiAvKiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9f
ICovCisKKy8qCisgKiBCaXRmaWVsZCB2YWx1ZXMgZm9yIGdudHRhYl9tYXBfZ3JhbnRfcmVmLmZs
YWdzLgorICovCisgLyogTWFwIHRoZSBncmFudCBlbnRyeSBmb3IgYWNjZXNzIGJ5IEkvTyBkZXZp
Y2VzLiAqLworI2RlZmluZSBfR05UTUFQX2RldmljZV9tYXAgICAgICAoMCkKKyNkZWZpbmUgR05U
TUFQX2RldmljZV9tYXAgICAgICAgKDE8PF9HTlRNQVBfZGV2aWNlX21hcCkKKyAvKiBNYXAgdGhl
IGdyYW50IGVudHJ5IGZvciBhY2Nlc3MgYnkgaG9zdCBDUFVzLiAqLworI2RlZmluZSBfR05UTUFQ
X2hvc3RfbWFwICAgICAgICAoMSkKKyNkZWZpbmUgR05UTUFQX2hvc3RfbWFwICAgICAgICAgKDE8
PF9HTlRNQVBfaG9zdF9tYXApCisgLyogQWNjZXNzZXMgdG8gdGhlIGdyYW50ZWQgZnJhbWUgd2ls
bCBiZSByZXN0cmljdGVkIHRvIHJlYWQtb25seSBhY2Nlc3MuICovCisjZGVmaW5lIF9HTlRNQVBf
cmVhZG9ubHkgICAgICAgICgyKQorI2RlZmluZSBHTlRNQVBfcmVhZG9ubHkgICAgICAgICAoMTw8
X0dOVE1BUF9yZWFkb25seSkKKyAvKgorICAqIEdOVE1BUF9ob3N0X21hcCBzdWJmbGFnOgorICAq
ICAwID0+IFRoZSBob3N0IG1hcHBpbmcgaXMgdXNhYmxlIG9ubHkgYnkgdGhlIGd1ZXN0IE9TLgor
ICAqICAxID0+IFRoZSBob3N0IG1hcHBpbmcgaXMgdXNhYmxlIGJ5IGd1ZXN0IE9TICsgY3VycmVu
dCBhcHBsaWNhdGlvbi4KKyAgKi8KKyNkZWZpbmUgX0dOVE1BUF9hcHBsaWNhdGlvbl9tYXAgKDMp
CisjZGVmaW5lIEdOVE1BUF9hcHBsaWNhdGlvbl9tYXAgICgxPDxfR05UTUFQX2FwcGxpY2F0aW9u
X21hcCkKKworIC8qCisgICogR05UTUFQX2NvbnRhaW5zX3B0ZSBzdWJmbGFnOgorICAqICAwID0+
IFRoaXMgbWFwIHJlcXVlc3QgY29udGFpbnMgYSBob3N0IHZpcnR1YWwgYWRkcmVzcy4KKyAgKiAg
MSA9PiBUaGlzIG1hcCByZXF1ZXN0IGNvbnRhaW5zIHRoZSBtYWNoaW5lIGFkZGVzcyBvZiB0aGUg
UFRFIHRvIHVwZGF0ZS4KKyAgKi8KKyNkZWZpbmUgX0dOVE1BUF9jb250YWluc19wdGUgICAgKDQp
CisjZGVmaW5lIEdOVE1BUF9jb250YWluc19wdGUgICAgICgxPDxfR05UTUFQX2NvbnRhaW5zX3B0
ZSkKKworI2RlZmluZSBfR05UTUFQX2Nhbl9mYWlsICAgICAgICAoNSkKKyNkZWZpbmUgR05UTUFQ
X2Nhbl9mYWlsICAgICAgICAgKDE8PF9HTlRNQVBfY2FuX2ZhaWwpCisKKy8qCisgKiBCaXRzIHRv
IGJlIHBsYWNlZCBpbiBndWVzdCBrZXJuZWwgYXZhaWxhYmxlIFBURSBiaXRzIChhcmNoaXRlY3R1
cmUKKyAqIGRlcGVuZGVudDsgb25seSBzdXBwb3J0ZWQgd2hlbiBYRU5GRUFUX2dudHRhYl9tYXBf
YXZhaWxfYml0cyBpcyBzZXQpLgorICovCisjZGVmaW5lIF9HTlRNQVBfZ3Vlc3RfYXZhaWwwICAg
ICgxNikKKyNkZWZpbmUgR05UTUFQX2d1ZXN0X2F2YWlsX21hc2sgKCh1aW50MzJfdCl+MCA8PCBf
R05UTUFQX2d1ZXN0X2F2YWlsMCkKKworLyoKKyAqIFZhbHVlcyBmb3IgZXJyb3Igc3RhdHVzIHJl
dHVybnMuIEFsbCBlcnJvcnMgYXJlIC12ZS4KKyAqLworLyogYCBlbnVtIGdyYW50X3N0YXR1cyB7
ICovCisjZGVmaW5lIEdOVFNUX29rYXkgICAgICAgICAgICAgKDApICAvKiBOb3JtYWwgcmV0dXJu
LiAgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIEdOVFNUX2dlbmVyYWxfZXJyb3Ig
ICAgKC0xKSAvKiBHZW5lcmFsIHVuZGVmaW5lZCBlcnJvci4gICAgICAgICAgICAgICovCisjZGVm
aW5lIEdOVFNUX2JhZF9kb21haW4gICAgICAgKC0yKSAvKiBVbnJlY29nbnNlZCBkb21haW4gaWQu
ICAgICAgICAgICAgICAgICovCisjZGVmaW5lIEdOVFNUX2JhZF9nbnRyZWYgICAgICAgKC0zKSAv
KiBVbnJlY29nbmlzZWQgb3IgaW5hcHByb3ByaWF0ZSBnbnRyZWYuICovCisjZGVmaW5lIEdOVFNU
X2JhZF9oYW5kbGUgICAgICAgKC00KSAvKiBVbnJlY29nbmlzZWQgb3IgaW5hcHByb3ByaWF0ZSBo
YW5kbGUuICovCisjZGVmaW5lIEdOVFNUX2JhZF92aXJ0X2FkZHIgICAgKC01KSAvKiBJbmFwcHJv
cHJpYXRlIHZpcnR1YWwgYWRkcmVzcyB0byBtYXAuICovCisjZGVmaW5lIEdOVFNUX2JhZF9kZXZf
YWRkciAgICAgKC02KSAvKiBJbmFwcHJvcHJpYXRlIGRldmljZSBhZGRyZXNzIHRvIHVubWFwLiov
CisjZGVmaW5lIEdOVFNUX25vX2RldmljZV9zcGFjZSAgKC03KSAvKiBPdXQgb2Ygc3BhY2UgaW4g
SS9PIE1NVS4gICAgICAgICAgICAgICovCisjZGVmaW5lIEdOVFNUX3Blcm1pc3Npb25fZGVuaWVk
ICgtOCkgLyogTm90IGVub3VnaCBwcml2aWxlZ2UgZm9yIG9wZXJhdGlvbi4gICovCisjZGVmaW5l
IEdOVFNUX2JhZF9wYWdlICAgICAgICAgKC05KSAvKiBTcGVjaWZpZWQgcGFnZSB3YXMgaW52YWxp
ZCBmb3Igb3AuICAgICovCisjZGVmaW5lIEdOVFNUX2JhZF9jb3B5X2FyZyAgICAoLTEwKSAvKiBj
b3B5IGFyZ3VtZW50cyBjcm9zcyBwYWdlIGJvdW5kYXJ5LiAgICovCisjZGVmaW5lIEdOVFNUX2Fk
ZHJlc3NfdG9vX2JpZyAoLTExKSAvKiB0cmFuc2ZlciBwYWdlIGFkZHJlc3MgdG9vIGxhcmdlLiAg
ICAgICovCisjZGVmaW5lIEdOVFNUX2VhZ2FpbiAgICAgICAgICAoLTEyKSAvKiBPcGVyYXRpb24g
bm90IGRvbmU7IHRyeSBhZ2Fpbi4gICAgICAgICovCisvKiBgIH0gKi8KKworI2RlZmluZSBHTlRU
QUJPUF9lcnJvcl9tc2dzIHsgICAgICAgICAgICAgICAgICAgXAorICAgICJva2F5IiwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICJ1bmRlZmluZWQgZXJyb3IiLCAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICJ1bnJlY29nbmlzZWQgZG9tYWluIGlkIiwg
ICAgICAgICAgICAgICAgICAgXAorICAgICJpbnZhbGlkIGdyYW50IHJlZmVyZW5jZSIsICAgICAg
ICAgICAgICAgICAgXAorICAgICJpbnZhbGlkIG1hcHBpbmcgaGFuZGxlIiwgICAgICAgICAgICAg
ICAgICAgXAorICAgICJpbnZhbGlkIHZpcnR1YWwgYWRkcmVzcyIsICAgICAgICAgICAgICAgICAg
XAorICAgICJpbnZhbGlkIGRldmljZSBhZGRyZXNzIiwgICAgICAgICAgICAgICAgICAgXAorICAg
ICJubyBzcGFyZSB0cmFuc2xhdGlvbiBzbG90IGluIHRoZSBJL08gTU1VIiwgXAorICAgICJwZXJt
aXNzaW9uIGRlbmllZCIsICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICJiYWQgcGFnZSIs
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICJjb3B5IGFyZ3VtZW50cyBj
cm9zcyBwYWdlIGJvdW5kYXJ5IiwgICAgICAgXAorICAgICJwYWdlIGFkZHJlc3Mgc2l6ZSB0b28g
bGFyZ2UiLCAgICAgICAgICAgICAgXAorICAgICJvcGVyYXRpb24gbm90IGRvbmU7IHRyeSBhZ2Fp
biIgICAgICAgICAgICAgXAorfQorCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0dSQU5UX1RBQkxF
X0hfXyAqLworCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxl
LXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICog
aW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUv
eGVuL3hzbS9odm0vZG1fb3AuaCBiL2luY2x1ZGUveGVuL3hzbS9odm0vZG1fb3AuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMTczMDg1Ci0tLSAvZGV2L251bGwKKysrIGIv
aW5jbHVkZS94ZW4veHNtL2h2bS9kbV9vcC5oCkBAIC0wLDAgKzEsNDI5IEBACisvKgorICogQ29w
eXJpZ2h0IChjKSAyMDE2LCBDaXRyaXggU3lzdGVtcyBJbmMKKyAqCisgKiBQZXJtaXNzaW9uIGlz
IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcg
YSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24g
ZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhv
dXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdo
dHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJs
aWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBl
cm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8g
c28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92
ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGlu
Y2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBT
b2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V
VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5H
IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisg
KiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUg
TElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5H
CisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBU
SEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisK
KyNpZm5kZWYgX19YRU5fUFVCTElDX0hWTV9ETV9PUF9IX18KKyNkZWZpbmUgX19YRU5fUFVCTElD
X0hWTV9ETV9PUF9IX18KKworI2luY2x1ZGUgIi4uL3hlbi5oIgorCisjaWYgZGVmaW5lZChfX1hF
Tl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCisKKyNpbmNsdWRlICIuLi9ldmVudF9jaGFu
bmVsLmgiCisKKyNpZm5kZWYgdWludDY0X2FsaWduZWRfdAorI2RlZmluZSB1aW50NjRfYWxpZ25l
ZF90IHVpbnQ2NF90CisjZW5kaWYKKworLyoKKyAqIElPUkVRIFNlcnZlcnMKKyAqCisgKiBUaGUg
aW50ZXJmYWNlIGJldHdlZW4gYW4gSS9PIGVtdWxhdG9yIGFuIFhlbiBpcyBjYWxsZWQgYW4gSU9S
RVEgU2VydmVyLgorICogQSBkb21haW4gc3VwcG9ydHMgYSBzaW5nbGUgJ2xlZ2FjeScgSU9SRVEg
U2VydmVyIHdoaWNoIGlzIGluc3RhbnRpYXRlZCBpZgorICogcGFyYW1ldGVyLi4uCisgKgorICog
SFZNX1BBUkFNX0lPUkVRX1BGTiBpcyByZWFkICh0byBnZXQgdGhlIGdmbiBjb250YWluaW5nIHRo
ZSBzeW5jaHJvbm91cworICogaW9yZXEgc3RydWN0dXJlcyksIG9yLi4uCisgKiBIVk1fUEFSQU1f
QlVGSU9SRVFfUEZOIGlzIHJlYWQgKHRvIGdldCB0aGUgZ2ZuIGNvbnRhaW5pbmcgdGhlIGJ1ZmZl
cmVkCisgKiBpb3JlcSByaW5nKSwgb3IuLi4KKyAqIEhWTV9QQVJBTV9CVUZJT1JFUV9FVlRDSE4g
aXMgcmVhZCAodG8gZ2V0IHRoZSBldmVudCBjaGFubmVsIHRoYXQgWGVuIHVzZXMKKyAqIHRvIHJl
cXVlc3QgYnVmZmVyZWQgSS9PIGVtdWxhdGlvbikuCisgKgorICogVGhlIGZvbGxvd2luZyBoeXBl
cmNhbGxzIGZhY2lsaXRhdGUgdGhlIGNyZWF0aW9uIG9mIElPUkVRIFNlcnZlcnMgZm9yCisgKiAn
c2Vjb25kYXJ5JyBlbXVsYXRvcnMgd2hpY2ggYXJlIGludm9rZWQgdG8gaW1wbGVtZW50IHBvcnQg
SS9PLCBtZW1vcnksIG9yCisgKiBQQ0kgY29uZmlnIHNwYWNlIHJhbmdlcyB3aGljaCB0aGV5IGV4
cGxpY2l0bHkgcmVnaXN0ZXIuCisgKi8KKwordHlwZWRlZiB1aW50MTZfdCBpb3NlcnZpZF90Owor
CisvKgorICogWEVOX0RNT1BfY3JlYXRlX2lvcmVxX3NlcnZlcjogSW5zdGFudGlhdGUgYSBuZXcg
SU9SRVEgU2VydmVyIGZvciBhCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNv
bmRhcnkgZW11bGF0b3IuCisgKgorICogVGhlIDxpZD4gaGFuZGVkIGJhY2sgaXMgdW5pcXVlIGZv
ciB0YXJnZXQgZG9tYWluLiBUaGUgdmFsdXIgb2YKKyAqIDxoYW5kbGVfYnVmaW9yZXE+IHNob3Vs
ZCBiZSBvbmUgb2YgSFZNX0lPUkVRU1JWX0JVRklPUkVRXyogZGVmaW5lZCBpbgorICogaHZtX29w
LmguIElmIHRoZSB2YWx1ZSBpcyBIVk1fSU9SRVFTUlZfQlVGSU9SRVFfT0ZGIHRoZW4gIHRoZSBi
dWZmZXJlZAorICogaW9yZXEgcmluZyB3aWxsIG5vdCBiZSBhbGxvY2F0ZWQgYW5kIGhlbmNlIGFs
bCBlbXVsYXRpb24gcmVxdWVzdHMgdG8KKyAqIHRoaXMgc2VydmVyIHdpbGwgYmUgc3luY2hyb25v
dXMuCisgKi8KKyNkZWZpbmUgWEVOX0RNT1BfY3JlYXRlX2lvcmVxX3NlcnZlciAxCisKK3N0cnVj
dCB4ZW5fZG1fb3BfY3JlYXRlX2lvcmVxX3NlcnZlciB7CisgICAgLyogSU4gLSBzaG91bGQgc2Vy
dmVyIGhhbmRsZSBidWZmZXJlZCBpb3JlcXMgKi8KKyAgICB1aW50OF90IGhhbmRsZV9idWZpb3Jl
cTsKKyAgICB1aW50OF90IHBhZFszXTsKKyAgICAvKiBPVVQgLSBzZXJ2ZXIgaWQgKi8KKyAgICBp
b3NlcnZpZF90IGlkOworfTsKKworLyoKKyAqIFhFTl9ETU9QX2dldF9pb3JlcV9zZXJ2ZXJfaW5m
bzogR2V0IGFsbCB0aGUgaW5mb3JtYXRpb24gbmVjZXNzYXJ5IHRvCisgKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFjY2VzcyBJT1JFUSBTZXJ2ZXIgPGlkPi4KKyAqCisgKiBUaGUg
ZW11bGF0b3IgbmVlZHMgdG8gbWFwIHRoZSBzeW5jaHJvbm91cyBpb3JlcSBzdHJ1Y3R1cmVzIGFu
ZCBidWZmZXJlZAorICogaW9yZXEgcmluZyAoaWYgaXQgZXhpc3RzKSB0aGF0IFhlbiB1c2VzIHRv
IHJlcXVlc3QgZW11bGF0aW9uLiBUaGVzZSBhcmUKKyAqIGhvc3RlZCBpbiB0aGUgdGFyZ2V0IGRv
bWFpbidzIGdtZm5zIDxpb3JlcV9nZm4+IGFuZCA8YnVmaW9yZXFfZ2ZuPgorICogcmVzcGVjdGl2
ZWx5LiBJbiBhZGRpdGlvbiwgaWYgdGhlIElPUkVRIFNlcnZlciBpcyBoYW5kbGluZyBidWZmZXJl
ZAorICogZW11bGF0aW9uIHJlcXVlc3RzLCB0aGUgZW11bGF0b3IgbmVlZHMgdG8gYmluZCB0byBl
dmVudCBjaGFubmVsCisgKiA8YnVmaW9yZXFfcG9ydD4gdG8gbGlzdGVuIGZvciB0aGVtLiAoVGhl
IGV2ZW50IGNoYW5uZWxzIHVzZWQgZm9yCisgKiBzeW5jaHJvbm91cyBlbXVsYXRpb24gcmVxdWVz
dHMgYXJlIHNwZWNpZmllZCBpbiB0aGUgcGVyLUNQVSBpb3JlcQorICogc3RydWN0dXJlcyBpbiA8
aW9yZXFfZ2ZuPikuCisgKiBJZiB0aGUgSU9SRVEgU2VydmVyIGlzIG5vdCBoYW5kbGluZyBidWZm
ZXJlZCBlbXVsYXRpb24gcmVxdWVzdHMgdGhlbiB0aGUKKyAqIHZhbHVlcyBoYW5kZWQgYmFjayBp
biA8YnVmaW9yZXFfZ2ZuPiBhbmQgPGJ1ZmlvcmVxX3BvcnQ+IHdpbGwgYm90aCBiZSAwLgorICov
CisjZGVmaW5lIFhFTl9ETU9QX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyAyCisKK3N0cnVjdCB4ZW5f
ZG1fb3BfZ2V0X2lvcmVxX3NlcnZlcl9pbmZvIHsKKyAgICAvKiBJTiAtIHNlcnZlciBpZCAqLwor
ICAgIGlvc2VydmlkX3QgaWQ7CisgICAgdWludDE2X3QgcGFkOworICAgIC8qIE9VVCAtIGJ1ZmZl
cmVkIGlvcmVxIHBvcnQgKi8KKyAgICBldnRjaG5fcG9ydF90IGJ1ZmlvcmVxX3BvcnQ7CisgICAg
LyogT1VUIC0gc3luYyBpb3JlcSBnZm4gKi8KKyAgICB1aW50NjRfYWxpZ25lZF90IGlvcmVxX2dm
bjsKKyAgICAvKiBPVVQgLSBidWZmZXJlZCBpb3JlcSBnZm4gKi8KKyAgICB1aW50NjRfYWxpZ25l
ZF90IGJ1ZmlvcmVxX2dmbjsKK307CisKKy8qCisgKiBYRU5fRE1PUF9tYXBfaW9fcmFuZ2VfdG9f
aW9yZXFfc2VydmVyOiBSZWdpc3RlciBhbiBJL08gcmFuZ2UgZm9yCisgKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBlbXVsYXRpb24gYnkgdGhlIGNsaWVudCBvZgorICog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9SRVEgU2VydmVyIDxpZD4u
CisgKiBYRU5fRE1PUF91bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZlcjogRGVyZWdpc3Rl
ciBhbiBJL08gcmFuZ2UKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgZm9yCisgKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZW11bGF0aW9uIGJ5IHRoZSBjbGllbnQgb2YKKyAqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT1JFUSBTZXJ2ZXIgPGlkPi4K
KyAqCisgKiBUaGVyZSBhcmUgdGhyZWUgdHlwZXMgb2YgSS9PIHRoYXQgY2FuIGJlIGVtdWxhdGVk
OiBwb3J0IEkvTywgbWVtb3J5CisgKiBhY2Nlc3NlcyBhbmQgUENJIGNvbmZpZyBzcGFjZSBhY2Nl
c3Nlcy4gVGhlIDx0eXBlPiBmaWVsZCBkZW5vdGVzIHdoaWNoCisgKiB0eXBlIG9mIHJhbmdlKiB0
aGUgPHN0YXJ0PiBhbmQgPGVuZD4gKGluY2x1c2l2ZSkgZmllbGRzIGFyZSBzcGVjaWZ5aW5nLgor
ICogUENJIGNvbmZpZyBzcGFjZSByYW5nZXMgYXJlIHNwZWNpZmllZCBieSBzZWdtZW50L2J1cy9k
ZXZpY2UvZnVuY3Rpb24KKyAqIHZhbHVlcyB3aGljaCBzaG91bGQgYmUgZW5jb2RlZCB1c2luZyB0
aGUgRE1PUF9QQ0lfU0JERiBoZWxwZXIgbWFjcm8KKyAqIGJlbG93LgorICoKKyAqIE5PVEU6IHVu
bGVzcyBhbiBlbXVsYXRpb24gcmVxdWVzdCBmYWxscyBlbnRpcmVseSB3aXRoaW4gYSByYW5nZSBt
YXBwZWQKKyAqIGJ5IGEgc2Vjb25kYXJ5IGVtdWxhdG9yLCBpdCB3aWxsIG5vdCBiZSBwYXNzZWQg
dG8gdGhhdCBlbXVsYXRvci4KKyAqLworI2RlZmluZSBYRU5fRE1PUF9tYXBfaW9fcmFuZ2VfdG9f
aW9yZXFfc2VydmVyIDMKKyNkZWZpbmUgWEVOX0RNT1BfdW5tYXBfaW9fcmFuZ2VfZnJvbV9pb3Jl
cV9zZXJ2ZXIgNAorCitzdHJ1Y3QgeGVuX2RtX29wX2lvcmVxX3NlcnZlcl9yYW5nZSB7CisgICAg
LyogSU4gLSBzZXJ2ZXIgaWQgKi8KKyAgICBpb3NlcnZpZF90IGlkOworICAgIHVpbnQxNl90IHBh
ZDsKKyAgICAvKiBJTiAtIHR5cGUgb2YgcmFuZ2UgKi8KKyAgICB1aW50MzJfdCB0eXBlOworIyBk
ZWZpbmUgWEVOX0RNT1BfSU9fUkFOR0VfUE9SVCAgIDAgLyogSS9PIHBvcnQgcmFuZ2UgKi8KKyMg
ZGVmaW5lIFhFTl9ETU9QX0lPX1JBTkdFX01FTU9SWSAxIC8qIE1NSU8gcmFuZ2UgKi8KKyMgZGVm
aW5lIFhFTl9ETU9QX0lPX1JBTkdFX1BDSSAgICAyIC8qIFBDSSBzZWdtZW50L2J1cy9kZXYvZnVu
YyByYW5nZSAqLworICAgIC8qIElOIC0gaW5jbHVzaXZlIHN0YXJ0IGFuZCBlbmQgb2YgcmFuZ2Ug
Ki8KKyAgICB1aW50NjRfYWxpZ25lZF90IHN0YXJ0LCBlbmQ7Cit9OworCisjZGVmaW5lIFhFTl9E
TU9QX1BDSV9TQkRGKHMsYixkLGYpIFwKKwkoKCgocykgJiAweGZmZmYpIDw8IDE2KSB8ICBcCisJ
ICgoKGIpICYgMHhmZikgPDwgOCkgfCAgICAgXAorCSAoKChkKSAmIDB4MWYpIDw8IDMpIHwgICAg
IFwKKwkgKChmKSAmIDB4MDcpKQorCisvKgorICogWEVOX0RNT1Bfc2V0X2lvcmVxX3NlcnZlcl9z
dGF0ZTogRW5hYmxlIG9yIGRpc2FibGUgdGhlIElPUkVRIFNlcnZlciA8aWQ+CisgKgorICogVGhl
IElPUkVRIFNlcnZlciB3aWxsIG5vdCBiZSBwYXNzZWQgYW55IGVtdWxhdGlvbiByZXF1ZXN0cyB1
bnRpbCBpdCBpcworICogaW4gdGhlIGVuYWJsZWQgc3RhdGUuCisgKiBOb3RlIHRoYXQgdGhlIGNv
bnRlbnRzIG9mIHRoZSBpb3JlcV9nZm4gYW5kIGJ1ZmlvcmVxX2dmbiAoc2VlCisgKiBYRU5fRE1P
UF9nZXRfaW9yZXFfc2VydmVyX2luZm8pIGFyZSBub3QgbWVhbmluZ2Z1bCB1bnRpbCB0aGUgSU9S
RVEgU2VydmVyCisgKiBpcyBpbiB0aGUgZW5hYmxlZCBzdGF0ZS4KKyAqLworI2RlZmluZSBYRU5f
RE1PUF9zZXRfaW9yZXFfc2VydmVyX3N0YXRlIDUKKworc3RydWN0IHhlbl9kbV9vcF9zZXRfaW9y
ZXFfc2VydmVyX3N0YXRlIHsKKyAgICAvKiBJTiAtIHNlcnZlciBpZCAqLworICAgIGlvc2Vydmlk
X3QgaWQ7CisgICAgLyogSU4gLSBlbmFibGVkPyAqLworICAgIHVpbnQ4X3QgZW5hYmxlZDsKKyAg
ICB1aW50OF90IHBhZDsKK307CisKKy8qCisgKiBYRU5fRE1PUF9kZXN0cm95X2lvcmVxX3NlcnZl
cjogRGVzdHJveSB0aGUgSU9SRVEgU2VydmVyIDxpZD4uCisgKgorICogQW55IHJlZ2lzdGVyZWQg
SS9PIHJhbmdlcyB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgZGVyZWdpc3RlcmVkLgorICovCisjZGVm
aW5lIFhFTl9ETU9QX2Rlc3Ryb3lfaW9yZXFfc2VydmVyIDYKKworc3RydWN0IHhlbl9kbV9vcF9k
ZXN0cm95X2lvcmVxX3NlcnZlciB7CisgICAgLyogSU4gLSBzZXJ2ZXIgaWQgKi8KKyAgICBpb3Nl
cnZpZF90IGlkOworICAgIHVpbnQxNl90IHBhZDsKK307CisKKy8qCisgKiBYRU5fRE1PUF90cmFj
a19kaXJ0eV92cmFtOiBUcmFjayBtb2RpZmljYXRpb25zIHRvIHRoZSBzcGVjaWZpZWQgcGZuCisg
KiAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZS4KKyAqCisgKiBOT1RFOiBUaGUgYml0
bWFwIHBhc3NlZCBiYWNrIHRvIHRoZSBjYWxsZXIgaXMgcGFzc2VkIGluIGEKKyAqICAgICAgIHNl
Y29uZGFyeSBidWZmZXIuCisgKi8KKyNkZWZpbmUgWEVOX0RNT1BfdHJhY2tfZGlydHlfdnJhbSA3
CisKK3N0cnVjdCB4ZW5fZG1fb3BfdHJhY2tfZGlydHlfdnJhbSB7CisgICAgLyogSU4gLSBudW1i
ZXIgb2YgcGFnZXMgdG8gYmUgdHJhY2tlZCAqLworICAgIHVpbnQzMl90IG5yOworICAgIHVpbnQz
Ml90IHBhZDsKKyAgICAvKiBJTiAtIGZpcnN0IHBmbiB0byB0cmFjayAqLworICAgIHVpbnQ2NF9h
bGlnbmVkX3QgZmlyc3RfcGZuOworfTsKKworLyoKKyAqIFhFTl9ETU9QX3NldF9wY2lfaW50eF9s
ZXZlbDogU2V0IHRoZSBsb2dpY2FsIGxldmVsIG9mIG9uZSBvZiBhIGRvbWFpbidzCisgKiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFBDSSBJTlR4IHBpbnMuCisgKi8KKyNkZWZpbmUgWEVO
X0RNT1Bfc2V0X3BjaV9pbnR4X2xldmVsIDgKKworc3RydWN0IHhlbl9kbV9vcF9zZXRfcGNpX2lu
dHhfbGV2ZWwgeworICAgIC8qIElOIC0gUENJIElOVHggaWRlbnRpZmljYXRpb24gKGRvbWFpbjpi
dXM6ZGV2aWNlOmludHgpICovCisgICAgdWludDE2X3QgZG9tYWluOworICAgIHVpbnQ4X3QgYnVz
LCBkZXZpY2UsIGludHg7CisgICAgLyogSU4gLSBMZXZlbDogMCAtPiBkZWFzc2VydGVkLCAxIC0+
IGFzc2VydGVkICovCisgICAgdWludDhfdCAgbGV2ZWw7Cit9OworCisvKgorICogWEVOX0RNT1Bf
c2V0X2lzYV9pcnFfbGV2ZWw6IFNldCB0aGUgbG9naWNhbCBsZXZlbCBvZiBhIG9uZSBvZiBhIGRv
bWFpbidzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVNBIElSUSBsaW5lcy4KKyAq
LworI2RlZmluZSBYRU5fRE1PUF9zZXRfaXNhX2lycV9sZXZlbCA5CisKK3N0cnVjdCB4ZW5fZG1f
b3Bfc2V0X2lzYV9pcnFfbGV2ZWwgeworICAgIC8qIElOIC0gSVNBIElSUSAoMC0xNSkgKi8KKyAg
ICB1aW50OF90ICBpc2FfaXJxOworICAgIC8qIElOIC0gTGV2ZWw6IDAgLT4gZGVhc3NlcnRlZCwg
MSAtPiBhc3NlcnRlZCAqLworICAgIHVpbnQ4X3QgIGxldmVsOworfTsKKworLyoKKyAqIFhFTl9E
TU9QX3NldF9wY2lfbGlua19yb3V0ZTogTWFwIGEgUENJIElOVHggbGluZSB0byBhbiBJUlEgbGlu
ZS4KKyAqLworI2RlZmluZSBYRU5fRE1PUF9zZXRfcGNpX2xpbmtfcm91dGUgMTAKKworc3RydWN0
IHhlbl9kbV9vcF9zZXRfcGNpX2xpbmtfcm91dGUgeworICAgIC8qIFBDSSBJTlR4IGxpbmUgKDAt
MykgKi8KKyAgICB1aW50OF90ICBsaW5rOworICAgIC8qIElTQSBJUlEgKDEtMTUpIG9yIDAgLT4g
ZGlzYWJsZSBsaW5rICovCisgICAgdWludDhfdCAgaXNhX2lycTsKK307CisKKy8qCisgKiBYRU5f
RE1PUF9tb2RpZmllZF9tZW1vcnk6IE5vdGlmeSB0aGF0IGEgc2V0IG9mIHBhZ2VzIHdlcmUgbW9k
aWZpZWQgYnkKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgYW4gZW11bGF0b3IuCisgKgor
ICogRE1PUCBidWYgMSBjb250YWlucyBhbiBhcnJheSBvZiB4ZW5fZG1fb3BfbW9kaWZpZWRfbWVt
b3J5X2V4dGVudCB3aXRoCisgKiBAbnJfZXh0ZW50cyBlbnRyaWVzLgorICoKKyAqIE9uIGVycm9y
LCBAbnJfZXh0ZW50cyB3aWxsIGNvbnRhaW4gdGhlIGluZGV4KzEgb2YgdGhlIGV4dGVudCB0aGF0
CisgKiBoYWQgdGhlIGVycm9yLiAgSXQgaXMgbm90IGRlZmluZWQgaWYgb3Igd2hpY2ggcGFnZXMg
bWF5IGhhdmUgYmVlbgorICogbWFya2VkIGFzIGRpcnR5LCBpbiB0aGlzIGV2ZW50LgorICovCisj
ZGVmaW5lIFhFTl9ETU9QX21vZGlmaWVkX21lbW9yeSAxMQorCitzdHJ1Y3QgeGVuX2RtX29wX21v
ZGlmaWVkX21lbW9yeSB7CisgICAgLyoKKyAgICAgKiBJTiAtIE51bWJlciBvZiBleHRlbnRzIHRv
IGJlIHByb2Nlc3NlZAorICAgICAqIE9VVCAtcmV0dXJucyBuKzEgZm9yIGZhaWxpbmcgZXh0ZW50
CisgICAgICovCisgICAgdWludDMyX3QgbnJfZXh0ZW50czsKKyAgICAvKiBJTi9PVVQgLSBNdXN0
IGJlIHNldCB0byAwICovCisgICAgdWludDMyX3Qgb3BhcXVlOworfTsKKworc3RydWN0IHhlbl9k
bV9vcF9tb2RpZmllZF9tZW1vcnlfZXh0ZW50IHsKKyAgICAvKiBJTiAtIG51bWJlciBvZiBjb250
aWd1b3VzIHBhZ2VzIG1vZGlmaWVkICovCisgICAgdWludDMyX3QgbnI7CisgICAgdWludDMyX3Qg
cGFkOworICAgIC8qIElOIC0gZmlyc3QgcGZuIG1vZGlmaWVkICovCisgICAgdWludDY0X2FsaWdu
ZWRfdCBmaXJzdF9wZm47Cit9OworCisvKgorICogWEVOX0RNT1Bfc2V0X21lbV90eXBlOiBOb3Rp
ZnkgdGhhdCBhIHJlZ2lvbiBvZiBtZW1vcnkgaXMgdG8gYmUgdHJlYXRlZAorICogICAgICAgICAg
ICAgICAgICAgICAgICBpbiBhIHNwZWNpZmljIHdheS4gKFNlZSBkZWZpbml0aW9uIG9mCisgKiAg
ICAgICAgICAgICAgICAgICAgICAgIGh2bW1lbV90eXBlX3QpLgorICoKKyAqIE5PVEU6IEluIHRo
ZSBldmVudCBvZiBhIGNvbnRpbnVhdGlvbiAocmV0dXJuIGNvZGUgLUVSRVNUQVJUKSwgdGhlCisg
KiAgICAgICBAZmlyc3RfcGZuIGlzIHNldCB0byB0aGUgdmFsdWUgb2YgdGhlIHBmbiBvZiB0aGUg
cmVtYWluaW5nCisgKiAgICAgICByZWdpb24gYW5kIEBuciByZWR1Y2VkIHRvIHRoZSBzaXplIG9m
IHRoZSByZW1haW5pbmcgcmVnaW9uLgorICovCisjZGVmaW5lIFhFTl9ETU9QX3NldF9tZW1fdHlw
ZSAxMgorCitzdHJ1Y3QgeGVuX2RtX29wX3NldF9tZW1fdHlwZSB7CisgICAgLyogSU4gLSBudW1i
ZXIgb2YgY29udGlndW91cyBwYWdlcyAqLworICAgIHVpbnQzMl90IG5yOworICAgIC8qIElOIC0g
bmV3IGh2bW1lbV90eXBlX3Qgb2YgcmVnaW9uICovCisgICAgdWludDE2X3QgbWVtX3R5cGU7Cisg
ICAgdWludDE2X3QgcGFkOworICAgIC8qIElOIC0gZmlyc3QgcGZuIGluIHJlZ2lvbiAqLworICAg
IHVpbnQ2NF9hbGlnbmVkX3QgZmlyc3RfcGZuOworfTsKKworLyoKKyAqIFhFTl9ETU9QX2luamVj
dF9ldmVudDogSW5qZWN0IGFuIGV2ZW50IGludG8gYSBWQ1BVLCB3aGljaCB3aWxsCisgKiAgICAg
ICAgICAgICAgICAgICAgICAgIGdldCB0YWtlbiB1cCB3aGVuIGl0IGlzIG5leHQgc2NoZWR1bGVk
LgorICoKKyAqIE5vdGUgdGhhdCB0aGUgY2FsbGVyIHNob3VsZCBrbm93IGVub3VnaCBvZiB0aGUg
c3RhdGUgb2YgdGhlIENQVSBiZWZvcmUKKyAqIGluamVjdGluZywgdG8ga25vdyB3aGF0IHRoZSBl
ZmZlY3Qgb2YgaW5qZWN0aW5nIHRoZSBldmVudCB3aWxsIGJlLgorICovCisjZGVmaW5lIFhFTl9E
TU9QX2luamVjdF9ldmVudCAxMworCitzdHJ1Y3QgeGVuX2RtX29wX2luamVjdF9ldmVudCB7Cisg
ICAgLyogSU4gLSBpbmRleCBvZiB2Q1BVICovCisgICAgdWludDMyX3QgdmNwdWlkOworICAgIC8q
IElOIC0gaW50ZXJydXB0IHZlY3RvciAqLworICAgIHVpbnQ4X3QgdmVjdG9yOworICAgIC8qIElO
IC0gZXZlbnQgdHlwZSAoRE1PUF9FVkVOVF8qICkgKi8KKyAgICB1aW50OF90IHR5cGU7CisvKiBO
Qi4gVGhpcyBlbnVtZXJhdGlvbiBwcmVjaXNlbHkgbWF0Y2hlcyBodm0uaDpYODZfRVZFTlRUWVBF
XyogKi8KKyMgZGVmaW5lIFhFTl9ETU9QX0VWRU5UX2V4dF9pbnQgICAgMCAvKiBleHRlcm5hbCBp
bnRlcnJ1cHQgKi8KKyMgZGVmaW5lIFhFTl9ETU9QX0VWRU5UX25taSAgICAgICAgMiAvKiBubWkg
Ki8KKyMgZGVmaW5lIFhFTl9ETU9QX0VWRU5UX2h3X2V4YyAgICAgMyAvKiBoYXJkd2FyZSBleGNl
cHRpb24gKi8KKyMgZGVmaW5lIFhFTl9ETU9QX0VWRU5UX3N3X2ludCAgICAgNCAvKiBzb2Z0d2Fy
ZSBpbnRlcnJ1cHQgKENEIG5uKSAqLworIyBkZWZpbmUgWEVOX0RNT1BfRVZFTlRfcHJpX3N3X2V4
YyA1IC8qIElDRUJQIChGMSkgKi8KKyMgZGVmaW5lIFhFTl9ETU9QX0VWRU5UX3N3X2V4YyAgICAg
NiAvKiBJTlQzIChDQyksIElOVE8gKENFKSAqLworICAgIC8qIElOIC0gaW5zdHJ1Y3Rpb24gbGVu
Z3RoICovCisgICAgdWludDhfdCBpbnNuX2xlbjsKKyAgICB1aW50OF90IHBhZDA7CisgICAgLyog
SU4gLSBlcnJvciBjb2RlIChvciB+MCB0byBza2lwKSAqLworICAgIHVpbnQzMl90IGVycm9yX2Nv
ZGU7CisgICAgdWludDMyX3QgcGFkMTsKKyAgICAvKiBJTiAtIENSMiBmb3IgcGFnZSBmYXVsdHMg
Ki8KKyAgICB1aW50NjRfYWxpZ25lZF90IGNyMjsKK307CisKKy8qCisgKiBYRU5fRE1PUF9pbmpl
Y3RfbXNpOiBJbmplY3QgYW4gTVNJIGZvciBhbiBlbXVsYXRlZCBkZXZpY2UuCisgKi8KKyNkZWZp
bmUgWEVOX0RNT1BfaW5qZWN0X21zaSAxNAorCitzdHJ1Y3QgeGVuX2RtX29wX2luamVjdF9tc2kg
eworICAgIC8qIElOIC0gTVNJIGRhdGEgKGxvd2VyIDMyIGJpdHMpICovCisgICAgdWludDMyX3Qg
ZGF0YTsKKyAgICB1aW50MzJfdCBwYWQ7CisgICAgLyogSU4gLSBNU0kgYWRkcmVzcyAoMHhmZWV4
eHh4eCkgKi8KKyAgICB1aW50NjRfYWxpZ25lZF90IGFkZHI7Cit9OworCisvKgorICogWEVOX0RN
T1BfbWFwX21lbV90eXBlX3RvX2lvcmVxX3NlcnZlciA6IG1hcCBvciB1bm1hcCB0aGUgSU9SRVEg
U2VydmVyIDxpZD4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBz
cGVjaWZpYyBtZW1vcnkgdHlwZSA8dHlwZT4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmb3Igc3BlY2lmaWMgYWNjZXNzZXMgPGZsYWdzPgorICoKKyAqIEZvciBub3cs
IGZsYWdzIG9ubHkgYWNjZXB0IHRoZSB2YWx1ZSBvZiBYRU5fRE1PUF9JT1JFUV9NRU1fQUNDRVNT
X1dSSVRFLAorICogd2hpY2ggbWVhbnMgb25seSB3cml0ZSBvcGVyYXRpb25zIGFyZSB0byBiZSBm
b3J3YXJkZWQgdG8gYW4gaW9yZXEgc2VydmVyLgorICogU3VwcG9ydCBmb3IgdGhlIGVtdWxhdGlv
biBvZiByZWFkIG9wZXJhdGlvbnMgY2FuIGJlIGFkZGVkIHdoZW4gYW4gaW9yZXEKKyAqIHNlcnZl
ciBoYXMgc3VjaCByZXF1aXJlbWVudCBpbiBmdXR1cmUuCisgKi8KKyNkZWZpbmUgWEVOX0RNT1Bf
bWFwX21lbV90eXBlX3RvX2lvcmVxX3NlcnZlciAxNQorCitzdHJ1Y3QgeGVuX2RtX29wX21hcF9t
ZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXIgeworICAgIGlvc2VydmlkX3QgaWQ7ICAgICAgLyogSU4g
LSBpb3JlcSBzZXJ2ZXIgaWQgKi8KKyAgICB1aW50MTZfdCB0eXBlOyAgICAgIC8qIElOIC0gbWVt
b3J5IHR5cGUgKi8KKyAgICB1aW50MzJfdCBmbGFnczsgICAgIC8qIElOIC0gdHlwZXMgb2YgYWNj
ZXNzZXMgdG8gYmUgZm9yd2FyZGVkIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW9yZXEgc2VydmVyLiBmbGFncyB3aXRoIDAgbWVhbnMgdG8gdW5tYXAgdGhlCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpb3JlcSBzZXJ2ZXIgKi8KKworI2RlZmluZSBYRU5fRE1PUF9JT1JF
UV9NRU1fQUNDRVNTX1JFQUQgKDF1IDw8IDApCisjZGVmaW5lIFhFTl9ETU9QX0lPUkVRX01FTV9B
Q0NFU1NfV1JJVEUgKDF1IDw8IDEpCisKKyAgICB1aW50NjRfdCBvcGFxdWU7ICAgIC8qIElOL09V
VCAtIG9ubHkgdXNlZCBmb3IgaHlwZXJjYWxsIGNvbnRpbnVhdGlvbiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGhhcyB0byBiZSBzZXQgdG8gemVybyBieSB0aGUgY2FsbGVyICovCit9Owor
CisvKgorICogWEVOX0RNT1BfcmVtb3RlX3NodXRkb3duIDogRGVjbGFyZSBhIHNodXRkb3duIGZv
ciBhbm90aGVyIGRvbWFpbgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWRlbnRpY2Fs
IHRvIFNDSEVET1BfcmVtb3RlX3NodXRkb3duCisgKi8KKyNkZWZpbmUgWEVOX0RNT1BfcmVtb3Rl
X3NodXRkb3duIDE2CisKK3N0cnVjdCB4ZW5fZG1fb3BfcmVtb3RlX3NodXRkb3duIHsKKyAgICB1
aW50MzJfdCByZWFzb247ICAgICAgIC8qIFNIVVRET1dOXyogPT4gZW51bSBzY2hlZF9zaHV0ZG93
bl9yZWFzb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIChPdGhlciByZWFzb24g
dmFsdWVzIGFyZSBub3QgYmxvY2tlZCkgKi8KK307CisKK3N0cnVjdCB4ZW5fZG1fb3AgeworICAg
IHVpbnQzMl90IG9wOworICAgIHVpbnQzMl90IHBhZDsKKyAgICB1bmlvbiB7CisgICAgICAgIHN0
cnVjdCB4ZW5fZG1fb3BfY3JlYXRlX2lvcmVxX3NlcnZlciBjcmVhdGVfaW9yZXFfc2VydmVyOwor
ICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyBnZXRfaW9yZXFf
c2VydmVyX2luZm87CisgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3BfaW9yZXFfc2VydmVyX3Jhbmdl
IG1hcF9pb19yYW5nZV90b19pb3JlcV9zZXJ2ZXI7CisgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3Bf
aW9yZXFfc2VydmVyX3JhbmdlIHVubWFwX2lvX3JhbmdlX2Zyb21faW9yZXFfc2VydmVyOworICAg
ICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGUgc2V0X2lvcmVxX3Nl
cnZlcl9zdGF0ZTsKKyAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9kZXN0cm95X2lvcmVxX3NlcnZl
ciBkZXN0cm95X2lvcmVxX3NlcnZlcjsKKyAgICAgICAgc3RydWN0IHhlbl9kbV9vcF90cmFja19k
aXJ0eV92cmFtIHRyYWNrX2RpcnR5X3ZyYW07CisgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0
X3BjaV9pbnR4X2xldmVsIHNldF9wY2lfaW50eF9sZXZlbDsKKyAgICAgICAgc3RydWN0IHhlbl9k
bV9vcF9zZXRfaXNhX2lycV9sZXZlbCBzZXRfaXNhX2lycV9sZXZlbDsKKyAgICAgICAgc3RydWN0
IHhlbl9kbV9vcF9zZXRfcGNpX2xpbmtfcm91dGUgc2V0X3BjaV9saW5rX3JvdXRlOworICAgICAg
ICBzdHJ1Y3QgeGVuX2RtX29wX21vZGlmaWVkX21lbW9yeSBtb2RpZmllZF9tZW1vcnk7CisgICAg
ICAgIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X21lbV90eXBlIHNldF9tZW1fdHlwZTsKKyAgICAgICAg
c3RydWN0IHhlbl9kbV9vcF9pbmplY3RfZXZlbnQgaW5qZWN0X2V2ZW50OworICAgICAgICBzdHJ1
Y3QgeGVuX2RtX29wX2luamVjdF9tc2kgaW5qZWN0X21zaTsKKyAgICAgICAgc3RydWN0IHhlbl9k
bV9vcF9tYXBfbWVtX3R5cGVfdG9faW9yZXFfc2VydmVyCisgICAgICAgICAgICAgICAgbWFwX21l
bV90eXBlX3RvX2lvcmVxX3NlcnZlcjsKKyAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9yZW1vdGVf
c2h1dGRvd24gcmVtb3RlX3NodXRkb3duOworICAgIH0gdTsKK307CisKKyNlbmRpZiAvKiBfX1hF
Tl9fIHx8IF9fWEVOX1RPT0xTX18gKi8KKworc3RydWN0IHhlbl9kbV9vcF9idWYgeworICAgIFhF
Tl9HVUVTVF9IQU5ETEUodm9pZCkgaDsKKyAgICB4ZW5fdWxvbmdfdCBzaXplOworfTsKK3R5cGVk
ZWYgc3RydWN0IHhlbl9kbV9vcF9idWYgeGVuX2RtX29wX2J1Zl90OworREVGSU5FX1hFTl9HVUVT
VF9IQU5ETEUoeGVuX2RtX29wX2J1Zl90KTsKKworLyogYCBlbnVtIG5lZ19lcnJub3ZhbAorICog
YCBIWVBFUlZJU09SX2RtX29wKGRvbWlkX3QgZG9taWQsCisgKiBgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgaW50IG5yX2J1ZnMsCisgKiBgICAgICAgICAgICAgICAgICAgeGVuX2RtX29wX2J1
Zl90IGJ1ZnNbXSkKKyAqIGAKKyAqCisgKiBAZG9taWQgaXMgdGhlIGRvbWFpbiB0aGUgaHlwZXJj
YWxsIG9wZXJhdGVzIG9uLgorICogQG5yX2J1ZnMgaXMgdGhlIG51bWJlciBvZiBidWZmZXJzIGlu
IHRoZSBAYnVmcyBhcnJheS4KKyAqIEBidWZzIHBvaW50cyB0byBhbiBhcnJheSBvZiBidWZmZXJz
IHdoZXJlIEBidWZzWzBdIGNvbnRhaW5zIGEgc3RydWN0CisgKiB4ZW5fZG1fb3AsIGRlc2NyaWJp
bmcgdGhlIHNwZWNpZmljIGRldmljZSBtb2RlbCBvcGVyYXRpb24gYW5kIGl0cworICogcGFyYW1l
dGVycy4KKyAqIEBidWZzWzEuLl0gbWF5IGJlIHJlZmVyZW5jZWQgaW4gdGhlIHBhcmFtZXRlcnMg
Zm9yIHRoZSBwdXJwb3NlcyBvZgorICogcGFzc2luZyBleHRyYSBpbmZvcm1hdGlvbiB0byBvciBm
cm9tIHRoZSBkb21haW4uCisgKi8KKworI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19IVk1fRE1fT1Bf
SF9fICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUt
c3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBp
bmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94
ZW4veHNtL2h2bS9lODIwLmggYi9pbmNsdWRlL3hlbi94c20vaHZtL2U4MjAuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzQyZjMzCi0tLSAvZGV2L251bGwKKysrIGIvaW5j
bHVkZS94ZW4veHNtL2h2bS9lODIwLmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIFBlcm1pc3Np
b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp
bmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRh
dGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUg
d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAq
IHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUs
IHN1YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQg
dG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0
byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhl
IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwg
YmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2Yg
dGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBX
SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNM
VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F
TlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS
UyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZ
LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS
SVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJF
IE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisg
KiBDb3B5cmlnaHQgKGMpIDIwMDYsIEtlaXIgRnJhc2VyCisgKi8KKworI2lmbmRlZiBfX1hFTl9Q
VUJMSUNfSFZNX0U4MjBfSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19IVk1fRTgyMF9IX18KKwor
I2luY2x1ZGUgIi4uL3hlbi5oIgorCisvKiBFODIwIGxvY2F0aW9uIGluIEhWTSB2aXJ0dWFsIGFk
ZHJlc3Mgc3BhY2UuICovCisjZGVmaW5lIEhWTV9FODIwX1BBR0UgICAgICAgIDB4MDAwOTAwMDAK
KyNkZWZpbmUgSFZNX0U4MjBfTlJfT0ZGU0VUICAgMHgwMDAwMDFFOAorI2RlZmluZSBIVk1fRTgy
MF9PRkZTRVQgICAgICAweDAwMDAwMkQwCisKKyNkZWZpbmUgSFZNX0JFTE9XXzRHX1JBTV9FTkQg
ICAgICAgIDB4RjAwMDAwMDAKKyNkZWZpbmUgSFZNX0JFTE9XXzRHX01NSU9fU1RBUlQgICAgIEhW
TV9CRUxPV180R19SQU1fRU5ECisjZGVmaW5lIEhWTV9CRUxPV180R19NTUlPX0xFTkdUSCAgICAo
KHhlbl9ta191bGxvbmcoMSkgPDwgMzIpIC0gXAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEhWTV9CRUxPV180R19NTUlPX1NUQVJUKQorCisjZW5kaWYgLyogX19YRU5fUFVC
TElDX0hWTV9FODIwX0hfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4veHNtL2h2bS9odm1f
aW5mb190YWJsZS5oIGIvaW5jbHVkZS94ZW4veHNtL2h2bS9odm1faW5mb190YWJsZS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4YzI1MmUKLS0tIC9kZXYvbnVsbAorKysg
Yi9pbmNsdWRlL3hlbi94c20vaHZtL2h2bV9pbmZvX3RhYmxlLmgKQEAgLTAsMCArMSw4MiBAQAor
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgorICogaHZtL2h2bV9pbmZvX3RhYmxlLmgKKyAqIAorICog
SFZNIHBhcmFtZXRlciBhbmQgaW5mb3JtYXRpb24gdGFibGUsIHdyaXR0ZW4gaW50byBndWVzdCBt
ZW1vcnkgbWFwLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg
Y2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdh
cmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0
bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5n
IHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwg
bWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBj
b3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUg
U29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRo
aXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMg
b3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZU
V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBF
WFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICog
QVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFN
QUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U
UkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBD
T05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJ
TkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDYsIEtlaXIgRnJh
c2VyCisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfSFZNX0hWTV9JTkZPX1RBQkxFX0hfXwor
I2RlZmluZSBfX1hFTl9QVUJMSUNfSFZNX0hWTV9JTkZPX1RBQkxFX0hfXworCisjZGVmaW5lIEhW
TV9JTkZPX1BGTiAgICAgICAgIDB4MDlGCisjZGVmaW5lIEhWTV9JTkZPX09GRlNFVCAgICAgIDB4
ODAwCisjZGVmaW5lIEhWTV9JTkZPX1BBRERSICAgICAgICgoSFZNX0lORk9fUEZOIDw8IDEyKSAr
IEhWTV9JTkZPX09GRlNFVCkKKworLyogTWF4aW11bSB3ZSBjYW4gc3VwcG9ydCB3aXRoIGN1cnJl
bnQgdkxBUElDIElEIG1hcHBpbmcuICovCisjZGVmaW5lIEhWTV9NQVhfVkNQVVMgICAgICAgIDEy
OAorCisvKgorICogSW4gc29tZSBjYXNlcyBTTVAgSFZNIGd1ZXN0cyBtYXkgcmVxdWlyZSBrbm93
bGVkZ2Ugb2YgWGVuJ3MgaWRlYSBvZiB2Q1BVIGlkcworICogZm9yIHRoZWlyIHZDUFVzLiBGb3Ig
ZXhhbXBsZSwgSFlQRVJWSVNPUl92Y3B1X29wIGFuZCBzb21lIEVWVENITk9QXyoKKyAqIGh5cGVy
Y2FsbHMgdGFrZSB2Y3B1IGlkIGFzIGEgcGFyYW1ldGVyLiBJdCBpcyB2YWxpZCBmb3IgSFZNIGd1
ZXN0cyB0byBhc3N1bWUKKyAqIHRoYXQgWGVuJ3MgdkNQVSBpZCBhbHdheXMgZXF1YWxzIHRvIEFD
UEkgKG5vdCBBUElDISkgaWQgaW4gTUFEVCB0YWJsZSB3aGljaAorICogaXMgYWx3YXlzIHByZXNl
bnQgZm9yIFNNUCBndWVzdHMuCisgKi8KKworc3RydWN0IGh2bV9pbmZvX3RhYmxlIHsKKyAgICBj
aGFyICAgICAgICBzaWduYXR1cmVbOF07IC8qICJIVk0gSU5GTyIgKi8KKyAgICB1aW50MzJfdCAg
ICBsZW5ndGg7CisgICAgdWludDhfdCAgICAgY2hlY2tzdW07CisKKyAgICAvKiBTaG91bGQgZmly
bXdhcmUgYnVpbGQgQVBJQyBkZXNjcmlwdG9ycyAoQVBJQyBNQURUIC8gTVAgQklPUyk/ICovCisg
ICAgdWludDhfdCAgICAgYXBpY19tb2RlOworCisgICAgLyogSG93IG1hbnkgQ1BVcyBkb2VzIHRo
aXMgZG9tYWluIGhhdmU/ICovCisgICAgdWludDMyX3QgICAgbnJfdmNwdXM7CisKKyAgICAvKgor
ICAgICAqIE1FTU9SWSBNQVAgcHJvdmlkZWQgYnkgSFZNIGRvbWFpbiBidWlsZGVyLgorICAgICAq
IE5vdGVzOgorICAgICAqICAxLiBwYWdlX3RvX3BoeXMoeCkgPSB4IDw8IDEyCisgICAgICogIDIu
IElmIGEgZmllbGQgaXMgemVybywgdGhlIGNvcnJlc3BvbmRpbmcgcmFuZ2UgZG9lcyBub3QgZXhp
c3QuCisgICAgICovCisgICAgLyoKKyAgICAgKiAgMHgwIHRvIHBhZ2VfdG9fcGh5cyhsb3dfbWVt
X3BnZW5kKS0xOgorICAgICAqICAgIFJBTSBiZWxvdyA0R0IgKGV4Y2VwdCBmb3IgVkdBIGhvbGUg
MHhBMDAwMC0weEJGRkZGKQorICAgICAqLworICAgIHVpbnQzMl90ICAgIGxvd19tZW1fcGdlbmQ7
CisgICAgLyoKKyAgICAgKiAgcGFnZV90b19waHlzKHJlc2VydmVkX21lbV9wZ3N0YXJ0KSB0byAw
eEZGRkZGRkZGOgorICAgICAqICAgIFJlc2VydmVkIGZvciBzcGVjaWFsIG1lbW9yeSBtYXBwaW5n
cworICAgICAqLworICAgIHVpbnQzMl90ICAgIHJlc2VydmVkX21lbV9wZ3N0YXJ0OworICAgIC8q
CisgICAgICogIDB4MTAwMDAwMDAwIHRvIHBhZ2VfdG9fcGh5cyhoaWdoX21lbV9wZ2VuZCktMToK
KyAgICAgKiAgICBSQU0gYWJvdmUgNEdCCisgICAgICovCisgICAgdWludDMyX3QgICAgaGlnaF9t
ZW1fcGdlbmQ7CisKKyAgICAvKiBCaXRtYXAgb2Ygd2hpY2ggQ1BVcyBhcmUgb25saW5lIGF0IGJv
b3QgdGltZS4gKi8KKyAgICB1aW50OF90ICAgICB2Y3B1X29ubGluZVsoSFZNX01BWF9WQ1BVUyAr
IDcpLzhdOworfTsKKworI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19IVk1fSFZNX0lORk9fVEFCTEVf
SF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi94c20vaHZtL2h2bV9vcC5oIGIvaW5jbHVk
ZS94ZW4veHNtL2h2bS9odm1fb3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4wYmRhZmRmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94ZW4veHNtL2h2bS9odm1fb3Au
aApAQCAtMCwwICsxLDI5NiBAQAorLyoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs
IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRo
aXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0
d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwg
aW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHks
IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgor
ICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8g
d2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp
Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFs
bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAq
IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO
WSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE
IFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBD
TEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP
TiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBP
RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIK
KyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDcs
IEtlaXIgRnJhc2VyCisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfSFZNX0hWTV9PUF9IX18K
KyNkZWZpbmUgX19YRU5fUFVCTElDX0hWTV9IVk1fT1BfSF9fCisKKyNpbmNsdWRlICIuLi94ZW4u
aCIKKyNpbmNsdWRlICIuLi90cmFjZS5oIgorI2luY2x1ZGUgIi4uL2V2ZW50X2NoYW5uZWwuaCIK
KworLyogR2V0L3NldCBzdWJjb21tYW5kczogZXh0cmEgYXJndW1lbnQgPT0gcG9pbnRlciB0byB4
ZW5faHZtX3BhcmFtIHN0cnVjdC4gKi8KKyNkZWZpbmUgSFZNT1Bfc2V0X3BhcmFtICAgICAgICAg
ICAwCisjZGVmaW5lIEhWTU9QX2dldF9wYXJhbSAgICAgICAgICAgMQorc3RydWN0IHhlbl9odm1f
cGFyYW0geworICAgIGRvbWlkX3QgIGRvbWlkOyAgICAvKiBJTiAqLworICAgIHVpbnQzMl90IGlu
ZGV4OyAgICAvKiBJTiAqLworICAgIHVpbnQ2NF90IHZhbHVlOyAgICAvKiBJTi9PVVQgKi8KK307
Cit0eXBlZGVmIHN0cnVjdCB4ZW5faHZtX3BhcmFtIHhlbl9odm1fcGFyYW1fdDsKK0RFRklORV9Y
RU5fR1VFU1RfSEFORExFKHhlbl9odm1fcGFyYW1fdCk7CisKKyNpZiBfX1hFTl9JTlRFUkZBQ0Vf
VkVSU0lPTl9fIDwgMHgwMDA0MDkwMAorCisvKiBTZXQgdGhlIGxvZ2ljYWwgbGV2ZWwgb2Ygb25l
IG9mIGEgZG9tYWluJ3MgUENJIElOVHggd2lyZXMuICovCisjZGVmaW5lIEhWTU9QX3NldF9wY2lf
aW50eF9sZXZlbCAgMgorc3RydWN0IHhlbl9odm1fc2V0X3BjaV9pbnR4X2xldmVsIHsKKyAgICAv
KiBEb21haW4gdG8gYmUgdXBkYXRlZC4gKi8KKyAgICBkb21pZF90ICBkb21pZDsKKyAgICAvKiBQ
Q0kgSU5UeCBpZGVudGlmaWNhdGlvbiBpbiBQQ0kgdG9wb2xvZ3kgKGRvbWFpbjpidXM6ZGV2aWNl
OmludHgpLiAqLworICAgIHVpbnQ4X3QgIGRvbWFpbiwgYnVzLCBkZXZpY2UsIGludHg7CisgICAg
LyogQXNzZXJ0aW9uIGxldmVsICgwID0gdW5hc3NlcnRlZCwgMSA9IGFzc2VydGVkKS4gKi8KKyAg
ICB1aW50OF90ICBsZXZlbDsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5faHZtX3NldF9wY2lfaW50
eF9sZXZlbCB4ZW5faHZtX3NldF9wY2lfaW50eF9sZXZlbF90OworREVGSU5FX1hFTl9HVUVTVF9I
QU5ETEUoeGVuX2h2bV9zZXRfcGNpX2ludHhfbGV2ZWxfdCk7CisKKy8qIFNldCB0aGUgbG9naWNh
bCBsZXZlbCBvZiBvbmUgb2YgYSBkb21haW4ncyBJU0EgSVJRIHdpcmVzLiAqLworI2RlZmluZSBI
Vk1PUF9zZXRfaXNhX2lycV9sZXZlbCAgIDMKK3N0cnVjdCB4ZW5faHZtX3NldF9pc2FfaXJxX2xl
dmVsIHsKKyAgICAvKiBEb21haW4gdG8gYmUgdXBkYXRlZC4gKi8KKyAgICBkb21pZF90ICBkb21p
ZDsKKyAgICAvKiBJU0EgZGV2aWNlIGlkZW50aWZpY2F0aW9uLCBieSBJU0EgSVJRICgwLTE1KS4g
Ki8KKyAgICB1aW50OF90ICBpc2FfaXJxOworICAgIC8qIEFzc2VydGlvbiBsZXZlbCAoMCA9IHVu
YXNzZXJ0ZWQsIDEgPSBhc3NlcnRlZCkuICovCisgICAgdWludDhfdCAgbGV2ZWw7Cit9OwordHlw
ZWRlZiBzdHJ1Y3QgeGVuX2h2bV9zZXRfaXNhX2lycV9sZXZlbCB4ZW5faHZtX3NldF9pc2FfaXJx
X2xldmVsX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX3NldF9pc2FfaXJxX2xl
dmVsX3QpOworCisjZGVmaW5lIEhWTU9QX3NldF9wY2lfbGlua19yb3V0ZSAgNAorc3RydWN0IHhl
bl9odm1fc2V0X3BjaV9saW5rX3JvdXRlIHsKKyAgICAvKiBEb21haW4gdG8gYmUgdXBkYXRlZC4g
Ki8KKyAgICBkb21pZF90ICBkb21pZDsKKyAgICAvKiBQQ0kgbGluayBpZGVudGlmaWVyICgwLTMp
LiAqLworICAgIHVpbnQ4X3QgIGxpbms7CisgICAgLyogSVNBIElSUSAoMS0xNSksIG9yIDAgKGRp
c2FibGUgbGluaykuICovCisgICAgdWludDhfdCAgaXNhX2lycTsKK307Cit0eXBlZGVmIHN0cnVj
dCB4ZW5faHZtX3NldF9wY2lfbGlua19yb3V0ZSB4ZW5faHZtX3NldF9wY2lfbGlua19yb3V0ZV90
OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9zZXRfcGNpX2xpbmtfcm91dGVfdCk7
CisKKyNlbmRpZiAvKiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDA0MDkwMCAqLwor
CisvKiBGbHVzaGVzIGFsbCBWQ1BVIFRMQnM6IEBhcmcgbXVzdCBiZSBOVUxMLiAqLworI2RlZmlu
ZSBIVk1PUF9mbHVzaF90bGJzICAgICAgICAgIDUKKwordHlwZWRlZiBlbnVtIHsKKyAgICBIVk1N
RU1fcmFtX3J3LCAgICAgICAgICAgICAvKiBOb3JtYWwgcmVhZC93cml0ZSBndWVzdCBSQU0gKi8K
KyAgICBIVk1NRU1fcmFtX3JvLCAgICAgICAgICAgICAvKiBSZWFkLW9ubHk7IHdyaXRlcyBhcmUg
ZGlzY2FyZGVkICovCisgICAgSFZNTUVNX21taW9fZG0sICAgICAgICAgICAgLyogUmVhZHMgYW5k
IHdyaXRlIGdvIHRvIHRoZSBkZXZpY2UgbW9kZWwgKi8KKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVS
U0lPTl9fIDwgMHgwMDA0MDcwMAorICAgIEhWTU1FTV9tbWlvX3dyaXRlX2RtLCAgICAgIC8qIFJl
YWQtb25seTsgd3JpdGVzIGdvIHRvIHRoZSBkZXZpY2UgbW9kZWwgKi8KKyNlbHNlCisgICAgSFZN
TUVNX3VudXNlZCwgICAgICAgICAgICAgLyogUGxhY2Vob2xkZXI7IHNldHRpbmcgbWVtb3J5IHRv
IHRoaXMgdHlwZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGwgZmFpbCBm
b3IgY29kZSBhZnRlciA0LjcuMCAqLworI2VuZGlmCisgICAgSFZNTUVNX2lvcmVxX3NlcnZlciAg
ICAgICAgLyogTWVtb3J5IHR5cGUgY2xhaW1lZCBieSBhbiBpb3JlcSBzZXJ2ZXI7IHR5cGUKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VzIHRvIHRoaXMgdmFsdWUgYXJl
IG9ubHkgYWxsb3dlZCBhZnRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFu
IGlvcmVxIHNlcnZlciBoYXMgY2xhaW1lZCBpdHMgb3duZXJzaGlwLgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE9ubHkgcGFnZXMgd2l0aCBIVk1NRU1fcmFtX3J3IGFyZSBhbGxv
d2VkIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlIHRvIHRoaXMg
dHlwZTsgY29udmVyc2VseSwgcGFnZXMgd2l0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRoaXMgdHlwZSBhcmUgb25seSBhbGxvd2VkIHRvIGJlIGNoYW5nZWQgYmFjaworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIEhWTU1FTV9yYW1fcncuICovCit9IGh2
bW1lbV90eXBlX3Q7CisKKy8qIEhpbnQgZnJvbSBQViBkcml2ZXJzIGZvciBwYWdldGFibGUgZGVz
dHJ1Y3Rpb24uICovCisjZGVmaW5lIEhWTU9QX3BhZ2V0YWJsZV9keWluZyAgICAgICAgOQorc3Ry
dWN0IHhlbl9odm1fcGFnZXRhYmxlX2R5aW5nIHsKKyAgICAvKiBEb21haW4gd2l0aCBhIHBhZ2V0
YWJsZSBhYm91dCB0byBiZSBkZXN0cm95ZWQuICovCisgICAgZG9taWRfdCAgZG9taWQ7CisgICAg
dWludDE2X3QgcGFkWzNdOyAvKiBhbGlnbiBuZXh0IGZpZWxkIG9uIDgtYnl0ZSBib3VuZGFyeSAq
LworICAgIC8qIGd1ZXN0IHBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhlIHRvcGxldmVsIHBhZ2V0YWJs
ZSBkeWluZyAqLworICAgIHVpbnQ2NF90IGdwYTsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5faHZt
X3BhZ2V0YWJsZV9keWluZyB4ZW5faHZtX3BhZ2V0YWJsZV9keWluZ190OworREVGSU5FX1hFTl9H
VUVTVF9IQU5ETEUoeGVuX2h2bV9wYWdldGFibGVfZHlpbmdfdCk7CisKKy8qIEdldCB0aGUgY3Vy
cmVudCBYZW4gdGltZSwgaW4gbmFub3NlY29uZHMgc2luY2Ugc3lzdGVtIGJvb3QuICovCisjZGVm
aW5lIEhWTU9QX2dldF90aW1lICAgICAgICAgICAgICAxMAorc3RydWN0IHhlbl9odm1fZ2V0X3Rp
bWUgeworICAgIHVpbnQ2NF90IG5vdzsgICAgICAvKiBPVVQgKi8KK307Cit0eXBlZGVmIHN0cnVj
dCB4ZW5faHZtX2dldF90aW1lIHhlbl9odm1fZ2V0X3RpbWVfdDsKK0RFRklORV9YRU5fR1VFU1Rf
SEFORExFKHhlbl9odm1fZ2V0X3RpbWVfdCk7CisKKyNkZWZpbmUgSFZNT1BfeGVudHJhY2UgICAg
ICAgICAgICAgIDExCitzdHJ1Y3QgeGVuX2h2bV94ZW50cmFjZSB7CisgICAgdWludDE2X3QgZXZl
bnQsIGV4dHJhX2J5dGVzOworICAgIHVpbnQ4X3QgZXh0cmFbVFJBQ0VfRVhUUkFfTUFYICogc2l6
ZW9mKHVpbnQzMl90KV07Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV94ZW50cmFjZSB4ZW5f
aHZtX3hlbnRyYWNlX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX3hlbnRyYWNl
X3QpOworCisvKiBGb2xsb3dpbmcgdG9vbHMtb25seSBpbnRlcmZhY2VzIG1heSBjaGFuZ2UgaW4g
ZnV0dXJlLiAqLworI2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19f
KQorCisvKiBEZXByZWNhdGVkIGJ5IFhFTk1FTV9hY2Nlc3Nfb3Bfc2V0X2FjY2VzcyAqLworI2Rl
ZmluZSBIVk1PUF9zZXRfbWVtX2FjY2VzcyAgICAgICAgMTIKKworLyogRGVwcmVjYXRlZCBieSBY
RU5NRU1fYWNjZXNzX29wX2dldF9hY2Nlc3MgKi8KKyNkZWZpbmUgSFZNT1BfZ2V0X21lbV9hY2Nl
c3MgICAgICAgIDEzCisKKyNlbmRpZiAvKiBkZWZpbmVkKF9fWEVOX18pIHx8IGRlZmluZWQoX19Y
RU5fVE9PTFNfXykgKi8KKworI2RlZmluZSBIVk1PUF9nZXRfbWVtX3R5cGUgICAgMTUKKy8qIFJl
dHVybiBodm1tZW1fdHlwZV90IGZvciB0aGUgc3BlY2lmaWVkIHBmbi4gKi8KK3N0cnVjdCB4ZW5f
aHZtX2dldF9tZW1fdHlwZSB7CisgICAgLyogRG9tYWluIHRvIGJlIHF1ZXJpZWQuICovCisgICAg
ZG9taWRfdCBkb21pZDsKKyAgICAvKiBPVVQgdmFyaWFibGUuICovCisgICAgdWludDE2X3QgbWVt
X3R5cGU7CisgICAgdWludDE2X3QgcGFkWzJdOyAvKiBhbGlnbiBuZXh0IGZpZWxkIG9uIDgtYnl0
ZSBib3VuZGFyeSAqLworICAgIC8qIElOIHZhcmlhYmxlLiAqLworICAgIHVpbnQ2NF90IHBmbjsK
K307Cit0eXBlZGVmIHN0cnVjdCB4ZW5faHZtX2dldF9tZW1fdHlwZSB4ZW5faHZtX2dldF9tZW1f
dHlwZV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9nZXRfbWVtX3R5cGVfdCk7
CisKKy8qIEZvbGxvd2luZyB0b29scy1vbmx5IGludGVyZmFjZXMgbWF5IGNoYW5nZSBpbiBmdXR1
cmUuICovCisjaWYgZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCisK
Ky8qCisgKiBEZWZpbml0aW9ucyByZWxhdGluZyB0byBETU9QX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIu
IChEZWZpbmVkIGhlcmUgZm9yCisgKiBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSkuCisgKi8KKwor
I2RlZmluZSBIVk1fSU9SRVFTUlZfQlVGSU9SRVFfT0ZGICAgIDAKKyNkZWZpbmUgSFZNX0lPUkVR
U1JWX0JVRklPUkVRX0xFR0FDWSAxCisvKgorICogVXNlIHRoaXMgd2hlbiByZWFkX3BvaW50ZXIg
Z2V0cyB1cGRhdGVkIGF0b21pY2FsbHkgYW5kCisgKiB0aGUgcG9pbnRlciBwYWlyIGdldHMgcmVh
ZCBhdG9taWNhbGx5OgorICovCisjZGVmaW5lIEhWTV9JT1JFUVNSVl9CVUZJT1JFUV9BVE9NSUMg
MgorCisjZW5kaWYgLyogZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18p
ICovCisKKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCisKKy8q
CisgKiBIVk1PUF9zZXRfZXZ0Y2huX3VwY2FsbF92ZWN0b3I6IFNldCBhIDx2ZWN0b3I+IHRoYXQg
c2hvdWxkIGJlIHVzZWQgZm9yIGV2ZW50CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNoYW5uZWwgdXBjYWxscyBvbiB0aGUgc3BlY2lmaWVkIDx2Y3B1Pi4gSWYgc2V0LAorICog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzIHZlY3RvciB3aWxsIGJlIHVzZWQg
aW4gcHJlZmVyZW5jZSB0byB0aGUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZG9tYWluIGdsb2JhbCBjYWxsYmFjayB2aWEgKHNlZQorICogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBIVk1fUEFSQU1fQ0FMTEJBQ0tfSVJRKS4KKyAqLworI2RlZmluZSBIVk1PUF9z
ZXRfZXZ0Y2huX3VwY2FsbF92ZWN0b3IgMjMKK3N0cnVjdCB4ZW5faHZtX2V2dGNobl91cGNhbGxf
dmVjdG9yIHsKKyAgICB1aW50MzJfdCB2Y3B1OworICAgIHVpbnQ4X3QgdmVjdG9yOworfTsKK3R5
cGVkZWYgc3RydWN0IHhlbl9odm1fZXZ0Y2huX3VwY2FsbF92ZWN0b3IgeGVuX2h2bV9ldnRjaG5f
dXBjYWxsX3ZlY3Rvcl90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9ldnRjaG5f
dXBjYWxsX3ZlY3Rvcl90KTsKKworI2VuZGlmIC8qIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu
ZWQoX194ODZfNjRfXykgKi8KKworI2RlZmluZSBIVk1PUF9ndWVzdF9yZXF1ZXN0X3ZtX2V2ZW50
IDI0CisKKy8qIEhWTU9QX2FsdHAybTogcGVyZm9ybSBhbHRwMm0gc3RhdGUgb3BlcmF0aW9ucyAq
LworI2RlZmluZSBIVk1PUF9hbHRwMm0gMjUKKworI2RlZmluZSBIVk1PUF9BTFRQMk1fSU5URVJG
QUNFX1ZFUlNJT04gMHgwMDAwMDAwMQorCitzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fZG9tYWluX3N0
YXRlIHsKKyAgICAvKiBJTiBvciBPVVQgdmFyaWFibGUgb24vb2ZmICovCisgICAgdWludDhfdCBz
dGF0ZTsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5faHZtX2FsdHAybV9kb21haW5fc3RhdGUgeGVu
X2h2bV9hbHRwMm1fZG9tYWluX3N0YXRlX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5f
aHZtX2FsdHAybV9kb21haW5fc3RhdGVfdCk7CisKK3N0cnVjdCB4ZW5faHZtX2FsdHAybV92Y3B1
X2VuYWJsZV9ub3RpZnkgeworICAgIHVpbnQzMl90IHZjcHVfaWQ7CisgICAgdWludDMyX3QgcGFk
OworICAgIC8qICNWRSBpbmZvIGFyZWEgZ2ZuICovCisgICAgdWludDY0X3QgZ2ZuOworfTsKK3R5
cGVkZWYgc3RydWN0IHhlbl9odm1fYWx0cDJtX3ZjcHVfZW5hYmxlX25vdGlmeSB4ZW5faHZtX2Fs
dHAybV92Y3B1X2VuYWJsZV9ub3RpZnlfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9o
dm1fYWx0cDJtX3ZjcHVfZW5hYmxlX25vdGlmeV90KTsKKworc3RydWN0IHhlbl9odm1fYWx0cDJt
X3ZpZXcgeworICAgIC8qIElOL09VVCB2YXJpYWJsZSAqLworICAgIHVpbnQxNl90IHZpZXc7Cisg
ICAgLyogQ3JlYXRlIHZpZXcgb25seTogZGVmYXVsdCBhY2Nlc3MgdHlwZQorICAgICAqIE5PVEU6
IGN1cnJlbnRseSBpZ25vcmVkICovCisgICAgdWludDE2X3QgaHZtbWVtX2RlZmF1bHRfYWNjZXNz
OyAvKiB4ZW5tZW1fYWNjZXNzX3QgKi8KK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5faHZtX2FsdHAy
bV92aWV3IHhlbl9odm1fYWx0cDJtX3ZpZXdfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhl
bl9odm1fYWx0cDJtX3ZpZXdfdCk7CisKK3N0cnVjdCB4ZW5faHZtX2FsdHAybV9zZXRfbWVtX2Fj
Y2VzcyB7CisgICAgLyogdmlldyAqLworICAgIHVpbnQxNl90IHZpZXc7CisgICAgLyogTWVtb3J5
IHR5cGUgKi8KKyAgICB1aW50MTZfdCBodm1tZW1fYWNjZXNzOyAvKiB4ZW5tZW1fYWNjZXNzX3Qg
Ki8KKyAgICB1aW50MzJfdCBwYWQ7CisgICAgLyogZ2ZuICovCisgICAgdWludDY0X3QgZ2ZuOwor
fTsKK3R5cGVkZWYgc3RydWN0IHhlbl9odm1fYWx0cDJtX3NldF9tZW1fYWNjZXNzIHhlbl9odm1f
YWx0cDJtX3NldF9tZW1fYWNjZXNzX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZt
X2FsdHAybV9zZXRfbWVtX2FjY2Vzc190KTsKKworc3RydWN0IHhlbl9odm1fYWx0cDJtX2NoYW5n
ZV9nZm4geworICAgIC8qIHZpZXcgKi8KKyAgICB1aW50MTZfdCB2aWV3OworICAgIHVpbnQxNl90
IHBhZDE7CisgICAgdWludDMyX3QgcGFkMjsKKyAgICAvKiBvbGQgZ2ZuICovCisgICAgdWludDY0
X3Qgb2xkX2dmbjsKKyAgICAvKiBuZXcgZ2ZuLCBJTlZBTElEX0dGTiAofjBVTCkgbWVhbnMgcmV2
ZXJ0ICovCisgICAgdWludDY0X3QgbmV3X2dmbjsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5faHZt
X2FsdHAybV9jaGFuZ2VfZ2ZuIHhlbl9odm1fYWx0cDJtX2NoYW5nZV9nZm5fdDsKK0RFRklORV9Y
RU5fR1VFU1RfSEFORExFKHhlbl9odm1fYWx0cDJtX2NoYW5nZV9nZm5fdCk7CisKK3N0cnVjdCB4
ZW5faHZtX2FsdHAybV9vcCB7CisgICAgdWludDMyX3QgdmVyc2lvbjsgICAvKiBIVk1PUF9BTFRQ
Mk1fSU5URVJGQUNFX1ZFUlNJT04gKi8KKyAgICB1aW50MzJfdCBjbWQ7CisvKiBHZXQvc2V0IHRo
ZSBhbHRwMm0gc3RhdGUgZm9yIGEgZG9tYWluICovCisjZGVmaW5lIEhWTU9QX2FsdHAybV9nZXRf
ZG9tYWluX3N0YXRlICAgICAxCisjZGVmaW5lIEhWTU9QX2FsdHAybV9zZXRfZG9tYWluX3N0YXRl
ICAgICAyCisvKiBTZXQgdGhlIGN1cnJlbnQgVkNQVSB0byByZWNlaXZlIGFsdHAybSBldmVudCBu
b3RpZmljYXRpb25zICovCisjZGVmaW5lIEhWTU9QX2FsdHAybV92Y3B1X2VuYWJsZV9ub3RpZnkg
ICAzCisvKiBDcmVhdGUgYSBuZXcgdmlldyAqLworI2RlZmluZSBIVk1PUF9hbHRwMm1fY3JlYXRl
X3AybSAgICAgICAgICAgNAorLyogRGVzdHJveSBhIHZpZXcgKi8KKyNkZWZpbmUgSFZNT1BfYWx0
cDJtX2Rlc3Ryb3lfcDJtICAgICAgICAgIDUKKy8qIFN3aXRjaCB2aWV3IGZvciBhbiBlbnRpcmUg
ZG9tYWluICovCisjZGVmaW5lIEhWTU9QX2FsdHAybV9zd2l0Y2hfcDJtICAgICAgICAgICA2Cisv
KiBOb3RpZnkgdGhhdCBhIHBhZ2Ugb2YgbWVtb3J5IGlzIHRvIGhhdmUgc3BlY2lmaWMgYWNjZXNz
IHR5cGVzICovCisjZGVmaW5lIEhWTU9QX2FsdHAybV9zZXRfbWVtX2FjY2VzcyAgICAgICA3Cisv
KiBDaGFuZ2UgYSBwMm0gZW50cnkgdG8gaGF2ZSBhIGRpZmZlcmVudCBnZm4tPm1mbiBtYXBwaW5n
ICovCisjZGVmaW5lIEhWTU9QX2FsdHAybV9jaGFuZ2VfZ2ZuICAgICAgICAgICA4CisgICAgZG9t
aWRfdCBkb21haW47CisgICAgdWludDE2X3QgcGFkMTsKKyAgICB1aW50MzJfdCBwYWQyOworICAg
IHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHhlbl9odm1fYWx0cDJtX2RvbWFpbl9zdGF0ZSAgICAg
ICBkb21haW5fc3RhdGU7CisgICAgICAgIHN0cnVjdCB4ZW5faHZtX2FsdHAybV92Y3B1X2VuYWJs
ZV9ub3RpZnkgZW5hYmxlX25vdGlmeTsKKyAgICAgICAgc3RydWN0IHhlbl9odm1fYWx0cDJtX3Zp
ZXcgICAgICAgICAgICAgICB2aWV3OworICAgICAgICBzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fc2V0
X21lbV9hY2Nlc3MgICAgIHNldF9tZW1fYWNjZXNzOworICAgICAgICBzdHJ1Y3QgeGVuX2h2bV9h
bHRwMm1fY2hhbmdlX2dmbiAgICAgICAgIGNoYW5nZV9nZm47CisgICAgICAgIHVpbnQ4X3QgcGFk
WzY0XTsKKyAgICB9IHU7Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fb3AgeGVu
X2h2bV9hbHRwMm1fb3BfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1fYWx0cDJt
X29wX3QpOworCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0hWTV9IVk1fT1BfSF9fICovCisKKy8q
CisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0Qi
CisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1t
b2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4veHNtL2h2bS9o
dm1fdmNwdS5oIGIvaW5jbHVkZS94ZW4veHNtL2h2bS9odm1fdmNwdS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyMWFiZjEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRl
L3hlbi94c20vaHZtL2h2bV92Y3B1LmgKQEAgLTAsMCArMSwxNDQgQEAKKy8qCisgKiBQZXJtaXNz
aW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRh
aW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50
YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJl
IHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisg
KiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRl
LCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5k
IHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQg
dG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRo
ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxs
IGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9m
IHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwg
V0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5D
TFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VN
RU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERF
UlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBB
UklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FS
RSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgor
ICogQ29weXJpZ2h0IChjKSAyMDE1LCBSb2dlciBQYXUgTW9ubmUgPHJvZ2VyLnBhdUBjaXRyaXgu
Y29tPgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElDX0hWTV9IVk1fVkNQVV9IX18KKyNkZWZp
bmUgX19YRU5fUFVCTElDX0hWTV9IVk1fVkNQVV9IX18KKworI2luY2x1ZGUgIi4uL3hlbi5oIgor
CitzdHJ1Y3QgdmNwdV9odm1feDg2XzMyIHsKKyAgICB1aW50MzJfdCBlYXg7CisgICAgdWludDMy
X3QgZWN4OworICAgIHVpbnQzMl90IGVkeDsKKyAgICB1aW50MzJfdCBlYng7CisgICAgdWludDMy
X3QgZXNwOworICAgIHVpbnQzMl90IGVicDsKKyAgICB1aW50MzJfdCBlc2k7CisgICAgdWludDMy
X3QgZWRpOworICAgIHVpbnQzMl90IGVpcDsKKyAgICB1aW50MzJfdCBlZmxhZ3M7CisKKyAgICB1
aW50MzJfdCBjcjA7CisgICAgdWludDMyX3QgY3IzOworICAgIHVpbnQzMl90IGNyNDsKKworICAg
IHVpbnQzMl90IHBhZDE7CisKKyAgICAvKgorICAgICAqIEVGRVIgc2hvdWxkIG9ubHkgYmUgdXNl
ZCB0byBzZXQgdGhlIE5YRSBiaXQgKGlmIHJlcXVpcmVkKQorICAgICAqIHdoZW4gc3RhcnRpbmcg
YSB2Q1BVIGluIDMyYml0IG1vZGUgd2l0aCBwYWdpbmcgZW5hYmxlZCBvcgorICAgICAqIHRvIHNl
dCB0aGUgTE1FL0xNQSBiaXRzIGluIG9yZGVyIHRvIHN0YXJ0IHRoZSB2Q1BVIGluCisgICAgICog
Y29tcGF0aWJpbGl0eSBtb2RlLgorICAgICAqLworICAgIHVpbnQ2NF90IGVmZXI7CisKKyAgICB1
aW50MzJfdCBjc19iYXNlOworICAgIHVpbnQzMl90IGRzX2Jhc2U7CisgICAgdWludDMyX3Qgc3Nf
YmFzZTsKKyAgICB1aW50MzJfdCBlc19iYXNlOworICAgIHVpbnQzMl90IHRyX2Jhc2U7CisgICAg
dWludDMyX3QgY3NfbGltaXQ7CisgICAgdWludDMyX3QgZHNfbGltaXQ7CisgICAgdWludDMyX3Qg
c3NfbGltaXQ7CisgICAgdWludDMyX3QgZXNfbGltaXQ7CisgICAgdWludDMyX3QgdHJfbGltaXQ7
CisgICAgdWludDE2X3QgY3NfYXI7CisgICAgdWludDE2X3QgZHNfYXI7CisgICAgdWludDE2X3Qg
c3NfYXI7CisgICAgdWludDE2X3QgZXNfYXI7CisgICAgdWludDE2X3QgdHJfYXI7CisKKyAgICB1
aW50MTZfdCBwYWQyWzNdOworfTsKKworLyoKKyAqIFRoZSBsYXlvdXQgb2YgdGhlIF9hciBmaWVs
ZHMgb2YgdGhlIHNlZ21lbnQgcmVnaXN0ZXJzIGlzIHRoZQorICogZm9sbG93aW5nOgorICoKKyAq
IEJpdHMgICBbMCwzXTogdHlwZSAoYml0cyA0MC00MykuCisgKiBCaXQgICAgICAgIDQ6IHMgICAg
KGRlc2NyaXB0b3IgdHlwZSwgYml0IDQ0KS4KKyAqIEJpdCAgICBbNSw2XTogZHBsICAoZGVzY3Jp
cHRvciBwcml2aWxlZ2UgbGV2ZWwsIGJpdHMgNDUtNDYpLgorICogQml0ICAgICAgICA3OiBwICAg
IChzZWdtZW50LXByZXNlbnQsIGJpdCA0NykuCisgKiBCaXQgICAgICAgIDg6IGF2bCAgKGF2YWls
YWJsZSBmb3Igc3lzdGVtIHNvZnR3YXJlLCBiaXQgNTIpLgorICogQml0ICAgICAgICA5OiBsICAg
ICg2NC1iaXQgY29kZSBzZWdtZW50LCBiaXQgNTMpLgorICogQml0ICAgICAgIDEwOiBkYiAgICht
ZWFuaW5nIGRlcGVuZHMgb24gdGhlIHNlZ21lbnQsIGJpdCA1NCkuCisgKiBCaXQgICAgICAgMTE6
IGcgICAgKGdyYW51bGFyaXR5LCBiaXQgNTUpCisgKiBCaXRzIFsxMiwxNV06IHVudXNlZCwgbXVz
dCBiZSBibGFuay4KKyAqCisgKiBBIG1vcmUgY29tcGxldGUgZGVzY3JpcHRpb24gb2YgdGhlIG1l
YW5pbmcgb2YgdGhpcyBmaWVsZHMgY2FuIGJlCisgKiBvYnRhaW5lZCBmcm9tIHRoZSBJbnRlbCBT
RE0sIFZvbHVtZSAzLCBzZWN0aW9uIDMuNC41LgorICovCisKK3N0cnVjdCB2Y3B1X2h2bV94ODZf
NjQgeworICAgIHVpbnQ2NF90IHJheDsKKyAgICB1aW50NjRfdCByY3g7CisgICAgdWludDY0X3Qg
cmR4OworICAgIHVpbnQ2NF90IHJieDsKKyAgICB1aW50NjRfdCByc3A7CisgICAgdWludDY0X3Qg
cmJwOworICAgIHVpbnQ2NF90IHJzaTsKKyAgICB1aW50NjRfdCByZGk7CisgICAgdWludDY0X3Qg
cmlwOworICAgIHVpbnQ2NF90IHJmbGFnczsKKworICAgIHVpbnQ2NF90IGNyMDsKKyAgICB1aW50
NjRfdCBjcjM7CisgICAgdWludDY0X3QgY3I0OworICAgIHVpbnQ2NF90IGVmZXI7CisKKyAgICAv
KgorICAgICAqIFVzaW5nIFZDUFVfSFZNX01PREVfNjRCIGltcGxpZXMgdGhhdCB0aGUgdkNQVSBp
cyBsYXVuY2hlZAorICAgICAqIGRpcmVjdGx5IGluIGxvbmcgbW9kZSwgc28gdGhlIGNhY2hlZCBw
YXJ0cyBvZiB0aGUgc2VnbWVudAorICAgICAqIHJlZ2lzdGVycyBnZXQgc2V0IHRvIG1hdGNoIHRo
YXQgZW52aXJvbm1lbnQuCisgICAgICoKKyAgICAgKiBJZiB0aGUgdXNlciB3YW50cyB0byBsYXVu
Y2ggdGhlIHZDUFUgaW4gY29tcGF0aWJpbGl0eSBtb2RlCisgICAgICogdGhlIDMyLWJpdCBzdHJ1
Y3R1cmUgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZC4KKyAgICAgKi8KK307CisKK3N0cnVjdCB2Y3B1
X2h2bV9jb250ZXh0IHsKKyNkZWZpbmUgVkNQVV9IVk1fTU9ERV8zMkIgMCAgLyogMzJiaXQgZmll
bGRzIG9mIHRoZSBzdHJ1Y3R1cmUgd2lsbCBiZSB1c2VkLiAqLworI2RlZmluZSBWQ1BVX0hWTV9N
T0RFXzY0QiAxICAvKiA2NGJpdCBmaWVsZHMgb2YgdGhlIHN0cnVjdHVyZSB3aWxsIGJlIHVzZWQu
ICovCisgICAgdWludDMyX3QgbW9kZTsKKworICAgIHVpbnQzMl90IHBhZDsKKworICAgIC8qIENQ
VSByZWdpc3RlcnMuICovCisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3QgdmNwdV9odm1feDg2
XzMyIHg4Nl8zMjsKKyAgICAgICAgc3RydWN0IHZjcHVfaHZtX3g4Nl82NCB4ODZfNjQ7CisgICAg
fSBjcHVfcmVnczsKK307Cit0eXBlZGVmIHN0cnVjdCB2Y3B1X2h2bV9jb250ZXh0IHZjcHVfaHZt
X2NvbnRleHRfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHZjcHVfaHZtX2NvbnRleHRfdCk7
CisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfSFZNX0hWTV9WQ1BVX0hfXyAqLworCisvKgorICog
TG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICog
Yy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTog
bmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3hzbS9odm0vaHZtX3hz
X3N0cmluZ3MuaCBiL2luY2x1ZGUveGVuL3hzbS9odm0vaHZtX3hzX3N0cmluZ3MuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZWExZGQ0Ci0tLSAvZGV2L251bGwKKysrIGIv
aW5jbHVkZS94ZW4veHNtL2h2bS9odm1feHNfc3RyaW5ncy5oCkBAIC0wLDAgKzEsODMgQEAKKy8q
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyAqIGh2bS9odm1feHNfc3RyaW5ncy5oCisgKgorICogSFZN
IHhlbnN0b3JlIHN0cmluZ3MgdXNlZCBpbiBIVk1MT0FERVIuCisgKgorICogUGVybWlzc2lvbiBp
cyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5n
IGEgY29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9u
IGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRo
b3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmln
aHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3Vi
bGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBw
ZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRv
IHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJv
dmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBp
bmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUg
U29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhP
VVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElO
RyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAor
ICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJF
IExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lO
RworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1Ig
VEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIENv
cHlyaWdodCAoYykgMjAxMywgQ2l0cml4IFN5c3RlbXMKKyAqLworCisjaWZuZGVmIF9fWEVOX1BV
QkxJQ19IVk1fSFZNX1hTX1NUUklOR1NfSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19IVk1fSFZN
X1hTX1NUUklOR1NfSF9fCisKKyNkZWZpbmUgSFZNX1hTX0hWTUxPQURFUiAgICAgICAgICAgICAg
ICJodm1sb2FkZXIiCisjZGVmaW5lIEhWTV9YU19CSU9TICAgICAgICAgICAgICAgICAgICAiaHZt
bG9hZGVyL2Jpb3MiCisjZGVmaW5lIEhWTV9YU19HRU5FUkFUSU9OX0lEX0FERFJFU1MgICAiaHZt
bG9hZGVyL2dlbmVyYXRpb24taWQtYWRkcmVzcyIKKyNkZWZpbmUgSFZNX1hTX0FMTE9XX01FTU9S
WV9SRUxPQ0FURSAgICJodm1sb2FkZXIvYWxsb3ctbWVtb3J5LXJlbG9jYXRlIgorCisvKiBUaGUg
Zm9sbG93aW5nIHZhbHVlcyBhbGxvdyBhZGRpdGlvbmFsIEFDUEkgdGFibGVzIHRvIGJlIGFkZGVk
IHRvIHRoZQorICogdmlydHVhbCBBQ1BJIEJJT1MgdGhhdCBodm1sb2FkZXIgY29uc3RydWN0cy4g
VGhlIHZhbHVlcyBzcGVjaWZ5IHRoZSBndWVzdAorICogcGh5c2ljYWwgYWRkcmVzcyBhbmQgbGVu
Z3RoIG9mIGEgYmxvY2sgb2YgQUNQSSB0YWJsZXMgdG8gYWRkLiBUaGUgZm9ybWF0IG9mCisgKiB0
aGUgYmxvY2sgaXMgc2ltcGx5IGNvbmNhdGVuYXRlZCByYXcgdGFibGVzICh3aGljaCBzcGVjaWZ5
IHRoZWlyIG93biBsZW5ndGgKKyAqIGluIHRoZSBBQ1BJIGhlYWRlcikuCisgKi8KKyNkZWZpbmUg
SFZNX1hTX0FDUElfUFRfQUREUkVTUyAgICAgICAgICJodm1sb2FkZXIvYWNwaS9hZGRyZXNzIgor
I2RlZmluZSBIVk1fWFNfQUNQSV9QVF9MRU5HVEggICAgICAgICAgImh2bWxvYWRlci9hY3BpL2xl
bmd0aCIKKworLyogQW55IG51bWJlciBvZiBTTUJJT1MgdHlwZXMgY2FuIGJlIHBhc3NlZCB0aHJv
dWdoIHRvIGFuIEhWTSBndWVzdCB1c2luZworICogdGhlIGZvbGxvd2luZyB4ZW5zdG9yZSB2YWx1
ZXMuIFRoZSB2YWx1ZXMgc3BlY2lmeSB0aGUgZ3Vlc3QgcGh5c2ljYWwKKyAqIGFkZHJlc3MgYW5k
IGxlbmd0aCBvZiBhIGJsb2NrIG9mIFNNQklPUyBzdHJ1Y3R1cmVzIGZvciBodm1sb2FkZXIgdG8g
dXNlLgorICogVGhlIGJsb2NrIGlzIGZvcm1hdHRlZCBpbiB0aGUgZm9sbG93aW5nIHdheToKKyAq
CisgKiA8bGVuZ3RoPjxzdHJ1Y3Q+PGxlbmd0aD48c3RydWN0Pi4uLgorICoKKyAqIEVhY2ggbGVu
Z3RoIHNlcGFyYXRvciBpcyBhIDMyYiBpbnRlZ2VyIGluZGljYXRpbmcgdGhlIGxlbmd0aCBvZiB0
aGUgbmV4dAorICogU01CSU9TIHN0cnVjdHVyZS4gRm9yIERNVEYgZGVmaW5lZCB0eXBlcyAoMCAt
IDEyMSksIHRoZSBwYXNzZWQgaW4gc3RydWN0CisgKiB3aWxsIHJlcGxhY2UgdGhlIGRlZmF1bHQg
c3RydWN0dXJlIGluIGh2bWxvYWRlci4gSW4gYWRkaXRpb24sIGFueQorICogT0VNL3ZlbmRvcnR5
cGVzICgxMjggLSAyNTUpIHdpbGwgYWxsIGJlIGFkZGVkLgorICovCisjZGVmaW5lIEhWTV9YU19T
TUJJT1NfUFRfQUREUkVTUyAgICAgICAiaHZtbG9hZGVyL3NtYmlvcy9hZGRyZXNzIgorI2RlZmlu
ZSBIVk1fWFNfU01CSU9TX1BUX0xFTkdUSCAgICAgICAgImh2bWxvYWRlci9zbWJpb3MvbGVuZ3Ro
IgorCisvKiBTZXQgdG8gMSB0byBlbmFibGUgU01CSU9TIGRlZmF1bHQgcG9ydGFibGUgYmF0dGVy
eSAodHlwZSAyMikgdmFsdWVzLiAqLworI2RlZmluZSBIVk1fWFNfU01CSU9TX0RFRkFVTFRfQkFU
VEVSWSAgImh2bWxvYWRlci9zbWJpb3MvZGVmYXVsdF9iYXR0ZXJ5IgorCisvKiBUaGUgZm9sbG93
aW5nIHhlbnN0b3JlIHZhbHVlcyBhcmUgdXNlZCB0byBvdmVycmlkZSBzb21lIG9mIHRoZSBkZWZh
dWx0CisgKiBzdHJpbmcgdmFsdWVzIGluIHRoZSBTTUJJT1MgdGFibGUgY29uc3RydWN0ZWQgaW4g
aHZtbG9hZGVyLgorICovCisjZGVmaW5lIEhWTV9YU19CSU9TX1NUUklOR1MgICAgICAgICAgICAi
Ymlvcy1zdHJpbmdzIgorI2RlZmluZSBIVk1fWFNfQklPU19WRU5ET1IgICAgICAgICAgICAgImJp
b3Mtc3RyaW5ncy9iaW9zLXZlbmRvciIKKyNkZWZpbmUgSFZNX1hTX0JJT1NfVkVSU0lPTiAgICAg
ICAgICAgICJiaW9zLXN0cmluZ3MvYmlvcy12ZXJzaW9uIgorI2RlZmluZSBIVk1fWFNfU1lTVEVN
X01BTlVGQUNUVVJFUiAgICAgImJpb3Mtc3RyaW5ncy9zeXN0ZW0tbWFudWZhY3R1cmVyIgorI2Rl
ZmluZSBIVk1fWFNfU1lTVEVNX1BST0RVQ1RfTkFNRSAgICAgImJpb3Mtc3RyaW5ncy9zeXN0ZW0t
cHJvZHVjdC1uYW1lIgorI2RlZmluZSBIVk1fWFNfU1lTVEVNX1ZFUlNJT04gICAgICAgICAgImJp
b3Mtc3RyaW5ncy9zeXN0ZW0tdmVyc2lvbiIKKyNkZWZpbmUgSFZNX1hTX1NZU1RFTV9TRVJJQUxf
TlVNQkVSICAgICJiaW9zLXN0cmluZ3Mvc3lzdGVtLXNlcmlhbC1udW1iZXIiCisjZGVmaW5lIEhW
TV9YU19FTkNMT1NVUkVfTUFOVUZBQ1RVUkVSICAiYmlvcy1zdHJpbmdzL2VuY2xvc3VyZS1tYW51
ZmFjdHVyZXIiCisjZGVmaW5lIEhWTV9YU19FTkNMT1NVUkVfU0VSSUFMX05VTUJFUiAiYmlvcy1z
dHJpbmdzL2VuY2xvc3VyZS1zZXJpYWwtbnVtYmVyIgorI2RlZmluZSBIVk1fWFNfRU5DTE9TVVJF
X0FTU0VUX1RBRyAgICAgImJpb3Mtc3RyaW5ncy9lbmNsb3N1cmUtYXNzZXQtdGFnIgorI2RlZmlu
ZSBIVk1fWFNfQkFUVEVSWV9NQU5VRkFDVFVSRVIgICAgImJpb3Mtc3RyaW5ncy9iYXR0ZXJ5LW1h
bnVmYWN0dXJlciIKKyNkZWZpbmUgSFZNX1hTX0JBVFRFUllfREVWSUNFX05BTUUgICAgICJiaW9z
LXN0cmluZ3MvYmF0dGVyeS1kZXZpY2UtbmFtZSIKKworLyogMSB0byA5OSBPRU0gc3RyaW5ncyBj
YW4gYmUgc2V0IGluIHhlbnN0b3JlIHVzaW5nIHZhbHVlcyBvZiB0aGUgZm9ybQorICogYmVsb3cu
IFRoZXNlIHN0cmluZ3Mgd2lsbCBiZSBsb2FkZWQgaW50byB0aGUgU01CSU9TIHR5cGUgMTEgc3Ry
dWN0dXJlLgorICovCisjZGVmaW5lIEhWTV9YU19PRU1fU1RSSU5HUyAgICAgICAgICAgICAiYmlv
cy1zdHJpbmdzL29lbS0lZCIKKworI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19IVk1fSFZNX1hTX1NU
UklOR1NfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi94c20vaHZtL2lvcmVxLmggYi9p
bmNsdWRlL3hlbi94c20vaHZtL2lvcmVxLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZDMwOWQxMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL3hzbS9odm0vaW9y
ZXEuaApAQCAtMCwwICsxLDE0MyBAQAorLyoKKyAqIGlvcmVxLmg6IEkvTyByZXF1ZXN0IGRlZmlu
aXRpb25zIGZvciBkZXZpY2UgbW9kZWxzCisgKiBDb3B5cmlnaHQgKGMpIDIwMDQsIEludGVsIENv
cnBvcmF0aW9uLgorICogCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9m
IGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3
YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwg
dG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGlu
ZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks
IG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwg
Y29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl
IFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0
aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVz
IG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09G
VFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwg
RVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAq
IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERB
TUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O
VFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4g
Q09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFM
SU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2lmbmRlZiBfSU9SRVFfSF8KKyNkZWZpbmUg
X0lPUkVRX0hfCisKKyNkZWZpbmUgSU9SRVFfUkVBRCAgICAgIDEKKyNkZWZpbmUgSU9SRVFfV1JJ
VEUgICAgIDAKKworI2RlZmluZSBTVEFURV9JT1JFUV9OT05FICAgICAgICAwCisjZGVmaW5lIFNU
QVRFX0lPUkVRX1JFQURZICAgICAgIDEKKyNkZWZpbmUgU1RBVEVfSU9SRVFfSU5QUk9DRVNTICAg
MgorI2RlZmluZSBTVEFURV9JT1JFU1BfUkVBRFkgICAgICAzCisKKyNkZWZpbmUgSU9SRVFfVFlQ
RV9QSU8gICAgICAgICAgMCAvKiBwaW8gKi8KKyNkZWZpbmUgSU9SRVFfVFlQRV9DT1BZICAgICAg
ICAgMSAvKiBtbWlvIG9wcyAqLworI2RlZmluZSBJT1JFUV9UWVBFX1BDSV9DT05GSUcgICAyCisj
ZGVmaW5lIElPUkVRX1RZUEVfVElNRU9GRlNFVCAgIDcKKyNkZWZpbmUgSU9SRVFfVFlQRV9JTlZB
TElEQVRFICAgOCAvKiBtYXBjYWNoZSAqLworCisvKgorICogVk1FeGl0IGRpc3BhdGNoZXIgc2hv
dWxkIGNvb3BlcmF0ZSB3aXRoIGluc3RydWN0aW9uIGRlY29kZXIgdG8KKyAqIHByZXBhcmUgdGhp
cyBzdHJ1Y3R1cmUgYW5kIG5vdGlmeSBzZXJ2aWNlIE9TIGFuZCBETSBieSBzZW5kaW5nCisgKiB2
aXJxLgorICoKKyAqIEZvciBJL08gdHlwZSBJT1JFUV9UWVBFX1BDSV9DT05GSUcsIHRoZSBwaHlz
aWNhbCBhZGRyZXNzIGlzIGZvcm1hdHRlZAorICogYXMgZm9sbG93czoKKyAqIAorICogNjMuLi4u
NDh8NDcuLjQwfDM5Li4zNXwzNC4uMzJ8MzEuLi4uLi4uLjAKKyAqIFNFR01FTlQgfEJVUyAgIHxE
RVYgICB8Rk4gICAgfE9GRlNFVAorICovCitzdHJ1Y3QgaW9yZXEgeworICAgIHVpbnQ2NF90IGFk
ZHI7ICAgICAgICAgIC8qIHBoeXNpY2FsIGFkZHJlc3MgKi8KKyAgICB1aW50NjRfdCBkYXRhOyAg
ICAgICAgICAvKiBkYXRhIChvciBwYWRkciBvZiBkYXRhKSAqLworICAgIHVpbnQzMl90IGNvdW50
OyAgICAgICAgIC8qIGZvciByZXAgcHJlZml4ZXMgKi8KKyAgICB1aW50MzJfdCBzaXplOyAgICAg
ICAgICAvKiBzaXplIGluIGJ5dGVzICovCisgICAgdWludDMyX3QgdnBfZXBvcnQ7ICAgICAgLyog
ZXZ0Y2huIGZvciBub3RpZmljYXRpb25zIHRvL2Zyb20gZGV2aWNlIG1vZGVsICovCisgICAgdWlu
dDE2X3QgX3BhZDA7CisgICAgdWludDhfdCBzdGF0ZTo0OworICAgIHVpbnQ4X3QgZGF0YV9pc19w
dHI6MTsgIC8qIGlmIDEsIGRhdGEgYWJvdmUgaXMgdGhlIGd1ZXN0IHBhZGRyIAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqIG9mIHRoZSByZWFsIGRhdGEgdG8gdXNlLiAqLworICAgIHVp
bnQ4X3QgZGlyOjE7ICAgICAgICAgIC8qIDE9cmVhZCwgMD13cml0ZSAqLworICAgIHVpbnQ4X3Qg
ZGY6MTsKKyAgICB1aW50OF90IF9wYWQxOjE7CisgICAgdWludDhfdCB0eXBlOyAgICAgICAgICAg
LyogSS9PIHR5cGUgKi8KK307Cit0eXBlZGVmIHN0cnVjdCBpb3JlcSBpb3JlcV90OworCitzdHJ1
Y3Qgc2hhcmVkX2lvcGFnZSB7CisgICAgc3RydWN0IGlvcmVxIHZjcHVfaW9yZXFbMV07Cit9Owor
dHlwZWRlZiBzdHJ1Y3Qgc2hhcmVkX2lvcGFnZSBzaGFyZWRfaW9wYWdlX3Q7CisKK3N0cnVjdCBi
dWZfaW9yZXEgeworICAgIHVpbnQ4X3QgIHR5cGU7ICAgLyogSS9PIHR5cGUgICAgICAgICAgICAg
ICAgICAgICovCisgICAgdWludDhfdCAgcGFkOjE7CisgICAgdWludDhfdCAgZGlyOjE7ICAvKiAx
PXJlYWQsIDA9d3JpdGUgICAgICAgICAgICAgKi8KKyAgICB1aW50OF90ICBzaXplOjI7IC8qIDA9
PjEsIDE9PjIsIDI9PjQsIDM9PjguIElmIDgsIHVzZSB0d28gYnVmX2lvcmVxcyAqLworICAgIHVp
bnQzMl90IGFkZHI6MjA7LyogcGh5c2ljYWwgYWRkcmVzcyAgICAgICAgICAgICovCisgICAgdWlu
dDMyX3QgZGF0YTsgICAvKiBkYXRhICAgICAgICAgICAgICAgICAgICAgICAgKi8KK307Cit0eXBl
ZGVmIHN0cnVjdCBidWZfaW9yZXEgYnVmX2lvcmVxX3Q7CisKKyNkZWZpbmUgSU9SRVFfQlVGRkVS
X1NMT1RfTlVNICAgICA1MTEgLyogOCBieXRlcyBlYWNoLCBwbHVzIDIgNC1ieXRlIGluZGV4ZXMg
Ki8KK3N0cnVjdCBidWZmZXJlZF9pb3BhZ2UgeworI2lmZGVmIF9fWEVOX18KKyAgICB1bmlvbiBi
dWZpb3JlcV9wb2ludGVycyB7CisgICAgICAgIHN0cnVjdCB7CisjZW5kaWYKKyAgICAgICAgICAg
IHVpbnQzMl90IHJlYWRfcG9pbnRlcjsKKyAgICAgICAgICAgIHVpbnQzMl90IHdyaXRlX3BvaW50
ZXI7CisjaWZkZWYgX19YRU5fXworICAgICAgICB9OworICAgICAgICB1aW50NjRfdCBmdWxsOwor
ICAgIH0gcHRyczsKKyNlbmRpZgorICAgIGJ1Zl9pb3JlcV90IGJ1Zl9pb3JlcVtJT1JFUV9CVUZG
RVJfU0xPVF9OVU1dOworfTsgLyogTkIuIFNpemUgb2YgdGhpcyBzdHJ1Y3R1cmUgbXVzdCBiZSBu
byBncmVhdGVyIHRoYW4gb25lIHBhZ2UuICovCit0eXBlZGVmIHN0cnVjdCBidWZmZXJlZF9pb3Bh
Z2UgYnVmZmVyZWRfaW9wYWdlX3Q7CisKKy8qCisgKiBBQ1BJIENvbnRyb2wvRXZlbnQgcmVnaXN0
ZXIgbG9jYXRpb25zLiBMb2NhdGlvbiBpcyBjb250cm9sbGVkIGJ5IGEgCisgKiB2ZXJzaW9uIG51
bWJlciBpbiBIVk1fUEFSQU1fQUNQSV9JT1BPUlRTX0xPQ0FUSU9OLgorICovCisKKy8qCisgKiBW
ZXJzaW9uIDAgKGRlZmF1bHQpOiBUcmFkaXRpb25hbCAob2Jzb2xldGUpIFhlbiBsb2NhdGlvbnMu
CisgKgorICogVGhlc2UgYXJlIG5vdyBvbmx5IHVzZWQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBW
TXMgbWlncmF0ZWQKKyAqIGZyb20gb2xkZXIgWGVuIHZlcnNpb25zLgorICovCisjZGVmaW5lIEFD
UElfUE0xQV9FVlRfQkxLX0FERFJFU1NfVjAgMHgxZjQwCisjZGVmaW5lIEFDUElfUE0xQV9DTlRf
QkxLX0FERFJFU1NfVjAgKEFDUElfUE0xQV9FVlRfQkxLX0FERFJFU1NfVjAgKyAweDA0KQorI2Rl
ZmluZSBBQ1BJX1BNX1RNUl9CTEtfQUREUkVTU19WMCAgIChBQ1BJX1BNMUFfRVZUX0JMS19BRERS
RVNTX1YwICsgMHgwOCkKKyNkZWZpbmUgQUNQSV9HUEUwX0JMS19BRERSRVNTX1YwICAgICAoQUNQ
SV9QTV9UTVJfQkxLX0FERFJFU1NfVjAgKyAweDIwKQorI2RlZmluZSBBQ1BJX0dQRTBfQkxLX0xF
Tl9WMCAgICAgICAgIDB4MDgKKworLyogVmVyc2lvbiAxOiBMb2NhdGlvbnMgcHJlZmVycmVkIGJ5
IG1vZGVybiBRZW11IChpbmNsdWRpbmcgUWVtdS10cmFkKS4gKi8KKyNkZWZpbmUgQUNQSV9QTTFB
X0VWVF9CTEtfQUREUkVTU19WMSAweGIwMDAKKyNkZWZpbmUgQUNQSV9QTTFBX0NOVF9CTEtfQURE
UkVTU19WMSAoQUNQSV9QTTFBX0VWVF9CTEtfQUREUkVTU19WMSArIDB4MDQpCisjZGVmaW5lIEFD
UElfUE1fVE1SX0JMS19BRERSRVNTX1YxICAgKEFDUElfUE0xQV9FVlRfQkxLX0FERFJFU1NfVjEg
KyAweDA4KQorI2RlZmluZSBBQ1BJX0dQRTBfQkxLX0FERFJFU1NfVjEgICAgIDB4YWZlMAorI2Rl
ZmluZSBBQ1BJX0dQRTBfQkxLX0xFTl9WMSAgICAgICAgIDB4MDQKKworLyogQ29tcGF0aWJpbGl0
eSBkZWZpbml0aW9ucyBmb3IgdGhlIGRlZmF1bHQgbG9jYXRpb24gKHZlcnNpb24gMCkuICovCisj
ZGVmaW5lIEFDUElfUE0xQV9FVlRfQkxLX0FERFJFU1MgICAgQUNQSV9QTTFBX0VWVF9CTEtfQURE
UkVTU19WMAorI2RlZmluZSBBQ1BJX1BNMUFfQ05UX0JMS19BRERSRVNTICAgIEFDUElfUE0xQV9D
TlRfQkxLX0FERFJFU1NfVjAKKyNkZWZpbmUgQUNQSV9QTV9UTVJfQkxLX0FERFJFU1MgICAgICBB
Q1BJX1BNX1RNUl9CTEtfQUREUkVTU19WMAorI2RlZmluZSBBQ1BJX0dQRTBfQkxLX0FERFJFU1Mg
ICAgICAgIEFDUElfR1BFMF9CTEtfQUREUkVTU19WMAorI2RlZmluZSBBQ1BJX0dQRTBfQkxLX0xF
TiAgICAgICAgICAgIEFDUElfR1BFMF9CTEtfTEVOX1YwCisKKworI2VuZGlmIC8qIF9JT1JFUV9I
XyAqLworCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0
eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5k
ZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVu
L3hzbS9odm0vcGFyYW1zLmggYi9pbmNsdWRlL3hlbi94c20vaHZtL3BhcmFtcy5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlYzJlN2MKLS0tIC9kZXYvbnVsbAorKysgYi9p
bmNsdWRlL3hlbi94c20vaHZtL3BhcmFtcy5oCkBAIC0wLDAgKzEsMjg0IEBACisvKgorICogUGVy
bWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24g
b2J0YWluaW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1
bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0
d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRo
ZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJp
YnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUs
IGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlz
aGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisg
KiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBz
aGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9u
cyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJ
UyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQs
IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJ
TkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBI
T0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lT
RSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09G
VFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgor
ICoKKyAqIENvcHlyaWdodCAoYykgMjAwNywgS2VpciBGcmFzZXIKKyAqLworCisjaWZuZGVmIF9f
WEVOX1BVQkxJQ19IVk1fUEFSQU1TX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfSFZNX1BBUkFN
U19IX18KKworI2luY2x1ZGUgImh2bV9vcC5oIgorCisvKgorICogUGFyYW1ldGVyIHNwYWNlIGZv
ciBIVk1PUF97c2V0LGdldH1fcGFyYW0uCisgKi8KKworI2RlZmluZSBIVk1fUEFSQU1fQ0FMTEJB
Q0tfSVJRIDAKKyNkZWZpbmUgSFZNX1BBUkFNX0NBTExCQUNLX0lSUV9UWVBFX01BU0sgeGVuX21r
X3VsbG9uZygweEZGMDAwMDAwMDAwMDAwMDApCisvKgorICogSG93IHNob3VsZCBDUFUwIGV2ZW50
LWNoYW5uZWwgbm90aWZpY2F0aW9ucyBiZSBkZWxpdmVyZWQ/CisgKgorICogSWYgdmFsID09IDAg
dGhlbiBDUFUwIGV2ZW50LWNoYW5uZWwgbm90aWZpY2F0aW9ucyBhcmUgbm90IGRlbGl2ZXJlZC4K
KyAqIElmIHZhbCAhPSAwLCB2YWxbNjM6NTZdIGVuY29kZXMgdGhlIHR5cGUsIGFzIGZvbGxvd3M6
CisgKi8KKworI2RlZmluZSBIVk1fUEFSQU1fQ0FMTEJBQ0tfVFlQRV9HU0kgICAgICAwCisvKgor
ICogdmFsWzU1OjBdIGlzIGEgZGVsaXZlcnkgR1NJLiAgR1NJIDAgY2Fubm90IGJlIHVzZWQsIGFz
IGl0IGFsaWFzZXMgdmFsID09IDAsCisgKiBhbmQgZGlzYWJsZXMgYWxsIG5vdGlmaWNhdGlvbnMu
CisgKi8KKworI2RlZmluZSBIVk1fUEFSQU1fQ0FMTEJBQ0tfVFlQRV9QQ0lfSU5UWCAxCisvKgor
ICogdmFsWzU1OjBdIGlzIGEgZGVsaXZlcnkgUENJIElOVHggbGluZToKKyAqIERvbWFpbiA9IHZh
bFs0NzozMl0sIEJ1cyA9IHZhbFszMToxNl0gRGV2Rm4gPSB2YWxbMTU6OF0sIEludFggPSB2YWxb
MTowXQorICovCisKKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18p
CisjZGVmaW5lIEhWTV9QQVJBTV9DQUxMQkFDS19UWVBFX1ZFQ1RPUiAgIDIKKy8qCisgKiB2YWxb
NzowXSBpcyBhIHZlY3RvciBudW1iZXIuICBDaGVjayBmb3IgWEVORkVBVF9odm1fY2FsbGJhY2tf
dmVjdG9yIHRvIGtub3cKKyAqIGlmIHRoaXMgZGVsaXZlcnkgbWV0aG9kIGlzIGF2YWlsYWJsZS4K
KyAqLworI2VsaWYgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQorI2Rl
ZmluZSBIVk1fUEFSQU1fQ0FMTEJBQ0tfVFlQRV9QUEkgICAgICAyCisvKgorICogdmFsWzU1OjE2
XSBuZWVkcyB0byBiZSB6ZXJvLgorICogdmFsWzE1OjhdIGlzIGludGVycnVwdCBmbGFnIG9mIHRo
ZSBQUEkgdXNlZCBieSBldmVudC1jaGFubmVsOgorICogIGJpdCA4OiB0aGUgUFBJIGlzIGVkZ2Uo
MSkgb3IgbGV2ZWwoMCkgdHJpZ2dlcmVkCisgKiAgYml0IDk6IHRoZSBQUEkgaXMgYWN0aXZlIGxv
dygxKSBvciBoaWdoKDApCisgKiB2YWxbNzowXSBpcyBhIFBQSSBudW1iZXIgdXNlZCBieSBldmVu
dC1jaGFubmVsLgorICogVGhpcyBpcyBvbmx5IHVzZWQgYnkgQVJNL0FSTTY0IGFuZCBtYXNraW5n
L2VvaSB0aGUgaW50ZXJydXB0IGFzc29jaWF0ZWQgdG8KKyAqIHRoZSBub3RpZmljYXRpb24gaXMg
aGFuZGxlZCBieSB0aGUgaW50ZXJydXB0IGNvbnRyb2xsZXIuCisgKi8KKyNkZWZpbmUgSFZNX1BB
UkFNX0NBTExCQUNLX1RZUEVfUFBJX0ZMQUdfTUFTSyAgICAgIDB4RkYwMAorI2RlZmluZSBIVk1f
UEFSQU1fQ0FMTEJBQ0tfVFlQRV9QUElfRkxBR19MT1dfTEVWRUwgMgorI2VuZGlmCisKKy8qCisg
KiBUaGVzZSBhcmUgbm90IHVzZWQgYnkgWGVuLiBUaGV5IGFyZSBoZXJlIGZvciBjb252ZW5pZW5j
ZSBvZiBIVk0tZ3Vlc3QKKyAqIHhlbmJ1cyBpbXBsZW1lbnRhdGlvbnMuCisgKi8KKyNkZWZpbmUg
SFZNX1BBUkFNX1NUT1JFX1BGTiAgICAxCisjZGVmaW5lIEhWTV9QQVJBTV9TVE9SRV9FVlRDSE4g
MgorCisjZGVmaW5lIEhWTV9QQVJBTV9QQUVfRU5BQkxFRCAgNAorCisjZGVmaW5lIEhWTV9QQVJB
TV9JT1JFUV9QRk4gICAgNQorCisjZGVmaW5lIEhWTV9QQVJBTV9CVUZJT1JFUV9QRk4gNgorI2Rl
ZmluZSBIVk1fUEFSQU1fQlVGSU9SRVFfRVZUQ0hOIDI2CisKKyNpZiBkZWZpbmVkKF9faTM4Nl9f
KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCisKKy8qCisgKiBWaXJpZGlhbiBlbmxpZ2h0ZW5tZW50
cworICoKKyAqIChTZWUgaHR0cDovL2Rvd25sb2FkLm1pY3Jvc29mdC5jb20vZG93bmxvYWQvQS9C
LzQvQUI0M0EzNEUtQkREMC00RkE2LUJERUYtNzlFRUYxNkU4ODBCL0h5cGVydmlzb3IlMjBUb3Al
MjBMZXZlbCUyMEZ1bmN0aW9uYWwlMjBTcGVjaWZpY2F0aW9uJTIwdjQuMC5kb2N4KQorICoKKyAq
IFRvIGV4cG9zZSB2aXJpZGlhbiBlbmxpZ2h0ZW5tZW50cyB0byB0aGUgZ3Vlc3Qgc2V0IHRoaXMg
cGFyYW1ldGVyCisgKiB0byB0aGUgZGVzaXJlZCBmZWF0dXJlIG1hc2suIFRoZSBiYXNlIGZlYXR1
cmUgc2V0IG11c3QgYmUgcHJlc2VudAorICogaW4gYW55IHZhbGlkIGZlYXR1cmUgbWFzay4KKyAq
LworI2RlZmluZSBIVk1fUEFSQU1fVklSSURJQU4gICAgIDkKKworLyogQmFzZStGcmVxIHZpcmlk
aWFuIGZlYXR1cmUgc2V0czoKKyAqCisgKiAtIEh5cGVyY2FsbCBNU1JzIChIVl9YNjRfTVNSX0dV
RVNUX09TX0lEIGFuZCBIVl9YNjRfTVNSX0hZUEVSQ0FMTCkKKyAqIC0gQVBJQyBhY2Nlc3MgTVNS
cyAoSFZfWDY0X01TUl9FT0ksIEhWX1g2NF9NU1JfSUNSIGFuZCBIVl9YNjRfTVNSX1RQUikKKyAq
IC0gVmlydHVhbCBQcm9jZXNzb3IgaW5kZXggTVNSIChIVl9YNjRfTVNSX1ZQX0lOREVYKQorICog
LSBUaW1lciBmcmVxdWVuY3kgTVNScyAoSFZfWDY0X01TUl9UU0NfRlJFUVVFTkNZIGFuZAorICog
ICBIVl9YNjRfTVNSX0FQSUNfRlJFUVVFTkNZKQorICovCisjZGVmaW5lIF9IVk1QVl9iYXNlX2Zy
ZXEgMAorI2RlZmluZSBIVk1QVl9iYXNlX2ZyZXEgICgxIDw8IF9IVk1QVl9iYXNlX2ZyZXEpCisK
Ky8qIEZlYXR1cmUgc2V0IG1vZGlmaWNhdGlvbnMgKi8KKworLyogRGlzYWJsZSB0aW1lciBmcmVx
dWVuY3kgTVNScyAoSFZfWDY0X01TUl9UU0NfRlJFUVVFTkNZIGFuZAorICogSFZfWDY0X01TUl9B
UElDX0ZSRVFVRU5DWSkuCisgKiBUaGlzIG1vZGlmaWNhdGlvbiByZXN0b3JlcyB0aGUgdmlyaWRp
YW4gZmVhdHVyZSBzZXQgdG8gdGhlCisgKiBvcmlnaW5hbCAnYmFzZScgc2V0IGV4cG9zZWQgaW4g
cmVsZWFzZXMgcHJpb3IgdG8gWGVuIDQuNC4KKyAqLworI2RlZmluZSBfSFZNUFZfbm9fZnJlcSAx
CisjZGVmaW5lIEhWTVBWX25vX2ZyZXEgICgxIDw8IF9IVk1QVl9ub19mcmVxKQorCisvKiBFbmFi
bGUgUGFydGl0aW9uIFRpbWUgUmVmZXJlbmNlIENvdW50ZXIgKEhWX1g2NF9NU1JfVElNRV9SRUZf
Q09VTlQpICovCisjZGVmaW5lIF9IVk1QVl90aW1lX3JlZl9jb3VudCAyCisjZGVmaW5lIEhWTVBW
X3RpbWVfcmVmX2NvdW50ICAoMSA8PCBfSFZNUFZfdGltZV9yZWZfY291bnQpCisKKy8qIEVuYWJs
ZSBSZWZlcmVuY2UgVFNDIFBhZ2UgKEhWX1g2NF9NU1JfUkVGRVJFTkNFX1RTQykgKi8KKyNkZWZp
bmUgX0hWTVBWX3JlZmVyZW5jZV90c2MgMworI2RlZmluZSBIVk1QVl9yZWZlcmVuY2VfdHNjICAo
MSA8PCBfSFZNUFZfcmVmZXJlbmNlX3RzYykKKworLyogVXNlIEh5cGVyY2FsbCBmb3IgcmVtb3Rl
IFRMQiBmbHVzaCAqLworI2RlZmluZSBfSFZNUFZfaGNhbGxfcmVtb3RlX3RsYl9mbHVzaCA0Cisj
ZGVmaW5lIEhWTVBWX2hjYWxsX3JlbW90ZV90bGJfZmx1c2ggKDEgPDwgX0hWTVBWX2hjYWxsX3Jl
bW90ZV90bGJfZmx1c2gpCisKKy8qIFVzZSBBUElDIGFzc2lzdCAqLworI2RlZmluZSBfSFZNUFZf
YXBpY19hc3Npc3QgNQorI2RlZmluZSBIVk1QVl9hcGljX2Fzc2lzdCAoMSA8PCBfSFZNUFZfYXBp
Y19hc3Npc3QpCisKKy8qIEVuYWJsZSBjcmFzaCBNU1JzICovCisjZGVmaW5lIF9IVk1QVl9jcmFz
aF9jdGwgNgorI2RlZmluZSBIVk1QVl9jcmFzaF9jdGwgKDEgPDwgX0hWTVBWX2NyYXNoX2N0bCkK
KworI2RlZmluZSBIVk1QVl9mZWF0dXJlX21hc2sgXAorICAgICAgICAoSFZNUFZfYmFzZV9mcmVx
IHwgXAorICAgICAgICAgSFZNUFZfbm9fZnJlcSB8IFwKKyAgICAgICAgIEhWTVBWX3RpbWVfcmVm
X2NvdW50IHwgXAorICAgICAgICAgSFZNUFZfcmVmZXJlbmNlX3RzYyB8IFwKKyAgICAgICAgIEhW
TVBWX2hjYWxsX3JlbW90ZV90bGJfZmx1c2ggfCBcCisgICAgICAgICBIVk1QVl9hcGljX2Fzc2lz
dCB8IFwKKyAgICAgICAgIEhWTVBWX2NyYXNoX2N0bCkKKworI2VuZGlmCisKKy8qCisgKiBTZXQg
bW9kZSBmb3IgdmlydHVhbCB0aW1lcnMgKGN1cnJlbnRseSB4ODYgb25seSk6CisgKiAgZGVsYXlf
Zm9yX21pc3NlZF90aWNrcyAoZGVmYXVsdCk6CisgKiAgIERvIG5vdCBhZHZhbmNlIGEgdmNwdSdz
IHRpbWUgYmV5b25kIHRoZSBjb3JyZWN0IGRlbGl2ZXJ5IHRpbWUgZm9yCisgKiAgIGludGVycnVw
dHMgdGhhdCBoYXZlIGJlZW4gbWlzc2VkIGR1ZSB0byBwcmVlbXB0aW9uLiBEZWxpdmVyIG1pc3Nl
ZAorICogICBpbnRlcnJ1cHRzIHdoZW4gdGhlIHZjcHUgaXMgcmVzY2hlZHVsZWQgYW5kIGFkdmFu
Y2UgdGhlIHZjcHUncyB2aXJ0dWFsCisgKiAgIHRpbWUgc3RlcHdpc2UgZm9yIGVhY2ggb25lLgor
ICogIG5vX2RlbGF5X2Zvcl9taXNzZWRfdGlja3M6CisgKiAgIEFzIGFib3ZlLCBtaXNzZWQgaW50
ZXJydXB0cyBhcmUgZGVsaXZlcmVkLCBidXQgZ3Vlc3QgdGltZSBhbHdheXMgdHJhY2tzCisgKiAg
IHdhbGxjbG9jayAoaS5lLiwgcmVhbCkgdGltZSB3aGlsZSBkb2luZyBzby4KKyAqICBub19taXNz
ZWRfdGlja3NfcGVuZGluZzoKKyAqICAgTm8gbWlzc2VkIGludGVycnVwdHMgYXJlIGhlbGQgcGVu
ZGluZy4gSW5zdGVhZCwgdG8gZW5zdXJlIHRpY2tzIGFyZQorICogICBkZWxpdmVyZWQgYXQgc29t
ZSBub24temVybyByYXRlLCBpZiB3ZSBkZXRlY3QgbWlzc2VkIHRpY2tzIHRoZW4gdGhlCisgKiAg
IGludGVybmFsIHRpY2sgYWxhcm0gaXMgbm90IGRpc2FibGVkIGlmIHRoZSBWQ1BVIGlzIHByZWVt
cHRlZCBkdXJpbmcgdGhlCisgKiAgIG5leHQgdGljayBwZXJpb2QuCisgKiAgb25lX21pc3NlZF90
aWNrX3BlbmRpbmc6CisgKiAgIE1pc3NlZCBpbnRlcnJ1cHRzIGFyZSBjb2xsYXBzZWQgdG9nZXRo
ZXIgYW5kIGRlbGl2ZXJlZCBhcyBvbmUgJ2xhdGUgdGljaycuCisgKiAgIEd1ZXN0IHRpbWUgYWx3
YXlzIHRyYWNrcyB3YWxsY2xvY2sgKGkuZS4sIHJlYWwpIHRpbWUuCisgKi8KKyNkZWZpbmUgSFZN
X1BBUkFNX1RJTUVSX01PREUgICAxMAorI2RlZmluZSBIVk1QVE1fZGVsYXlfZm9yX21pc3NlZF90
aWNrcyAgICAwCisjZGVmaW5lIEhWTVBUTV9ub19kZWxheV9mb3JfbWlzc2VkX3RpY2tzIDEKKyNk
ZWZpbmUgSFZNUFRNX25vX21pc3NlZF90aWNrc19wZW5kaW5nICAgMgorI2RlZmluZSBIVk1QVE1f
b25lX21pc3NlZF90aWNrX3BlbmRpbmcgICAzCisKKy8qIEJvb2xlYW46IEVuYWJsZSB2aXJ0dWFs
IEhQRVQgKGhpZ2gtcHJlY2lzaW9uIGV2ZW50IHRpbWVyKT8gKHg4Ni1vbmx5KSAqLworI2RlZmlu
ZSBIVk1fUEFSQU1fSFBFVF9FTkFCTEVEIDExCisKKy8qIElkZW50aXR5LW1hcCBwYWdlIGRpcmVj
dG9yeSB1c2VkIGJ5IEludGVsIEVQVCB3aGVuIENSMC5QRz0wLiAqLworI2RlZmluZSBIVk1fUEFS
QU1fSURFTlRfUFQgICAgIDEyCisKKy8qIERldmljZSBNb2RlbCBkb21haW4sIGRlZmF1bHRzIHRv
IDAuICovCisjZGVmaW5lIEhWTV9QQVJBTV9ETV9ET01BSU4gICAgMTMKKworLyogQUNQSSBTIHN0
YXRlOiBjdXJyZW50bHkgc3VwcG9ydCBTMCBhbmQgUzMgb24geDg2LiAqLworI2RlZmluZSBIVk1f
UEFSQU1fQUNQSV9TX1NUQVRFIDE0CisKKy8qIFRTUyB1c2VkIG9uIEludGVsIHdoZW4gQ1IwLlBF
PTAuICovCisjZGVmaW5lIEhWTV9QQVJBTV9WTTg2X1RTUyAgICAgMTUKKworLyogQm9vbGVhbjog
RW5hYmxlIGFsaWduaW5nIGFsbCBwZXJpb2RpYyB2cHRzIHRvIHJlZHVjZSBpbnRlcnJ1cHRzICov
CisjZGVmaW5lIEhWTV9QQVJBTV9WUFRfQUxJR04gICAgMTYKKworLyogQ29uc29sZSBkZWJ1ZyBz
aGFyZWQgbWVtb3J5IHJpbmcgYW5kIGV2ZW50IGNoYW5uZWwgKi8KKyNkZWZpbmUgSFZNX1BBUkFN
X0NPTlNPTEVfUEZOICAgIDE3CisjZGVmaW5lIEhWTV9QQVJBTV9DT05TT0xFX0VWVENITiAxOAor
CisvKgorICogU2VsZWN0IGxvY2F0aW9uIG9mIEFDUEkgUE0xYSBhbmQgVE1SIGNvbnRyb2wgYmxv
Y2tzLiBDdXJyZW50bHkgdHdvIGxvY2F0aW9ucworICogYXJlIHN1cHBvcnRlZCwgc3BlY2lmaWVk
IGJ5IHZlcnNpb24gMCBvciAxIGluIHRoaXMgcGFyYW1ldGVyOgorICogICAtIDA6IGRlZmF1bHQs
IHVzZSB0aGUgb2xkIGFkZHJlc3NlcworICogICAgICAgIFBNMUFfRVZUID09IDB4MWY0MDsgUE0x
QV9DTlQgPT0gMHgxZjQ0OyBQTV9UTVIgPT0gMHgxZjQ4CisgKiAgIC0gMTogdXNlIHRoZSBuZXcg
ZGVmYXVsdCBxZW11IGFkZHJlc3NlcworICogICAgICAgIFBNMUFfRVZUID09IDB4YjAwMDsgUE0x
QV9DTlQgPT0gMHhiMDA0OyBQTV9UTVIgPT0gMHhiMDA4CisgKiBZb3UgY2FuIGZpbmQgdGhlc2Ug
YWRkcmVzcyBkZWZpbml0aW9ucyBpbiA8aHZtL2lvcmVxLmg+CisgKi8KKyNkZWZpbmUgSFZNX1BB
UkFNX0FDUElfSU9QT1JUU19MT0NBVElPTiAxOQorCisvKiBEZXByZWNhdGVkICovCisjZGVmaW5l
IEhWTV9QQVJBTV9NRU1PUllfRVZFTlRfQ1IwICAgICAgICAgIDIwCisjZGVmaW5lIEhWTV9QQVJB
TV9NRU1PUllfRVZFTlRfQ1IzICAgICAgICAgIDIxCisjZGVmaW5lIEhWTV9QQVJBTV9NRU1PUllf
RVZFTlRfQ1I0ICAgICAgICAgIDIyCisjZGVmaW5lIEhWTV9QQVJBTV9NRU1PUllfRVZFTlRfSU5U
MyAgICAgICAgIDIzCisjZGVmaW5lIEhWTV9QQVJBTV9NRU1PUllfRVZFTlRfU0lOR0xFX1NURVAg
IDI1CisjZGVmaW5lIEhWTV9QQVJBTV9NRU1PUllfRVZFTlRfTVNSICAgICAgICAgIDMwCisKKy8q
IEJvb2xlYW46IEVuYWJsZSBuZXN0ZWRodm0gKGh2bSBvbmx5KSAqLworI2RlZmluZSBIVk1fUEFS
QU1fTkVTVEVESFZNICAgIDI0CisKKy8qIFBhcmFtcyBmb3IgdGhlIG1lbSBldmVudCByaW5ncyAq
LworI2RlZmluZSBIVk1fUEFSQU1fUEFHSU5HX1JJTkdfUEZOICAgMjcKKyNkZWZpbmUgSFZNX1BB
UkFNX01PTklUT1JfUklOR19QRk4gIDI4CisjZGVmaW5lIEhWTV9QQVJBTV9TSEFSSU5HX1JJTkdf
UEZOICAyOQorCisvKiBTSFVURE9XTl8qIGFjdGlvbiBpbiBjYXNlIG9mIGEgdHJpcGxlIGZhdWx0
ICovCisjZGVmaW5lIEhWTV9QQVJBTV9UUklQTEVfRkFVTFRfUkVBU09OIDMxCisKKyNkZWZpbmUg
SFZNX1BBUkFNX0lPUkVRX1NFUlZFUl9QRk4gMzIKKyNkZWZpbmUgSFZNX1BBUkFNX05SX0lPUkVR
X1NFUlZFUl9QQUdFUyAzMworCisvKiBMb2NhdGlvbiBvZiB0aGUgVk0gR2VuZXJhdGlvbiBJRCBp
biBndWVzdCBwaHlzaWNhbCBhZGRyZXNzIHNwYWNlLiAqLworI2RlZmluZSBIVk1fUEFSQU1fVk1f
R0VORVJBVElPTl9JRF9BRERSIDM0CisKKy8qCisgKiBTZXQgbW9kZSBmb3IgYWx0cDJtOgorICog
IGRpc2FibGVkOiBkb24ndCBhY3RpdmF0ZSBhbHRwMm0gKGRlZmF1bHQpCisgKiAgbWl4ZWQ6IGFs
bG93IGFjY2VzcyB0byBhbGwgYWx0cDJtIG9wcyBmb3IgYm90aCBpbi1ndWVzdCBhbmQgZXh0ZXJu
YWwgdG9vbHMKKyAqICBleHRlcm5hbDogYWxsb3cgYWNjZXNzIHRvIGV4dGVybmFsIHByaXZpbGVn
ZWQgdG9vbHMgb25seQorICogIGxpbWl0ZWQ6IGd1ZXN0IG9ubHkgaGFzIGxpbWl0ZWQgYWNjZXNz
IChpZS4gY29udHJvbCBWTUZVTkMgYW5kICNWRSkKKyAqLworI2RlZmluZSBIVk1fUEFSQU1fQUxU
UDJNICAgICAgIDM1CisjZGVmaW5lIFhFTl9BTFRQMk1fZGlzYWJsZWQgICAgICAwCisjZGVmaW5l
IFhFTl9BTFRQMk1fbWl4ZWQgICAgICAgICAxCisjZGVmaW5lIFhFTl9BTFRQMk1fZXh0ZXJuYWwg
ICAgICAyCisjZGVmaW5lIFhFTl9BTFRQMk1fbGltaXRlZCAgICAgICAzCisKKy8qCisgKiBTaXpl
IG9mIHRoZSB4ODcgRlBVIEZJUC9GRFAgcmVnaXN0ZXJzIHRoYXQgdGhlIGh5cGVydmlzb3IgbmVl
ZHMgdG8KKyAqIHNhdmUvcmVzdG9yZS4gIFRoaXMgaXMgYSB3b3JrYXJvdW5kIGZvciBhIGhhcmR3
YXJlIGxpbWl0YXRpb24gdGhhdAorICogZG9lcyBub3QgYWxsb3cgdGhlIGZ1bGwgRklQL0ZEUCBh
bmQgRkNTL0ZEUyB0byBiZSByZXN0b3JlZC4KKyAqCisgKiBWYWxpZCB2YWx1ZXMgYXJlOgorICoK
KyAqIDg6IHNhdmUvcmVzdG9yZSA2NC1iaXQgRklQL0ZEUCBhbmQgY2xlYXIgRkNTL0ZEUyAoZGVm
YXVsdCBpZiBDUFUKKyAqICAgIGhhcyBGUENTRFMgZmVhdHVyZSkuCisgKgorICogNDogc2F2ZS9y
ZXN0b3JlIDMyLWJpdCBGSVAvRkRQLCBGQ1MvRkRTLCBhbmQgY2xlYXIgdXBwZXIgMzItYml0cyBv
ZgorICogICAgRklQL0ZEUC4KKyAqCisgKiAwOiBhbGxvdyBoeXBlcnZpc29yIHRvIGNob29zZSBi
YXNlZCBvbiB0aGUgdmFsdWUgb2YgRklQL0ZEUAorICogICAgKGRlZmF1bHQgaWYgQ1BVIGRvZXMg
bm90IGhhdmUgRlBDU0RTKS4KKyAqCisgKiBJZiBGUENTRFMgKGJpdCAxMyBpbiBDUFVJRCBsZWFm
IDB4Nywgc3VibGVhZiAweDApIGlzIHNldCwgdGhlIENQVQorICogbmV2ZXIgc2F2ZXMgRkNTL0ZE
UyBhbmQgdGhpcyBwYXJhbWV0ZXIgc2hvdWxkIGJlIGxlZnQgYXQgdGhlCisgKiBkZWZhdWx0IG9m
IDguCisgKi8KKyNkZWZpbmUgSFZNX1BBUkFNX1g4N19GSVBfV0lEVEggMzYKKworLyoKKyAqIFRT
UyAoYW5kIGl0cyBzaXplKSB1c2VkIG9uIEludGVsIHdoZW4gQ1IwLlBFPTAuIFRoZSBhZGRyZXNz
IG9jY3VwaWVzCisgKiB0aGUgbG93IDMyIGJpdHMsIHdoaWxlIHRoZSBzaXplIGlzIGluIHRoZSBo
aWdoIDMyIG9uZXMuCisgKi8KKyNkZWZpbmUgSFZNX1BBUkFNX1ZNODZfVFNTX1NJWkVEIDM3CisK
Ky8qIEVuYWJsZSBNQ0EgY2FwYWJpbGl0aWVzLiAqLworI2RlZmluZSBIVk1fUEFSQU1fTUNBX0NB
UCAzOAorI2RlZmluZSBYRU5fSFZNX01DQV9DQVBfTE1DRSAgICh4ZW5fbWtfdWxsb25nKDEpIDw8
IDApCisjZGVmaW5lIFhFTl9IVk1fTUNBX0NBUF9NQVNLICAgWEVOX0hWTV9NQ0FfQ0FQX0xNQ0UK
KworI2RlZmluZSBIVk1fTlJfUEFSQU1TIDM5CisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfSFZN
X1BBUkFNU19IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3hzbS9odm0vcHZkcml2ZXJz
LmggYi9pbmNsdWRlL3hlbi94c20vaHZtL3B2ZHJpdmVycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjAxZWEyYWUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi94
c20vaHZtL3B2ZHJpdmVycy5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBwdmRyaXZlcnMuaDog
UmVnaXN0ZXIgb2YgUFYgZHJpdmVycyBwcm9kdWN0IG51bWJlcnMuCisgKiBDb3B5cmlnaHQgKGMp
IDIwMTIsIENpdHJpeCBTeXN0ZW1zIEluYy4KKyAqIAorICogUGVybWlzc2lvbiBpcyBoZXJlYnkg
Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQor
ICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0
aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3Ry
aWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVz
ZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwg
YW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy
c29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq
ZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJp
Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBp
bgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUu
CisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFO
VFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U
IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBG
T1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
QU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJP
TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBP
UiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpZm5kZWYgX1hF
Tl9QVUJMSUNfUFZEUklWRVJTX0hfCisjZGVmaW5lIF9YRU5fUFVCTElDX1BWRFJJVkVSU19IXwor
CisvKgorICogVGhpcyBpcyB0aGUgbWFzdGVyIHJlZ2lzdHJ5IG9mIHByb2R1Y3QgbnVtYmVycyBm
b3IKKyAqIFBWIGRyaXZlcnMuIAorICogSWYgeW91IG5lZWQgYSBuZXcgcHJvZHVjdCBudW1iZXIg
YWxsb2NhdGluZywgcGxlYXNlCisgKiBwb3N0IHRvIHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0
Lm9yZy4gIFlvdSBzaG91bGQgTk9UIHVzZQorICogYSBwcm9kdWN0IG51bWJlciB3aXRob3V0IGFs
bG9jYXRpbmcgb25lLgorICogSWYgeW91IG1haW50YWluIGEgc2VwYXJhdGUgdmVyc2lvbmluZyBh
bmQgZGlzdHJpYnV0aW9uIHBhdGgKKyAqIGZvciBQViBkcml2ZXJzIHlvdSBzaG91bGQgaGF2ZSBh
IHNlcGFyYXRlIHByb2R1Y3QgbnVtYmVyIHNvCisgKiB0aGF0IHlvdXIgZHJpdmVycyBjYW4gYmUg
c2VwYXJhdGVkIGZyb20gb3RoZXJzLgorICoKKyAqIER1cmluZyBkZXZlbG9wbWVudCwgeW91IG1h
eSB1c2UgdGhlIHByb2R1Y3QgSUQgdG8KKyAqIGluZGljYXRlIGEgZHJpdmVyIHdoaWNoIGlzIHll
dCB0byBiZSByZWxlYXNlZC4KKyAqLworCisjZGVmaW5lIFBWRFJJVkVSU19QUk9EVUNUX0xJU1Qo
RUFDSCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBFQUNIKCJ4ZW5z
b3VyY2Utd2luZG93cyIsICAgICAgIDB4MDAwMSkgLyogQ2l0cml4ICovICAgICAgIFwKKyAgICAg
ICAgRUFDSCgiZ3BscHYtd2luZG93cyIsICAgICAgICAgICAweDAwMDIpIC8qIEphbWVzIEhhcnBl
ciAqLyBcCisgICAgICAgIEVBQ0goImxpbnV4IiwgICAgICAgICAgICAgICAgICAgMHgwMDAzKSAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICBFQUNIKCJ4ZW5zZXJ2ZXItd2luZG93cy12Ny4w
KyIsIDB4MDAwNCkgLyogQ2l0cml4ICovICAgICAgIFwKKyAgICAgICAgRUFDSCgieGVuc2VydmVy
LXdpbmRvd3MtdjcuMisiLCAweDAwMDUpIC8qIENpdHJpeCAqLyAgICAgICBcCisgICAgICAgIEVB
Q0goImV4cGVyaW1lbnRhbCIsICAgICAgICAgICAgMHhmZmZmKQorCisjZW5kaWYgLyogX1hFTl9Q
VUJMSUNfUFZEUklWRVJTX0hfICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi94c20vaHZtL3Nh
dmUuaCBiL2luY2x1ZGUveGVuL3hzbS9odm0vc2F2ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjBiZDI0MGQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi94c20v
aHZtL3NhdmUuaApAQCAtMCwwICsxLDExMyBAQAorLyogCisgKiBodm0vc2F2ZS5oCisgKgorICog
U3RydWN0dXJlIGRlZmluaXRpb25zIGZvciBIVk0gc3RhdGUgdGhhdCBpcyBoZWxkIGJ5IFhlbiBh
bmQgbXVzdAorICogYmUgc2F2ZWQgYWxvbmcgd2l0aCB0aGUgZG9tYWluJ3MgbWVtb3J5IGFuZCBk
ZXZpY2UtbW9kZWwgc3RhdGUuCisgKiAKKyAqIENvcHlyaWdodCAoYykgMjAwNyBYZW5Tb3VyY2Ug
THRkLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl
LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5k
IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICog
ZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhv
dXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us
IHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMg
b2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdh
cmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVy
bWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vi
c3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNT
IE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9S
UyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBP
UiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwg
VE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNU
SU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElO
IFRIRSBTT0ZUV0FSRS4KKyAqLworCisjaWZuZGVmIF9fWEVOX1BVQkxJQ19IVk1fU0FWRV9IX18K
KyNkZWZpbmUgX19YRU5fUFVCTElDX0hWTV9TQVZFX0hfXworCisvKgorICogU3RydWN0dXJlcyBp
biB0aGlzIGhlYWRlciAqbXVzdCogaGF2ZSB0aGUgc2FtZSBsYXlvdXQgaW4gMzJiaXQgCisgKiBh
bmQgNjRiaXQgZW52aXJvbm1lbnRzOiB0aGlzIG1lYW5zIHRoYXQgYWxsIGZpZWxkcyBtdXN0IGJl
IGV4cGxpY2l0bHkgCisgKiBzaXplZCB0eXBlcyBhbmQgYWxpZ25lZCB0byB0aGVpciBzaXplcywg
YW5kIHRoZSBzdHJ1Y3RzIG11c3QgYmUgCisgKiBhIG11bHRpcGxlIG9mIGVpZ2h0IGJ5dGVzIGxv
bmcuCisgKgorICogT25seSB0aGUgc3RhdGUgbmVjZXNzYXJ5IGZvciBzYXZpbmcgYW5kIHJlc3Rv
cmluZyAoaS5lLiBmaWVsZHMgCisgKiB0aGF0IGFyZSBhbmFsb2dvdXMgdG8gYWN0dWFsIGhhcmR3
YXJlIHN0YXRlKSBzaG91bGQgZ28gaW4gdGhpcyBmaWxlLiAKKyAqIEludGVybmFsIG1lY2hhbmlz
bXMgc2hvdWxkIGJlIGtlcHQgaW4gWGVuLXByaXZhdGUgaGVhZGVycy4KKyAqLworCisjaWYgIWRl
ZmluZWQoX19HTlVDX18pIHx8IGRlZmluZWQoX19TVFJJQ1RfQU5TSV9fKQorI2Vycm9yICJBbm9u
eW1vdXMgc3RydWN0cy91bmlvbnMgYXJlIGEgR05VIGV4dGVuc2lvbi4iCisjZW5kaWYKKworLyog
CisgKiBFYWNoIGVudHJ5IGlzIHByZWNlZGVkIGJ5IGEgZGVzY3JpcHRvciBnaXZpbmcgaXRzIHR5
cGUgYW5kIGxlbmd0aAorICovCitzdHJ1Y3QgaHZtX3NhdmVfZGVzY3JpcHRvciB7CisgICAgdWlu
dDE2X3QgdHlwZWNvZGU7ICAgICAgICAgIC8qIFVzZWQgdG8gZGVtdXggdGhlIHZhcmlvdXMgdHlw
ZXMgYmVsb3cgKi8KKyAgICB1aW50MTZfdCBpbnN0YW5jZTsgICAgICAgICAgLyogRnVydGhlciBk
ZW11eCB3aXRoaW4gYSB0eXBlICovCisgICAgdWludDMyX3QgbGVuZ3RoOyAgICAgICAgICAgIC8q
IEluIGJ5dGVzLCAqbm90KiBpbmNsdWRpbmcgdGhpcyBkZXNjcmlwdG9yICovCit9OworCisKKy8q
IAorICogRWFjaCBlbnRyeSBoYXMgYSBkYXRhdHlwZSBhc3NvY2lhdGVkIHdpdGggaXQ6IGZvciBl
eGFtcGxlLCB0aGUgQ1BVIHN0YXRlIAorICogaXMgc2F2ZWQgYXMgYSBIVk1fU0FWRV9UWVBFKENQ
VSksIHdoaWNoIGhhcyBIVk1fU0FWRV9MRU5HVEgoQ1BVKSwgCisgKiBhbmQgaXMgaWRlbnRpZmll
ZCBieSBhIGRlc2NyaXB0b3Igd2l0aCB0eXBlY29kZSBIVk1fU0FWRV9DT0RFKENQVSkuCisgKiBE
RUNMQVJFX0hWTV9TQVZFX1RZUEUgYmluZHMgdGhlc2UgdGhpbmdzIHRvZ2V0aGVyIHdpdGggc29t
ZSB0eXBlLXN5c3RlbQorICogdWdsaW5lc3MuCisgKi8KKworI2lmZGVmIF9fWEVOX18KKyMgZGVm
aW5lIERFQ0xBUkVfSFZNX1NBVkVfVFlQRV9DT01QQVQoX3gsIF9jb2RlLCBfdHlwZSwgX2N0eXBl
LCBfZml4KSAgICAgXAorICAgIHN0YXRpYyBpbmxpbmUgaW50IF9fSFZNX1NBVkVfRklYX0NPTVBB
VF8jI194KHZvaWQgKmgsIHVpbnQzMl90IHNpemUpICBcCisgICAgICAgIHsgcmV0dXJuIF9maXgo
aCwgc2l6ZSk7IH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICBzdHJ1Y3QgX19IVk1fU0FWRV9UWVBFXyMjX3ggeyBfdHlwZSB0OyBjaGFyIGNbX2NvZGVdOyBj
aGFyIGNwdFsyXTt9OyAgXAorICAgIHN0cnVjdCBfX0hWTV9TQVZFX1RZUEVfQ09NUEFUXyMjX3gg
eyBfY3R5cGUgdDsgfSAgICAgICAgICAgICAgICAgICAKKworIyBpbmNsdWRlIDx4ZW4vbGliLmg+
IC8qIEJVRygpICovCisjIGRlZmluZSBERUNMQVJFX0hWTV9TQVZFX1RZUEUoX3gsIF9jb2RlLCBf
dHlwZSkgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHN0YXRpYyBpbmxpbmUgaW50IF9f
SFZNX1NBVkVfRklYX0NPTVBBVF8jI194KHZvaWQgKmgsIHVpbnQzMl90IHNpemUpIFwKKyAgICAg
ICAgeyBCVUcoKTsgcmV0dXJuIC0xOyB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgICAgc3RydWN0IF9fSFZNX1NBVkVfVFlQRV8jI194IHsgX3R5cGUgdDsg
Y2hhciBjW19jb2RlXTsgY2hhciBjcHRbMV07fTsgXAorICAgIHN0cnVjdCBfX0hWTV9TQVZFX1RZ
UEVfQ09NUEFUXyMjX3ggeyBfdHlwZSB0OyB9ICAgICAgICAgICAgICAgICAgIAorI2Vsc2UKKyMg
ZGVmaW5lIERFQ0xBUkVfSFZNX1NBVkVfVFlQRV9DT01QQVQoX3gsIF9jb2RlLCBfdHlwZSwgX2N0
eXBlLCBfZml4KSAgICAgXAorICAgIHN0cnVjdCBfX0hWTV9TQVZFX1RZUEVfIyNfeCB7IF90eXBl
IHQ7IGNoYXIgY1tfY29kZV07IGNoYXIgY3B0WzJdO30gCisKKyMgZGVmaW5lIERFQ0xBUkVfSFZN
X1NBVkVfVFlQRShfeCwgX2NvZGUsIF90eXBlKSAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgc3RydWN0IF9fSFZNX1NBVkVfVFlQRV8jI194IHsgX3R5cGUgdDsgY2hhciBjW19jb2RlXTsg
Y2hhciBjcHRbMV07fSAKKyNlbmRpZgorCisjZGVmaW5lIEhWTV9TQVZFX1RZUEUoX3gpIHR5cGVv
ZiAoKChzdHJ1Y3QgX19IVk1fU0FWRV9UWVBFXyMjX3ggKikoMCkpLT50KQorI2RlZmluZSBIVk1f
U0FWRV9MRU5HVEgoX3gpIChzaXplb2YgKEhWTV9TQVZFX1RZUEUoX3gpKSkKKyNkZWZpbmUgSFZN
X1NBVkVfQ09ERShfeCkgKHNpemVvZiAoKChzdHJ1Y3QgX19IVk1fU0FWRV9UWVBFXyMjX3ggKiko
MCkpLT5jKSkKKworI2lmZGVmIF9fWEVOX18KKyMgZGVmaW5lIEhWTV9TQVZFX1RZUEVfQ09NUEFU
KF94KSB0eXBlb2YgKCgoc3RydWN0IF9fSFZNX1NBVkVfVFlQRV9DT01QQVRfIyNfeCAqKSgwKSkt
PnQpCisjIGRlZmluZSBIVk1fU0FWRV9MRU5HVEhfQ09NUEFUKF94KSAoc2l6ZW9mIChIVk1fU0FW
RV9UWVBFX0NPTVBBVChfeCkpKQorCisjIGRlZmluZSBIVk1fU0FWRV9IQVNfQ09NUEFUKF94KSAo
c2l6ZW9mICgoKHN0cnVjdCBfX0hWTV9TQVZFX1RZUEVfIyNfeCAqKSgwKSktPmNwdCktMSkKKyMg
ZGVmaW5lIEhWTV9TQVZFX0ZJWF9DT01QQVQoX3gsIF9kc3QsIF9zaXplKSBfX0hWTV9TQVZFX0ZJ
WF9DT01QQVRfIyNfeChfZHN0LCBfc2l6ZSkKKyNlbmRpZgorCisvKiAKKyAqIFRoZSBzZXJpZXMg
b2Ygc2F2ZSByZWNvcmRzIGlzIHRlbWluYXRlZCBieSBhIHplcm8tdHlwZSwgemVyby1sZW5ndGgg
CisgKiBkZXNjcmlwdG9yLgorICovCisKK3N0cnVjdCBodm1fc2F2ZV9lbmQge307CitERUNMQVJF
X0hWTV9TQVZFX1RZUEUoRU5ELCAwLCBzdHJ1Y3QgaHZtX3NhdmVfZW5kKTsKKworI2lmIGRlZmlu
ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKKyNpbmNsdWRlICIuLi9hcmNoLXg4
Ni9odm0vc2F2ZS5oIgorI2VsaWYgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2
NF9fKQorI2luY2x1ZGUgIi4uL2FyY2gtYXJtL2h2bS9zYXZlLmgiCisjZWxzZQorI2Vycm9yICJ1
bnN1cHBvcnRlZCBhcmNoaXRlY3R1cmUiCisjZW5kaWYKKworI2VuZGlmIC8qIF9fWEVOX1BVQkxJ
Q19IVk1fU0FWRV9IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3hzbS9pby85cGZzLmgg
Yi9pbmNsdWRlL3hlbi94c20vaW8vOXBmcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjRiZmQ1ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi94c20vaW8vOXBm
cy5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiA5cGZzLmggLS0gWGVuIDlQRlMgdHJhbnNwb3J0
CisgKgorICogUmVmZXIgdG8gZG9jcy9taXNjLzlwZnMubWFya2Rvd24gZm9yIHRoZSBzcGVjaWZp
Y2F0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFy
Z2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBh
bmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisg
KiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0
aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn
ZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGll
cyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0
d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw
ZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBz
dWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJF
IElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJF
U1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRI
T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VT
IE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU
LCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F
Q1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1Mg
SU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBTdGVmYW5vIFN0YWJl
bGxpbmkgPHN0ZWZhbm9AYXBvcmV0by5jb20+CisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNf
SU9fOVBGU19IX18KKyNkZWZpbmUgX19YRU5fUFVCTElDX0lPXzlQRlNfSF9fCisKKyNpbmNsdWRl
ICIuLi9ncmFudF90YWJsZS5oIgorI2luY2x1ZGUgInJpbmcuaCIKKworLyoKKyAqIFNlZSBkb2Nz
L21pc2MvOXBmcy5tYXJrZG93biBpbiB4ZW4uZ2l0IGZvciB0aGUgZnVsbCBzcGVjaWZpY2F0aW9u
OgorICogaHR0cHM6Ly94ZW5iaXRzLnhlbi5vcmcvZG9jcy91bnN0YWJsZS9taXNjLzlwZnMuaHRt
bAorICovCitERUZJTkVfWEVOX0ZMRVhfUklOR19BTkRfSU5URih4ZW5fOXBmcyk7CisKKyNlbmRp
ZgorCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxl
OiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50
LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3hz
bS9pby9ibGtpZi5oIGIvaW5jbHVkZS94ZW4veHNtL2lvL2Jsa2lmLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMTVhNzFlMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUv
eGVuL3hzbS9pby9ibGtpZi5oCkBAIC0wLDAgKzEsNzAyIEBACisvKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCisgKiBibGtpZi5oCisgKgorICogVW5pZmllZCBibG9jay1kZXZpY2UgSS9PIGludGVyZmFj
ZSBmb3IgWGVuIGd1ZXN0IE9TZXMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl
ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2Yg
dGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNv
ZnR3YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9u
LCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29w
eSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29y
CisgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0
byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5v
dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICog
YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgor
ICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg
QU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU
RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5Z
IENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNU
SU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VU
IE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhF
UgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAw
My0yMDA0LCBLZWlyIEZyYXNlcgorICogQ29weXJpZ2h0IChjKSAyMDEyLCBTcGVjdHJhIExvZ2lj
IENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfSU9fQkxLSUZfSF9fCisj
ZGVmaW5lIF9fWEVOX1BVQkxJQ19JT19CTEtJRl9IX18KKworI2luY2x1ZGUgInJpbmcuaCIKKyNp
bmNsdWRlICIuLi9ncmFudF90YWJsZS5oIgorCisvKgorICogRnJvbnQtPmJhY2sgbm90aWZpY2F0
aW9uczogV2hlbiBlbnF1ZXVpbmcgYSBuZXcgcmVxdWVzdCwgc2VuZGluZyBhCisgKiBub3RpZmlj
YXRpb24gY2FuIGJlIG1hZGUgY29uZGl0aW9uYWwgb24gcmVxX2V2ZW50IChpLmUuLCB0aGUgZ2Vu
ZXJpYworICogaG9sZC1vZmYgbWVjaGFuaXNtIHByb3ZpZGVkIGJ5IHRoZSByaW5nIG1hY3Jvcyku
IEJhY2tlbmRzIG11c3Qgc2V0CisgKiByZXFfZXZlbnQgYXBwcm9wcmlhdGVseSAoZS5nLiwgdXNp
bmcgUklOR19GSU5BTF9DSEVDS19GT1JfUkVRVUVTVFMoKSkuCisgKgorICogQmFjay0+ZnJvbnQg
bm90aWZpY2F0aW9uczogV2hlbiBlbnF1ZXVpbmcgYSBuZXcgcmVzcG9uc2UsIHNlbmRpbmcgYQor
ICogbm90aWZpY2F0aW9uIGNhbiBiZSBtYWRlIGNvbmRpdGlvbmFsIG9uIHJzcF9ldmVudCAoaS5l
LiwgdGhlIGdlbmVyaWMKKyAqIGhvbGQtb2ZmIG1lY2hhbmlzbSBwcm92aWRlZCBieSB0aGUgcmlu
ZyBtYWNyb3MpLiBGcm9udGVuZHMgbXVzdCBzZXQKKyAqIHJzcF9ldmVudCBhcHByb3ByaWF0ZWx5
IChlLmcuLCB1c2luZyBSSU5HX0ZJTkFMX0NIRUNLX0ZPUl9SRVNQT05TRVMoKSkuCisgKi8KKwor
I2lmbmRlZiBibGtpZl92ZGV2X3QKKyNkZWZpbmUgYmxraWZfdmRldl90ICAgdWludDE2X3QKKyNl
bmRpZgorI2RlZmluZSBibGtpZl9zZWN0b3JfdCB1aW50NjRfdAorCisvKgorICogRmVhdHVyZSBh
bmQgUGFyYW1ldGVyIE5lZ290aWF0aW9uCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKyAqIFRoZSB0d28gaGFsdmVzIG9mIGEgWGVuIGJsb2NrIGRyaXZlciB1dGlsaXplIG5v
ZGVzIHdpdGhpbiB0aGUgWGVuU3RvcmUgdG8KKyAqIGNvbW11bmljYXRlIGNhcGFiaWxpdGllcyBh
bmQgdG8gbmVnb3RpYXRlIG9wZXJhdGluZyBwYXJhbWV0ZXJzLiAgVGhpcworICogc2VjdGlvbiBl
bnVtZXJhdGVzIHRoZXNlIG5vZGVzIHdoaWNoIHJlc2lkZSBpbiB0aGUgcmVzcGVjdGl2ZSBmcm9u
dCBhbmQKKyAqIGJhY2tlbmQgcG9ydGlvbnMgb2YgdGhlIFhlblN0b3JlLCBmb2xsb3dpbmcgdGhl
IFhlbkJ1cyBjb252ZW50aW9uLgorICoKKyAqIEFsbCBkYXRhIGluIHRoZSBYZW5TdG9yZSBpcyBz
dG9yZWQgYXMgc3RyaW5ncy4gIE5vZGVzIHNwZWNpZnlpbmcgbnVtZXJpYworICogdmFsdWVzIGFy
ZSBlbmNvZGVkIGluIGRlY2ltYWwuICBJbnRlZ2VyIHZhbHVlIHJhbmdlcyBsaXN0ZWQgYmVsb3cg
YXJlCisgKiBleHByZXNzZWQgYXMgZml4ZWQgc2l6ZWQgaW50ZWdlciB0eXBlcyBjYXBhYmxlIG9m
IHN0b3JpbmcgdGhlIGNvbnZlcnNpb24KKyAqIG9mIGEgcHJvcGVybHkgZm9ybWF0ZWQgbm9kZSBz
dHJpbmcsIHdpdGhvdXQgbG9zcyBvZiBpbmZvcm1hdGlvbi4KKyAqCisgKiBBbnkgc3BlY2lmaWVk
IGRlZmF1bHQgdmFsdWUgaXMgaW4gZWZmZWN0IGlmIHRoZSBjb3JyZXNwb25kaW5nIFhlbkJ1cyBu
b2RlCisgKiBpcyBub3QgcHJlc2VudCBpbiB0aGUgWGVuU3RvcmUuCisgKgorICogWGVuU3RvcmUg
bm9kZXMgaW4gc2VjdGlvbnMgbWFya2VkICJQUklWQVRFIiBhcmUgc29sZWx5IGZvciB1c2UgYnkg
dGhlCisgKiBkcml2ZXIgc2lkZSB3aG9zZSBYZW5CdXMgdHJlZSBjb250YWlucyB0aGVtLgorICoK
KyAqIFhlblN0b3JlIG5vZGVzIG1hcmtlZCAiREVQUkVDQVRFRCIgaW4gdGhlaXIgbm90ZXMgc2Vj
dGlvbiBzaG91bGQgb25seSBiZQorICogdXNlZCB0byBwcm92aWRlIGludGVyb3BlcmFiaWxpdHkg
d2l0aCBsZWdhY3kgaW1wbGVtZW50YXRpb25zLgorICoKKyAqIFNlZSB0aGUgWGVuQnVzIHN0YXRl
IHRyYW5zaXRpb24gZGlhZ3JhbSBiZWxvdyBmb3IgZGV0YWlscyBvbiB3aGVuIFhlbkJ1cworICog
bm9kZXMgbXVzdCBiZSBwdWJsaXNoZWQgYW5kIHdoZW4gdGhleSBjYW4gYmUgcXVlcmllZC4KKyAq
CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJh
Y2tlbmQgWGVuQnVzIE5vZGVzCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi0tLS0tLS0t
LS0tLS0tLS0tLSBCYWNrZW5kIERldmljZSBJZGVudGlmaWNhdGlvbiAoUFJJVkFURSkgLS0tLS0t
LS0tLS0tLS0tLS0tCisgKgorICogbW9kZQorICogICAgICBWYWx1ZXM6ICAgICAgICAgInIiIChy
ZWFkIG9ubHkpLCAidyIgKHdyaXRhYmxlKQorICoKKyAqICAgICAgVGhlIHJlYWQgb3Igd3JpdGUg
YWNjZXNzIHBlcm1pc3Npb25zIHRvIHRoZSBiYWNraW5nIHN0b3JlIHRvIGJlCisgKiAgICAgIGdy
YW50ZWQgdG8gdGhlIGZyb250ZW5kLgorICoKKyAqIHBhcmFtcworICogICAgICBWYWx1ZXM6ICAg
ICAgICAgc3RyaW5nCisgKgorICogICAgICBBIGZyZWUgZm9ybWF0dGVkIHN0cmluZyBwcm92aWRp
bmcgc3VmZmljaWVudCBpbmZvcm1hdGlvbiBmb3IgdGhlCisgKiAgICAgIGhvdHBsdWcgc2NyaXB0
IHRvIGF0dGFjaCB0aGUgZGV2aWNlIGFuZCBwcm92aWRlIGEgc3VpdGFibGUKKyAqICAgICAgaGFu
ZGxlciAoaWU6IGEgYmxvY2sgZGV2aWNlKSBmb3IgYmxrYmFjayB0byB1c2UuCisgKgorICogcGh5
c2ljYWwtZGV2aWNlCisgKiAgICAgIFZhbHVlczogICAgICAgICAiTUFKT1I6TUlOT1IiCisgKiAg
ICAgIE5vdGVzOiAxMQorICoKKyAqICAgICAgTUFKT1IgYW5kIE1JTk9SIGFyZSB0aGUgbWFqb3Ig
bnVtYmVyIGFuZCBtaW5vciBudW1iZXIgb2YgdGhlCisgKiAgICAgIGJhY2tpbmcgZGV2aWNlIHJl
c3BlY3RpdmVseS4KKyAqCisgKiBwaHlzaWNhbC1kZXZpY2UtcGF0aAorICogICAgICBWYWx1ZXM6
ICAgICAgICAgcGF0aCBzdHJpbmcKKyAqCisgKiAgICAgIEEgc3RyaW5nIHRoYXQgY29udGFpbnMg
dGhlIGFic29sdXRlIHBhdGggdG8gdGhlIGRpc2sgaW1hZ2UuIE9uCisgKiAgICAgIE5ldEJTRCBh
bmQgTGludXggdGhpcyBpcyBhbHdheXMgYSBibG9jayBkZXZpY2UsIHdoaWxlIG9uIEZyZWVCU0QK
KyAqICAgICAgaXQgY2FuIGJlIGVpdGhlciBhIGJsb2NrIGRldmljZSBvciBhIHJlZ3VsYXIgZmls
ZS4KKyAqCisgKiB0eXBlCisgKiAgICAgIFZhbHVlczogICAgICAgICAiZmlsZSIsICJwaHkiLCAi
dGFwIgorICoKKyAqICAgICAgVGhlIHR5cGUgb2YgdGhlIGJhY2tpbmcgZGV2aWNlL29iamVjdC4K
KyAqCisgKgorICogZGlyZWN0LWlvLXNhZmUKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDAvMSAo
Ym9vbGVhbikKKyAqICAgICAgRGVmYXVsdCBWYWx1ZTogIDAKKyAqCisgKiAgICAgIFRoZSB1bmRl
cmx5aW5nIHN0b3JhZ2UgaXMgbm90IGFmZmVjdGVkIGJ5IHRoZSBkaXJlY3QgSU8gbWVtb3J5Cisg
KiAgICAgIGxpZmV0aW1lIGJ1Zy4gIFNlZToKKyAqICAgICAgICBodHRwOi8vbGlzdHMueGVuLm9y
Zy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDEyLTEyL21zZzAxMTU0Lmh0bWwKKyAqCisgKiAg
ICAgIFRoZXJlZm9yZSB0aGlzIG9wdGlvbiBnaXZlcyB0aGUgYmFja2VuZCBwZXJtaXNzaW9uIHRv
IHVzZQorICogICAgICBPX0RJUkVDVCwgbm90d2l0aHN0YW5kaW5nIHRoYXQgYnVnLgorICoKKyAq
ICAgICAgVGhhdCBpcywgaWYgdGhpcyBvcHRpb24gaXMgZW5hYmxlZCwgdXNlIG9mIE9fRElSRUNU
IGlzIHNhZmUsCisgKiAgICAgIGluIGNpcmN1bXN0YW5jZXMgd2hlcmUgd2Ugd291bGQgbm9ybWFs
bHkgaGF2ZSBhdm9pZGVkIGl0IGFzIGEKKyAqICAgICAgd29ya2Fyb3VuZCBmb3IgdGhhdCBidWcu
ICBUaGlzIG9wdGlvbiBpcyBub3QgcmVsZXZhbnQgZm9yIGFsbAorICogICAgICBiYWNrZW5kcywg
YW5kIGV2ZW4gbm90IG5lY2Vzc2FyaWx5IHN1cHBvcnRlZCBmb3IgdGhvc2UgZm9yCisgKiAgICAg
IHdoaWNoIGl0IGlzIHJlbGV2YW50LiAgQSBiYWNrZW5kIHdoaWNoIGtub3dzIHRoYXQgaXQgaXMg
bm90CisgKiAgICAgIGFmZmVjdGVkIGJ5IHRoZSBidWcgY2FuIGlnbm9yZSB0aGlzIG9wdGlvbi4K
KyAqCisgKiAgICAgIFRoaXMgb3B0aW9uIGRvZXNuJ3QgcmVxdWlyZSBhIGJhY2tlbmQgdG8gdXNl
IE9fRElSRUNULCBzbyBpdAorICogICAgICBzaG91bGQgbm90IGJlIHVzZWQgdG8gdHJ5IHRvIGNv
bnRyb2wgdGhlIGNhY2hpbmcgYmVoYXZpb3VyLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIEZlYXR1cmVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
ICoKKyAqIGZlYXR1cmUtYmFycmllcgorICogICAgICBWYWx1ZXM6ICAgICAgICAgMC8xIChib29s
ZWFuKQorICogICAgICBEZWZhdWx0IFZhbHVlOiAgMAorICoKKyAqICAgICAgQSB2YWx1ZSBvZiAi
MSIgaW5kaWNhdGVzIHRoYXQgdGhlIGJhY2tlbmQgY2FuIHByb2Nlc3MgcmVxdWVzdHMKKyAqICAg
ICAgY29udGFpbmluZyB0aGUgQkxLSUZfT1BfV1JJVEVfQkFSUklFUiByZXF1ZXN0IG9wY29kZS4g
IFJlcXVlc3RzCisgKiAgICAgIG9mIHRoaXMgdHlwZSBtYXkgc3RpbGwgYmUgcmV0dXJuZWQgYXQg
YW55IHRpbWUgd2l0aCB0aGUKKyAqICAgICAgQkxLSUZfUlNQX0VPUE5PVFNVUFAgcmVzdWx0IGNv
ZGUuCisgKgorICogZmVhdHVyZS1mbHVzaC1jYWNoZQorICogICAgICBWYWx1ZXM6ICAgICAgICAg
MC8xIChib29sZWFuKQorICogICAgICBEZWZhdWx0IFZhbHVlOiAgMAorICoKKyAqICAgICAgQSB2
YWx1ZSBvZiAiMSIgaW5kaWNhdGVzIHRoYXQgdGhlIGJhY2tlbmQgY2FuIHByb2Nlc3MgcmVxdWVz
dHMKKyAqICAgICAgY29udGFpbmluZyB0aGUgQkxLSUZfT1BfRkxVU0hfRElTS0NBQ0hFIHJlcXVl
c3Qgb3Bjb2RlLiAgUmVxdWVzdHMKKyAqICAgICAgb2YgdGhpcyB0eXBlIG1heSBzdGlsbCBiZSBy
ZXR1cm5lZCBhdCBhbnkgdGltZSB3aXRoIHRoZQorICogICAgICBCTEtJRl9SU1BfRU9QTk9UU1VQ
UCByZXN1bHQgY29kZS4KKyAqCisgKiBmZWF0dXJlLWRpc2NhcmQKKyAqICAgICAgVmFsdWVzOiAg
ICAgICAgIDAvMSAoYm9vbGVhbikKKyAqICAgICAgRGVmYXVsdCBWYWx1ZTogIDAKKyAqCisgKiAg
ICAgIEEgdmFsdWUgb2YgIjEiIGluZGljYXRlcyB0aGF0IHRoZSBiYWNrZW5kIGNhbiBwcm9jZXNz
IHJlcXVlc3RzCisgKiAgICAgIGNvbnRhaW5pbmcgdGhlIEJMS0lGX09QX0RJU0NBUkQgcmVxdWVz
dCBvcGNvZGUuICBSZXF1ZXN0cworICogICAgICBvZiB0aGlzIHR5cGUgbWF5IHN0aWxsIGJlIHJl
dHVybmVkIGF0IGFueSB0aW1lIHdpdGggdGhlCisgKiAgICAgIEJMS0lGX1JTUF9FT1BOT1RTVVBQ
IHJlc3VsdCBjb2RlLgorICoKKyAqIGZlYXR1cmUtcGVyc2lzdGVudAorICogICAgICBWYWx1ZXM6
ICAgICAgICAgMC8xIChib29sZWFuKQorICogICAgICBEZWZhdWx0IFZhbHVlOiAgMAorICogICAg
ICBOb3RlczogNworICoKKyAqICAgICAgQSB2YWx1ZSBvZiAiMSIgaW5kaWNhdGVzIHRoYXQgdGhl
IGJhY2tlbmQgY2FuIGtlZXAgdGhlIGdyYW50cyB1c2VkCisgKiAgICAgIGJ5IHRoZSBmcm9udGVu
ZCBkcml2ZXIgbWFwcGVkLCBzbyB0aGUgc2FtZSBzZXQgb2YgZ3JhbnRzIHNob3VsZCBiZQorICog
ICAgICB1c2VkIGluIGFsbCB0cmFuc2FjdGlvbnMuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBncmFu
dHMgdGhlIGJhY2tlbmQKKyAqICAgICAgY2FuIG1hcCBwZXJzaXN0ZW50bHkgZGVwZW5kcyBvbiB0
aGUgaW1wbGVtZW50YXRpb24sIGJ1dCBpZGVhbGx5IGl0CisgKiAgICAgIHNob3VsZCBiZSBSSU5H
X1NJWkUgKiBCTEtJRl9NQVhfU0VHTUVOVFNfUEVSX1JFUVVFU1QuIFVzaW5nIHRoaXMKKyAqICAg
ICAgZmVhdHVyZSB0aGUgYmFja2VuZCBkb2Vzbid0IG5lZWQgdG8gdW5tYXAgZWFjaCBncmFudCwg
cHJldmVudGluZworICogICAgICBjb3N0bHkgVExCIGZsdXNoZXMuIFRoZSBiYWNrZW5kIGRyaXZl
ciBzaG91bGQgb25seSBtYXAgZ3JhbnRzCisgKiAgICAgIHBlcnNpc3RlbnRseSBpZiB0aGUgZnJv
bnRlbmQgc3VwcG9ydHMgaXQuIElmIGEgYmFja2VuZCBkcml2ZXIgY2hvb3NlcworICogICAgICB0
byB1c2UgdGhlIHBlcnNpc3RlbnQgcHJvdG9jb2wgd2hlbiB0aGUgZnJvbnRlbmQgZG9lc24ndCBz
dXBwb3J0IGl0LAorICogICAgICBpdCB3aWxsIHByb2JhYmx5IGhpdCB0aGUgbWF4aW11bSBudW1i
ZXIgb2YgcGVyc2lzdGVudGx5IG1hcHBlZCBncmFudHMKKyAqICAgICAgKGR1ZSB0byB0aGUgZmFj
dCB0aGF0IHRoZSBmcm9udGVuZCB3b24ndCBiZSByZXVzaW5nIHRoZSBzYW1lIGdyYW50cyksCisg
KiAgICAgIGFuZCBmYWxsIGJhY2sgdG8gbm9uLXBlcnNpc3RlbnQgbW9kZS4gQmFja2VuZCBpbXBs
ZW1lbnRhdGlvbnMgbWF5CisgKiAgICAgIHNocmluayBvciBleHBhbmQgdGhlIG51bWJlciBvZiBw
ZXJzaXN0ZW50bHkgbWFwcGVkIGdyYW50cyB3aXRob3V0CisgKiAgICAgIG5vdGlmeWluZyB0aGUg
ZnJvbnRlbmQgZGVwZW5kaW5nIG9uIG1lbW9yeSBjb25zdHJhaW50cyAodGhpcyBtaWdodAorICog
ICAgICBjYXVzZSBhIHBlcmZvcm1hbmNlIGRlZ3JhZGF0aW9uKS4KKyAqCisgKiAgICAgIElmIGEg
YmFja2VuZCBkcml2ZXIgd2FudHMgdG8gbGltaXQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHBlcnNp
c3RlbnRseQorICogICAgICBtYXBwZWQgZ3JhbnRzIHRvIGEgdmFsdWUgbGVzcyB0aGFuIFJJTkdf
U0laRSAqCisgKiAgICAgIEJMS0lGX01BWF9TRUdNRU5UU19QRVJfUkVRVUVTVCBhIExSVSBzdHJh
dGVneSBzaG91bGQgYmUgdXNlZCB0bworICogICAgICBkaXNjYXJkIHRoZSBncmFudHMgdGhhdCBh
cmUgbGVzcyBjb21tb25seSB1c2VkLiBVc2luZyBhIExSVSBpbiB0aGUKKyAqICAgICAgYmFja2Vu
ZCBkcml2ZXIgcGFpcmVkIHdpdGggYSBMSUZPIHF1ZXVlIGluIHRoZSBmcm9udGVuZCB3aWxsCisg
KiAgICAgIGFsbG93IHVzIHRvIGhhdmUgYmV0dGVyIHBlcmZvcm1hbmNlIGluIHRoaXMgc2NlbmFy
aW8uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSZXF1ZXN0IFRyYW5zcG9ydCBQYXJh
bWV0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIG1heC1yaW5nLXBhZ2Utb3Jk
ZXIKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4KKyAqICAgICAgRGVmYXVsdCBW
YWx1ZTogIDAKKyAqICAgICAgTm90ZXM6ICAgICAgICAgIDEsIDMKKyAqCisgKiAgICAgIFRoZSBt
YXhpbXVtIHN1cHBvcnRlZCBzaXplIG9mIHRoZSByZXF1ZXN0IHJpbmcgYnVmZmVyIGluIHVuaXRz
IG9mCisgKiAgICAgIGxiKG1hY2hpbmUgcGFnZXMpLiAoZS5nLiAwID09IDEgcGFnZSwgIDEgPSAy
IHBhZ2VzLCAyID09IDQgcGFnZXMsCisgKiAgICAgIGV0Yy4pLgorICoKKyAqIG1heC1yaW5nLXBh
Z2VzCisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludDMyX3Q+CisgKiAgICAgIERlZmF1bHQg
VmFsdWU6ICAxCisgKiAgICAgIE5vdGVzOiAgICAgICAgICBERVBSRUNBVEVELCAyLCAzCisgKgor
ICogICAgICBUaGUgbWF4aW11bSBzdXBwb3J0ZWQgc2l6ZSBvZiB0aGUgcmVxdWVzdCByaW5nIGJ1
ZmZlciBpbiB1bml0cyBvZgorICogICAgICBtYWNoaW5lIHBhZ2VzLiAgVGhlIHZhbHVlIG11c3Qg
YmUgYSBwb3dlciBvZiAyLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBCYWNrZW5k
IERldmljZSBQcm9wZXJ0aWVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBkaXNj
YXJkLWVuYWJsZQorICogICAgICBWYWx1ZXM6ICAgICAgICAgMC8xIChib29sZWFuKQorICogICAg
ICBEZWZhdWx0IFZhbHVlOiAgMQorICoKKyAqICAgICAgVGhpcyBvcHRpb25hbCBwcm9wZXJ0eSwg
c2V0IGJ5IHRoZSB0b29sc3RhY2ssIGluc3RydWN0cyB0aGUgYmFja2VuZAorICogICAgICB0byBv
ZmZlciAob3Igbm90IHRvIG9mZmVyKSBkaXNjYXJkIHRvIHRoZSBmcm9udGVuZC4gSWYgdGhlIHBy
b3BlcnR5CisgKiAgICAgIGlzIG1pc3NpbmcgdGhlIGJhY2tlbmQgc2hvdWxkIG9mZmVyIGRpc2Nh
cmQgaWYgdGhlIGJhY2tpbmcgc3RvcmFnZQorICogICAgICBhY3R1YWxseSBzdXBwb3J0cyBpdC4K
KyAqCisgKiBkaXNjYXJkLWFsaWdubWVudAorICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQz
Ml90PgorICogICAgICBEZWZhdWx0IFZhbHVlOiAgMAorICogICAgICBOb3RlczogICAgICAgICAg
NCwgNQorICoKKyAqICAgICAgVGhlIG9mZnNldCwgaW4gYnl0ZXMgZnJvbSB0aGUgYmVnaW5uaW5n
IG9mIHRoZSB2aXJ0dWFsIGJsb2NrIGRldmljZSwKKyAqICAgICAgdG8gdGhlIGZpcnN0LCBhZGRy
ZXNzYWJsZSwgZGlzY2FyZCBleHRlbnQgb24gdGhlIHVuZGVybHlpbmcgZGV2aWNlLgorICoKKyAq
IGRpc2NhcmQtZ3JhbnVsYXJpdHkKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4K
KyAqICAgICAgRGVmYXVsdCBWYWx1ZTogIDwic2VjdG9yLXNpemUiPgorICogICAgICBOb3Rlczog
ICAgICAgICAgNAorICoKKyAqICAgICAgVGhlIHNpemUsIGluIGJ5dGVzLCBvZiB0aGUgaW5kaXZp
ZHVhbGx5IGFkZHJlc3NhYmxlIGRpc2NhcmQgZXh0ZW50cworICogICAgICBvZiB0aGUgdW5kZXJs
eWluZyBkZXZpY2UuCisgKgorICogZGlzY2FyZC1zZWN1cmUKKyAqICAgICAgVmFsdWVzOiAgICAg
ICAgIDAvMSAoYm9vbGVhbikKKyAqICAgICAgRGVmYXVsdCBWYWx1ZTogIDAKKyAqICAgICAgTm90
ZXM6ICAgICAgICAgIDEwCisgKgorICogICAgICBBIHZhbHVlIG9mICIxIiBpbmRpY2F0ZXMgdGhh
dCB0aGUgYmFja2VuZCBjYW4gcHJvY2VzcyBCTEtJRl9PUF9ESVNDQVJECisgKiAgICAgIHJlcXVl
c3RzIHdpdGggdGhlIEJMS0lGX0RJU0NBUkRfU0VDVVJFIGZsYWcgc2V0LgorICoKKyAqIGluZm8K
KyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4gKGJpdG1hcCkKKyAqCisgKiAgICAg
IEEgY29sbGVjdGlvbiBvZiBiaXQgZmxhZ3MgZGVzY3JpYmluZyBhdHRyaWJ1dGVzIG9mIHRoZSBi
YWNraW5nCisgKiAgICAgIGRldmljZS4gIFRoZSBWRElTS18qIG1hY3JvcyBkZWZpbmUgdGhlIG1l
YW5pbmcgb2YgZWFjaCBiaXQKKyAqICAgICAgbG9jYXRpb24uCisgKgorICogc2VjdG9yLXNpemUK
KyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4KKyAqCisgKiAgICAgIFRoZSBsb2dp
Y2FsIHNlY3RvciBzaXplLCBpbiBieXRlcywgb2YgdGhlIGJhY2tlbmQgZGV2aWNlLgorICoKKyAq
IHBoeXNpY2FsLXNlY3Rvci1zaXplCisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludDMyX3Q+
CisgKgorICogICAgICBUaGUgcGh5c2ljYWwgc2VjdG9yIHNpemUsIGluIGJ5dGVzLCBvZiB0aGUg
YmFja2VuZCBkZXZpY2UuCisgKgorICogc2VjdG9ycworICogICAgICBWYWx1ZXM6ICAgICAgICAg
PHVpbnQ2NF90PgorICoKKyAqICAgICAgVGhlIHNpemUgb2YgdGhlIGJhY2tlbmQgZGV2aWNlLCBl
eHByZXNzZWQgaW4gdW5pdHMgb2YgaXRzIGxvZ2ljYWwKKyAqICAgICAgc2VjdG9yIHNpemUgKCJz
ZWN0b3Itc2l6ZSIpLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRnJvbnRlbmQgWGVuQnVzIE5vZGVzCisgKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFJlcXVlc3QgVHJhbnNwb3J0IFBhcmFt
ZXRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBldmVudC1jaGFubmVsCisgKiAg
ICAgIFZhbHVlczogICAgICAgICA8dWludDMyX3Q+CisgKgorICogICAgICBUaGUgaWRlbnRpZmll
ciBvZiB0aGUgWGVuIGV2ZW50IGNoYW5uZWwgdXNlZCB0byBzaWduYWwgYWN0aXZpdHkKKyAqICAg
ICAgaW4gdGhlIHJpbmcgYnVmZmVyLgorICoKKyAqIHJpbmctcmVmCisgKiAgICAgIFZhbHVlczog
ICAgICAgICA8dWludDMyX3Q+CisgKiAgICAgIE5vdGVzOiAgICAgICAgICA2CisgKgorICogICAg
ICBUaGUgWGVuIGdyYW50IHJlZmVyZW5jZSBncmFudGluZyBwZXJtaXNzaW9uIGZvciB0aGUgYmFj
a2VuZCB0byBtYXAKKyAqICAgICAgdGhlIHNvbGUgcGFnZSBpbiBhIHNpbmdsZSBwYWdlIHNpemVk
IHJpbmcgYnVmZmVyLgorICoKKyAqIHJpbmctcmVmJXUKKyAqICAgICAgVmFsdWVzOiAgICAgICAg
IDx1aW50MzJfdD4KKyAqICAgICAgTm90ZXM6ICAgICAgICAgIDYKKyAqCisgKiAgICAgIEZvciBh
IGZyb250ZW5kIHByb3ZpZGluZyBhIG11bHRpLXBhZ2UgcmluZywgYSAibnVtYmVyIG9mIHJpbmcg
cGFnZXMiCisgKiAgICAgIHNpemVkIGxpc3Qgb2Ygbm9kZXMsIGVhY2ggY29udGFpbmluZyBhIFhl
biBncmFudCByZWZlcmVuY2UgZ3JhbnRpbmcKKyAqICAgICAgcGVybWlzc2lvbiBmb3IgdGhlIGJh
Y2tlbmQgdG8gbWFwIHRoZSBwYWdlIG9mIHRoZSByaW5nIGxvY2F0ZWQKKyAqICAgICAgYXQgcGFn
ZSBpbmRleCAiJXUiLiAgUGFnZSBpbmRleGVzIGFyZSB6ZXJvIGJhc2VkLgorICoKKyAqIHByb3Rv
Y29sCisgKiAgICAgIFZhbHVlczogICAgICAgICBzdHJpbmcgKFhFTl9JT19QUk9UT19BQklfKikK
KyAqICAgICAgRGVmYXVsdCBWYWx1ZTogIFhFTl9JT19QUk9UT19BQklfTkFUSVZFCisgKgorICog
ICAgICBUaGUgbWFjaGluZSBBQkkgcnVsZXMgZ292ZXJuaW5nIHRoZSBmb3JtYXQgb2YgYWxsIHJp
bmcgcmVxdWVzdCBhbmQKKyAqICAgICAgcmVzcG9uc2Ugc3RydWN0dXJlcy4KKyAqCisgKiByaW5n
LXBhZ2Utb3JkZXIKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4KKyAqICAgICAg
RGVmYXVsdCBWYWx1ZTogIDAKKyAqICAgICAgTWF4aW11bSBWYWx1ZTogIE1BWChmZnMobWF4LXJp
bmctcGFnZXMpIC0gMSwgbWF4LXJpbmctcGFnZS1vcmRlcikKKyAqICAgICAgTm90ZXM6ICAgICAg
ICAgIDEsIDMKKyAqCisgKiAgICAgIFRoZSBzaXplIG9mIHRoZSBmcm9udGVuZCBhbGxvY2F0ZWQg
cmVxdWVzdCByaW5nIGJ1ZmZlciBpbiB1bml0cworICogICAgICBvZiBsYihtYWNoaW5lIHBhZ2Vz
KS4gKGUuZy4gMCA9PSAxIHBhZ2UsIDEgPSAyIHBhZ2VzLCAyID09IDQgcGFnZXMsCisgKiAgICAg
IGV0Yy4pLgorICoKKyAqIG51bS1yaW5nLXBhZ2VzCisgKiAgICAgIFZhbHVlczogICAgICAgICA8
dWludDMyX3Q+CisgKiAgICAgIERlZmF1bHQgVmFsdWU6ICAxCisgKiAgICAgIE1heGltdW0gVmFs
dWU6ICBNQVgobWF4LXJpbmctcGFnZXMsKDB4MSA8PCBtYXgtcmluZy1wYWdlLW9yZGVyKSkKKyAq
ICAgICAgTm90ZXM6ICAgICAgICAgIERFUFJFQ0FURUQsIDIsIDMKKyAqCisgKiAgICAgIFRoZSBz
aXplIG9mIHRoZSBmcm9udGVuZCBhbGxvY2F0ZWQgcmVxdWVzdCByaW5nIGJ1ZmZlciBpbiB1bml0
cyBvZgorICogICAgICBtYWNoaW5lIHBhZ2VzLiAgVGhlIHZhbHVlIG11c3QgYmUgYSBwb3dlciBv
ZiAyLgorICoKKyAqIGZlYXR1cmUtcGVyc2lzdGVudAorICogICAgICBWYWx1ZXM6ICAgICAgICAg
MC8xIChib29sZWFuKQorICogICAgICBEZWZhdWx0IFZhbHVlOiAgMAorICogICAgICBOb3Rlczog
NywgOCwgOQorICoKKyAqICAgICAgQSB2YWx1ZSBvZiAiMSIgaW5kaWNhdGVzIHRoYXQgdGhlIGZy
b250ZW5kIHdpbGwgcmV1c2UgdGhlIHNhbWUgZ3JhbnRzCisgKiAgICAgIGZvciBhbGwgdHJhbnNh
Y3Rpb25zLCBhbGxvd2luZyB0aGUgYmFja2VuZCB0byBtYXAgdGhlbSB3aXRoIHdyaXRlCisgKiAg
ICAgIGFjY2VzcyAoZXZlbiB3aGVuIGl0IHNob3VsZCBiZSByZWFkLW9ubHkpLiBJZiB0aGUgZnJv
bnRlbmQgaGl0cyB0aGUKKyAqICAgICAgbWF4aW11bSBudW1iZXIgb2YgYWxsb3dlZCBwZXJzaXN0
ZW50bHkgbWFwcGVkIGdyYW50cywgaXQgY2FuIGZhbGxiYWNrCisgKiAgICAgIHRvIG5vbiBwZXJz
aXN0ZW50IG1vZGUuIFRoaXMgd2lsbCBjYXVzZSBhIHBlcmZvcm1hbmNlIGRlZ3JhZGF0aW9uLAor
ICogICAgICBzaW5jZSB0aGUgdGhlIGJhY2tlbmQgZHJpdmVyIHdpbGwgc3RpbGwgdHJ5IHRvIG1h
cCB0aG9zZSBncmFudHMKKyAqICAgICAgcGVyc2lzdGVudGx5LiBTaW5jZSB0aGUgcGVyc2lzdGVu
dCBncmFudHMgcHJvdG9jb2wgaXMgY29tcGF0aWJsZSB3aXRoCisgKiAgICAgIHRoZSBwcmV2aW91
cyBwcm90b2NvbCwgYSBmcm9udGVuZCBkcml2ZXIgY2FuIGNob29zZSB0byB3b3JrIGluCisgKiAg
ICAgIHBlcnNpc3RlbnQgbW9kZSBldmVuIHdoZW4gdGhlIGJhY2tlbmQgZG9lc24ndCBzdXBwb3J0
IGl0LgorICoKKyAqICAgICAgSXQgaXMgcmVjb21tZW5kZWQgdGhhdCB0aGUgZnJvbnRlbmQgZHJp
dmVyIHN0b3JlcyB0aGUgcGVyc2lzdGVudGx5CisgKiAgICAgIG1hcHBlZCBncmFudHMgaW4gYSBM
SUZPIHF1ZXVlLCBzbyBhIHN1YnNldCBvZiBhbGwgcGVyc2lzdGVudGx5IG1hcHBlZAorICogICAg
ICBncmFudHMgZ2V0cyB1c2VkIGNvbW1vbmx5LiBUaGlzIGlzIGRvbmUgaW4gY2FzZSB0aGUgYmFj
a2VuZCBkcml2ZXIKKyAqICAgICAgZGVjaWRlcyB0byBsaW1pdCB0aGUgbWF4aW11bSBudW1iZXIg
b2YgcGVyc2lzdGVudGx5IG1hcHBlZCBncmFudHMKKyAqICAgICAgdG8gYSB2YWx1ZSBsZXNzIHRo
YW4gUklOR19TSVpFICogQkxLSUZfTUFYX1NFR01FTlRTX1BFUl9SRVFVRVNULgorICoKKyAqLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBWaXJ0dWFsIERldmljZSBQcm9wZXJ0aWVzIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBkZXZpY2UtdHlwZQorICogICAgICBWYWx1ZXM6ICAg
ICAgICAgImRpc2siLCAiY2Ryb20iLCAiZmxvcHB5IiwgZXRjLgorICoKKyAqIHZpcnR1YWwtZGV2
aWNlCisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludDMyX3Q+CisgKgorICogICAgICBBIHZh
bHVlIGluZGljYXRpbmcgdGhlIHBoeXNpY2FsIGRldmljZSB0byB2aXJ0dWFsaXplIHdpdGhpbiB0
aGUKKyAqICAgICAgZnJvbnRlbmQncyBkb21haW4uICAoZS5nLiAiVGhlIGZpcnN0IEFUQSBkaXNr
IiwgIlRoZSB0aGlyZCBTQ1NJCisgKiAgICAgIGRpc2siLCBldGMuKQorICoKKyAqICAgICAgU2Vl
IGRvY3MvbWlzYy92YmQtaW50ZXJmYWNlLnR4dCBmb3IgZGV0YWlscyBvbiB0aGUgZm9ybWF0IG9m
IHRoaXMKKyAqICAgICAgdmFsdWUuCisgKgorICogTm90ZXMKKyAqIC0tLS0tCisgKiAoMSkgTXVs
dGktcGFnZSByaW5nIGJ1ZmZlciBzY2hlbWUgZmlyc3QgZGV2ZWxvcGVkIGluIHRoZSBDaXRyaXgg
WGVuU2VydmVyCisgKiAgICAgUFYgZHJpdmVycy4KKyAqICgyKSBNdWx0aS1wYWdlIHJpbmcgYnVm
ZmVyIHNjaGVtZSBmaXJzdCB1c2VkIGluIHNvbWUgUmVkSGF0IGRpc3RyaWJ1dGlvbnMKKyAqICAg
ICBpbmNsdWRpbmcgYSBkaXN0cmlidXRpb24gZGVwbG95ZWQgb24gY2VydGFpbiBub2RlcyBvZiB0
aGUgQW1hem9uCisgKiAgICAgRUMyIGNsdXN0ZXIuCisgKiAoMykgU3VwcG9ydCBmb3IgbXVsdGkt
cGFnZSByaW5nIGJ1ZmZlcnMgd2FzIGltcGxlbWVudGVkIGluZGVwZW5kZW50bHksCisgKiAgICAg
aW4gc2xpZ2h0bHkgZGlmZmVyZW50IGZvcm1zLCBieSBib3RoIENpdHJpeCBhbmQgUmVkSGF0L0Ft
YXpvbi4KKyAqICAgICBGb3IgZnVsbCBpbnRlcm9wZXJhYmlsaXR5LCBibG9jayBmcm9udCBhbmQg
YmFja2VuZHMgc2hvdWxkIHB1Ymxpc2gKKyAqICAgICBpZGVudGljYWwgcmluZyBwYXJhbWV0ZXJz
LCBhZGp1c3RlZCBmb3IgdW5pdCBkaWZmZXJlbmNlcywgdG8gdGhlCisgKiAgICAgWGVuU3RvcmUg
bm9kZXMgdXNlZCBpbiBib3RoIHNjaGVtZXMuCisgKiAoNCkgRGV2aWNlcyB0aGF0IHN1cHBvcnQg
ZGlzY2FyZCBmdW5jdGlvbmFsaXR5IG1heSBpbnRlcm5hbGx5IGFsbG9jYXRlIHNwYWNlCisgKiAg
ICAgKGRpc2NhcmRhYmxlIGV4dGVudHMpIGluIHVuaXRzIHRoYXQgYXJlIGxhcmdlciB0aGFuIHRo
ZSBleHBvcnRlZCBsb2dpY2FsCisgKiAgICAgYmxvY2sgc2l6ZS4gSWYgdGhlIGJhY2tpbmcgZGV2
aWNlIGhhcyBzdWNoIGRpc2NhcmRhYmxlIGV4dGVudHMgdGhlCisgKiAgICAgYmFja2VuZCBzaG91
bGQgcHJvdmlkZSBib3RoIGRpc2NhcmQtZ3JhbnVsYXJpdHkgYW5kIGRpc2NhcmQtYWxpZ25tZW50
LgorICogICAgIFByb3ZpZGluZyBqdXN0IG9uZSBvZiB0aGUgdHdvIG1heSBiZSBjb25zaWRlcmVk
IGFuIGVycm9yIGJ5IHRoZSBmcm9udGVuZC4KKyAqICAgICBCYWNrZW5kcyBzdXBwb3J0aW5nIGRp
c2NhcmQgc2hvdWxkIGluY2x1ZGUgZGlzY2FyZC1ncmFudWxhcml0eSBhbmQKKyAqICAgICBkaXNj
YXJkLWFsaWdubWVudCBldmVuIGlmIGl0IHN1cHBvcnRzIGRpc2NhcmRpbmcgaW5kaXZpZHVhbCBz
ZWN0b3JzLgorICogICAgIEZyb250ZW5kcyBzaG91bGQgYXNzdW1lIGRpc2NhcmQtYWxpZ25tZW50
ID09IDAgYW5kIGRpc2NhcmQtZ3JhbnVsYXJpdHkKKyAqICAgICA9PSBzZWN0b3Igc2l6ZSBpZiB0
aGVzZSBrZXlzIGFyZSBtaXNzaW5nLgorICogKDUpIFRoZSBkaXNjYXJkLWFsaWdubWVudCBwYXJh
bWV0ZXIgYWxsb3dzIGEgcGh5c2ljYWwgZGV2aWNlIHRvIGJlCisgKiAgICAgcGFydGl0aW9uZWQg
aW50byB2aXJ0dWFsIGRldmljZXMgdGhhdCBkbyBub3QgbmVjZXNzYXJpbHkgYmVnaW4gb3IKKyAq
ICAgICBlbmQgb24gYSBkaXNjYXJkYWJsZSBleHRlbnQgYm91bmRhcnkuCisgKiAoNikgV2hlbiB0
aGVyZSBpcyBvbmx5IGEgc2luZ2xlIHBhZ2UgYWxsb2NhdGVkIHRvIHRoZSByZXF1ZXN0IHJpbmcs
CisgKiAgICAgJ3JpbmctcmVmJyBpcyB1c2VkIHRvIGNvbW11bmljYXRlIHRoZSBncmFudCByZWZl
cmVuY2UgZm9yIHRoaXMKKyAqICAgICBwYWdlIHRvIHRoZSBiYWNrZW5kLiAgV2hlbiB1c2luZyBh
IG11bHRpLXBhZ2UgcmluZywgdGhlICdyaW5nLXJlZicKKyAqICAgICBub2RlIGlzIG5vdCBjcmVh
dGVkLiAgSW5zdGVhZCAncmluZy1yZWYwJyAtICdyaW5nLXJlZk4nIGFyZSB1c2VkLgorICogKDcp
IFdoZW4gdXNpbmcgcGVyc2lzdGVudCBncmFudHMgZGF0YSBoYXMgdG8gYmUgY29waWVkIGZyb20v
dG8gdGhlIHBhZ2UKKyAqICAgICB3aGVyZSB0aGUgZ3JhbnQgaXMgY3VycmVudGx5IG1hcHBlZC4g
VGhlIG92ZXJoZWFkIG9mIGRvaW5nIHRoaXMgY29weQorICogICAgIGhvd2V2ZXIgZG9lc24ndCBz
dXBwcmVzcyB0aGUgc3BlZWQgaW1wcm92ZW1lbnQgb2Ygbm90IGhhdmluZyB0byB1bm1hcAorICog
ICAgIHRoZSBncmFudHMuCisgKiAoOCkgVGhlIGZyb250ZW5kIGRyaXZlciBoYXMgdG8gYWxsb3cg
dGhlIGJhY2tlbmQgZHJpdmVyIHRvIG1hcCBhbGwgZ3JhbnRzCisgKiAgICAgd2l0aCB3cml0ZSBh
Y2Nlc3MsIGV2ZW4gd2hlbiB0aGV5IHNob3VsZCBiZSBtYXBwZWQgcmVhZC1vbmx5LCBzaW5jZQor
ICogICAgIGZ1cnRoZXIgcmVxdWVzdHMgbWF5IHJldXNlIHRoZXNlIGdyYW50cyBhbmQgcmVxdWly
ZSB3cml0ZSBwZXJtaXNzaW9ucy4KKyAqICg5KSBMaW51eCBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0
IGhhdmUgYSBsaW1pdCBvbiB0aGUgbWF4aW11bSBudW1iZXIgb2YKKyAqICAgICBncmFudHMgdGhh
dCBjYW4gYmUgcGVyc2lzdGVudGx5IG1hcHBlZCBpbiB0aGUgZnJvbnRlbmQgZHJpdmVyLCBidXQK
KyAqICAgICBkdWUgdG8gdGhlIGZyb250ZW50IGRyaXZlciBpbXBsZW1lbnRhdGlvbiBpdCBzaG91
bGQgbmV2ZXIgYmUgYmlnZ2VyCisgKiAgICAgdGhhbiBSSU5HX1NJWkUgKiBCTEtJRl9NQVhfU0VH
TUVOVFNfUEVSX1JFUVVFU1QuCisgKigxMCkgVGhlIGRpc2NhcmQtc2VjdXJlIHByb3BlcnR5IG1h
eSBiZSBwcmVzZW50IGFuZCB3aWxsIGJlIHNldCB0byAxIGlmIHRoZQorICogICAgIGJhY2tpbmcg
ZGV2aWNlIHN1cHBvcnRzIHNlY3VyZSBkaXNjYXJkLgorICooMTEpIE9ubHkgdXNlZCBieSBMaW51
eCBhbmQgTmV0QlNELgorICovCisKKy8qCisgKiBNdWx0aXBsZSBoYXJkd2FyZSBxdWV1ZXMvcmlu
Z3M6CisgKiBJZiBzdXBwb3J0ZWQsIHRoZSBiYWNrZW5kIHdpbGwgd3JpdGUgdGhlIGtleSAibXVs
dGktcXVldWUtbWF4LXF1ZXVlcyIgdG8KKyAqIHRoZSBkaXJlY3RvcnkgZm9yIHRoYXQgdmJkLCBh
bmQgc2V0IGl0cyB2YWx1ZSB0byB0aGUgbWF4aW11bSBzdXBwb3J0ZWQKKyAqIG51bWJlciBvZiBx
dWV1ZXMuCisgKiBGcm9udGVuZHMgdGhhdCBhcmUgYXdhcmUgb2YgdGhpcyBmZWF0dXJlIGFuZCB3
aXNoIHRvIHVzZSBpdCBjYW4gd3JpdGUgdGhlCisgKiBrZXkgIm11bHRpLXF1ZXVlLW51bS1xdWV1
ZXMiIHdpdGggdGhlIG51bWJlciB0aGV5IHdpc2ggdG8gdXNlLCB3aGljaCBtdXN0IGJlCisgKiBn
cmVhdGVyIHRoYW4gemVybywgYW5kIG5vIG1vcmUgdGhhbiB0aGUgdmFsdWUgcmVwb3J0ZWQgYnkg
dGhlIGJhY2tlbmQgaW4KKyAqICJtdWx0aS1xdWV1ZS1tYXgtcXVldWVzIi4KKyAqCisgKiBGb3Ig
ZnJvbnRlbmRzIHJlcXVlc3RpbmcganVzdCBvbmUgcXVldWUsIHRoZSB1c3VhbCBldmVudC1jaGFu
bmVsIGFuZAorICogcmluZy1yZWYga2V5cyBhcmUgd3JpdHRlbiBhcyBiZWZvcmUsIHNpbXBsaWZ5
aW5nIHRoZSBiYWNrZW5kIHByb2Nlc3NpbmcKKyAqIHRvIGF2b2lkIGRpc3Rpbmd1aXNoaW5nIGJl
dHdlZW4gYSBmcm9udGVuZCB0aGF0IGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGUKKyAqIG11bHRpLXF1
ZXVlIGZlYXR1cmUsIGFuZCBvbmUgdGhhdCBkb2VzLCBidXQgcmVxdWVzdGVkIG9ubHkgb25lIHF1
ZXVlLgorICoKKyAqIEZyb250ZW5kcyByZXF1ZXN0aW5nIHR3byBvciBtb3JlIHF1ZXVlcyBtdXN0
IG5vdCB3cml0ZSB0aGUgdG9wbGV2ZWwKKyAqIGV2ZW50LWNoYW5uZWwgYW5kIHJpbmctcmVmIGtl
eXMsIGluc3RlYWQgd3JpdGluZyB0aG9zZSBrZXlzIHVuZGVyIHN1Yi1rZXlzCisgKiBoYXZpbmcg
dGhlIG5hbWUgInF1ZXVlLU4iIHdoZXJlIE4gaXMgdGhlIGludGVnZXIgSUQgb2YgdGhlIHF1ZXVl
L3JpbmcgZm9yCisgKiB3aGljaCB0aG9zZSBrZXlzIGJlbG9uZy4gUXVldWVzIGFyZSBpbmRleGVk
IGZyb20gemVyby4KKyAqIEZvciBleGFtcGxlLCBhIGZyb250ZW5kIHdpdGggdHdvIHF1ZXVlcyBt
dXN0IHdyaXRlIHRoZSBmb2xsb3dpbmcgc2V0IG9mCisgKiBxdWV1ZS1yZWxhdGVkIGtleXM6Cisg
KgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92YmQvMC9tdWx0aS1xdWV1ZS1udW0tcXVldWVz
ID0gIjIiCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZiZC8wL3F1ZXVlLTAgPSAiIgorICog
L2xvY2FsL2RvbWFpbi8xL2RldmljZS92YmQvMC9xdWV1ZS0wL3JpbmctcmVmID0gIjxyaW5nLXJl
ZiMwPiIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmJkLzAvcXVldWUtMC9ldmVudC1jaGFu
bmVsID0gIjxldnRjaG4jMD4iCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZiZC8wL3F1ZXVl
LTEgPSAiIgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92YmQvMC9xdWV1ZS0xL3JpbmctcmVm
ID0gIjxyaW5nLXJlZiMxPiIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmJkLzAvcXVldWUt
MS9ldmVudC1jaGFubmVsID0gIjxldnRjaG4jMT4iCisgKgorICogSXQgaXMgYWxzbyBwb3NzaWJs
ZSB0byB1c2UgbXVsdGlwbGUgcXVldWVzL3JpbmdzIHRvZ2V0aGVyIHdpdGgKKyAqIGZlYXR1cmUg
bXVsdGktcGFnZSByaW5nIGJ1ZmZlci4KKyAqIEZvciBleGFtcGxlLCBhIGZyb250ZW5kIHJlcXVl
c3RzIHR3byBxdWV1ZXMvcmluZ3MgYW5kIHRoZSBzaXplIG9mIGVhY2ggcmluZworICogYnVmZmVy
IGlzIHR3byBwYWdlcyBtdXN0IHdyaXRlIHRoZSBmb2xsb3dpbmcgc2V0IG9mIHJlbGF0ZWQga2V5
czoKKyAqCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZiZC8wL211bHRpLXF1ZXVlLW51bS1x
dWV1ZXMgPSAiMiIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmJkLzAvcmluZy1wYWdlLW9y
ZGVyID0gIjEiCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZiZC8wL3F1ZXVlLTAgPSAiIgor
ICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92YmQvMC9xdWV1ZS0wL3JpbmctcmVmMCA9ICI8cmlu
Zy1yZWYjMD4iCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZiZC8wL3F1ZXVlLTAvcmluZy1y
ZWYxID0gIjxyaW5nLXJlZiMxPiIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmJkLzAvcXVl
dWUtMC9ldmVudC1jaGFubmVsID0gIjxldnRjaG4jMD4iCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2
aWNlL3ZiZC8wL3F1ZXVlLTEgPSAiIgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92YmQvMC9x
dWV1ZS0xL3JpbmctcmVmMCA9ICI8cmluZy1yZWYjMj4iCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2
aWNlL3ZiZC8wL3F1ZXVlLTEvcmluZy1yZWYxID0gIjxyaW5nLXJlZiMzPiIKKyAqIC9sb2NhbC9k
b21haW4vMS9kZXZpY2UvdmJkLzAvcXVldWUtMS9ldmVudC1jaGFubmVsID0gIjxldnRjaG4jMT4i
CisgKgorICovCisKKy8qCisgKiBTVEFURSBESUFHUkFNUworICoKKyAqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXJ0dXAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisg
KiBUb29sIHN0YWNrIGNyZWF0ZXMgZnJvbnQgYW5kIGJhY2sgbm9kZXMgd2l0aCBzdGF0ZSBYZW5i
dXNTdGF0ZUluaXRpYWxpc2luZy4KKyAqCisgKiBGcm9udCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQmFjaworICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAgID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIFhlbmJ1c1N0YXRlSW5pdGlh
bGlzaW5nICAgICAgICAgICAgICBYZW5idXNTdGF0ZUluaXRpYWxpc2luZworICogIG8gUXVlcnkg
dmlydHVhbCBkZXZpY2UgICAgICAgICAgICAgICBvIFF1ZXJ5IGJhY2tlbmQgZGV2aWNlIGlkZW50
aWZpY2F0aW9uCisgKiAgICBwcm9wZXJ0aWVzLiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0
YS4KKyAqICBvIFNldHVwIE9TIGRldmljZSBpbnN0YW5jZS4gICAgICAgICAgbyBPcGVuIGFuZCB2
YWxpZGF0ZSBiYWNrZW5kIGRldmljZS4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbyBQdWJsaXNoIGJhY2tlbmQgZmVhdHVyZXMgYW5kCisgKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNwb3J0IHBhcmFtZXRlcnMuCisgKiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWCisg
KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVJbml0V2Fp
dAorICoKKyAqIG8gUXVlcnkgYmFja2VuZCBmZWF0dXJlcyBhbmQKKyAqICAgdHJhbnNwb3J0IHBh
cmFtZXRlcnMuCisgKiBvIEFsbG9jYXRlIGFuZCBpbml0aWFsaXplIHRoZQorICogICByZXF1ZXN0
IHJpbmcuCisgKiBvIFB1Ymxpc2ggdHJhbnNwb3J0IHBhcmFtZXRlcnMKKyAqICAgdGhhdCB3aWxs
IGJlIGluIGVmZmVjdCBkdXJpbmcKKyAqICAgdGhpcyBjb25uZWN0aW9uLgorICogICAgICAgICAg
ICAgIHwKKyAqICAgICAgICAgICAgICB8CisgKiAgICAgICAgICAgICAgVgorICogWGVuYnVzU3Rh
dGVJbml0aWFsaXNlZAorICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbyBRdWVyeSBmcm9udGVuZCB0cmFuc3BvcnQgcGFyYW1ldGVycy4KKyAqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbyBDb25uZWN0IHRvIHRoZSByZXF1ZXN0IHJpbmcg
YW5kCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQgY2hh
bm5lbC4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbyBQdWJsaXNo
IGJhY2tlbmQgZGV2aWNlIHByb3BlcnRpZXMuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWCisgKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVDb25uZWN0ZWQKKyAqCisgKiAgbyBRdWVyeSBi
YWNrZW5kIGRldmljZSBwcm9wZXJ0aWVzLgorICogIG8gRmluYWxpemUgT1MgdmlydHVhbCBkZXZp
Y2UKKyAqICAgIGluc3RhbmNlLgorICogICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICB8
CisgKiAgICAgICAgICAgICAgVgorICogWGVuYnVzU3RhdGVDb25uZWN0ZWQKKyAqCisgKiBOb3Rl
OiBEcml2ZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgYW55IG9wdGlvbmFsIGZlYXR1cmVzLCBvciB0
aGUgbmVnb3RpYXRpb24KKyAqICAgICAgIG9mIHRyYW5zcG9ydCBwYXJhbWV0ZXJzLCBjYW4gc2tp
cCBjZXJ0YWluIHN0YXRlcyBpbiB0aGUgc3RhdGUgbWFjaGluZToKKyAqCisgKiAgICAgICBvIEEg
ZnJvbnRlbmQgbWF5IHRyYW5zaXRpb24gdG8gWGVuYnVzU3RhdGVJbml0aWFsaXNlZCB3aXRob3V0
CisgKiAgICAgICAgIHdhaXRpbmcgZm9yIHRoZSBiYWNrZW5kIHRvIGVudGVyIFhlbmJ1c1N0YXRl
SW5pdFdhaXQuICBJbiB0aGlzCisgKiAgICAgICAgIGNhc2UsIGRlZmF1bHQgdHJhbnNwb3J0IHBh
cmFtZXRlcnMgYXJlIGluIGVmZmVjdCBhbmQgYW55CisgKiAgICAgICAgIHRyYW5zcG9ydCBwYXJh
bWV0ZXJzIHB1Ymxpc2hlZCBieSB0aGUgZnJvbnRlbmQgbXVzdCBjb250YWluCisgKiAgICAgICAg
IHRoZWlyIGRlZmF1bHQgdmFsdWVzLgorICoKKyAqICAgICAgIG8gQSBiYWNrZW5kIG1heSB0cmFu
c2l0aW9uIHRvIFhlbmJ1c1N0YXRlSW5pdGlhbGlzZWQsIGJ5cGFzc2luZworICogICAgICAgICBY
ZW5idXNTdGF0ZUluaXRXYWl0LCB3aXRob3V0IHdhaXRpbmcgZm9yIHRoZSBmcm9udGVuZCB0byBm
aXJzdAorICogICAgICAgICBlbnRlciB0aGUgWGVuYnVzU3RhdGVJbml0aWFsaXNlZCBzdGF0ZS4g
IEluIHRoaXMgY2FzZSwgZGVmYXVsdAorICogICAgICAgICB0cmFuc3BvcnQgcGFyYW1ldGVycyBh
cmUgaW4gZWZmZWN0IGFuZCBhbnkgdHJhbnNwb3J0IHBhcmFtZXRlcnMKKyAqICAgICAgICAgcHVi
bGlzaGVkIGJ5IHRoZSBiYWNrZW5kIG11c3QgY29udGFpbiB0aGVpciBkZWZhdWx0IHZhbHVlcy4K
KyAqCisgKiAgICAgICBEcml2ZXJzIHRoYXQgc3VwcG9ydCBvcHRpb25hbCBmZWF0dXJlcyBhbmQv
b3IgdHJhbnNwb3J0IHBhcmFtZXRlcgorICogICAgICAgbmVnb3RpYXRpb24gbXVzdCB0b2xlcmF0
ZSB0aGVzZSBhZGRpdGlvbmFsIHN0YXRlIHRyYW5zaXRpb24gcGF0aHMuCisgKiAgICAgICBJbiBn
ZW5lcmFsIHRoaXMgbWVhbnMgcGVyZm9ybWluZyB0aGUgd29yayBvZiBhbnkgc2tpcHBlZCBzdGF0
ZQorICogICAgICAgdHJhbnNpdGlvbiwgaWYgaXQgaGFzIG5vdCBhbHJlYWR5IGJlZW4gcGVyZm9y
bWVkLCBpbiBhZGRpdGlvbiB0byB0aGUKKyAqICAgICAgIHdvcmsgYXNzb2NpYXRlZCB3aXRoIGVu
dHJ5IGludG8gdGhlIGN1cnJlbnQgc3RhdGUuCisgKi8KKworLyoKKyAqIFJFUVVFU1QgQ09ERVMu
CisgKi8KKyNkZWZpbmUgQkxLSUZfT1BfUkVBRCAgICAgICAgICAgICAgMAorI2RlZmluZSBCTEtJ
Rl9PUF9XUklURSAgICAgICAgICAgICAxCisvKgorICogQWxsIHdyaXRlcyBpc3N1ZWQgcHJpb3Ig
dG8gYSByZXF1ZXN0IHdpdGggdGhlIEJMS0lGX09QX1dSSVRFX0JBUlJJRVIKKyAqIG9wZXJhdGlv
biBjb2RlICgiYmFycmllciByZXF1ZXN0IikgbXVzdCBiZSBjb21wbGV0ZWQgcHJpb3IgdG8gdGhl
CisgKiBleGVjdXRpb24gb2YgdGhlIGJhcnJpZXIgcmVxdWVzdC4gIEFsbCB3cml0ZXMgaXNzdWVk
IGFmdGVyIHRoZSBiYXJyaWVyCisgKiByZXF1ZXN0IG11c3Qgbm90IGV4ZWN1dGUgdW50aWwgYWZ0
ZXIgdGhlIGNvbXBsZXRpb24gb2YgdGhlIGJhcnJpZXIgcmVxdWVzdC4KKyAqCisgKiBPcHRpb25h
bC4gIFNlZSAiZmVhdHVyZS1iYXJyaWVyIiBYZW5CdXMgbm9kZSBkb2N1bWVudGF0aW9uIGFib3Zl
LgorICovCisjZGVmaW5lIEJMS0lGX09QX1dSSVRFX0JBUlJJRVIgICAgIDIKKy8qCisgKiBDb21t
aXQgYW55IHVuY29tbWl0dGVkIGNvbnRlbnRzIG9mIHRoZSBiYWNraW5nIGRldmljZSdzIHZvbGF0
aWxlIGNhY2hlCisgKiB0byBzdGFibGUgc3RvcmFnZS4KKyAqCisgKiBPcHRpb25hbC4gIFNlZSAi
ZmVhdHVyZS1mbHVzaC1jYWNoZSIgWGVuQnVzIG5vZGUgZG9jdW1lbnRhdGlvbiBhYm92ZS4KKyAq
LworI2RlZmluZSBCTEtJRl9PUF9GTFVTSF9ESVNLQ0FDSEUgICAzCisvKgorICogVXNlZCBpbiBT
TEVTIHNvdXJjZXMgZm9yIGRldmljZSBzcGVjaWZpYyBjb21tYW5kIHBhY2tldAorICogY29udGFp
bmVkIHdpdGhpbiB0aGUgcmVxdWVzdC4gUmVzZXJ2ZWQgZm9yIHRoYXQgcHVycG9zZS4KKyAqLwor
I2RlZmluZSBCTEtJRl9PUF9SRVNFUlZFRF8xICAgICAgICA0CisvKgorICogSW5kaWNhdGUgdG8g
dGhlIGJhY2tlbmQgZGV2aWNlIHRoYXQgYSByZWdpb24gb2Ygc3RvcmFnZSBpcyBubyBsb25nZXIg
aW4KKyAqIHVzZSwgYW5kIG1heSBiZSBkaXNjYXJkZWQgYXQgYW55IHRpbWUgd2l0aG91dCBpbXBh
Y3QgdG8gdGhlIGNsaWVudC4gIElmCisgKiB0aGUgQkxLSUZfRElTQ0FSRF9TRUNVUkUgZmxhZyBp
cyBzZXQgb24gdGhlIHJlcXVlc3QsIGFsbCBjb3BpZXMgb2YgdGhlCisgKiBkaXNjYXJkZWQgcmVn
aW9uIG9uIHRoZSBkZXZpY2UgbXVzdCBiZSByZW5kZXJlZCB1bnJlY292ZXJhYmxlIGJlZm9yZSB0
aGUKKyAqIGNvbW1hbmQgcmV0dXJucy4KKyAqCisgKiBUaGlzIG9wZXJhdGlvbiBpcyBhbmFsb2dv
dXMgdG8gcGVyZm9ybWluZyBhIHRyaW0gKEFUQSkgb3IgdW5hbXAgKFNDU0kpLAorICogY29tbWFu
ZCBvbiBhIG5hdGl2ZSBkZXZpY2UuCisgKgorICogTW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0cmlt
L3VubWFwIG9wZXJhdGlvbnMgY2FuIGJlIGZvdW5kIGF0OgorICogaHR0cDovL3QxMy5vcmcvRG9j
dW1lbnRzL1VwbG9hZGVkRG9jdW1lbnRzL2RvY3MyMDA4LworICogICAgIGUwNzE1NHI2LURhdGFf
U2V0X01hbmFnZW1lbnRfUHJvcG9zYWxfZm9yX0FUQS1BQ1MyLmRvYworICogaHR0cDovL3d3dy5z
ZWFnYXRlLmNvbS9zdGF0aWNmaWxlcy9zdXBwb3J0L2Rpc2MvbWFudWFscy8KKyAqICAgICBJbnRl
cmZhY2UlMjBtYW51YWxzLzEwMDI5MzA2OGMucGRmCisgKgorICogT3B0aW9uYWwuICBTZWUgImZl
YXR1cmUtZGlzY2FyZCIsICJkaXNjYXJkLWFsaWdubWVudCIsCisgKiAiZGlzY2FyZC1ncmFudWxh
cml0eSIsIGFuZCAiZGlzY2FyZC1zZWN1cmUiIGluIHRoZSBYZW5CdXMgbm9kZQorICogZG9jdW1l
bnRhdGlvbiBhYm92ZS4KKyAqLworI2RlZmluZSBCTEtJRl9PUF9ESVNDQVJEICAgICAgICAgICA1
CisKKy8qCisgKiBSZWNvZ25pemVkIGlmICJmZWF0dXJlLW1heC1pbmRpcmVjdC1zZWdtZW50cyIg
aW4gcHJlc2VudCBpbiB0aGUgYmFja2VuZAorICogeGVuYnVzIGluZm8uIFRoZSAiZmVhdHVyZS1t
YXgtaW5kaXJlY3Qtc2VnbWVudHMiIG5vZGUgY29udGFpbnMgdGhlIG1heGltdW0KKyAqIG51bWJl
ciBvZiBzZWdtZW50cyBhbGxvd2VkIGJ5IHRoZSBiYWNrZW5kIHBlciByZXF1ZXN0LiBJZiB0aGUg
bm9kZSBpcworICogcHJlc2VudCwgdGhlIGZyb250ZW5kIG1pZ2h0IHVzZSBibGtpZl9yZXF1ZXN0
X2luZGlyZWN0IHN0cnVjdHMgaW4gb3JkZXIgdG8KKyAqIGlzc3VlIHJlcXVlc3RzIHdpdGggbW9y
ZSB0aGFuIEJMS0lGX01BWF9TRUdNRU5UU19QRVJfUkVRVUVTVCAoMTEpLiBUaGUKKyAqIG1heGlt
dW0gbnVtYmVyIG9mIGluZGlyZWN0IHNlZ21lbnRzIGlzIGZpeGVkIGJ5IHRoZSBiYWNrZW5kLCBi
dXQgdGhlCisgKiBmcm9udGVuZCBjYW4gaXNzdWUgcmVxdWVzdHMgd2l0aCBhbnkgbnVtYmVyIG9m
IGluZGlyZWN0IHNlZ21lbnRzIGFzIGxvbmcgYXMKKyAqIGl0J3MgbGVzcyB0aGFuIHRoZSBudW1i
ZXIgcHJvdmlkZWQgYnkgdGhlIGJhY2tlbmQuIFRoZSBpbmRpcmVjdF9ncmVmcyBmaWVsZAorICog
aW4gYmxraWZfcmVxdWVzdF9pbmRpcmVjdCBzaG91bGQgYmUgZmlsbGVkIGJ5IHRoZSBmcm9udGVu
ZCB3aXRoIHRoZQorICogZ3JhbnQgcmVmZXJlbmNlcyBvZiB0aGUgcGFnZXMgdGhhdCBhcmUgaG9s
ZGluZyB0aGUgaW5kaXJlY3Qgc2VnbWVudHMuCisgKiBUaGVzZSBwYWdlcyBhcmUgZmlsbGVkIHdp
dGggYW4gYXJyYXkgb2YgYmxraWZfcmVxdWVzdF9zZWdtZW50IHRoYXQgaG9sZCB0aGUKKyAqIGlu
Zm9ybWF0aW9uIGFib3V0IHRoZSBzZWdtZW50cy4gVGhlIG51bWJlciBvZiBpbmRpcmVjdCBwYWdl
cyB0byB1c2UgaXMKKyAqIGRldGVybWluZWQgYnkgdGhlIG51bWJlciBvZiBzZWdtZW50cyBhbiBp
bmRpcmVjdCByZXF1ZXN0IGNvbnRhaW5zLiBFdmVyeQorICogaW5kaXJlY3QgcGFnZSBjYW4gY29u
dGFpbiBhIG1heGltdW0gb2YKKyAqIChQQUdFX1NJWkUgLyBzaXplb2Yoc3RydWN0IGJsa2lmX3Jl
cXVlc3Rfc2VnbWVudCkpIHNlZ21lbnRzLCBzbyB0bworICogY2FsY3VsYXRlIHRoZSBudW1iZXIg
b2YgaW5kaXJlY3QgcGFnZXMgdG8gdXNlIHdlIGhhdmUgdG8gZG8KKyAqIGNlaWwoaW5kaXJlY3Rf
c2VnbWVudHMgLyAoUEFHRV9TSVpFIC8gc2l6ZW9mKHN0cnVjdCBibGtpZl9yZXF1ZXN0X3NlZ21l
bnQpKSkuCisgKgorICogSWYgYSBiYWNrZW5kIGRvZXMgbm90IHJlY29nbml6ZSBCTEtJRl9PUF9J
TkRJUkVDVCwgaXQgc2hvdWxkICpub3QqCisgKiBjcmVhdGUgdGhlICJmZWF0dXJlLW1heC1pbmRp
cmVjdC1zZWdtZW50cyIgbm9kZSEKKyAqLworI2RlZmluZSBCTEtJRl9PUF9JTkRJUkVDVCAgICAg
ICAgICA2CisKKy8qCisgKiBNYXhpbXVtIHNjYXR0ZXIvZ2F0aGVyIHNlZ21lbnRzIHBlciByZXF1
ZXN0LgorICogVGhpcyBpcyBjYXJlZnVsbHkgY2hvc2VuIHNvIHRoYXQgc2l6ZW9mKGJsa2lmX3Jp
bmdfdCkgPD0gUEFHRV9TSVpFLgorICogTkIuIFRoaXMgY291bGQgYmUgMTIgaWYgdGhlIHJpbmcg
aW5kZXhlcyB3ZXJlbid0IHN0b3JlZCBpbiB0aGUgc2FtZSBwYWdlLgorICovCisjZGVmaW5lIEJM
S0lGX01BWF9TRUdNRU5UU19QRVJfUkVRVUVTVCAxMQorCisvKgorICogTWF4aW11bSBudW1iZXIg
b2YgaW5kaXJlY3QgcGFnZXMgdG8gdXNlIHBlciByZXF1ZXN0LgorICovCisjZGVmaW5lIEJMS0lG
X01BWF9JTkRJUkVDVF9QQUdFU19QRVJfUkVRVUVTVCA4CisKKy8qCisgKiBOQi4gZmlyc3Rfc2Vj
dCBhbmQgbGFzdF9zZWN0IGluIGJsa2lmX3JlcXVlc3Rfc2VnbWVudCwgYXMgd2VsbCBhcworICog
c2VjdG9yX251bWJlciBpbiBibGtpZl9yZXF1ZXN0LCBhcmUgYWx3YXlzIGV4cHJlc3NlZCBpbiA1
MTItYnl0ZSB1bml0cy4KKyAqIEhvd2V2ZXIgdGhleSBtdXN0IGJlIHByb3Blcmx5IGFsaWduZWQg
dG8gdGhlIHJlYWwgc2VjdG9yIHNpemUgb2YgdGhlCisgKiBwaHlzaWNhbCBkaXNrLCB3aGljaCBp
cyByZXBvcnRlZCBpbiB0aGUgInBoeXNpY2FsLXNlY3Rvci1zaXplIiBub2RlIGluCisgKiB0aGUg
YmFja2VuZCB4ZW5idXMgaW5mby4gQWxzbyB0aGUgeGVuYnVzICJzZWN0b3JzIiBub2RlIGlzIGV4
cHJlc3NlZCBpbgorICogNTEyLWJ5dGUgdW5pdHMuCisgKi8KK3N0cnVjdCBibGtpZl9yZXF1ZXN0
X3NlZ21lbnQgeworICAgIGdyYW50X3JlZl90IGdyZWY7ICAgICAgICAvKiByZWZlcmVuY2UgdG8g
SS9PIGJ1ZmZlciBmcmFtZSAgICAgICAgKi8KKyAgICAvKiBAZmlyc3Rfc2VjdDogZmlyc3Qgc2Vj
dG9yIGluIGZyYW1lIHRvIHRyYW5zZmVyIChpbmNsdXNpdmUpLiAgICovCisgICAgLyogQGxhc3Rf
c2VjdDogbGFzdCBzZWN0b3IgaW4gZnJhbWUgdG8gdHJhbnNmZXIgKGluY2x1c2l2ZSkuICAgICAq
LworICAgIHVpbnQ4X3QgICAgIGZpcnN0X3NlY3QsIGxhc3Rfc2VjdDsKK307CisKKy8qCisgKiBT
dGFydGluZyByaW5nIGVsZW1lbnQgZm9yIGFueSBJL08gcmVxdWVzdC4KKyAqLworc3RydWN0IGJs
a2lmX3JlcXVlc3QgeworICAgIHVpbnQ4X3QgICAgICAgIG9wZXJhdGlvbjsgICAgLyogQkxLSUZf
T1BfPz8/ICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgdWludDhfdCAgICAgICAgbnJf
c2VnbWVudHM7ICAvKiBudW1iZXIgb2Ygc2VnbWVudHMgICAgICAgICAgICAgICAgICAgKi8KKyAg
ICBibGtpZl92ZGV2X3QgICBoYW5kbGU7ICAgICAgIC8qIG9ubHkgZm9yIHJlYWQvd3JpdGUgcmVx
dWVzdHMgICAgICAgICAqLworICAgIHVpbnQ2NF90ICAgICAgIGlkOyAgICAgICAgICAgLyogcHJp
dmF0ZSBndWVzdCB2YWx1ZSwgZWNob2VkIGluIHJlc3AgICovCisgICAgYmxraWZfc2VjdG9yX3Qg
c2VjdG9yX251bWJlcjsvKiBzdGFydCBzZWN0b3IgaWR4IG9uIGRpc2sgKHIvdyBvbmx5KSAgKi8K
KyAgICBzdHJ1Y3QgYmxraWZfcmVxdWVzdF9zZWdtZW50IHNlZ1tCTEtJRl9NQVhfU0VHTUVOVFNf
UEVSX1JFUVVFU1RdOworfTsKK3R5cGVkZWYgc3RydWN0IGJsa2lmX3JlcXVlc3QgYmxraWZfcmVx
dWVzdF90OworCisvKgorICogQ2FzdCB0byB0aGlzIHN0cnVjdHVyZSB3aGVuIGJsa2lmX3JlcXVl
c3Qub3BlcmF0aW9uID09IEJMS0lGX09QX0RJU0NBUkQKKyAqIHNpemVvZihzdHJ1Y3QgYmxraWZf
cmVxdWVzdF9kaXNjYXJkKSA8PSBzaXplb2Yoc3RydWN0IGJsa2lmX3JlcXVlc3QpCisgKi8KK3N0
cnVjdCBibGtpZl9yZXF1ZXN0X2Rpc2NhcmQgeworICAgIHVpbnQ4X3QgICAgICAgIG9wZXJhdGlv
bjsgICAgLyogQkxLSUZfT1BfRElTQ0FSRCAgICAgICAgICAgICAgICAgICAgICovCisgICAgdWlu
dDhfdCAgICAgICAgZmxhZzsgICAgICAgICAvKiBCTEtJRl9ESVNDQVJEX1NFQ1VSRSBvciB6ZXJv
ICAgICAgICAgKi8KKyNkZWZpbmUgQkxLSUZfRElTQ0FSRF9TRUNVUkUgKDE8PDApICAvKiBpZ25v
cmVkIGlmIGRpc2NhcmQtc2VjdXJlPTAgICAgICAqLworICAgIGJsa2lmX3ZkZXZfdCAgIGhhbmRs
ZTsgICAgICAgLyogc2FtZSBhcyBmb3IgcmVhZC93cml0ZSByZXF1ZXN0cyAgICAgICovCisgICAg
dWludDY0X3QgICAgICAgaWQ7ICAgICAgICAgICAvKiBwcml2YXRlIGd1ZXN0IHZhbHVlLCBlY2hv
ZWQgaW4gcmVzcCAgKi8KKyAgICBibGtpZl9zZWN0b3JfdCBzZWN0b3JfbnVtYmVyOy8qIHN0YXJ0
IHNlY3RvciBpZHggb24gZGlzayAgICAgICAgICAgICAqLworICAgIHVpbnQ2NF90ICAgICAgIG5y
X3NlY3RvcnM7ICAgLyogbnVtYmVyIG9mIGNvbnRpZ3VvdXMgc2VjdG9ycyB0byBkaXNjYXJkKi8K
K307Cit0eXBlZGVmIHN0cnVjdCBibGtpZl9yZXF1ZXN0X2Rpc2NhcmQgYmxraWZfcmVxdWVzdF9k
aXNjYXJkX3Q7CisKK3N0cnVjdCBibGtpZl9yZXF1ZXN0X2luZGlyZWN0IHsKKyAgICB1aW50OF90
ICAgICAgICBvcGVyYXRpb247ICAgIC8qIEJMS0lGX09QX0lORElSRUNUICAgICAgICAgICAgICAg
ICAgICAqLworICAgIHVpbnQ4X3QgICAgICAgIGluZGlyZWN0X29wOyAgLyogQkxLSUZfT1Bfe1JF
QUQvV1JJVEV9ICAgICAgICAgICAgICAgICovCisgICAgdWludDE2X3QgICAgICAgbnJfc2VnbWVu
dHM7ICAvKiBudW1iZXIgb2Ygc2VnbWVudHMgICAgICAgICAgICAgICAgICAgKi8KKyAgICB1aW50
NjRfdCAgICAgICBpZDsgICAgICAgICAgIC8qIHByaXZhdGUgZ3Vlc3QgdmFsdWUsIGVjaG9lZCBp
biByZXNwICAqLworICAgIGJsa2lmX3NlY3Rvcl90IHNlY3Rvcl9udW1iZXI7Lyogc3RhcnQgc2Vj
dG9yIGlkeCBvbiBkaXNrIChyL3cgb25seSkgICovCisgICAgYmxraWZfdmRldl90ICAgaGFuZGxl
OyAgICAgICAvKiBzYW1lIGFzIGZvciByZWFkL3dyaXRlIHJlcXVlc3RzICAgICAgKi8KKyAgICBn
cmFudF9yZWZfdCAgICBpbmRpcmVjdF9ncmVmc1tCTEtJRl9NQVhfSU5ESVJFQ1RfUEFHRVNfUEVS
X1JFUVVFU1RdOworI2lmZGVmIF9faTM4Nl9fCisgICAgdWludDY0X3QgICAgICAgcGFkOyAgICAg
ICAgICAvKiBNYWtlIGl0IDY0IGJ5dGUgYWxpZ25lZCBvbiBpMzg2ICAgICAgKi8KKyNlbmRpZgor
fTsKK3R5cGVkZWYgc3RydWN0IGJsa2lmX3JlcXVlc3RfaW5kaXJlY3QgYmxraWZfcmVxdWVzdF9p
bmRpcmVjdF90OworCitzdHJ1Y3QgYmxraWZfcmVzcG9uc2UgeworICAgIHVpbnQ2NF90ICAgICAg
ICBpZDsgICAgICAgICAgICAgIC8qIGNvcGllZCBmcm9tIHJlcXVlc3QgKi8KKyAgICB1aW50OF90
ICAgICAgICAgb3BlcmF0aW9uOyAgICAgICAvKiBjb3BpZWQgZnJvbSByZXF1ZXN0ICovCisgICAg
aW50MTZfdCAgICAgICAgIHN0YXR1czsgICAgICAgICAgLyogQkxLSUZfUlNQXz8/PyAgICAgICAq
LworfTsKK3R5cGVkZWYgc3RydWN0IGJsa2lmX3Jlc3BvbnNlIGJsa2lmX3Jlc3BvbnNlX3Q7CisK
Ky8qCisgKiBTVEFUVVMgUkVUVVJOIENPREVTLgorICovCisgLyogT3BlcmF0aW9uIG5vdCBzdXBw
b3J0ZWQgKG9ubHkgaGFwcGVucyBvbiBiYXJyaWVyIHdyaXRlcykuICovCisjZGVmaW5lIEJMS0lG
X1JTUF9FT1BOT1RTVVBQICAtMgorIC8qIE9wZXJhdGlvbiBmYWlsZWQgZm9yIHNvbWUgdW5zcGVj
aWZpZWQgcmVhc29uICgtRUlPKS4gKi8KKyNkZWZpbmUgQkxLSUZfUlNQX0VSUk9SICAgICAgIC0x
CisgLyogT3BlcmF0aW9uIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuICovCisjZGVmaW5lIEJMS0lG
X1JTUF9PS0FZICAgICAgICAgMAorCisvKgorICogR2VuZXJhdGUgYmxraWYgcmluZyBzdHJ1Y3R1
cmVzIGFuZCB0eXBlcy4KKyAqLworREVGSU5FX1JJTkdfVFlQRVMoYmxraWYsIHN0cnVjdCBibGtp
Zl9yZXF1ZXN0LCBzdHJ1Y3QgYmxraWZfcmVzcG9uc2UpOworCisjZGVmaW5lIFZESVNLX0NEUk9N
ICAgICAgICAweDEKKyNkZWZpbmUgVkRJU0tfUkVNT1ZBQkxFICAgIDB4MgorI2RlZmluZSBWRElT
S19SRUFET05MWSAgICAgMHg0CisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfSU9fQkxLSUZfSF9f
ICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5
bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBpbmRl
bnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4v
eHNtL2lvL2NvbnNvbGUuaCBiL2luY2x1ZGUveGVuL3hzbS9pby9jb25zb2xlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWY3OWVmOAotLS0gL2Rldi9udWxsCisrKyBiL2lu
Y2x1ZGUveGVuL3hzbS9pby9jb25zb2xlLmgKQEAgLTAsMCArMSw1NiBAQAorLyoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgorICogY29uc29sZS5oCisgKiAKKyAqIENvbnNvbGUgSS9PIGludGVyZmFjZSBm
b3IgWGVuIGd1ZXN0IE9TZXMuCisgKiAKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs
IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRo
aXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0
d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwg
aW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHks
IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgor
ICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8g
d2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp
Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFs
bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAq
IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO
WSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE
IFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBD
TEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP
TiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBP
RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIK
KyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDUs
IEtlaXIgRnJhc2VyCisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfSU9fQ09OU09MRV9IX18K
KyNkZWZpbmUgX19YRU5fUFVCTElDX0lPX0NPTlNPTEVfSF9fCisKK3R5cGVkZWYgdWludDMyX3Qg
WEVOQ09OU19SSU5HX0lEWDsKKworI2RlZmluZSBNQVNLX1hFTkNPTlNfSURYKGlkeCwgcmluZykg
KChpZHgpICYgKHNpemVvZihyaW5nKS0xKSkKKworc3RydWN0IHhlbmNvbnNfaW50ZXJmYWNlIHsK
KyAgICBjaGFyIGluWzEwMjRdOworICAgIGNoYXIgb3V0WzIwNDhdOworICAgIFhFTkNPTlNfUklO
R19JRFggaW5fY29ucywgaW5fcHJvZDsKKyAgICBYRU5DT05TX1JJTkdfSURYIG91dF9jb25zLCBv
dXRfcHJvZDsKK307CisKKyNpZmRlZiBYRU5fV0FOVF9GTEVYX0NPTlNPTEVfUklORworI2luY2x1
ZGUgInJpbmcuaCIKK0RFRklORV9YRU5fRkxFWF9SSU5HKHhlbmNvbnMpOworI2VuZGlmCisKKyNl
bmRpZiAvKiBfX1hFTl9QVUJMSUNfSU9fQ09OU09MRV9IX18gKi8KKworLyoKKyAqIExvY2FsIHZh
cmlhYmxlczoKKyAqIG1vZGU6IEMKKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKKyAqIGMtYmFzaWMt
b2Zmc2V0OiA0CisgKiB0YWItd2lkdGg6IDQKKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorICog
RW5kOgorICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi94c20vaW8vZGlzcGxpZi5oIGIvaW5j
bHVkZS94ZW4veHNtL2lvL2Rpc3BsaWYuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi44YTk0ZjFmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94ZW4veHNtL2lvL2Rpc3Bs
aWYuaApAQCAtMCwwICsxLDg2NCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogZGlzcGxp
Zi5oCisgKgorICogVW5pZmllZCBkaXNwbGF5IGRldmljZSBJL08gaW50ZXJmYWNlIGZvciBYZW4g
Z3Vlc3QgT1Nlcy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9m
IGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3
YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwg
dG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGlu
ZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks
IG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwg
Y29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl
IFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0
aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVz
IG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09G
VFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwg
RVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAq
IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERB
TUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O
VFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4g
Q09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFM
SU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgRVBB
TSBTeXN0ZW1zIEluYy4KKyAqCisgKiBBdXRob3JzOiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8
b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+CisgKiAgICAgICAgICBPbGVrc2FuZHIg
R3J5dHNvdiA8b2xla3NhbmRyX2dyeXRzb3ZAZXBhbS5jb20+CisgKi8KKworI2lmbmRlZiBfX1hF
Tl9QVUJMSUNfSU9fRElTUExJRl9IX18KKyNkZWZpbmUgX19YRU5fUFVCTElDX0lPX0RJU1BMSUZf
SF9fCisKKyNpbmNsdWRlICJyaW5nLmgiCisjaW5jbHVkZSAiLi4vZ3JhbnRfdGFibGUuaCIKKwor
LyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAg
UHJvdG9jb2wgdmVyc2lvbgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisjZGVmaW5lIFhF
TkRJU1BMX1BST1RPQ09MX1ZFUlNJT04gICAgICIxIgorCisvKgorICoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgorICogICAgICAgICAgICAgICAgICBNYWluIGZlYXR1cmVzIHByb3ZpZGVkIGJ5IHRoZSBw
cm90b2NvbAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVGhpcyBwcm90b2NvbCBhaW1zIHRv
IHByb3ZpZGUgYSB1bmlmaWVkIHByb3RvY29sIHdoaWNoIGZpdHMgbW9yZQorICogc29waGlzdGlj
YXRlZCB1c2UtY2FzZXMgdGhhbiBhIGZyYW1lYnVmZmVyIGRldmljZSBjYW4gaGFuZGxlLiBBdCB0
aGUKKyAqIG1vbWVudCBiYXNpYyBmdW5jdGlvbmFsaXR5IGlzIHN1cHBvcnRlZCB3aXRoIHRoZSBp
bnRlbnRpb24gdG8gYmUgZXh0ZW5kZWQ6CisgKiAgbyBtdWx0aXBsZSBkeW5hbWljYWxseSBhbGxv
Y2F0ZWQvZGVzdHJveWVkIGZyYW1lYnVmZmVycworICogIG8gYnVmZmVycyBvZiBhcmJpdHJhcnkg
c2l6ZXMKKyAqICBvIGJ1ZmZlciBhbGxvY2F0aW9uIGF0IGVpdGhlciBiYWNrIG9yIGZyb250IGVu
ZAorICogIG8gYmV0dGVyIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBpbmNsdWRpbmcgbXVsdGlwbGUg
ZGlzcGxheSBzdXBwb3J0CisgKgorICogTm90ZTogZXhpc3RpbmcgZmJpZiBjYW4gYmUgdXNlZCB0
b2dldGhlciB3aXRoIGRpc3BsaWYgcnVubmluZyBhdCB0aGUKKyAqIHNhbWUgdGltZSwgZS5nLiBv
biBMaW51eCBvbmUgcHJvdmlkZXMgZnJhbWVidWZmZXIgYW5kIGFub3RoZXIgRFJNL0tNUworICoK
KyAqIE5vdGU6IGRpc3BsYXkgcmVzb2x1dGlvbiAoWGVuU3RvcmUncyAicmVzb2x1dGlvbiIgcHJv
cGVydHkpIGRlZmluZXMKKyAqIHZpc2libGUgYXJlYSBvZiB0aGUgdmlydHVhbCBkaXNwbGF5LiBB
dCB0aGUgc2FtZSB0aW1lIHJlc29sdXRpb24gb2YKKyAqIHRoZSBkaXNwbGF5IGFuZCBmcmFtZSBi
dWZmZXJzIG1heSBkaWZmZXI6IGJ1ZmZlcnMgY2FuIGJlIHNtYWxsZXIsIGVxdWFsCisgKiBvciBi
aWdnZXIgdGhhbiB0aGUgdmlzaWJsZSBhcmVhLiBUaGlzIGlzIHRvIGVuYWJsZSB1c2UtY2FzZXMs
IHdoZXJlIGJhY2tlbmQKKyAqIG1heSBkbyBzb21lIHBvc3QtcHJvY2Vzc2luZyBvZiB0aGUgZGlz
cGxheSBhbmQgZnJhbWUgYnVmZmVycyBzdXBwbGllZCwKKyAqIGUuZy4gdGhvc2UgYnVmZmVycyBj
YW4gYmUganVzdCBhIHBhcnQgb2YgdGhlIGZpbmFsIGNvbXBvc2l0aW9uLgorICoKKyAqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgRGlyZWN0aW9uIG9mIGlt
cHJvdmVtZW50cworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRnV0dXJlIGV4dGVuc2lvbnMg
dG8gdGhlIGV4aXN0aW5nIHByb3RvY29sIG1heSBpbmNsdWRlOgorICogIG8gZGlzcGxheS9jb25u
ZWN0b3IgY2xvbmluZworICogIG8gYWxsb2NhdGlvbiBvZiBvYmplY3RzIG90aGVyIHRoYW4gZGlz
cGxheSBidWZmZXJzCisgKiAgbyBwbGFuZS9vdmVybGF5IHN1cHBvcnQKKyAqICBvIHNjYWxpbmcg
c3VwcG9ydAorICogIG8gcm90YXRpb24gc3VwcG9ydAorICoKKyAqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKKyAqICAgICAgICAgICAgICAgICAgRmVhdHVyZSBhbmQgUGFyYW1ldGVyIE5lZ290aWF0aW9u
CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogRnJvbnQtPmJhY2sgbm90aWZpY2F0aW9u
czogd2hlbiBlbnF1ZXVpbmcgYSBuZXcgcmVxdWVzdCwgc2VuZGluZyBhCisgKiBub3RpZmljYXRp
b24gY2FuIGJlIG1hZGUgY29uZGl0aW9uYWwgb24geGVuZGlzcGxfcmVxIChpLmUuLCB0aGUgZ2Vu
ZXJpYworICogaG9sZC1vZmYgbWVjaGFuaXNtIHByb3ZpZGVkIGJ5IHRoZSByaW5nIG1hY3Jvcyku
IEJhY2tlbmRzIG11c3Qgc2V0CisgKiB4ZW5kaXNwbF9yZXEgYXBwcm9wcmlhdGVseSAoZS5nLiwg
dXNpbmcgUklOR19GSU5BTF9DSEVDS19GT1JfUkVRVUVTVFMoKSkuCisgKgorICogQmFjay0+ZnJv
bnQgbm90aWZpY2F0aW9uczogd2hlbiBlbnF1ZXVpbmcgYSBuZXcgcmVzcG9uc2UsIHNlbmRpbmcg
YQorICogbm90aWZpY2F0aW9uIGNhbiBiZSBtYWRlIGNvbmRpdGlvbmFsIG9uIHhlbmRpc3BsX3Jl
c3AgKGkuZS4sIHRoZSBnZW5lcmljCisgKiBob2xkLW9mZiBtZWNoYW5pc20gcHJvdmlkZWQgYnkg
dGhlIHJpbmcgbWFjcm9zKS4gRnJvbnRlbmRzIG11c3Qgc2V0CisgKiB4ZW5kaXNwbF9yZXNwIGFw
cHJvcHJpYXRlbHkgKGUuZy4sIHVzaW5nIFJJTkdfRklOQUxfQ0hFQ0tfRk9SX1JFU1BPTlNFUygp
KS4KKyAqCisgKiBUaGUgdHdvIGhhbHZlcyBvZiBhIHBhcmEtdmlydHVhbCBkaXNwbGF5IGRyaXZl
ciB1dGlsaXplIG5vZGVzIHdpdGhpbgorICogWGVuU3RvcmUgdG8gY29tbXVuaWNhdGUgY2FwYWJp
bGl0aWVzIGFuZCB0byBuZWdvdGlhdGUgb3BlcmF0aW5nIHBhcmFtZXRlcnMuCisgKiBUaGlzIHNl
Y3Rpb24gZW51bWVyYXRlcyB0aGVzZSBub2RlcyB3aGljaCByZXNpZGUgaW4gdGhlIHJlc3BlY3Rp
dmUgZnJvbnQgYW5kCisgKiBiYWNrZW5kIHBvcnRpb25zIG9mIFhlblN0b3JlLCBmb2xsb3dpbmcg
dGhlIFhlbkJ1cyBjb252ZW50aW9uLgorICoKKyAqIEFsbCBkYXRhIGluIFhlblN0b3JlIGlzIHN0
b3JlZCBhcyBzdHJpbmdzLiBOb2RlcyBzcGVjaWZ5aW5nIG51bWVyaWMKKyAqIHZhbHVlcyBhcmUg
ZW5jb2RlZCBpbiBkZWNpbWFsLiBJbnRlZ2VyIHZhbHVlIHJhbmdlcyBsaXN0ZWQgYmVsb3cgYXJl
CisgKiBleHByZXNzZWQgYXMgZml4ZWQgc2l6ZWQgaW50ZWdlciB0eXBlcyBjYXBhYmxlIG9mIHN0
b3JpbmcgdGhlIGNvbnZlcnNpb24KKyAqIG9mIGEgcHJvcGVybHkgZm9ybWF0ZWQgbm9kZSBzdHJp
bmcsIHdpdGhvdXQgbG9zcyBvZiBpbmZvcm1hdGlvbi4KKyAqCisgKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgIEV4YW1wbGUgY29uZmlndXJhdGlvbgorICoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgorICoKKyAqIE5vdGU6IGRlcGVuZGluZyBvbiB0aGUgdXNlLWNh
c2UgYmFja2VuZCBjYW4gZXhwb3NlIG1vcmUgZGlzcGxheSBjb25uZWN0b3JzCisgKiB0aGFuIHRo
ZSB1bmRlcmx5aW5nIEhXIHBoeXNpY2FsbHkgaGFzIGJ5IGVtcGxveWluZyBTVyBncmFwaGljcyBj
b21wb3NpdG9ycworICoKKyAqIFRoaXMgaXMgYW4gZXhhbXBsZSBvZiBiYWNrZW5kIGFuZCBmcm9u
dGVuZCBjb25maWd1cmF0aW9uOgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tIEJhY2tlbmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAv
bG9jYWwvZG9tYWluLzAvYmFja2VuZC92ZGlzcGwvMS8wL2Zyb250ZW5kLWlkID0gIjEiCisgKiAv
bG9jYWwvZG9tYWluLzAvYmFja2VuZC92ZGlzcGwvMS8wL2Zyb250ZW5kID0gIi9sb2NhbC9kb21h
aW4vMS9kZXZpY2UvdmRpc3BsLzAiCisgKiAvbG9jYWwvZG9tYWluLzAvYmFja2VuZC92ZGlzcGwv
MS8wL3N0YXRlID0gIjQiCisgKiAvbG9jYWwvZG9tYWluLzAvYmFja2VuZC92ZGlzcGwvMS8wL3Zl
cnNpb25zID0gIjEsMiIKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBG
cm9udGVuZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogL2xvY2Fs
L2RvbWFpbi8xL2RldmljZS92ZGlzcGwvMC9iYWNrZW5kLWlkID0gIjAiCisgKiAvbG9jYWwvZG9t
YWluLzEvZGV2aWNlL3ZkaXNwbC8wL2JhY2tlbmQgPSAiL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQv
dmRpc3BsLzEvMCIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmRpc3BsLzAvc3RhdGUgPSAi
NCIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmRpc3BsLzAvdmVyc2lvbiA9ICIxIgorICog
L2xvY2FsL2RvbWFpbi8xL2RldmljZS92ZGlzcGwvMC9iZS1hbGxvYyA9ICIxIgorICoKKyAqLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ29ubmVjdG9yIDAgY29uZmlndXJhdGlvbiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZkaXNwbC8w
LzAvcmVzb2x1dGlvbiA9ICIxOTIweDEwODAiCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3Zk
aXNwbC8wLzAvcmVxLXJpbmctcmVmID0gIjI4MzIiCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNl
L3ZkaXNwbC8wLzAvcmVxLWV2ZW50LWNoYW5uZWwgPSAiMTUiCisgKiAvbG9jYWwvZG9tYWluLzEv
ZGV2aWNlL3ZkaXNwbC8wLzAvZXZ0LXJpbmctcmVmID0gIjM4NyIKKyAqIC9sb2NhbC9kb21haW4v
MS9kZXZpY2UvdmRpc3BsLzAvMC9ldnQtZXZlbnQtY2hhbm5lbCA9ICIxNiIKKyAqCisgKi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIENvbm5lY3RvciAxIGNvbmZpZ3VyYXRpb24gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisgKgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92ZGlzcGwvMC8x
L3Jlc29sdXRpb24gPSAiODAweDYwMCIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmRpc3Bs
LzAvMS9yZXEtcmluZy1yZWYgPSAiMjgzMyIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmRp
c3BsLzAvMS9yZXEtZXZlbnQtY2hhbm5lbCA9ICIxNyIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZp
Y2UvdmRpc3BsLzAvMS9ldnQtcmluZy1yZWYgPSAiMzg4IgorICogL2xvY2FsL2RvbWFpbi8xL2Rl
dmljZS92ZGlzcGwvMC8xL2V2dC1ldmVudC1jaGFubmVsID0gIjE4IgorICoKKyAqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhY2tlbmQgWGVuQnVz
IE5vZGVzCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSBQcm90b2NvbCB2ZXJzaW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorICoKKyAqIHZlcnNpb25zCisgKiAgICAgIFZhbHVlczogICAgICAgICA8c3RyaW5nPgorICoK
KyAqICAgICAgTGlzdCBvZiBYRU5ESVNQTF9MSVNUX1NFUEFSQVRPUiBzZXBhcmF0ZWQgcHJvdG9j
b2wgdmVyc2lvbnMgc3VwcG9ydGVkCisgKiAgICAgIGJ5IHRoZSBiYWNrZW5kLiBGb3IgZXhhbXBs
ZSAiMSwyLDMiLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEZyb250ZW5kIFhlbkJ1cyBOb2RlcworICoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQWRkcmVzc2luZyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBkb20taWQKKyAqICAgICAgVmFs
dWVzOiAgICAgICAgIDx1aW50MTZfdD4KKyAqCisgKiAgICAgIERvbWFpbiBpZGVudGlmaWVyLgor
ICoKKyAqIGRldi1pZAorICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQxNl90PgorICoKKyAq
ICAgICAgRGV2aWNlIGlkZW50aWZpZXIuCisgKgorICogY29ubi1pZHgKKyAqICAgICAgVmFsdWVz
OiAgICAgICAgIDx1aW50OF90PgorICoKKyAqICAgICAgWmVybyBiYXNlZCBjb250aWdvdXMgaW5k
ZXggb2YgdGhlIGNvbm5lY3Rvci4KKyAqICAgICAgL2xvY2FsL2RvbWFpbi88ZG9tLWlkPi9kZXZp
Y2UvdmRpc3BsLzxkZXYtaWQ+Lzxjb25uLWlkeD4vLi4uCisgKgorICotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSBQcm90b2NvbCB2ZXJzaW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorICoKKyAqIHZlcnNpb24KKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDxzdHJpbmc+Cisg
KgorICogICAgICBQcm90b2NvbCB2ZXJzaW9uLCBjaG9zZW4gYW1vbmcgdGhlIG9uZXMgc3VwcG9y
dGVkIGJ5IHRoZSBiYWNrZW5kLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBCYWNr
ZW5kIGJ1ZmZlciBhbGxvY2F0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBi
ZS1hbGxvYworICogICAgICBWYWx1ZXM6ICAgICAgICAgIjAiLCAiMSIKKyAqCisgKiAgICAgIElm
IHZhbHVlIGlzIHNldCB0byAiMSIsIHRoZW4gYmFja2VuZCBjYW4gYmUgYSBidWZmZXIgcHJvdmlk
ZXIvYWxsb2NhdG9yCisgKiAgICAgIGZvciB0aGlzIGRvbWFpbiBkdXJpbmcgWEVORElTUExfT1Bf
REJVRl9DUkVBVEUgb3BlcmF0aW9uIChzZWUgYmVsb3cKKyAqICAgICAgZm9yIG5lZ290aWF0aW9u
KS4KKyAqICAgICAgSWYgdmFsdWUgaXMgbm90ICIxIiBvciBvbWl0dGVkIGZyb250ZW5kIG11c3Qg
YWxsb2NhdGUgYnVmZmVycyBpdHNlbGYuCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSBDb25uZWN0b3Igc2V0dGluZ3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoK
KyAqIHJlc29sdXRpb24KKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx3aWR0aCwgdWludDMyX3Q+
eDxoZWlnaHQsIHVpbnQzMl90PgorICoKKyAqICAgICAgV2lkdGggYW5kIGhlaWdodCBvZiB0aGUg
Y29ubmVjdG9yIGluIHBpeGVscyBzZXBhcmF0ZWQgYnkKKyAqICAgICAgWEVORElTUExfUkVTT0xV
VElPTl9TRVBBUkFUT1IuIFRoaXMgZGVmaW5lcyB2aXNpYmxlIGFyZWEgb2YgdGhlCisgKiAgICAg
IGRpc3BsYXkuCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0gQ29ubmVjdG9yIFJlcXVlc3QgVHJh
bnNwb3J0IFBhcmFtZXRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIFRoaXMgY29tbXVu
aWNhdGlvbiBwYXRoIGlzIHVzZWQgdG8gZGVsaXZlciByZXF1ZXN0cyBmcm9tIGZyb250ZW5kIHRv
IGJhY2tlbmQKKyAqIGFuZCBnZXQgdGhlIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2VzIGZyb20gYmFj
a2VuZCB0byBmcm9udGVuZCwKKyAqIHNldCB1cCBwZXIgY29ubmVjdG9yLgorICoKKyAqIHJlcS1l
dmVudC1jaGFubmVsCisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludDMyX3Q+CisgKgorICog
ICAgICBUaGUgaWRlbnRpZmllciBvZiB0aGUgWGVuIGNvbm5lY3RvcidzIGNvbnRyb2wgZXZlbnQg
Y2hhbm5lbAorICogICAgICB1c2VkIHRvIHNpZ25hbCBhY3Rpdml0eSBpbiB0aGUgcmluZyBidWZm
ZXIuCisgKgorICogcmVxLXJpbmctcmVmCisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludDMy
X3Q+CisgKgorICogICAgICBUaGUgWGVuIGdyYW50IHJlZmVyZW5jZSBncmFudGluZyBwZXJtaXNz
aW9uIGZvciB0aGUgYmFja2VuZCB0byBtYXAKKyAqICAgICAgYSBzb2xlIHBhZ2Ugb2YgY29ubmVj
dG9yJ3MgY29udHJvbCByaW5nIGJ1ZmZlci4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0gQ29u
bmVjdG9yIEV2ZW50IFRyYW5zcG9ydCBQYXJhbWV0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisg
KgorICogVGhpcyBjb21tdW5pY2F0aW9uIHBhdGggaXMgdXNlZCB0byBkZWxpdmVyIGFzeW5jaHJv
bm91cyBldmVudHMgZnJvbSBiYWNrZW5kCisgKiB0byBmcm9udGVuZCwgc2V0IHVwIHBlciBjb25u
ZWN0b3IuCisgKgorICogZXZ0LWV2ZW50LWNoYW5uZWwKKyAqICAgICAgVmFsdWVzOiAgICAgICAg
IDx1aW50MzJfdD4KKyAqCisgKiAgICAgIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBYZW4gY29ubmVj
dG9yJ3MgZXZlbnQgY2hhbm5lbAorICogICAgICB1c2VkIHRvIHNpZ25hbCBhY3Rpdml0eSBpbiB0
aGUgcmluZyBidWZmZXIuCisgKgorICogZXZ0LXJpbmctcmVmCisgKiAgICAgIFZhbHVlczogICAg
ICAgICA8dWludDMyX3Q+CisgKgorICogICAgICBUaGUgWGVuIGdyYW50IHJlZmVyZW5jZSBncmFu
dGluZyBwZXJtaXNzaW9uIGZvciB0aGUgYmFja2VuZCB0byBtYXAKKyAqICAgICAgYSBzb2xlIHBh
Z2Ugb2YgY29ubmVjdG9yJ3MgZXZlbnQgcmluZyBidWZmZXIuCisgKi8KKworLyoKKyAqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNUQVRFIERJ
QUdSQU1TCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogVG9vbCBzdGFjayBjcmVhdGVz
IGZyb250IGFuZCBiYWNrIHN0YXRlIG5vZGVzIHdpdGggaW5pdGlhbCBzdGF0ZQorICogWGVuYnVz
U3RhdGVJbml0aWFsaXNpbmcuCisgKiBUb29sIHN0YWNrIGNyZWF0ZXMgYW5kIHNldHMgdXAgZnJv
bnRlbmQgZGlzcGxheSBjb25maWd1cmF0aW9uCisgKiBub2RlcyBwZXIgZG9tYWluLgorICoKKyAq
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTm9ybWFsIGZsb3cgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBGcm9udCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQmFjaworICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAgID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIFhlbmJ1c1N0YXRlSW5pdGlh
bGlzaW5nICAgICAgICAgICAgICBYZW5idXNTdGF0ZUluaXRpYWxpc2luZworICogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvIFF1ZXJ5IGJhY2tlbmQgZGV2aWNlIGlkZW50
aWZpY2F0aW9uCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0
YS4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbyBPcGVuIGFuZCB2
YWxpZGF0ZSBiYWNrZW5kIGRldmljZS4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFYKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYZW5i
dXNTdGF0ZUluaXRXYWl0CisgKgorICogbyBRdWVyeSBmcm9udGVuZCBjb25maWd1cmF0aW9uCisg
KiBvIEFsbG9jYXRlIGFuZCBpbml0aWFsaXplCisgKiAgIGV2ZW50IGNoYW5uZWxzIHBlciBjb25m
aWd1cmVkCisgKiAgIGNvbm5lY3Rvci4KKyAqIG8gUHVibGlzaCB0cmFuc3BvcnQgcGFyYW1ldGVy
cworICogICB0aGF0IHdpbGwgYmUgaW4gZWZmZWN0IGR1cmluZworICogICB0aGlzIGNvbm5lY3Rp
b24uCisgKiAgICAgICAgICAgICAgfAorICogICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAg
ICBWCisgKiBYZW5idXNTdGF0ZUluaXRpYWxpc2VkCisgKgorICogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBvIFF1ZXJ5IGZyb250ZW5kIHRyYW5zcG9ydCBwYXJhbWV0ZXJz
LgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvIENvbm5lY3QgdG8g
dGhlIGV2ZW50IGNoYW5uZWxzLgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1c1N0
YXRlQ29ubmVjdGVkCisgKgorICogIG8gQ3JlYXRlIGFuZCBpbml0aWFsaXplIE9TCisgKiAgICB2
aXJ0dWFsIGRpc3BsYXkgY29ubmVjdG9ycworICogICAgYXMgcGVyIGNvbmZpZ3VyYXRpb24uCisg
KiAgICAgICAgICAgICAgfAorICogICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICBWCisg
KiBYZW5idXNTdGF0ZUNvbm5lY3RlZAorICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBYZW5idXNTdGF0ZVVua25vd24KKyAqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBYZW5idXNTdGF0ZUNsb3NlZAorICogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlQ2xvc2luZworICogbyBSZW1vdmUgdmlydHVhbCBk
aXNwbGF5IGRldmljZQorICogbyBSZW1vdmUgZXZlbnQgY2hhbm5lbHMKKyAqICAgICAgICAgICAg
ICB8CisgKiAgICAgICAgICAgICAgfAorICogICAgICAgICAgICAgIFYKKyAqIFhlbmJ1c1N0YXRl
Q2xvc2VkCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFJlY292ZXJ5IGZs
b3cgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIEluIGNhc2Ugb2YgZnJv
bnRlbmQgdW5yZWNvdmVyYWJsZSBlcnJvcnMgYmFja2VuZCBoYW5kbGVzIHRoYXQgYXMKKyAqIGlm
IGZyb250ZW5kIGdvZXMgaW50byB0aGUgWGVuYnVzU3RhdGVDbG9zZWQgc3RhdGUuCisgKgorICog
SW4gY2FzZSBvZiBiYWNrZW5kIHVucmVjb3ZlcmFibGUgZXJyb3JzIGZyb250ZW5kIHRyaWVzIHJl
bW92aW5nCisgKiB0aGUgdmlydHVhbGl6ZWQgZGV2aWNlLiBJZiB0aGlzIGlzIHBvc3NpYmxlIGF0
IHRoZSBtb21lbnQgb2YgZXJyb3IsCisgKiB0aGVuIGZyb250ZW5kIGdvZXMgaW50byB0aGUgWGVu
YnVzU3RhdGVJbml0aWFsaXNpbmcgc3RhdGUgYW5kIGlzIHJlYWR5IGZvcgorICogbmV3IGNvbm5l
Y3Rpb24gd2l0aCBiYWNrZW5kLiBJZiB0aGUgdmlydHVhbGl6ZWQgZGV2aWNlIGlzIHN0aWxsIGlu
IHVzZSBhbmQKKyAqIGNhbm5vdCBiZSByZW1vdmVkLCB0aGVuIGZyb250ZW5kIGdvZXMgaW50byB0
aGUgWGVuYnVzU3RhdGVSZWNvbmZpZ3VyaW5nIHN0YXRlCisgKiB1bnRpbCBlaXRoZXIgdGhlIHZp
cnR1YWxpemVkIGRldmljZSBpcyByZW1vdmVkIG9yIGJhY2tlbmQgaW5pdGlhdGVzIGEgbmV3Cisg
KiBjb25uZWN0aW9uLiBPbiB0aGUgdmlydHVhbGl6ZWQgZGV2aWNlIHJlbW92YWwgZnJvbnRlbmQg
Z29lcyBpbnRvIHRoZQorICogWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcgc3RhdGUuCisgKgorICog
Tm90ZSBvbiBYZW5idXNTdGF0ZVJlY29uZmlndXJpbmcgc3RhdGUgb2YgdGhlIGZyb250ZW5kOiBp
ZiBiYWNrZW5kIGhhcworICogdW5yZWNvdmVyYWJsZSBlcnJvcnMgdGhlbiBmcm9udGVuZCBjYW5u
b3Qgc2VuZCByZXF1ZXN0cyB0byB0aGUgYmFja2VuZAorICogYW5kIHRodXMgY2Fubm90IHByb3Zp
ZGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgdmlydHVhbGl6ZWQgZGV2aWNlIGFueW1vcmUuCisgKiBB
ZnRlciBiYWNrZW5kIGlzIGJhY2sgdG8gbm9ybWFsIHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UgbWF5
IHN0aWxsIGhvbGQgc29tZQorICogc3RhdGU6IGNvbmZpZ3VyYXRpb24gaW4gdXNlLCBhbGxvY2F0
ZWQgYnVmZmVycywgY2xpZW50IGFwcGxpY2F0aW9uIHN0YXRlIGV0Yy4KKyAqIEluIG1vc3QgY2Fz
ZXMsIHRoaXMgd2lsbCByZXF1aXJlIGZyb250ZW5kIHRvIGltcGxlbWVudCBjb21wbGV4IHJlY292
ZXJ5CisgKiByZWNvbm5lY3QgbG9naWMuIEluc3RlYWQsIGJ5IGdvaW5nIGludG8gWGVuYnVzU3Rh
dGVSZWNvbmZpZ3VyaW5nIHN0YXRlLAorICogZnJvbnRlbmQgd2lsbCBtYWtlIHN1cmUgbm8gbmV3
IGNsaWVudHMgb2YgdGhlIHZpcnR1YWxpemVkIGRldmljZSBhcmUKKyAqIGFjY2VwdGVkLCBhbGxv
dyBleGlzdGluZyBjbGllbnQocykgdG8gZXhpdCBncmFjZWZ1bGx5IGJ5IHNpZ25hbGluZyBlcnJv
cgorICogc3RhdGUgZXRjLgorICogT25jZSBhbGwgdGhlIGNsaWVudHMgYXJlIGdvbmUgZnJvbnRl
bmQgY2FuIHJlaW5pdGlhbGl6ZSB0aGUgdmlydHVhbGl6ZWQKKyAqIGRldmljZSBhbmQgZ2V0IGlu
dG8gWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcgc3RhdGUgYWdhaW4gc2lnbmFsaW5nIHRoZQorICog
YmFja2VuZCB0aGF0IGEgbmV3IGNvbm5lY3Rpb24gY2FuIGJlIG1hZGUuCisgKgorICogVGhlcmUg
YXJlIG11bHRpcGxlIGNvbmRpdGlvbnMgcG9zc2libGUgdW5kZXIgd2hpY2ggZnJvbnRlbmQgd2ls
bCBnbyBmcm9tCisgKiBYZW5idXNTdGF0ZVJlY29uZmlndXJpbmcgaW50byBYZW5idXNTdGF0ZUlu
aXRpYWxpc2luZywgc29tZSBvZiB0aGVtIGFyZSBPUworICogc3BlY2lmaWMuIEZvciBleGFtcGxl
OgorICogMS4gVGhlIHVuZGVybHlpbmcgT1MgZnJhbWV3b3JrIG1heSBwcm92aWRlIGNhbGxiYWNr
cyB0byBzaWduYWwgdGhhdCB0aGUgbGFzdAorICogICAgY2xpZW50IG9mIHRoZSB2aXJ0dWFsaXpl
ZCBkZXZpY2UgaGFzIGdvbmUgYW5kIHRoZSBkZXZpY2UgY2FuIGJlIHJlbW92ZWQKKyAqIDIuIEZy
b250ZW5kIGNhbiBzY2hlZHVsZSBhIGRlZmVycmVkIHdvcmsgKHRpbWVyL3Rhc2tsZXQvd29ya3F1
ZXVlKQorICogICAgdG8gcGVyaW9kaWNhbGx5IGNoZWNrIGlmIHRoaXMgaXMgdGhlIHJpZ2h0IHRp
bWUgdG8gcmUtdHJ5IHJlbW92YWwgb2YKKyAqICAgIHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UuCisg
KiAzLiBCeSBhbnkgb3RoZXIgbWVhbnMuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFUVVFU1QgQ09ERVMKKyAqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKKyAqIFJlcXVlc3QgY29kZXMgWzA7IDE1XSBhcmUgcmVzZXJ2ZWQgYW5kIG11c3Qg
bm90IGJlIHVzZWQKKyAqLworCisjZGVmaW5lIFhFTkRJU1BMX09QX0RCVUZfQ1JFQVRFICAgICAg
IDB4MTAKKyNkZWZpbmUgWEVORElTUExfT1BfREJVRl9ERVNUUk9ZICAgICAgMHgxMQorI2RlZmlu
ZSBYRU5ESVNQTF9PUF9GQl9BVFRBQ0ggICAgICAgICAweDEyCisjZGVmaW5lIFhFTkRJU1BMX09Q
X0ZCX0RFVEFDSCAgICAgICAgIDB4MTMKKyNkZWZpbmUgWEVORElTUExfT1BfU0VUX0NPTkZJRyAg
ICAgICAgMHgxNAorI2RlZmluZSBYRU5ESVNQTF9PUF9QR19GTElQICAgICAgICAgICAweDE1CisK
Ky8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEVWRU5UIENPREVTCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKyNkZWZpbmUg
WEVORElTUExfRVZUX1BHX0ZMSVAgICAgICAgICAgMHgwMAorCisvKgorICoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgorICogICAgICAgICAgICAgICBYRU5TVE9SRSBGSUVMRCBBTkQgUEFUSCBOQU1FIFNU
UklOR1MsIEhFTFBFUlMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworI2RlZmluZSBYRU5E
SVNQTF9EUklWRVJfTkFNRSAgICAgICAgICAidmRpc3BsIgorCisjZGVmaW5lIFhFTkRJU1BMX0xJ
U1RfU0VQQVJBVE9SICAgICAgICIsIgorI2RlZmluZSBYRU5ESVNQTF9SRVNPTFVUSU9OX1NFUEFS
QVRPUiAieCIKKworI2RlZmluZSBYRU5ESVNQTF9GSUVMRF9CRV9WRVJTSU9OUyAgICAidmVyc2lv
bnMiCisjZGVmaW5lIFhFTkRJU1BMX0ZJRUxEX0ZFX1ZFUlNJT04gICAgICJ2ZXJzaW9uIgorI2Rl
ZmluZSBYRU5ESVNQTF9GSUVMRF9SRVFfUklOR19SRUYgICAicmVxLXJpbmctcmVmIgorI2RlZmlu
ZSBYRU5ESVNQTF9GSUVMRF9SRVFfQ0hBTk5FTCAgICAicmVxLWV2ZW50LWNoYW5uZWwiCisjZGVm
aW5lIFhFTkRJU1BMX0ZJRUxEX0VWVF9SSU5HX1JFRiAgICJldnQtcmluZy1yZWYiCisjZGVmaW5l
IFhFTkRJU1BMX0ZJRUxEX0VWVF9DSEFOTkVMICAgICJldnQtZXZlbnQtY2hhbm5lbCIKKyNkZWZp
bmUgWEVORElTUExfRklFTERfUkVTT0xVVElPTiAgICAgInJlc29sdXRpb24iCisjZGVmaW5lIFhF
TkRJU1BMX0ZJRUxEX0JFX0FMTE9DICAgICAgICJiZS1hbGxvYyIKKworLyoKKyAqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBTVEFUVVMgUkVUVVJOIENP
REVTCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogU3RhdHVzIHJldHVybiBjb2RlIGlz
IHplcm8gb24gc3VjY2VzcyBhbmQgLVhFTl9FWFggb24gZmFpbHVyZS4KKyAqCisgKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFzc3VtcHRpb25z
CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCisgKiBvIHVzYWdlIG9mIGdyYW50IHJlZmVyZW5jZSAw
IGFzIGludmFsaWQgZ3JhbnQgcmVmZXJlbmNlOgorICogICBncmFudCByZWZlcmVuY2UgMCBpcyB2
YWxpZCwgYnV0IG5ldmVyIGV4cG9zZWQgdG8gYSBQViBkcml2ZXIsCisgKiAgIGJlY2F1c2Ugb2Yg
dGhlIGZhY3QgaXQgaXMgYWxyZWFkeSBpbiB1c2UvcmVzZXJ2ZWQgYnkgdGhlIFBWIGNvbnNvbGUu
CisgKiBvIGFsbCByZWZlcmVuY2VzIGluIHRoaXMgZG9jdW1lbnQgdG8gcGFnZSBzaXplcyBtdXN0
IGJlIHRyZWF0ZWQKKyAqICAgYXMgcGFnZXMgb2Ygc2l6ZSBYRU5fUEFHRV9TSVpFIHVubGVzcyBv
dGhlcndpc2Ugbm90ZWQuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgRGVz
Y3JpcHRpb24gb2YgdGhlIHByb3RvY29sIGJldHdlZW4gZnJvbnRlbmQgYW5kIGJhY2tlbmQgZHJp
dmVyCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogVGhlIHR3byBoYWx2ZXMgb2YgYSBQ
YXJhLXZpcnR1YWwgZGlzcGxheSBkcml2ZXIgY29tbXVuaWNhdGUgd2l0aAorICogZWFjaCBvdGhl
ciB1c2luZyBzaGFyZWQgcGFnZXMgYW5kIGV2ZW50IGNoYW5uZWxzLgorICogU2hhcmVkIHBhZ2Ug
Y29udGFpbnMgYSByaW5nIHdpdGggcmVxdWVzdC9yZXNwb25zZSBwYWNrZXRzLgorICoKKyAqIEFs
bCByZXNlcnZlZCBmaWVsZHMgaW4gdGhlIHN0cnVjdHVyZXMgYmVsb3cgbXVzdCBiZSAwLgorICog
RGlzcGxheSBidWZmZXJzJ3MgY29va2llIG9mIHZhbHVlIDAgaXMgdHJlYXRlZCBhcyBpbnZhbGlk
LgorICogRnJhbWVidWZmZXIncyBjb29raWUgb2YgdmFsdWUgMCBpcyB0cmVhdGVkIGFzIGludmFs
aWQuCisgKgorICogRm9yIGFsbCByZXF1ZXN0L3Jlc3BvbnNlL2V2ZW50IHBhY2tldHMgdGhhdCB1
c2UgY29va2llczoKKyAqICAgZGJ1Zl9jb29raWUgLSB1aW50NjRfdCwgdW5pcXVlIHRvIGd1ZXN0
IGRvbWFpbiB2YWx1ZSB1c2VkIGJ5IHRoZSBiYWNrZW5kCisgKiAgICAgdG8gbWFwIHJlbW90ZSBk
aXNwbGF5IGJ1ZmZlciB0byBpdHMgbG9jYWwgb25lCisgKiAgIGZiX2Nvb2tpZSAtIHVpbnQ2NF90
LCB1bmlxdWUgdG8gZ3Vlc3QgZG9tYWluIHZhbHVlIHVzZWQgYnkgdGhlIGJhY2tlbmQKKyAqICAg
ICB0byBtYXAgcmVtb3RlIGZyYW1lYnVmZmVyIHRvIGl0cyBsb2NhbCBvbmUKKyAqCisgKi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUmVxdWVzdHMgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisgKgorICogQWxsIHJlcXVlc3RzL3Jlc3BvbnNlcywgd2hpY2ggYXJl
IG5vdCBjb25uZWN0b3Igc3BlY2lmaWMsIG11c3QgYmUgc2VudCBvdmVyCisgKiBjb250cm9sIHJp
bmcgb2YgdGhlIGNvbm5lY3RvciB3aGljaCBoYXMgdGhlIGluZGV4IHZhbHVlIG9mIDA6CisgKiAg
IC9sb2NhbC9kb21haW4vPGRvbS1pZD4vZGV2aWNlL3ZkaXNwbC88ZGV2LWlkPi8wL3JlcS1yaW5n
LXJlZgorICoKKyAqIEFsbCByZXF1ZXN0IHBhY2tldHMgaGF2ZSB0aGUgc2FtZSBsZW5ndGggKDY0
IG9jdGV0cykKKyAqIEFsbCByZXF1ZXN0IHBhY2tldHMgaGF2ZSBjb21tb24gaGVhZGVyOgorICog
ICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAg
ICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgaWQg
ICAgICAgICAgICAgICAgfCAgICBvcGVyYXRpb24gICB8ICAgcmVzZXJ2ZWQgICAgIHwgNAorICog
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiAgIGlk
IC0gdWludDE2X3QsIHByaXZhdGUgZ3Vlc3QgdmFsdWUsIGVjaG9lZCBpbiByZXNwb25zZQorICog
ICBvcGVyYXRpb24gLSB1aW50OF90LCBvcGVyYXRpb24gY29kZSwgWEVORElTUExfT1BfPz8/Cisg
KgorICogUmVxdWVzdCBkYnVmIGNyZWF0aW9uIC0gcmVxdWVzdCBjcmVhdGlvbiBvZiBhIGRpc3Bs
YXkgYnVmZmVyLgorICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAg
IDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAg
ICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAgfF9PUF9EQlVGX0NSRUFURSB8ICAgcmVzZXJ2
ZWQgICAgIHwgNAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAorICogKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICBkYnVmX2Nvb2tpZSBsb3cgMzItYml0
ICAgICAgICAgICAgICAgICAgICAgIHwgMTIKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAg
ICAgICAgICAgICAgICAgZGJ1Zl9jb29raWUgaGlnaCAzMi1iaXQgICAgICAgICAgICAgICAgICAg
ICB8IDE2CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2lkdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMAorICogKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgMjQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYnBwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
IDI4CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1
ZmZlcl9zeiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzMgorICogKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
CisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgMzYKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdyZWZfZGlyZWN0b3J5ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQw
CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2Vy
dmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0NAorICogKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisg
KiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY0CisgKiAr
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSsKKyAqCisgKiBNdXN0IGJlIHNlbnQgb3ZlciBjb250cm9sIHJpbmcgb2YgdGhl
IGNvbm5lY3RvciB3aGljaCBoYXMgdGhlIGluZGV4CisgKiB2YWx1ZSBvZiAwOgorICogICAvbG9j
YWwvZG9tYWluLzxkb20taWQ+L2RldmljZS92ZGlzcGwvPGRldi1pZD4vMC9yZXEtcmluZy1yZWYK
KyAqIEFsbCB1bnVzZWQgYml0cyBpbiBmbGFncyBmaWVsZCBtdXN0IGJlIHNldCB0byAwLgorICoK
KyAqIEFuIGF0dGVtcHQgdG8gY3JlYXRlIG11bHRpcGxlIGRpc3BsYXkgYnVmZmVycyB3aXRoIHRo
ZSBzYW1lIGRidWZfY29va2llIGlzCisgKiBhbiBlcnJvci4gZGJ1Zl9jb29raWUgY2FuIGJlIHJl
LXVzZWQgYWZ0ZXIgZGVzdHJveWluZyB0aGUgY29ycmVzcG9uZGluZworICogZGlzcGxheSBidWZm
ZXIuCisgKgorICogV2lkdGggYW5kIGhlaWdodCBvZiB0aGUgZGlzcGxheSBidWZmZXJzIGNhbiBi
ZSBzbWFsbGVyLCBlcXVhbCBvciBiaWdnZXIKKyAqIHRoYW4gdGhlIGNvbm5lY3RvcidzIHJlc29s
dXRpb24uIERlcHRoL3BpeGVsIGZvcm1hdCBvZiB0aGUgaW5kaXZpZHVhbAorICogYnVmZmVycyBj
YW4gZGlmZmVyIGFzIHdlbGwuCisgKgorICogd2lkdGggLSB1aW50MzJfdCwgd2lkdGggaW4gcGl4
ZWxzCisgKiBoZWlnaHQgLSB1aW50MzJfdCwgaGVpZ2h0IGluIHBpeGVscworICogYnBwIC0gdWlu
dDMyX3QsIGJpdHMgcGVyIHBpeGVsCisgKiBidWZmZXJfc3ogLSB1aW50MzJfdCwgYnVmZmVyIHNp
emUgdG8gYmUgYWxsb2NhdGVkLCBvY3RldHMKKyAqIGZsYWdzIC0gdWludDMyX3QsIGZsYWdzIG9m
IHRoZSBvcGVyYXRpb24KKyAqICAgbyBYRU5ESVNQTF9EQlVGX0ZMR19SRVFfQUxMT0MgLSBpZiBz
ZXQsIHRoZW4gYmFja2VuZCBpcyByZXF1ZXN0ZWQKKyAqICAgICB0byBhbGxvY2F0ZSB0aGUgYnVm
ZmVyIHdpdGggdGhlIHBhcmFtZXRlcnMgcHJvdmlkZWQgaW4gdGhpcyByZXF1ZXN0LgorICogICAg
IFBhZ2UgZGlyZWN0b3J5IGlzIGhhbmRsZWQgYXMgZm9sbG93czoKKyAqICAgICAgIEZyb250ZW5k
IG9uIHJlcXVlc3Q6CisgKiAgICAgICAgIG8gYWxsb2NhdGVzIHBhZ2VzIGZvciB0aGUgZGlyZWN0
b3J5IChncmVmX2RpcmVjdG9yeSwKKyAqICAgICAgICAgICBncmVmX2Rpcl9uZXh0X3BhZ2UocykK
KyAqICAgICAgICAgbyBncmFudHMgcGVybWlzc2lvbnMgZm9yIHRoZSBwYWdlcyBvZiB0aGUgZGly
ZWN0b3J5IHRvIHRoZSBiYWNrZW5kCisgKiAgICAgICAgIG8gc2V0cyBncmVmX2Rpcl9uZXh0X3Bh
Z2UgZmllbGRzCisgKiAgICAgICBCYWNrZW5kIG9uIHJlc3BvbnNlOgorICogICAgICAgICBvIGdy
YW50cyBwZXJtaXNzaW9ucyBmb3IgdGhlIHBhZ2VzIG9mIHRoZSBidWZmZXIgYWxsb2NhdGVkIHRv
CisgKiAgICAgICAgICAgdGhlIGZyb250ZW5kCisgKiAgICAgICAgIG8gZmlsbHMgaW4gcGFnZSBk
aXJlY3Rvcnkgd2l0aCBncmFudCByZWZlcmVuY2VzCisgKiAgICAgICAgICAgKGdyZWZbXSBpbiBz
dHJ1Y3QgeGVuZGlzcGxfcGFnZV9kaXJlY3RvcnkpCisgKiBncmVmX2RpcmVjdG9yeSAtIGdyYW50
X3JlZl90LCBhIHJlZmVyZW5jZSB0byB0aGUgZmlyc3Qgc2hhcmVkIHBhZ2UKKyAqICAgZGVzY3Jp
YmluZyBzaGFyZWQgYnVmZmVyIHJlZmVyZW5jZXMuIEF0IGxlYXN0IG9uZSBwYWdlIGV4aXN0cy4g
SWYgc2hhcmVkCisgKiAgIGJ1ZmZlciBzaXplIChidWZmZXJfc3opIGV4Y2VlZHMgd2hhdCBjYW4g
YmUgYWRkcmVzc2VkIGJ5IHRoaXMgc2luZ2xlIHBhZ2UsCisgKiAgIHRoZW4gcmVmZXJlbmNlIHRv
IHRoZSBuZXh0IHBhZ2UgbXVzdCBiZSBzdXBwbGllZCAoc2VlIGdyZWZfZGlyX25leHRfcGFnZQor
ICogICBiZWxvdykKKyAqLworCisjZGVmaW5lIFhFTkRJU1BMX0RCVUZfRkxHX1JFUV9BTExPQyAg
ICAgICAoMSA8PCAwKQorCitzdHJ1Y3QgeGVuZGlzcGxfZGJ1Zl9jcmVhdGVfcmVxIHsKKyAgICB1
aW50NjRfdCBkYnVmX2Nvb2tpZTsKKyAgICB1aW50MzJfdCB3aWR0aDsKKyAgICB1aW50MzJfdCBo
ZWlnaHQ7CisgICAgdWludDMyX3QgYnBwOworICAgIHVpbnQzMl90IGJ1ZmZlcl9zejsKKyAgICB1
aW50MzJfdCBmbGFnczsKKyAgICBncmFudF9yZWZfdCBncmVmX2RpcmVjdG9yeTsKK307CisKKy8q
CisgKiBTaGFyZWQgcGFnZSBmb3IgWEVORElTUExfT1BfREJVRl9DUkVBVEUgYnVmZmVyIGRlc2Ny
aXB0b3IgKGdyZWZfZGlyZWN0b3J5IGluCisgKiB0aGUgcmVxdWVzdCkgZW1wbG95cyBhIGxpc3Qg
b2YgcGFnZXMsIGRlc2NyaWJpbmcgYWxsIHBhZ2VzIG9mIHRoZSBzaGFyZWQKKyAqIGRhdGEgYnVm
ZmVyOgorICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAg
ICAgICAgICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAg
ICAgICAgICAgICAgICAgZ3JlZl9kaXJfbmV4dF9wYWdlICAgICAgICAgICAgICAgICAgICAgICAg
IHwgNAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z3JlZlswXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAorICogKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
CisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdyZWZbaV0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGkqNCs4
CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmVmW04gLSAxXSAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgTio0KzgKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIGdyZWZfZGlyX25leHRf
cGFnZSAtIGdyYW50X3JlZl90LCByZWZlcmVuY2UgdG8gdGhlIG5leHQgcGFnZSBkZXNjcmliaW5n
CisgKiAgIHBhZ2UgZGlyZWN0b3J5LiBNdXN0IGJlIDAgaWYgdGhlcmUgYXJlIG5vIG1vcmUgcGFn
ZXMgaW4gdGhlIGxpc3QuCisgKiBncmVmW2ldIC0gZ3JhbnRfcmVmX3QsIHJlZmVyZW5jZSB0byBh
IHNoYXJlZCBwYWdlIG9mIHRoZSBidWZmZXIKKyAqICAgYWxsb2NhdGVkIGF0IFhFTkRJU1BMX09Q
X0RCVUZfQ1JFQVRFCisgKgorICogTnVtYmVyIG9mIGdyYW50X3JlZl90IGVudHJpZXMgaW4gdGhl
IHdob2xlIHBhZ2UgZGlyZWN0b3J5IGlzIG5vdAorICogcGFzc2VkLCBidXQgaW5zdGVhZCBjYW4g
YmUgY2FsY3VsYXRlZCBhczoKKyAqICAgbnVtX2dyZWZzX3RvdGFsID0gKFhFTkRJU1BMX09QX0RC
VUZfQ1JFQVRFLmJ1ZmZlcl9zeiArIFhFTl9QQUdFX1NJWkUgLSAxKSAvCisgKiAgICAgICBYRU5f
UEFHRV9TSVpFCisgKi8KKworc3RydWN0IHhlbmRpc3BsX3BhZ2VfZGlyZWN0b3J5IHsKKyAgICBn
cmFudF9yZWZfdCBncmVmX2Rpcl9uZXh0X3BhZ2U7CisgICAgZ3JhbnRfcmVmX3QgZ3JlZlsxXTsg
LyogVmFyaWFibGUgbGVuZ3RoICovCit9OworCisvKgorICogUmVxdWVzdCBkYnVmIGRlc3RydWN0
aW9uIC0gZGVzdHJveSBhIHByZXZpb3VzbHkgYWxsb2NhdGVkIGRpc3BsYXkgYnVmZmVyOgorICog
ICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAg
ICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgaWQg
ICAgICAgICAgICAgICAgfF9PUF9EQlVGX0RFU1RST1l8ICAgcmVzZXJ2ZWQgICAgIHwgNAorICog
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAg
ICAgICAgICAgICAgICAgICAgICBkYnVmX2Nvb2tpZSBsb3cgMzItYml0ICAgICAgICAgICAgICAg
ICAgICAgIHwgMTIKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAg
ZGJ1Zl9jb29raWUgaGlnaCAzMi1iaXQgICAgICAgICAgICAgICAgICAgICB8IDE2CisgKiArLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAyMAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8L1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY0CisgKiArLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSsKKyAqCisgKiBNdXN0IGJlIHNlbnQgb3ZlciBjb250cm9sIHJpbmcgb2YgdGhlIGNvbm5lY3Rv
ciB3aGljaCBoYXMgdGhlIGluZGV4CisgKiB2YWx1ZSBvZiAwOgorICogICAvbG9jYWwvZG9tYWlu
Lzxkb20taWQ+L2RldmljZS92ZGlzcGwvPGRldi1pZD4vMC9yZXEtcmluZy1yZWYKKyAqLworCitz
dHJ1Y3QgeGVuZGlzcGxfZGJ1Zl9kZXN0cm95X3JlcSB7CisgICAgdWludDY0X3QgZGJ1Zl9jb29r
aWU7Cit9OworCisvKgorICogUmVxdWVzdCBmcmFtZWJ1ZmZlciBhdHRhY2htZW50IC0gcmVxdWVz
dCBhdHRhY2htZW50IG9mIGEgZnJhbWVidWZmZXIgdG8KKyAqIHByZXZpb3VzbHkgY3JlYXRlZCBk
aXNwbGF5IGJ1ZmZlci4KKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAg
ICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICog
fCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwgX09QX0ZCX0FUVEFDSCAgfCAgIHJl
c2VydmVkICAgICB8IDQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKKyAqICst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgZGJ1Zl9jb29raWUgbG93IDMy
LWJpdCAgICAgICAgICAgICAgICAgICAgICB8IDEyCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAg
ICAgICAgICAgICAgICAgICAgIGRidWZfY29va2llIGhpZ2ggMzItYml0ICAgICAgICAgICAgICAg
ICAgICAgfCAxNgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg
ZmJfY29va2llIGxvdyAzMi1iaXQgICAgICAgICAgICAgICAgICAgICAgIHwgMjAKKyAqICstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgIGZiX2Nvb2tpZSBoaWdoIDMyLWJp
dCAgICAgICAgICAgICAgICAgICAgICB8IDI0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGggICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAyOAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhlaWdodCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzIKKyAqICstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhlbF9mb3JtYXQgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8IDM2CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCA0MAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwor
ICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8IDY0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBNdXN0IGJlIHNlbnQg
b3ZlciBjb250cm9sIHJpbmcgb2YgdGhlIGNvbm5lY3RvciB3aGljaCBoYXMgdGhlIGluZGV4Cisg
KiB2YWx1ZSBvZiAwOgorICogICAvbG9jYWwvZG9tYWluLzxkb20taWQ+L2RldmljZS92ZGlzcGwv
PGRldi1pZD4vMC9yZXEtcmluZy1yZWYKKyAqIFdpZHRoIGFuZCBoZWlnaHQgY2FuIGJlIHNtYWxs
ZXIsIGVxdWFsIG9yIGJpZ2dlciB0aGFuIHRoZSBjb25uZWN0b3IncworICogcmVzb2x1dGlvbi4K
KyAqCisgKiBBbiBhdHRlbXB0IHRvIGNyZWF0ZSBtdWx0aXBsZSBmcmFtZSBidWZmZXJzIHdpdGgg
dGhlIHNhbWUgZmJfY29va2llIGlzCisgKiBhbiBlcnJvci4gZmJfY29va2llIGNhbiBiZSByZS11
c2VkIGFmdGVyIGRlc3Ryb3lpbmcgdGhlIGNvcnJlc3BvbmRpbmcKKyAqIGZyYW1lIGJ1ZmZlci4K
KyAqCisgKiB3aWR0aCAtIHVpbnQzMl90LCB3aWR0aCBpbiBwaXhlbHMKKyAqIGhlaWdodCAtIHVp
bnQzMl90LCBoZWlnaHQgaW4gcGl4ZWxzCisgKiBwaXhlbF9mb3JtYXQgLSB1aW50MzJfdCwgcGl4
ZWwgZm9ybWF0IG9mIHRoZSBmcmFtZWJ1ZmZlciwgRk9VUkNDIGNvZGUKKyAqLworCitzdHJ1Y3Qg
eGVuZGlzcGxfZmJfYXR0YWNoX3JlcSB7CisgICAgdWludDY0X3QgZGJ1Zl9jb29raWU7CisgICAg
dWludDY0X3QgZmJfY29va2llOworICAgIHVpbnQzMl90IHdpZHRoOworICAgIHVpbnQzMl90IGhl
aWdodDsKKyAgICB1aW50MzJfdCBwaXhlbF9mb3JtYXQ7Cit9OworCisvKgorICogUmVxdWVzdCBm
cmFtZWJ1ZmZlciBkZXRhY2ggLSBkZXRhY2ggYSBwcmV2aW91c2x5CisgKiBhdHRhY2hlZCBmcmFt
ZWJ1ZmZlciBmcm9tIHRoZSBkaXNwbGF5IGJ1ZmZlciBpbiByZXF1ZXN0OgorICogICAgICAgICAw
ICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAg
ICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgaWQgICAgICAgICAg
ICAgICAgfCAgX09QX0ZCX0RFVEFDSCB8ICAgcmVzZXJ2ZWQgICAgIHwgNAorICogKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgOAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAg
ICAgICAgICAgICAgZmJfY29va2llIGxvdyAzMi1iaXQgICAgICAgICAgICAgICAgICAgICAgIHwg
MTIKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgIGZiX2Nvb2tp
ZSBoaWdoIDMyLWJpdCAgICAgICAgICAgICAgICAgICAgICB8IDE2CisgKiArLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsK
KyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAyMAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAq
ICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY0CisgKiArLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisg
KiBNdXN0IGJlIHNlbnQgb3ZlciBjb250cm9sIHJpbmcgb2YgdGhlIGNvbm5lY3RvciB3aGljaCBo
YXMgdGhlIGluZGV4CisgKiB2YWx1ZSBvZiAwOgorICogICAvbG9jYWwvZG9tYWluLzxkb20taWQ+
L2RldmljZS92ZGlzcGwvPGRldi1pZD4vMC9yZXEtcmluZy1yZWYKKyAqLworCitzdHJ1Y3QgeGVu
ZGlzcGxfZmJfZGV0YWNoX3JlcSB7CisgICAgdWludDY0X3QgZmJfY29va2llOworfTsKKworLyoK
KyAqIFJlcXVlc3QgY29uZmlndXJhdGlvbiBzZXQvcmVzZXQgLSByZXF1ZXN0IHRvIHNldCBvciBy
ZXNldAorICogdGhlIGNvbmZpZ3VyYXRpb24vbW9kZSBvZiB0aGUgZGlzcGxheToKKyAqICAgICAg
ICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAg
ICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgIGlkICAgICAg
ICAgICAgICAgIHwgX09QX1NFVF9DT05GSUcgfCAgIHJlc2VydmVkICAgICB8IDQKKyAqICstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8IDgKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAg
ICAgICAgICAgICAgICAgIGZiX2Nvb2tpZSBsb3cgMzItYml0ICAgICAgICAgICAgICAgICAgICAg
ICB8IDEyCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICBmYl9j
b29raWUgaGlnaCAzMi1iaXQgICAgICAgICAgICAgICAgICAgICAgfCAxNgorICogKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgMjAKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
IDI0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
d2lkdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyOAorICogKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
CisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgMzIKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnBwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQw
CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2Vy
dmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0NAorICogKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisg
KiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY0CisgKiAr
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSsKKyAqCisgKiBQYXNzIGFsbCB6ZXJvcyB0byByZXNldCwgb3RoZXJ3aXNlIGNv
bW1hbmQgaXMgdHJlYXRlZCBhcworICogY29uZmlndXJhdGlvbiBzZXQuCisgKiBGcmFtZWJ1ZmZl
cidzIGNvb2tpZSBkZWZpbmVzIHdoaWNoIGZyYW1lYnVmZmVyL2RidWYgbXVzdCBiZQorICogZGlz
cGxheWVkIHdoaWxlIGVuYWJsaW5nIGRpc3BsYXkgKGFwcGx5aW5nIGNvbmZpZ3VyYXRpb24pLgor
ICogeCwgeSwgd2lkdGggYW5kIGhlaWdodCBhcmUgYm91bmQgYnkgdGhlIGNvbm5lY3RvcidzIHJl
c29sdXRpb24gYW5kIG11c3Qgbm90CisgKiBleGNlZWQgaXQuCisgKgorICogeCAtIHVpbnQzMl90
LCBzdGFydGluZyBwb3NpdGlvbiBpbiBwaXhlbHMgYnkgWCBheGlzCisgKiB5IC0gdWludDMyX3Qs
IHN0YXJ0aW5nIHBvc2l0aW9uIGluIHBpeGVscyBieSBZIGF4aXMKKyAqIHdpZHRoIC0gdWludDMy
X3QsIHdpZHRoIGluIHBpeGVscworICogaGVpZ2h0IC0gdWludDMyX3QsIGhlaWdodCBpbiBwaXhl
bHMKKyAqIGJwcCAtIHVpbnQzMl90LCBiaXRzIHBlciBwaXhlbAorICovCisKK3N0cnVjdCB4ZW5k
aXNwbF9zZXRfY29uZmlnX3JlcSB7CisgICAgdWludDY0X3QgZmJfY29va2llOworICAgIHVpbnQz
Ml90IHg7CisgICAgdWludDMyX3QgeTsKKyAgICB1aW50MzJfdCB3aWR0aDsKKyAgICB1aW50MzJf
dCBoZWlnaHQ7CisgICAgdWludDMyX3QgYnBwOworfTsKKworLyoKKyAqIFJlcXVlc3QgcGFnZSBm
bGlwIC0gcmVxdWVzdCB0byBmbGlwIGEgcGFnZSBpZGVudGlmaWVkIGJ5IHRoZSBmcmFtZWJ1ZmZl
cgorICogY29va2llOgorICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAg
ICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8
ICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAgfCBfT1BfUEdfRkxJUCAgICB8ICAgcmVz
ZXJ2ZWQgICAgIHwgNAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAorICogKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgZmJfY29va2llIGxvdyAzMi1i
aXQgICAgICAgICAgICAgICAgICAgICAgIHwgMTIKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAg
ICAgICAgICAgICAgICAgICAgIGZiX2Nvb2tpZSBoaWdoIDMyLWJpdCAgICAgICAgICAgICAgICAg
ICAgICB8IDE2CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMAorICogKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
IDY0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqLworCitzdHJ1Y3QgeGVuZGlzcGxfcGFnZV9mbGlwX3Jl
cSB7CisgICAgdWludDY0X3QgZmJfY29va2llOworfTsKKworLyoKKyAqLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSBSZXNwb25zZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyAqCisgKiBBbGwgcmVzcG9uc2UgcGFja2V0cyBoYXZlIHRoZSBzYW1lIGxlbmd0aCAo
NjQgb2N0ZXRzKQorICoKKyAqIEFsbCByZXNwb25zZSBwYWNrZXRzIGhhdmUgY29tbW9uIGhlYWRl
cjoKKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAg
ICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAg
ICAgIGlkICAgICAgICAgICAgICAgIHwgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICB8
IDQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
YXR1cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKKyAqICstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwor
ICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8IDEyCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICog
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICoKKyAq
IGlkIC0gdWludDE2X3QsIHByaXZhdGUgZ3Vlc3QgdmFsdWUsIGVjaG9lZCBmcm9tIHJlcXVlc3QK
KyAqIHN0YXR1cyAtIGludDMyX3QsIHJlc3BvbnNlIHN0YXR1cywgemVybyBvbiBzdWNjZXNzIGFu
ZCAtWEVOX0VYWCBvbiBmYWlsdXJlCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSBFdmVudHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAq
IEV2ZW50cyBhcmUgc2VudCB2aWEgYSBzaGFyZWQgcGFnZSBhbGxvY2F0ZWQgYnkgdGhlIGZyb250
IGFuZCBwcm9wYWdhdGVkIGJ5CisgKiAgIGV2dC1ldmVudC1jaGFubmVsL2V2dC1yaW5nLXJlZiBY
ZW5TdG9yZSBlbnRyaWVzCisgKiBBbGwgZXZlbnQgcGFja2V0cyBoYXZlIHRoZSBzYW1lIGxlbmd0
aCAoNjQgb2N0ZXRzKQorICogQWxsIGV2ZW50IHBhY2tldHMgaGF2ZSBjb21tb24gaGVhZGVyOgor
ICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAg
ICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAg
aWQgICAgICAgICAgICAgICAgfCAgICAgIHR5cGUgICAgICB8ICAgcmVzZXJ2ZWQgICAgIHwgNAor
ICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZl
ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAorICogKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKgor
ICogaWQgLSB1aW50MTZfdCwgZXZlbnQgaWQsIG1heSBiZSB1c2VkIGJ5IGZyb250CisgKiB0eXBl
IC0gdWludDhfdCwgdHlwZSBvZiB0aGUgZXZlbnQKKyAqCisgKgorICogUGFnZSBmbGlwIGNvbXBs
ZXRlIGV2ZW50IC0gZXZlbnQgZnJvbSBiYWNrIHRvIGZyb250IG9uIHBhZ2UgZmxpcCBjb21wbGV0
ZWQ6CisgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAg
ICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAg
ICAgICBpZCAgICAgICAgICAgICAgICB8ICAgX0VWVF9QR19GTElQIHwgICByZXNlcnZlZCAgICAg
fCA0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
c2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4CisgKiArLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsK
KyAqIHwgICAgICAgICAgICAgICAgICAgICAgICBmYl9jb29raWUgbG93IDMyLWJpdCAgICAgICAg
ICAgICAgICAgICAgICAgfCAxMgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAg
ICAgICAgICAgZmJfY29va2llIGhpZ2ggMzItYml0ICAgICAgICAgICAgICAgICAgICAgIHwgMTYK
KyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2
ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIwCisgKiArLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAq
IHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQKKyAqICst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKworICovCisKK3N0cnVjdCB4ZW5kaXNwbF9wZ19mbGlwX2V2dCB7CisgICAgdWlu
dDY0X3QgZmJfY29va2llOworfTsKKworc3RydWN0IHhlbmRpc3BsX3JlcSB7CisgICAgdWludDE2
X3QgaWQ7CisgICAgdWludDhfdCBvcGVyYXRpb247CisgICAgdWludDhfdCByZXNlcnZlZFs1XTsK
KyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCB4ZW5kaXNwbF9kYnVmX2NyZWF0ZV9yZXEgZGJ1
Zl9jcmVhdGU7CisgICAgICAgIHN0cnVjdCB4ZW5kaXNwbF9kYnVmX2Rlc3Ryb3lfcmVxIGRidWZf
ZGVzdHJveTsKKyAgICAgICAgc3RydWN0IHhlbmRpc3BsX2ZiX2F0dGFjaF9yZXEgZmJfYXR0YWNo
OworICAgICAgICBzdHJ1Y3QgeGVuZGlzcGxfZmJfZGV0YWNoX3JlcSBmYl9kZXRhY2g7CisgICAg
ICAgIHN0cnVjdCB4ZW5kaXNwbF9zZXRfY29uZmlnX3JlcSBzZXRfY29uZmlnOworICAgICAgICBz
dHJ1Y3QgeGVuZGlzcGxfcGFnZV9mbGlwX3JlcSBwZ19mbGlwOworICAgICAgICB1aW50OF90IHJl
c2VydmVkWzU2XTsKKyAgICB9IG9wOworfTsKKworc3RydWN0IHhlbmRpc3BsX3Jlc3AgeworICAg
IHVpbnQxNl90IGlkOworICAgIHVpbnQ4X3Qgb3BlcmF0aW9uOworICAgIHVpbnQ4X3QgcmVzZXJ2
ZWQ7CisgICAgaW50MzJfdCBzdGF0dXM7CisgICAgdWludDhfdCByZXNlcnZlZDFbNTZdOworfTsK
Kworc3RydWN0IHhlbmRpc3BsX2V2dCB7CisgICAgdWludDE2X3QgaWQ7CisgICAgdWludDhfdCB0
eXBlOworICAgIHVpbnQ4X3QgcmVzZXJ2ZWRbNV07CisgICAgdW5pb24geworICAgICAgICBzdHJ1
Y3QgeGVuZGlzcGxfcGdfZmxpcF9ldnQgcGdfZmxpcDsKKyAgICAgICAgdWludDhfdCByZXNlcnZl
ZFs1Nl07CisgICAgfSBvcDsKK307CisKK0RFRklORV9SSU5HX1RZUEVTKHhlbl9kaXNwbGlmLCBz
dHJ1Y3QgeGVuZGlzcGxfcmVxLCBzdHJ1Y3QgeGVuZGlzcGxfcmVzcCk7CisKKy8qCisgKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgIEJhY2sgdG8gZnJvbnQg
ZXZlbnRzIGRlbGl2ZXJ5CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBJbiBvcmRlciB0byBk
ZWxpdmVyIGFzeW5jaHJvbm91cyBldmVudHMgZnJvbSBiYWNrIHRvIGZyb250IGEgc2hhcmVkIHBh
Z2UgaXMKKyAqIGFsbG9jYXRlZCBieSBmcm9udCBhbmQgaXRzIGdyYW50ZWQgcmVmZXJlbmNlIHBy
b3BhZ2F0ZWQgdG8gYmFjayB2aWEKKyAqIFhlblN0b3JlIGVudHJpZXMgKGV2dC1yaW5nLXJlZi9l
dnQtZXZlbnQtY2hhbm5lbCkuCisgKiBUaGlzIHBhZ2UgaGFzIGEgY29tbW9uIGhlYWRlciB1c2Vk
IGJ5IGJvdGggZnJvbnQgYW5kIGJhY2sgdG8gc3luY2hyb25pemUKKyAqIGFjY2VzcyBhbmQgY29u
dHJvbCBldmVudCdzIHJpbmcgYnVmZmVyLCB3aGlsZSBiYWNrIGJlaW5nIGEgcHJvZHVjZXIgb2Yg
dGhlCisgKiBldmVudHMgYW5kIGZyb250IGJlaW5nIGEgY29uc3VtZXIuIFRoZSByZXN0IG9mIHRo
ZSBwYWdlIGFmdGVyIHRoZSBoZWFkZXIKKyAqIGlzIHVzZWQgZm9yIGV2ZW50IHBhY2tldHMuCisg
KgorICogVXBvbiByZWNlcHRpb24gb2YgYW4gZXZlbnQocykgZnJvbnQgbWF5IGNvbmZpcm0gaXRz
IHJlY2VwdGlvbgorICogZm9yIGVpdGhlciBlYWNoIGV2ZW50LCBncm91cCBvZiBldmVudHMgb3Ig
bm9uZS4KKyAqLworCitzdHJ1Y3QgeGVuZGlzcGxfZXZlbnRfcGFnZSB7CisgICAgdWludDMyX3Qg
aW5fY29uczsKKyAgICB1aW50MzJfdCBpbl9wcm9kOworICAgIHVpbnQ4X3QgcmVzZXJ2ZWRbNTZd
OworfTsKKworI2RlZmluZSBYRU5ESVNQTF9FVkVOVF9QQUdFX1NJWkUgNDA5NgorI2RlZmluZSBY
RU5ESVNQTF9JTl9SSU5HX09GRlMgKHNpemVvZihzdHJ1Y3QgeGVuZGlzcGxfZXZlbnRfcGFnZSkp
CisjZGVmaW5lIFhFTkRJU1BMX0lOX1JJTkdfU0laRSAoWEVORElTUExfRVZFTlRfUEFHRV9TSVpF
IC0gWEVORElTUExfSU5fUklOR19PRkZTKQorI2RlZmluZSBYRU5ESVNQTF9JTl9SSU5HX0xFTiAo
WEVORElTUExfSU5fUklOR19TSVpFIC8gc2l6ZW9mKHN0cnVjdCB4ZW5kaXNwbF9ldnQpKQorI2Rl
ZmluZSBYRU5ESVNQTF9JTl9SSU5HKHBhZ2UpIFwKKwkoKHN0cnVjdCB4ZW5kaXNwbF9ldnQgKiko
KGNoYXIgKikocGFnZSkgKyBYRU5ESVNQTF9JTl9SSU5HX09GRlMpKQorI2RlZmluZSBYRU5ESVNQ
TF9JTl9SSU5HX1JFRihwYWdlLCBpZHgpIFwKKwkoWEVORElTUExfSU5fUklORygocGFnZSkpWyhp
ZHgpICUgWEVORElTUExfSU5fUklOR19MRU5dKQorCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0lP
X0RJU1BMSUZfSF9fICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisg
KiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRo
OiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEv
aW5jbHVkZS94ZW4veHNtL2lvL2ZiaWYuaCBiL2luY2x1ZGUveGVuL3hzbS9pby9mYmlmLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2MyNWFhYgotLS0gL2Rldi9udWxsCisr
KyBiL2luY2x1ZGUveGVuL3hzbS9pby9mYmlmLmgKQEAgLTAsMCArMSwxNzYgQEAKKy8qCisgKiBm
YmlmLmggLS0gWGVuIHZpcnR1YWwgZnJhbWUgYnVmZmVyIGRldmljZQorICoKKyAqIFBlcm1pc3Np
b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp
bmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRh
dGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUg
d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAq
IHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUs
IHN1YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQg
dG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0
byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhl
IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwg
YmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2Yg
dGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBX
SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNM
VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F
TlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS
UyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZ
LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS
SVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJF
IE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDUgQW50aG9ueSBMaWd1b3JpIDxhbGlndW9yaUB1cy5pYm0uY29t
PgorICogQ29weXJpZ2h0IChDKSAyMDA2IFJlZCBIYXQsIEluYy4sIE1hcmt1cyBBcm1icnVzdGVy
IDxhcm1icnVAcmVkaGF0LmNvbT4KKyAqLworCisjaWZuZGVmIF9fWEVOX1BVQkxJQ19JT19GQklG
X0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfSU9fRkJJRl9IX18KKworLyogT3V0IGV2ZW50cyAo
ZnJvbnRlbmQgLT4gYmFja2VuZCkgKi8KKworLyoKKyAqIE91dCBldmVudHMgbWF5IGJlIHNlbnQg
b25seSB3aGVuIHJlcXVlc3RlZCBieSBiYWNrZW5kLCBhbmQgcmVjZWlwdAorICogb2YgYW4gdW5r
bm93biBvdXQgZXZlbnQgaXMgYW4gZXJyb3IuCisgKi8KKworLyogRXZlbnQgdHlwZSAxIGN1cnJl
bnRseSBub3QgdXNlZCAqLworLyoKKyAqIEZyYW1lYnVmZmVyIHVwZGF0ZSBub3RpZmljYXRpb24g
ZXZlbnQKKyAqIENhcGFibGUgZnJvbnRlbmQgc2V0cyBmZWF0dXJlLXVwZGF0ZSBpbiB4ZW5zdG9y
ZS4KKyAqIEJhY2tlbmQgcmVxdWVzdHMgaXQgYnkgc2V0dGluZyByZXF1ZXN0LXVwZGF0ZSBpbiB4
ZW5zdG9yZS4KKyAqLworI2RlZmluZSBYRU5GQl9UWVBFX1VQREFURSAyCisKK3N0cnVjdCB4ZW5m
Yl91cGRhdGUKK3sKKyAgICB1aW50OF90IHR5cGU7ICAgIC8qIFhFTkZCX1RZUEVfVVBEQVRFICov
CisgICAgaW50MzJfdCB4OyAgICAgIC8qIHNvdXJjZSB4ICovCisgICAgaW50MzJfdCB5OyAgICAg
IC8qIHNvdXJjZSB5ICovCisgICAgaW50MzJfdCB3aWR0aDsgIC8qIHJlY3Qgd2lkdGggKi8KKyAg
ICBpbnQzMl90IGhlaWdodDsgLyogcmVjdCBoZWlnaHQgKi8KK307CisKKy8qCisgKiBGcmFtZWJ1
ZmZlciByZXNpemUgbm90aWZpY2F0aW9uIGV2ZW50CisgKiBDYXBhYmxlIGJhY2tlbmQgc2V0cyBm
ZWF0dXJlLXJlc2l6ZSBpbiB4ZW5zdG9yZS4KKyAqLworI2RlZmluZSBYRU5GQl9UWVBFX1JFU0la
RSAzCisKK3N0cnVjdCB4ZW5mYl9yZXNpemUKK3sKKyAgICB1aW50OF90IHR5cGU7ICAgIC8qIFhF
TkZCX1RZUEVfUkVTSVpFICovCisgICAgaW50MzJfdCB3aWR0aDsgICAvKiB3aWR0aCBpbiBwaXhl
bHMgKi8KKyAgICBpbnQzMl90IGhlaWdodDsgIC8qIGhlaWdodCBpbiBwaXhlbHMgKi8KKyAgICBp
bnQzMl90IHN0cmlkZTsgIC8qIHN0cmlkZSBpbiBieXRlcyAqLworICAgIGludDMyX3QgZGVwdGg7
ICAgLyogZGVwdGggaW4gYml0cyAqLworICAgIGludDMyX3Qgb2Zmc2V0OyAgLyogb2Zmc2V0IG9m
IHRoZSBmcmFtZWJ1ZmZlciBpbiBieXRlcyAqLworfTsKKworI2RlZmluZSBYRU5GQl9PVVRfRVZF
TlRfU0laRSA0MAorCit1bmlvbiB4ZW5mYl9vdXRfZXZlbnQKK3sKKyAgICB1aW50OF90IHR5cGU7
CisgICAgc3RydWN0IHhlbmZiX3VwZGF0ZSB1cGRhdGU7CisgICAgc3RydWN0IHhlbmZiX3Jlc2l6
ZSByZXNpemU7CisgICAgY2hhciBwYWRbWEVORkJfT1VUX0VWRU5UX1NJWkVdOworfTsKKworLyog
SW4gZXZlbnRzIChiYWNrZW5kIC0+IGZyb250ZW5kKSAqLworCisvKgorICogRnJvbnRlbmRzIHNo
b3VsZCBpZ25vcmUgdW5rbm93biBpbiBldmVudHMuCisgKi8KKworLyoKKyAqIEZyYW1lYnVmZmVy
IHJlZnJlc2ggcGVyaW9kIGFkdmljZQorICogQmFja2VuZCBzZW5kcyBpdCB0byBhZHZpc2UgdGhl
IGZyb250ZW5kIHRoZWlyIHByZWZlcnJlZCBwZXJpb2Qgb2YKKyAqIHJlZnJlc2guICBGcm9udGVu
ZHMgdGhhdCBrZWVwIHRoZSBmcmFtZWJ1ZmZlciBjb25zdGFudGx5IHVwLXRvLWRhdGUKKyAqIGp1
c3QgaWdub3JlIGl0LiAgRnJvbnRlbmRzIHRoYXQgdXNlIHRoZSBhZHZpY2Ugc2hvdWxkIGltbWVk
aWF0ZWx5CisgKiByZWZyZXNoIHRoZSBmcmFtZWJ1ZmZlciAoYW5kIHNlbmQgYW4gdXBkYXRlIG5v
dGlmaWNhdGlvbiBldmVudCBpZgorICogdGhvc2UgaGF2ZSBiZWVuIHJlcXVlc3RlZCksIHRoZW4g
dXNlIHRoZSB1cGRhdGUgZnJlcXVlbmN5IHRvIGd1aWRlCisgKiB0aGVpciBwZXJpb2RpY2FsIHJl
ZnJlc2hzLgorICovCisjZGVmaW5lIFhFTkZCX1RZUEVfUkVGUkVTSF9QRVJJT0QgMQorI2RlZmlu
ZSBYRU5GQl9OT19SRUZSRVNIIDAKKworc3RydWN0IHhlbmZiX3JlZnJlc2hfcGVyaW9kCit7Cisg
ICAgdWludDhfdCB0eXBlOyAgICAvKiBYRU5GQl9UWVBFX1VQREFURV9QRVJJT0QgKi8KKyAgICB1
aW50MzJfdCBwZXJpb2Q7IC8qIHBlcmlvZCBvZiByZWZyZXNoLCBpbiBtcywKKyAgICAgICAgICAg
ICAgICAgICAgICAqIFhFTkZCX05PX1JFRlJFU0ggaWYgbm8gcmVmcmVzaCBpcyBuZWVkZWQgKi8K
K307CisKKyNkZWZpbmUgWEVORkJfSU5fRVZFTlRfU0laRSA0MAorCit1bmlvbiB4ZW5mYl9pbl9l
dmVudAoreworICAgIHVpbnQ4X3QgdHlwZTsKKyAgICBzdHJ1Y3QgeGVuZmJfcmVmcmVzaF9wZXJp
b2QgcmVmcmVzaF9wZXJpb2Q7CisgICAgY2hhciBwYWRbWEVORkJfSU5fRVZFTlRfU0laRV07Cit9
OworCisvKiBzaGFyZWQgcGFnZSAqLworCisjZGVmaW5lIFhFTkZCX0lOX1JJTkdfU0laRSAxMDI0
CisjZGVmaW5lIFhFTkZCX0lOX1JJTkdfTEVOIChYRU5GQl9JTl9SSU5HX1NJWkUgLyBYRU5GQl9J
Tl9FVkVOVF9TSVpFKQorI2RlZmluZSBYRU5GQl9JTl9SSU5HX09GRlMgMTAyNAorI2RlZmluZSBY
RU5GQl9JTl9SSU5HKHBhZ2UpIFwKKyAgICAoKHVuaW9uIHhlbmZiX2luX2V2ZW50ICopKChjaGFy
ICopKHBhZ2UpICsgWEVORkJfSU5fUklOR19PRkZTKSkKKyNkZWZpbmUgWEVORkJfSU5fUklOR19S
RUYocGFnZSwgaWR4KSBcCisgICAgKFhFTkZCX0lOX1JJTkcoKHBhZ2UpKVsoaWR4KSAlIFhFTkZC
X0lOX1JJTkdfTEVOXSkKKworI2RlZmluZSBYRU5GQl9PVVRfUklOR19TSVpFIDIwNDgKKyNkZWZp
bmUgWEVORkJfT1VUX1JJTkdfTEVOIChYRU5GQl9PVVRfUklOR19TSVpFIC8gWEVORkJfT1VUX0VW
RU5UX1NJWkUpCisjZGVmaW5lIFhFTkZCX09VVF9SSU5HX09GRlMgKFhFTkZCX0lOX1JJTkdfT0ZG
UyArIFhFTkZCX0lOX1JJTkdfU0laRSkKKyNkZWZpbmUgWEVORkJfT1VUX1JJTkcocGFnZSkgXAor
ICAgICgodW5pb24geGVuZmJfb3V0X2V2ZW50ICopKChjaGFyICopKHBhZ2UpICsgWEVORkJfT1VU
X1JJTkdfT0ZGUykpCisjZGVmaW5lIFhFTkZCX09VVF9SSU5HX1JFRihwYWdlLCBpZHgpIFwKKyAg
ICAoWEVORkJfT1VUX1JJTkcoKHBhZ2UpKVsoaWR4KSAlIFhFTkZCX09VVF9SSU5HX0xFTl0pCisK
K3N0cnVjdCB4ZW5mYl9wYWdlCit7CisgICAgdWludDMyX3QgaW5fY29ucywgaW5fcHJvZDsKKyAg
ICB1aW50MzJfdCBvdXRfY29ucywgb3V0X3Byb2Q7CisKKyAgICBpbnQzMl90IHdpZHRoOyAgICAg
ICAgICAvKiB0aGUgd2lkdGggb2YgdGhlIGZyYW1lYnVmZmVyIChpbiBwaXhlbHMpICovCisgICAg
aW50MzJfdCBoZWlnaHQ7ICAgICAgICAgLyogdGhlIGhlaWdodCBvZiB0aGUgZnJhbWVidWZmZXIg
KGluIHBpeGVscykgKi8KKyAgICB1aW50MzJfdCBsaW5lX2xlbmd0aDsgICAvKiB0aGUgbGVuZ3Ro
IG9mIGEgcm93IG9mIHBpeGVscyAoaW4gYnl0ZXMpICovCisgICAgdWludDMyX3QgbWVtX2xlbmd0
aDsgICAgLyogdGhlIGxlbmd0aCBvZiB0aGUgZnJhbWVidWZmZXIgKGluIGJ5dGVzKSAqLworICAg
IHVpbnQ4X3QgZGVwdGg7ICAgICAgICAgIC8qIHRoZSBkZXB0aCBvZiBhIHBpeGVsIChpbiBiaXRz
KSAqLworCisgICAgLyoKKyAgICAgKiBGcmFtZWJ1ZmZlciBwYWdlIGRpcmVjdG9yeQorICAgICAq
CisgICAgICogRWFjaCBkaXJlY3RvcnkgcGFnZSBob2xkcyBQQUdFX1NJWkUgLyBzaXplb2YoKnBk
KQorICAgICAqIGZyYW1lYnVmZmVyIHBhZ2VzLCBhbmQgY2FuIHRodXMgbWFwIHVwIHRvIFBBR0Vf
U0laRSAqCisgICAgICogUEFHRV9TSVpFIC8gc2l6ZW9mKCpwZCkgYnl0ZXMuICBXaXRoIFBBR0Vf
U0laRSA9PSA0MDk2IGFuZAorICAgICAqIHNpemVvZih1bnNpZ25lZCBsb25nKSA9PSA0LzgsIHRo
YXQncyA0IE1lZ3MgMzIgYml0IGFuZCAyIE1lZ3MKKyAgICAgKiA2NCBiaXQuICAyNTYgZGlyZWN0
b3JpZXMgZ2l2ZSBlbm91Z2ggcm9vbSBmb3IgYSA1MTIgTWVnCisgICAgICogZnJhbWVidWZmZXIg
d2l0aCBhIG1heCByZXNvbHV0aW9uIG9mIDEyLDgwMHgxMCwyNDAuICBTaG91bGQKKyAgICAgKiBi
ZSBlbm91Z2ggZm9yIGEgd2hpbGUgd2l0aCByb29tIGxlZnRvdmVyIGZvciBleHBhbnNpb24uCisg
ICAgICovCisgICAgdW5zaWduZWQgbG9uZyBwZFsyNTZdOworfTsKKworLyoKKyAqIFdhcnQ6IHhl
bmtiZCBuZWVkcyB0byBrbm93IGRlZmF1bHQgcmVzb2x1dGlvbi4gIFB1dCBpdCBoZXJlIHVudGls
IGEKKyAqIGJldHRlciBzb2x1dGlvbiBpcyBmb3VuZCwgYnV0IGRvbid0IGxlYWsgaXQgdG8gdGhl
IGJhY2tlbmQuCisgKi8KKyNpZmRlZiBfX0tFUk5FTF9fCisjZGVmaW5lIFhFTkZCX1dJRFRIIDgw
MAorI2RlZmluZSBYRU5GQl9IRUlHSFQgNjAwCisjZGVmaW5lIFhFTkZCX0RFUFRIIDMyCisjZW5k
aWYKKworI2VuZGlmCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBj
LWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0
CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvaW5j
bHVkZS94ZW4veHNtL2lvL2ZzaWYuaCBiL2luY2x1ZGUveGVuL3hzbS9pby9mc2lmLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGZjMjE3NAotLS0gL2Rldi9udWxsCisrKyBi
L2luY2x1ZGUveGVuL3hzbS9pby9mc2lmLmgKQEAgLTAsMCArMSwxOTIgQEAKKy8qKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKKyAqIGZzaWYuaAorICogCisgKiBJbnRlcmZhY2UgdG8gRlMgbGV2ZWwgc3Bs
aXQgZGV2aWNlIGRyaXZlcnMuCisgKiAKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs
IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRo
aXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0
d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwg
aW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHks
IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgor
ICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8g
d2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp
Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFs
bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAq
IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO
WSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE
IFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBD
TEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP
TiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBP
RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIK
KyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDcs
IEdyemVnb3J6IE1pbG9zLCA8Z20yODFAY2FtLmFjLnVrPi4KKyAqLworCisjaWZuZGVmIF9fWEVO
X1BVQkxJQ19JT19GU0lGX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfSU9fRlNJRl9IX18KKwor
I2luY2x1ZGUgInJpbmcuaCIKKyNpbmNsdWRlICIuLi9ncmFudF90YWJsZS5oIgorCisjZGVmaW5l
IFJFUV9GSUxFX09QRU4gICAgICAgIDEKKyNkZWZpbmUgUkVRX0ZJTEVfQ0xPU0UgICAgICAgMgor
I2RlZmluZSBSRVFfRklMRV9SRUFEICAgICAgICAzCisjZGVmaW5lIFJFUV9GSUxFX1dSSVRFICAg
ICAgIDQKKyNkZWZpbmUgUkVRX1NUQVQgICAgICAgICAgICAgNQorI2RlZmluZSBSRVFfRklMRV9U
UlVOQ0FURSAgICA2CisjZGVmaW5lIFJFUV9SRU1PVkUgICAgICAgICAgIDcKKyNkZWZpbmUgUkVR
X1JFTkFNRSAgICAgICAgICAgOAorI2RlZmluZSBSRVFfQ1JFQVRFICAgICAgICAgICA5CisjZGVm
aW5lIFJFUV9ESVJfTElTVCAgICAgICAgMTAKKyNkZWZpbmUgUkVRX0NITU9EICAgICAgICAgICAx
MQorI2RlZmluZSBSRVFfRlNfU1BBQ0UgICAgICAgIDEyCisjZGVmaW5lIFJFUV9GSUxFX1NZTkMg
ICAgICAgMTMKKworc3RydWN0IGZzaWZfb3Blbl9yZXF1ZXN0IHsKKyAgICBncmFudF9yZWZfdCBn
cmVmOworfTsKKworc3RydWN0IGZzaWZfY2xvc2VfcmVxdWVzdCB7CisgICAgdWludDMyX3QgZmQ7
Cit9OworCitzdHJ1Y3QgZnNpZl9yZWFkX3JlcXVlc3QgeworICAgIHVpbnQzMl90IGZkOworICAg
IGludDMyX3QgcGFkOworICAgIHVpbnQ2NF90IGxlbjsKKyAgICB1aW50NjRfdCBvZmZzZXQ7Cisg
ICAgZ3JhbnRfcmVmX3QgZ3JlZnNbMV07ICAvKiBWYXJpYWJsZSBsZW5ndGggKi8KK307CisKK3N0
cnVjdCBmc2lmX3dyaXRlX3JlcXVlc3QgeworICAgIHVpbnQzMl90IGZkOworICAgIGludDMyX3Qg
cGFkOworICAgIHVpbnQ2NF90IGxlbjsKKyAgICB1aW50NjRfdCBvZmZzZXQ7CisgICAgZ3JhbnRf
cmVmX3QgZ3JlZnNbMV07ICAvKiBWYXJpYWJsZSBsZW5ndGggKi8KK307CisKK3N0cnVjdCBmc2lm
X3N0YXRfcmVxdWVzdCB7CisgICAgdWludDMyX3QgZmQ7Cit9OworCisvKiBUaGlzIHN0cnVjdHVy
ZSBpcyBhIGNvcHkgb2Ygc29tZSBmaWVsZHMgZnJvbSBzdGF0IHN0cnVjdHVyZSwgcmV0dXJuZWQK
KyAqIHZpYSB0aGUgcmluZy4gKi8KK3N0cnVjdCBmc2lmX3N0YXRfcmVzcG9uc2UgeworICAgIGlu
dDMyX3QgIHN0YXRfbW9kZTsKKyAgICB1aW50MzJfdCBzdGF0X3VpZDsKKyAgICB1aW50MzJfdCBz
dGF0X2dpZDsKKyAgICBpbnQzMl90ICBzdGF0X3JldDsKKyAgICBpbnQ2NF90ICBzdGF0X3NpemU7
CisgICAgaW50NjRfdCAgc3RhdF9hdGltZTsKKyAgICBpbnQ2NF90ICBzdGF0X210aW1lOworICAg
IGludDY0X3QgIHN0YXRfY3RpbWU7Cit9OworCitzdHJ1Y3QgZnNpZl90cnVuY2F0ZV9yZXF1ZXN0
IHsKKyAgICB1aW50MzJfdCBmZDsKKyAgICBpbnQzMl90IHBhZDsKKyAgICBpbnQ2NF90IGxlbmd0
aDsKK307CisKK3N0cnVjdCBmc2lmX3JlbW92ZV9yZXF1ZXN0IHsKKyAgICBncmFudF9yZWZfdCBn
cmVmOworfTsKKworc3RydWN0IGZzaWZfcmVuYW1lX3JlcXVlc3QgeworICAgIHVpbnQxNl90IG9s
ZF9uYW1lX29mZnNldDsKKyAgICB1aW50MTZfdCBuZXdfbmFtZV9vZmZzZXQ7CisgICAgZ3JhbnRf
cmVmX3QgZ3JlZjsKK307CisKK3N0cnVjdCBmc2lmX2NyZWF0ZV9yZXF1ZXN0IHsKKyAgICBpbnQ4
X3QgZGlyZWN0b3J5OworICAgIGludDhfdCBwYWQ7CisgICAgaW50MTZfdCBwYWQyOworICAgIGlu
dDMyX3QgbW9kZTsKKyAgICBncmFudF9yZWZfdCBncmVmOworfTsKKworc3RydWN0IGZzaWZfbGlz
dF9yZXF1ZXN0IHsKKyAgICB1aW50MzJfdCBvZmZzZXQ7CisgICAgZ3JhbnRfcmVmX3QgZ3JlZjsK
K307CisKKyNkZWZpbmUgTlJfRklMRVNfU0hJRlQgIDAKKyNkZWZpbmUgTlJfRklMRVNfU0laRSAg
IDE2ICAgLyogMTYgYml0cyBmb3IgdGhlIG51bWJlciBvZiBmaWxlcyBtYXNrICovCisjZGVmaW5l
IE5SX0ZJTEVTX01BU0sgICAoKCgxVUxMIDw8IE5SX0ZJTEVTX1NJWkUpIC0gMSkgPDwgTlJfRklM
RVNfU0hJRlQpCisjZGVmaW5lIEVSUk9SX1NJWkUgICAgICAzMiAgIC8qIDMyIGJpdHMgZm9yIHRo
ZSBlcnJvciBtYXNrICovCisjZGVmaW5lIEVSUk9SX1NISUZUICAgICAoTlJfRklMRVNfU0laRSAr
IE5SX0ZJTEVTX1NISUZUKQorI2RlZmluZSBFUlJPUl9NQVNLICAgICAgKCgoMVVMTCA8PCBFUlJP
Ul9TSVpFKSAtIDEpIDw8IEVSUk9SX1NISUZUKQorI2RlZmluZSBIQVNfTU9SRV9TSElGVCAgKEVS
Uk9SX1NISUZUICsgRVJST1JfU0laRSkgICAgCisjZGVmaW5lIEhBU19NT1JFX0ZMQUcgICAoMVVM
TCA8PCBIQVNfTU9SRV9TSElGVCkKKworc3RydWN0IGZzaWZfY2htb2RfcmVxdWVzdCB7CisgICAg
dWludDMyX3QgZmQ7CisgICAgaW50MzJfdCBtb2RlOworfTsKKworc3RydWN0IGZzaWZfc3BhY2Vf
cmVxdWVzdCB7CisgICAgZ3JhbnRfcmVmX3QgZ3JlZjsKK307CisKK3N0cnVjdCBmc2lmX3N5bmNf
cmVxdWVzdCB7CisgICAgdWludDMyX3QgZmQ7Cit9OworCisKKy8qIEZTIG9wZXJhdGlvbiByZXF1
ZXN0ICovCitzdHJ1Y3QgZnNpZl9yZXF1ZXN0IHsKKyAgICB1aW50OF90IHR5cGU7ICAgICAgICAg
ICAgICAgICAvKiBUeXBlIG9mIHRoZSByZXF1ZXN0ICAgICAgICAgICAgICAgICAgKi8KKyAgICB1
aW50OF90IHBhZDsKKyAgICB1aW50MTZfdCBpZDsgICAgICAgICAgICAgICAgICAvKiBSZXF1ZXN0
IElELCBjb3BpZWQgdG8gdGhlIHJlc3BvbnNlICAgKi8KKyAgICB1aW50MzJfdCBwYWQyOworICAg
IHVuaW9uIHsKKyAgICAgICAgc3RydWN0IGZzaWZfb3Blbl9yZXF1ZXN0ICAgICBmb3BlbjsKKyAg
ICAgICAgc3RydWN0IGZzaWZfY2xvc2VfcmVxdWVzdCAgICBmY2xvc2U7CisgICAgICAgIHN0cnVj
dCBmc2lmX3JlYWRfcmVxdWVzdCAgICAgZnJlYWQ7CisgICAgICAgIHN0cnVjdCBmc2lmX3dyaXRl
X3JlcXVlc3QgICAgZndyaXRlOworICAgICAgICBzdHJ1Y3QgZnNpZl9zdGF0X3JlcXVlc3QgICAg
IGZzdGF0OworICAgICAgICBzdHJ1Y3QgZnNpZl90cnVuY2F0ZV9yZXF1ZXN0IGZ0cnVuY2F0ZTsK
KyAgICAgICAgc3RydWN0IGZzaWZfcmVtb3ZlX3JlcXVlc3QgICBmcmVtb3ZlOworICAgICAgICBz
dHJ1Y3QgZnNpZl9yZW5hbWVfcmVxdWVzdCAgIGZyZW5hbWU7CisgICAgICAgIHN0cnVjdCBmc2lm
X2NyZWF0ZV9yZXF1ZXN0ICAgZmNyZWF0ZTsKKyAgICAgICAgc3RydWN0IGZzaWZfbGlzdF9yZXF1
ZXN0ICAgICBmbGlzdDsKKyAgICAgICAgc3RydWN0IGZzaWZfY2htb2RfcmVxdWVzdCAgICBmY2ht
b2Q7CisgICAgICAgIHN0cnVjdCBmc2lmX3NwYWNlX3JlcXVlc3QgICAgZnNwYWNlOworICAgICAg
ICBzdHJ1Y3QgZnNpZl9zeW5jX3JlcXVlc3QgICAgIGZzeW5jOworICAgIH0gdTsKK307Cit0eXBl
ZGVmIHN0cnVjdCBmc2lmX3JlcXVlc3QgZnNpZl9yZXF1ZXN0X3Q7CisKKy8qIEZTIG9wZXJhdGlv
biByZXNwb25zZSAqLworc3RydWN0IGZzaWZfcmVzcG9uc2UgeworICAgIHVpbnQxNl90IGlkOwor
ICAgIHVpbnQxNl90IHBhZDE7CisgICAgdWludDMyX3QgcGFkMjsKKyAgICB1bmlvbiB7CisgICAg
ICAgIHVpbnQ2NF90IHJldF92YWw7CisgICAgICAgIHN0cnVjdCBmc2lmX3N0YXRfcmVzcG9uc2Ug
ZnN0YXQ7CisgICAgfSB1OworfTsKKwordHlwZWRlZiBzdHJ1Y3QgZnNpZl9yZXNwb25zZSBmc2lm
X3Jlc3BvbnNlX3Q7CisKKyNkZWZpbmUgRlNJRl9SSU5HX0VOVFJZX1NJWkUgICA2NAorCisjZGVm
aW5lIEZTSUZfTlJfUkVBRF9HTlRTICAoKEZTSUZfUklOR19FTlRSWV9TSVpFIC0gc2l6ZW9mKHN0
cnVjdCBmc2lmX3JlYWRfcmVxdWVzdCkpIC8gIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2l6ZW9mKGdyYW50X3JlZl90KSArIDEpCisjZGVmaW5lIEZTSUZfTlJfV1JJVEVfR05U
UyAoKEZTSUZfUklOR19FTlRSWV9TSVpFIC0gc2l6ZW9mKHN0cnVjdCBmc2lmX3dyaXRlX3JlcXVl
c3QpKSAvIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGdyYW50X3Jl
Zl90KSArIDEpCisKK0RFRklORV9SSU5HX1RZUEVTKGZzaWYsIHN0cnVjdCBmc2lmX3JlcXVlc3Qs
IHN0cnVjdCBmc2lmX3Jlc3BvbnNlKTsKKworI2RlZmluZSBTVEFURV9JTklUSUFMSVNFRCAgICAg
ImluaXQiCisjZGVmaW5lIFNUQVRFX1JFQURZICAgICAgICAgICAicmVhZHkiCisjZGVmaW5lIFNU
QVRFX0NMT1NJTkcgICAgICAgICAiY2xvc2luZyIKKyNkZWZpbmUgU1RBVEVfQ0xPU0VEICAgICAg
ICAgICJjbG9zZWQiCisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi94c20vaW8v
a2JkaWYuaCBiL2luY2x1ZGUveGVuL3hzbS9pby9rYmRpZi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjNjZTU0ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi94
c20vaW8va2JkaWYuaApAQCAtMCwwICsxLDU1MCBAQAorLyoKKyAqIGtiZGlmLmggLS0gWGVuIHZp
cnR1YWwga2V5Ym9hcmQvbW91c2UKKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk
LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0
aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29m
dHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24s
IGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5
LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IK
KyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRv
IHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8g
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90
aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBh
bGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisg
KiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBB
TlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRF
RCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkg
Q0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJ
T04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQg
T0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVS
CisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA1
IEFudGhvbnkgTGlndW9yaSA8YWxpZ3VvcmlAdXMuaWJtLmNvbT4KKyAqIENvcHlyaWdodCAoQykg
MjAwNiBSZWQgSGF0LCBJbmMuLCBNYXJrdXMgQXJtYnJ1c3RlciA8YXJtYnJ1QHJlZGhhdC5jb20+
CisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfSU9fS0JESUZfSF9fCisjZGVmaW5lIF9fWEVO
X1BVQkxJQ19JT19LQkRJRl9IX18KKworLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAg
ICAgICAgICAgICAgICAgICBGZWF0dXJlIGFuZCBQYXJhbWV0ZXIgTmVnb3RpYXRpb24KKyAqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorICoKKyAqIFRoZSB0d28gaGFsdmVzIG9mIGEgcGFyYS12aXJ0dWFs
IGRyaXZlciB1dGlsaXplIG5vZGVzIHdpdGhpbgorICogWGVuU3RvcmUgdG8gY29tbXVuaWNhdGUg
Y2FwYWJpbGl0aWVzIGFuZCB0byBuZWdvdGlhdGUgb3BlcmF0aW5nIHBhcmFtZXRlcnMuCisgKiBU
aGlzIHNlY3Rpb24gZW51bWVyYXRlcyB0aGVzZSBub2RlcyB3aGljaCByZXNpZGUgaW4gdGhlIHJl
c3BlY3RpdmUgZnJvbnQgYW5kCisgKiBiYWNrZW5kIHBvcnRpb25zIG9mIFhlblN0b3JlLCBmb2xs
b3dpbmcgWGVuQnVzIGNvbnZlbnRpb24uCisgKgorICogQWxsIGRhdGEgaW4gWGVuU3RvcmUgaXMg
c3RvcmVkIGFzIHN0cmluZ3MuICBOb2RlcyBzcGVjaWZ5aW5nIG51bWVyaWMKKyAqIHZhbHVlcyBh
cmUgZW5jb2RlZCBpbiBkZWNpbWFsLiBJbnRlZ2VyIHZhbHVlIHJhbmdlcyBsaXN0ZWQgYmVsb3cg
YXJlCisgKiBleHByZXNzZWQgYXMgZml4ZWQgc2l6ZWQgaW50ZWdlciB0eXBlcyBjYXBhYmxlIG9m
IHN0b3JpbmcgdGhlIGNvbnZlcnNpb24KKyAqIG9mIGEgcHJvcGVybHkgZm9ybWF0ZWQgbm9kZSBz
dHJpbmcsIHdpdGhvdXQgbG9zcyBvZiBpbmZvcm1hdGlvbi4KKyAqCisgKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhY2tlbmQgWGVuQnVzIE5vZGVz
CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gRmVhdHVyZXMgc3VwcG9ydGVkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisg
KiBDYXBhYmxlIGJhY2tlbmQgYWR2ZXJ0aXNlcyBzdXBwb3J0ZWQgZmVhdHVyZXMgYnkgcHVibGlz
aGluZworICogY29ycmVzcG9uZGluZyBlbnRyaWVzIGluIFhlblN0b3JlIGFuZCBwdXRzIDEgYXMg
dGhlIHZhbHVlIG9mIHRoZSBlbnRyeS4KKyAqIElmIGEgZmVhdHVyZSBpcyBub3Qgc3VwcG9ydGVk
IHRoZW4gMCBtdXN0IGJlIHNldCBvciBmZWF0dXJlIGVudHJ5IG9taXR0ZWQuCisgKgorICogZmVh
dHVyZS1hYnMtcG9pbnRlcgorICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ+CisgKgorICog
ICAgICBCYWNrZW5kcywgd2hpY2ggc3VwcG9ydCByZXBvcnRpbmcgb2YgYWJzb2x1dGUgY29vcmRp
bmF0ZXMgZm9yIHBvaW50ZXIKKyAqICAgICAgZGV2aWNlIHNob3VsZCBzZXQgdGhpcyB0byAxLgor
ICoKKyAqIGZlYXR1cmUtbXVsdGktdG91Y2gKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50
PgorICoKKyAqICAgICAgQmFja2VuZHMsIHdoaWNoIHN1cHBvcnQgcmVwb3J0aW5nIG9mIG11bHRp
LXRvdWNoIGV2ZW50cworICogICAgICBzaG91bGQgc2V0IHRoaXMgdG8gMS4KKyAqCisgKiBmZWF0
dXJlLXJhdy1wb2ludGVyCisgKiAgICAgIFZhbHVlczogICAgICAgIDx1aW50PgorICoKKyAqICAg
ICAgQmFja2VuZHMsIHdoaWNoIHN1cHBvcnQgcmVwb3J0aW5nIHJhdyAodW5zY2FsZWQpIGFic29s
dXRlIGNvb3JkaW5hdGVzCisgKiAgICAgIGZvciBwb2ludGVyIGRldmljZXMgc2hvdWxkIHNldCB0
aGlzIHRvIDEuIFJhdyAodW5zY2FsZWQpIHZhbHVlcyBoYXZlCisgKiAgICAgIGEgcmFuZ2Ugb2Yg
WzAsIDB4N2ZmZl0uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFBvaW50ZXIgRGV2
aWNlIFBhcmFtZXRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogd2lkdGgKKyAq
ICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50PgorICoKKyAqICAgICAgTWF4aW11bSBYIGNvb3Jk
aW5hdGUgKHdpZHRoKSB0byBiZSB1c2VkIGJ5IHRoZSBmcm9udGVuZAorICogICAgICB3aGlsZSBy
ZXBvcnRpbmcgaW5wdXQgZXZlbnRzLCBwaXhlbHMsIFswOyBVSU5UMzJfTUFYXS4KKyAqCisgKiBo
ZWlnaHQKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50PgorICoKKyAqICAgICAgTWF4aW11
bSBZIGNvb3JkaW5hdGUgKGhlaWdodCkgdG8gYmUgdXNlZCBieSB0aGUgZnJvbnRlbmQKKyAqICAg
ICAgd2hpbGUgcmVwb3J0aW5nIGlucHV0IGV2ZW50cywgcGl4ZWxzLCBbMDsgVUlOVDMyX01BWF0u
CisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBGcm9udGVuZCBYZW5CdXMgTm9kZXMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZlYXR1cmUgcmVxdWVzdCAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIENhcGFibGUgZnJvbnRlbmQgcmVxdWVzdHMgZmVhdHVy
ZXMgZnJvbSBiYWNrZW5kIHZpYSBzZXR0aW5nIGNvcnJlc3BvbmRpbmcKKyAqIGVudHJpZXMgdG8g
MSBpbiBYZW5TdG9yZS4gUmVxdWVzdHMgZm9yIGZlYXR1cmVzIG5vdCBhZHZlcnRpc2VkIGFzIHN1
cHBvcnRlZAorICogYnkgdGhlIGJhY2tlbmQgaGF2ZSBubyBlZmZlY3QuCisgKgorICogcmVxdWVz
dC1hYnMtcG9pbnRlcgorICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ+CisgKgorICogICAg
ICBSZXF1ZXN0IGJhY2tlbmQgdG8gcmVwb3J0IGFic29sdXRlIHBvaW50ZXIgY29vcmRpbmF0ZXMK
KyAqICAgICAgKFhFTktCRF9UWVBFX1BPUykgaW5zdGVhZCBvZiByZWxhdGl2ZSBvbmVzIChYRU5L
QkRfVFlQRV9NT1RJT04pLgorICoKKyAqIHJlcXVlc3QtbXVsdGktdG91Y2gKKyAqICAgICAgVmFs
dWVzOiAgICAgICAgIDx1aW50PgorICoKKyAqICAgICAgUmVxdWVzdCBiYWNrZW5kIHRvIHJlcG9y
dCBtdWx0aS10b3VjaCBldmVudHMuCisgKgorICogcmVxdWVzdC1yYXctcG9pbnRlcgorICogICAg
ICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ+CisgKgorICogICAgICBSZXF1ZXN0IGJhY2tlbmQgdG8g
cmVwb3J0IHJhdyB1bnNjYWxlZCBhYnNvbHV0ZSBwb2ludGVyIGNvb3JkaW5hdGVzLgorICogICAg
ICBUaGlzIG9wdGlvbiBpcyBvbmx5IHZhbGlkIGlmIHJlcXVlc3QtYWJzLXBvaW50ZXIgaXMgYWxz
byBzZXQuCisgKiAgICAgIFJhdyB1bnNjYWxlZCBjb29yZGluYXRlcyBoYXZlIHRoZSByYW5nZSBb
MCwgMHg3ZmZmXQorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUmVxdWVzdCBUcmFuc3Bv
cnQgUGFyYW1ldGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIGV2ZW50LWNoYW5u
ZWwKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50PgorICoKKyAqICAgICAgVGhlIGlkZW50
aWZpZXIgb2YgdGhlIFhlbiBldmVudCBjaGFubmVsIHVzZWQgdG8gc2lnbmFsIGFjdGl2aXR5Cisg
KiAgICAgIGluIHRoZSByaW5nIGJ1ZmZlci4KKyAqCisgKiBwYWdlLWdyZWYKKyAqICAgICAgVmFs
dWVzOiAgICAgICAgIDx1aW50PgorICoKKyAqICAgICAgVGhlIFhlbiBncmFudCByZWZlcmVuY2Ug
Z3JhbnRpbmcgcGVybWlzc2lvbiBmb3IgdGhlIGJhY2tlbmQgdG8gbWFwCisgKiAgICAgIGEgc29s
ZSBwYWdlIGluIGEgc2luZ2xlIHBhZ2Ugc2l6ZWQgZXZlbnQgcmluZyBidWZmZXIuCisgKgorICog
cGFnZS1yZWYKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50PgorICoKKyAqICAgICAgT0JT
T0xFVEUsIG5vdCByZWNvbW1lbmRlZCBmb3IgdXNlLgorICogICAgICBQRk4gb2YgdGhlIHNoYXJl
ZCBwYWdlLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTXVsdGktdG91Y2ggRGV2aWNl
IFBhcmFtZXRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBtdWx0aS10b3VjaC1u
dW0tY29udGFjdHMKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50PgorICoKKyAqICAgICAg
TnVtYmVyIG9mIHNpbXVsdGFuZW91cyB0b3VjaGVzIHJlcG9ydGVkLgorICoKKyAqIG11bHRpLXRv
dWNoLXdpZHRoCisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludD4KKyAqCisgKiAgICAgIFdp
ZHRoIG9mIHRoZSB0b3VjaCBhcmVhIHRvIGJlIHVzZWQgYnkgdGhlIGZyb250ZW5kCisgKiAgICAg
IHdoaWxlIHJlcG9ydGluZyBpbnB1dCBldmVudHMsIHBpeGVscywgWzA7IFVJTlQzMl9NQVhdLgor
ICoKKyAqIG11bHRpLXRvdWNoLWhlaWdodAorICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ+
CisgKgorICogICAgICBIZWlnaHQgb2YgdGhlIHRvdWNoIGFyZWEgdG8gYmUgdXNlZCBieSB0aGUg
ZnJvbnRlbmQKKyAqICAgICAgd2hpbGUgcmVwb3J0aW5nIGlucHV0IGV2ZW50cywgcGl4ZWxzLCBb
MDsgVUlOVDMyX01BWF0uCisgKi8KKworLyoKKyAqIEVWRU5UIENPREVTLgorICovCisKKyNkZWZp
bmUgWEVOS0JEX1RZUEVfTU9USU9OICAgICAgICAgICAgIDEKKyNkZWZpbmUgWEVOS0JEX1RZUEVf
UkVTRVJWRUQgICAgICAgICAgIDIKKyNkZWZpbmUgWEVOS0JEX1RZUEVfS0VZICAgICAgICAgICAg
ICAgIDMKKyNkZWZpbmUgWEVOS0JEX1RZUEVfUE9TICAgICAgICAgICAgICAgIDQKKyNkZWZpbmUg
WEVOS0JEX1RZUEVfTVRPVUNIICAgICAgICAgICAgIDUKKworLyogTXVsdGktdG91Y2ggZXZlbnQg
c3ViLWNvZGVzICovCisKKyNkZWZpbmUgWEVOS0JEX01UX0VWX0RPV04gICAgICAgICAgICAgIDAK
KyNkZWZpbmUgWEVOS0JEX01UX0VWX1VQICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgWEVOS0JE
X01UX0VWX01PVElPTiAgICAgICAgICAgIDIKKyNkZWZpbmUgWEVOS0JEX01UX0VWX1NZTiAgICAg
ICAgICAgICAgIDMKKyNkZWZpbmUgWEVOS0JEX01UX0VWX1NIQVBFICAgICAgICAgICAgIDQKKyNk
ZWZpbmUgWEVOS0JEX01UX0VWX09SSUVOVCAgICAgICAgICAgIDUKKworLyoKKyAqIENPTlNUQU5U
UywgWEVOU1RPUkUgRklFTEQgQU5EIFBBVEggTkFNRSBTVFJJTkdTLCBIRUxQRVJTLgorICovCisK
KyNkZWZpbmUgWEVOS0JEX0RSSVZFUl9OQU1FICAgICAgICAgICAgICJ2a2JkIgorCisjZGVmaW5l
IFhFTktCRF9GSUVMRF9GRUFUX0FCU19QT0lOVEVSICAiZmVhdHVyZS1hYnMtcG9pbnRlciIKKyNk
ZWZpbmUgWEVOS0JEX0ZJRUxEX0ZFQVRfTVRPVUNIICAgICAgICJmZWF0dXJlLW11bHRpLXRvdWNo
IgorI2RlZmluZSBYRU5LQkRfRklFTERfUkVRX0FCU19QT0lOVEVSICAgInJlcXVlc3QtYWJzLXBv
aW50ZXIiCisjZGVmaW5lIFhFTktCRF9GSUVMRF9SRVFfTVRPVUNIICAgICAgICAicmVxdWVzdC1t
dWx0aS10b3VjaCIKKyNkZWZpbmUgWEVOS0JEX0ZJRUxEX1JJTkdfR1JFRiAgICAgICAgICJwYWdl
LWdyZWYiCisjZGVmaW5lIFhFTktCRF9GSUVMRF9FVlRfQ0hBTk5FTCAgICAgICAiZXZlbnQtY2hh
bm5lbCIKKyNkZWZpbmUgWEVOS0JEX0ZJRUxEX1dJRFRIICAgICAgICAgICAgICJ3aWR0aCIKKyNk
ZWZpbmUgWEVOS0JEX0ZJRUxEX0hFSUdIVCAgICAgICAgICAgICJoZWlnaHQiCisjZGVmaW5lIFhF
TktCRF9GSUVMRF9NVF9XSURUSCAgICAgICAgICAibXVsdGktdG91Y2gtd2lkdGgiCisjZGVmaW5l
IFhFTktCRF9GSUVMRF9NVF9IRUlHSFQgICAgICAgICAibXVsdGktdG91Y2gtaGVpZ2h0IgorI2Rl
ZmluZSBYRU5LQkRfRklFTERfTVRfTlVNX0NPTlRBQ1RTICAgIm11bHRpLXRvdWNoLW51bS1jb250
YWN0cyIKKworLyogT0JTT0xFVEUsIG5vdCByZWNvbW1lbmRlZCBmb3IgdXNlICovCisjZGVmaW5l
IFhFTktCRF9GSUVMRF9SSU5HX1JFRiAgICAgICAgICAicGFnZS1yZWYiCisKKy8qCisgKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKKyAqIERlc2NyaXB0aW9uIG9mIHRoZSBwcm90b2NvbCBiZXR3ZWVuIGZy
b250ZW5kIGFuZCBiYWNrZW5kIGRyaXZlci4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAq
IFRoZSB0d28gaGFsdmVzIG9mIGEgUGFyYS12aXJ0dWFsIGRyaXZlciBjb21tdW5pY2F0ZSB3aXRo
CisgKiBlYWNoIG90aGVyIHVzaW5nIGEgc2hhcmVkIHBhZ2UgYW5kIGFuIGV2ZW50IGNoYW5uZWwu
CisgKiBTaGFyZWQgcGFnZSBjb250YWlucyBhIHJpbmcgd2l0aCBldmVudCBzdHJ1Y3R1cmVzLgor
ICoKKyAqIEFsbCByZXNlcnZlZCBmaWVsZHMgaW4gdGhlIHN0cnVjdHVyZXMgYmVsb3cgbXVzdCBi
ZSAwLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAg
ICAgICBCYWNrZW5kIHRvIGZyb250ZW5kIGV2ZW50cworICoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisg
KgorICogRnJvbnRlbmRzIHNob3VsZCBpZ25vcmUgdW5rbm93biBpbiBldmVudHMuCisgKiBBbGwg
ZXZlbnQgcGFja2V0cyBoYXZlIHRoZSBzYW1lIGxlbmd0aCAoNDAgb2N0ZXRzKQorICogQWxsIGV2
ZW50IHBhY2tldHMgaGF2ZSBjb21tb24gaGVhZGVyOgorICoKKyAqICAgICAgICAgIDAgICAgICAg
ICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICB0eXBlICAgICAgfAor
ICogKy0tLS0tLS0tLS0tLS0tLS0tKworICogdHlwZSAtIHVpbnQ4X3QsIGV2ZW50IGNvZGUsIFhF
TktCRF9UWVBFXz8/PworICoKKyAqCisgKiBQb2ludGVyIHJlbGF0aXZlIG1vdmVtZW50IGV2ZW50
CisgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAg
ICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgIF9UWVBFX01PVElP
TiAgfCAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgfCA0
CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVs
X3ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4CisgKiArLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAq
IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsX3kgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAxMgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlbF96ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYKKyAq
ICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIwCisgKiArLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNDAKKyAqICstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKworICoKKyAqIHJlbF94IC0gaW50MzJfdCwgcmVsYXRpdmUgWCBtb3Rpb24KKyAqIHJl
bF95IC0gaW50MzJfdCwgcmVsYXRpdmUgWSBtb3Rpb24KKyAqIHJlbF96IC0gaW50MzJfdCwgcmVs
YXRpdmUgWiBtb3Rpb24gKHdoZWVsKQorICovCisKK3N0cnVjdCB4ZW5rYmRfbW90aW9uCit7Cisg
ICAgdWludDhfdCB0eXBlOworICAgIGludDMyX3QgcmVsX3g7CisgICAgaW50MzJfdCByZWxfeTsK
KyAgICBpbnQzMl90IHJlbF96OworfTsKKworLyoKKyAqIEtleSBldmVudCAoaW5jbHVkZXMgcG9p
bnRlciBidXR0b25zKQorICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAg
ICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8
ICBfVFlQRV9LRVkgICAgIHwgICAgIHByZXNzZWQgICAgfCAgICAgICAgICAgIHJlc2VydmVkICAg
ICAgICAgICAgIHwgNAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAga2V5Y29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAorICogKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0MAorICogKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rCisgKgorICogcHJlc3NlZCAtIHVpbnQ4X3QsIDEgaWYgcHJlc3NlZDsgMCBvdGhlcndpc2UK
KyAqIGtleWNvZGUgLSB1aW50MzJfdCwgS0VZXyogZnJvbSBsaW51eC9pbnB1dC5oCisgKi8KKwor
c3RydWN0IHhlbmtiZF9rZXkKK3sKKyAgICB1aW50OF90IHR5cGU7CisgICAgdWludDhfdCBwcmVz
c2VkOworICAgIHVpbnQzMl90IGtleWNvZGU7Cit9OworCisvKgorICogUG9pbnRlciBhYnNvbHV0
ZSBwb3NpdGlvbiBldmVudAorICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAg
ICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisg
KiB8ICBfVFlQRV9QT1MgICAgIHwgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAg
ICAgICAgICAgICAgIHwgNAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFic194ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAorICog
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFic195ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxfeiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8IDE2CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMAorICogKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8IDQwCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBhYnNfeCAtIGludDMyX3QsIGFic29sdXRl
IFggcG9zaXRpb24gKGluIEZCIHBpeGVscykKKyAqIGFic195IC0gaW50MzJfdCwgYWJzb2x1dGUg
WSBwb3NpdGlvbiAoaW4gRkIgcGl4ZWxzKQorICogcmVsX3ogLSBpbnQzMl90LCByZWxhdGl2ZSBa
IG1vdGlvbiAod2hlZWwpCisgKi8KKworc3RydWN0IHhlbmtiZF9wb3NpdGlvbgoreworICAgIHVp
bnQ4X3QgdHlwZTsKKyAgICBpbnQzMl90IGFic194OworICAgIGludDMyX3QgYWJzX3k7CisgICAg
aW50MzJfdCByZWxfejsKK307CisKKy8qCisgKiBNdWx0aS10b3VjaCBldmVudCBhbmQgaXRzIHN1
Yi10eXBlcworICoKKyAqIEFsbCBtdWx0aS10b3VjaCBldmVudCBwYWNrZXRzIGhhdmUgY29tbW9u
IGhlYWRlcjoKKyAqCisgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAg
ICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwg
IF9UWVBFX01UT1VDSCAgfCAgIGV2ZW50X3R5cGUgICB8ICAgY29udGFjdF9pZCAgIHwgICAgcmVz
ZXJ2ZWQgICAgfCA0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4CisgKiArLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSsKKyAqCisgKiBldmVudF90eXBlIC0gdW50OF90LCBtdWx0aS10b3VjaCBldmVudCBz
dWItdHlwZSwgWEVOS0JEX01UX0VWXz8/PworICogY29udGFjdF9pZCAtIHVudDhfdCwgSUQgb2Yg
dGhlIGNvbnRhY3QKKyAqCisgKiBUb3VjaCBpbnRlcmFjdGlvbnMgY2FuIGNvbnNpc3Qgb2Ygb25l
IG9yIG1vcmUgY29udGFjdHMuCisgKiBGb3IgZWFjaCBjb250YWN0LCBhIHNlcmllcyBvZiBldmVu
dHMgaXMgZ2VuZXJhdGVkLCBzdGFydGluZworICogd2l0aCBhIGRvd24gZXZlbnQsIGZvbGxvd2Vk
IGJ5IHplcm8gb3IgbW9yZSBtb3Rpb24gZXZlbnRzLAorICogYW5kIGVuZGluZyB3aXRoIGFuIHVw
IGV2ZW50LiBFdmVudHMgcmVsYXRpbmcgdG8gdGhlIHNhbWUKKyAqIGNvbnRhY3QgcG9pbnQgY2Fu
IGJlIGlkZW50aWZpZWQgYnkgdGhlIElEIG9mIHRoZSBzZXF1ZW5jZTogY29udGFjdCBJRC4KKyAq
IENvbnRhY3QgSUQgbWF5IGJlIHJldXNlZCBhZnRlciBYRU5LQkRfTVRfRVZfVVAgZXZlbnQgYW5k
CisgKiBpcyBpbiB0aGUgWzA7IFhFTktCRF9GSUVMRF9OVU1fQ09OVEFDVFMgLSAxXSByYW5nZS4K
KyAqCisgKiBGb3IgZnVydGhlciBpbmZvcm1hdGlvbiBwbGVhc2UgcmVmZXIgdG8gZG9jdW1lbnRh
dGlvbiBvbiBXYXlsYW5kIFsxXSwKKyAqIExpbnV4IFsyXSBhbmQgV2luZG93cyBbM10gbXVsdGkt
dG91Y2ggc3VwcG9ydC4KKyAqCisgKiBbMV0gaHR0cHM6Ly9jZ2l0LmZyZWVkZXNrdG9wLm9yZy93
YXlsYW5kL3dheWxhbmQvdHJlZS9wcm90b2NvbC93YXlsYW5kLnhtbAorICogWzJdIGh0dHBzOi8v
d3d3Lmtlcm5lbC5vcmcvZG9jL0RvY3VtZW50YXRpb24vaW5wdXQvbXVsdGktdG91Y2gtcHJvdG9j
b2wudHh0CisgKiBbM10gaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9q
ajE1MTU2NCh2PXZzLjg1KS5hc3B4CisgKgorICoKKyAqIE11bHRpLXRvdWNoIGRvd24gZXZlbnQg
LSBzZW50IHdoZW4gYSBuZXcgdG91Y2ggaXMgbWFkZTogdG91Y2ggaXMgYXNzaWduZWQKKyAqIGEg
dW5pcXVlIGNvbnRhY3QgSUQsIHNlbnQgd2l0aCB0aGlzIGFuZCBjb25zZXF1ZW50IGV2ZW50cyBy
ZWxhdGVkCisgKiB0byB0aGlzIHRvdWNoLgorICogICAgICAgICAwICAgICAgICAgICAgICAgIDEg
ICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rCisgKiB8ICBfVFlQRV9NVE9VQ0ggIHwgICBfTVRfRVZfRE9XTiAgfCAgIGNvbnRhY3Rf
aWQgICB8ICAgIHJlc2VydmVkICAgIHwgNAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgOAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFic194ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIKKyAqICstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
KworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnNfeSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8IDE2CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAy
MAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICog
fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8IDQwCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBhYnNfeCAtIGludDMyX3Qs
IGFic29sdXRlIFggcG9zaXRpb24sIGluIHBpeGVscworICogYWJzX3kgLSBpbnQzMl90LCBhYnNv
bHV0ZSBZIHBvc2l0aW9uLCBpbiBwaXhlbHMKKyAqCisgKiBNdWx0aS10b3VjaCBjb250YWN0IHJl
bGVhc2UgZXZlbnQKKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAg
ICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAg
X1RZUEVfTVRPVUNIICB8ICBfTVRfRVZfVVAgICAgIHwgICBjb250YWN0X2lkICAgfCAgICByZXNl
cnZlZCAgICB8IDQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKKyAqICstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKworICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCA0MAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogTXVsdGktdG91Y2ggbW90aW9uIGV2ZW50Cisg
KiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAg
ICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgIF9UWVBFX01UT1VDSCAg
fCAgX01UX0VWX01PVElPTiB8ICAgY29udGFjdF9pZCAgIHwgICAgcmVzZXJ2ZWQgICAgfCA0Cisg
KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4CisgKiArLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJzX3ggICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAxMgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFic195ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYKKyAqICst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIwCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNDAKKyAqICstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKworICoKKyAqIGFic194IC0gaW50MzJfdCwgYWJzb2x1dGUgWCBwb3NpdGlvbiwgaW4gcGl4
ZWxzLAorICogYWJzX3kgLSBpbnQzMl90LCBhYnNvbHV0ZSBZIHBvc2l0aW9uLCBpbiBwaXhlbHMs
CisgKgorICogTXVsdGktdG91Y2ggaW5wdXQgc3luY2hyb25pemF0aW9uIGV2ZW50IC0gc2hvd3Mg
ZW5kIG9mIGEgc2V0IG9mIGV2ZW50cworICogd2hpY2ggbG9naWNhbGx5IGJlbG9uZyB0b2dldGhl
ci4KKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAg
ICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgX1RZUEVfTVRP
VUNIICB8ICBfTVRfRVZfU1lOICAgIHwgICBjb250YWN0X2lkICAgfCAgICByZXNlcnZlZCAgICB8
IDQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz
ZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKKyAqICstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwor
ICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0MAorICog
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rCisgKgorICogTXVsdGktdG91Y2ggc2hhcGUgZXZlbnQgLSB0b3VjaCBwb2lu
dCdzIHNoYXBlIGhhcyBjaGFuZ2VkIGl0cyBzaGFwZS4KKyAqIFNoYXBlIGlzIGFwcHJveGltYXRl
ZCBieSBhbiBlbGxpcHNlIHRocm91Z2ggdGhlIG1ham9yIGFuZCBtaW5vciBheGlzCisgKiBsZW5n
dGhzOiBtYWpvciBpcyB0aGUgbG9uZ2VyIGRpYW1ldGVyIG9mIHRoZSBlbGxpcHNlIGFuZCBtaW5v
ciBpcyB0aGUKKyAqIHNob3J0ZXIgb25lLiBDZW50ZXIgb2YgdGhlIGVsbGlwc2UgaXMgcmVwb3J0
ZWQgdmlhCisgKiBYRU5LQkRfTVRfRVZfRE9XTi9YRU5LQkRfTVRfRVZfTU9USU9OIGV2ZW50cy4K
KyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAg
ICAgICAgMyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgX1RZUEVfTVRPVUNI
ICB8ICBfTVRfRVZfU0hBUEUgIHwgICBjb250YWN0X2lkICAgfCAgICByZXNlcnZlZCAgICB8IDQK
KyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2
ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKKyAqICstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICog
fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWpvciAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8IDEyCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWlub3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNgorICog
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0MAorICogKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rCisgKgorICogbWFqb3IgLSB1bnQzMl90LCBsZW5ndGggb2YgdGhlIG1ham9yIGF4aXMs
IHBpeGVscworICogbWlub3IgLSB1bnQzMl90LCBsZW5ndGggb2YgdGhlIG1pbm9yIGF4aXMsIHBp
eGVscworICoKKyAqIE11bHRpLXRvdWNoIG9yaWVudGF0aW9uIGV2ZW50IC0gdG91Y2ggcG9pbnQn
cyBzaGFwZSBoYXMgY2hhbmdlZAorICogaXRzIG9yaWVudGF0aW9uOiBjYWxjdWxhdGVkIGFzIGEg
Y2xvY2t3aXNlIGFuZ2xlIGJldHdlZW4gdGhlIG1ham9yIGF4aXMKKyAqIG9mIHRoZSBlbGxpcHNl
IGFuZCBwb3NpdGl2ZSBZIGF4aXMgaW4gZGVncmVlcywgWy0xODA7ICsxODBdLgorICogICAgICAg
ICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAg
ICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICBfVFlQRV9NVE9VQ0ggIHwgIF9NVF9F
Vl9PUklFTlQgfCAgIGNvbnRhY3RfaWQgICB8ICAgIHJlc2VydmVkICAgIHwgNAorICogKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgOAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAg
ICBvcmllbnRhdGlvbiAgICAgICAgICAgfCAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAg
IHwgMTIKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE2CisgKiArLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNDAK
KyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKworICoKKyAqIG9yaWVudGF0aW9uIC0gaW50MTZfdCwgY2xvY2t3aXNl
IGFuZ2xlIG9mIHRoZSBtYWpvciBheGlzCisgKi8KKworc3RydWN0IHhlbmtiZF9tdG91Y2ggewor
ICAgIHVpbnQ4X3QgdHlwZTsgICAgICAgICAgICAvKiBYRU5LQkRfVFlQRV9NVE9VQ0ggKi8KKyAg
ICB1aW50OF90IGV2ZW50X3R5cGU7ICAgICAgLyogWEVOS0JEX01UX0VWXz8/PyAqLworICAgIHVp
bnQ4X3QgY29udGFjdF9pZDsKKyAgICB1aW50OF90IHJlc2VydmVkWzVdOyAgICAgLyogcmVzZXJ2
ZWQgZm9yIHRoZSBmdXR1cmUgdXNlICovCisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3Qgewor
ICAgICAgICAgICAgaW50MzJfdCBhYnNfeDsgICAvKiBhYnNvbHV0ZSBYIHBvc2l0aW9uLCBwaXhl
bHMgKi8KKyAgICAgICAgICAgIGludDMyX3QgYWJzX3k7ICAgLyogYWJzb2x1dGUgWSBwb3NpdGlv
biwgcGl4ZWxzICovCisgICAgICAgIH0gcG9zOworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAg
ICAgdWludDMyX3QgbWFqb3I7ICAvKiBsZW5ndGggb2YgdGhlIG1ham9yIGF4aXMsIHBpeGVscyAq
LworICAgICAgICAgICAgdWludDMyX3QgbWlub3I7ICAvKiBsZW5ndGggb2YgdGhlIG1pbm9yIGF4
aXMsIHBpeGVscyAqLworICAgICAgICB9IHNoYXBlOworICAgICAgICBpbnQxNl90IG9yaWVudGF0
aW9uOyAvKiBjbG9ja3dpc2UgYW5nbGUgb2YgdGhlIG1ham9yIGF4aXMgKi8KKyAgICB9IHU7Cit9
OworCisjZGVmaW5lIFhFTktCRF9JTl9FVkVOVF9TSVpFIDQwCisKK3VuaW9uIHhlbmtiZF9pbl9l
dmVudAoreworICAgIHVpbnQ4X3QgdHlwZTsKKyAgICBzdHJ1Y3QgeGVua2JkX21vdGlvbiBtb3Rp
b247CisgICAgc3RydWN0IHhlbmtiZF9rZXkga2V5OworICAgIHN0cnVjdCB4ZW5rYmRfcG9zaXRp
b24gcG9zOworICAgIHN0cnVjdCB4ZW5rYmRfbXRvdWNoIG10b3VjaDsKKyAgICBjaGFyIHBhZFtY
RU5LQkRfSU5fRVZFTlRfU0laRV07Cit9OworCisvKgorICoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisg
KiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVuZCB0byBiYWNrZW5kIGV2ZW50cwor
ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisgKgorICogT3V0IGV2ZW50cyBtYXkgYmUgc2VudCBvbmx5
IHdoZW4gcmVxdWVzdGVkIGJ5IGJhY2tlbmQsIGFuZCByZWNlaXB0CisgKiBvZiBhbiB1bmtub3du
IG91dCBldmVudCBpcyBhbiBlcnJvci4KKyAqIE5vIG91dCBldmVudHMgY3VycmVudGx5IGRlZmlu
ZWQuCisKKyAqIEFsbCBldmVudCBwYWNrZXRzIGhhdmUgdGhlIHNhbWUgbGVuZ3RoICg0MCBvY3Rl
dHMpCisgKiBBbGwgZXZlbnQgcGFja2V0cyBoYXZlIGNvbW1vbiBoZWFkZXI6CisgKiAgICAgICAg
ICAwICAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgdHlw
ZSAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHR5cGUgLSB1aW50OF90LCBldmVu
dCBjb2RlCisgKi8KKworI2RlZmluZSBYRU5LQkRfT1VUX0VWRU5UX1NJWkUgNDAKKwordW5pb24g
eGVua2JkX291dF9ldmVudAoreworICAgIHVpbnQ4X3QgdHlwZTsKKyAgICBjaGFyIHBhZFtYRU5L
QkRfT1VUX0VWRU5UX1NJWkVdOworfTsKKworLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgU2hhcmVkIHBhZ2UKKyAqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgorICovCisKKyNkZWZpbmUgWEVOS0JEX0lOX1JJTkdfU0laRSAyMDQ4CisjZGVmaW5lIFhF
TktCRF9JTl9SSU5HX0xFTiAoWEVOS0JEX0lOX1JJTkdfU0laRSAvIFhFTktCRF9JTl9FVkVOVF9T
SVpFKQorI2RlZmluZSBYRU5LQkRfSU5fUklOR19PRkZTIDEwMjQKKyNkZWZpbmUgWEVOS0JEX0lO
X1JJTkcocGFnZSkgXAorICAgICgodW5pb24geGVua2JkX2luX2V2ZW50ICopKChjaGFyICopKHBh
Z2UpICsgWEVOS0JEX0lOX1JJTkdfT0ZGUykpCisjZGVmaW5lIFhFTktCRF9JTl9SSU5HX1JFRihw
YWdlLCBpZHgpIFwKKyAgICAoWEVOS0JEX0lOX1JJTkcoKHBhZ2UpKVsoaWR4KSAlIFhFTktCRF9J
Tl9SSU5HX0xFTl0pCisKKyNkZWZpbmUgWEVOS0JEX09VVF9SSU5HX1NJWkUgMTAyNAorI2RlZmlu
ZSBYRU5LQkRfT1VUX1JJTkdfTEVOIChYRU5LQkRfT1VUX1JJTkdfU0laRSAvIFhFTktCRF9PVVRf
RVZFTlRfU0laRSkKKyNkZWZpbmUgWEVOS0JEX09VVF9SSU5HX09GRlMgKFhFTktCRF9JTl9SSU5H
X09GRlMgKyBYRU5LQkRfSU5fUklOR19TSVpFKQorI2RlZmluZSBYRU5LQkRfT1VUX1JJTkcocGFn
ZSkgXAorICAgICgodW5pb24geGVua2JkX291dF9ldmVudCAqKSgoY2hhciAqKShwYWdlKSArIFhF
TktCRF9PVVRfUklOR19PRkZTKSkKKyNkZWZpbmUgWEVOS0JEX09VVF9SSU5HX1JFRihwYWdlLCBp
ZHgpIFwKKyAgICAoWEVOS0JEX09VVF9SSU5HKChwYWdlKSlbKGlkeCkgJSBYRU5LQkRfT1VUX1JJ
TkdfTEVOXSkKKworc3RydWN0IHhlbmtiZF9wYWdlCit7CisgICAgdWludDMyX3QgaW5fY29ucywg
aW5fcHJvZDsKKyAgICB1aW50MzJfdCBvdXRfY29ucywgb3V0X3Byb2Q7Cit9OworCisjZW5kaWYg
LyogX19YRU5fUFVCTElDX0lPX0tCRElGX0hfXyAqLworCisvKgorICogTG9jYWwgdmFyaWFibGVz
OgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6
IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6Cisg
Ki8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3hzbS9pby9saWJ4ZW52Y2hhbi5oIGIvaW5jbHVk
ZS94ZW4veHNtL2lvL2xpYnhlbnZjaGFuLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNDQyODRmNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL3hzbS9pby9saWJ4
ZW52Y2hhbi5oCkBAIC0wLDAgKzEsMTAxIEBACisvKioKKyAqIEBmaWxlCisgKiBAc2VjdGlvbiBB
VVRIT1JTCisgKgorICogQ29weXJpZ2h0IChDKSAyMDEwICBSYWZhbCBXb2p0Y3p1ayAgPHJhZmFs
QGludmlzaWJsZXRoaW5nc2xhYi5jb20+CisgKgorICogIEF1dGhvcnM6CisgKiAgICAgICBSYWZh
bCBXb2p0Y3p1ayAgPHJhZmFsQGludmlzaWJsZXRoaW5nc2xhYi5jb20+CisgKiAgICAgICBEYW5p
ZWwgRGUgR3JhYWYgPGRnZGVncmFAdHljaG8ubnNhLmdvdj4KKyAqCisgKiBAc2VjdGlvbiBMSUNF
TlNFCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us
IHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQg
YXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiBk
ZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91
dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwg
cHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGllcyBv
ZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2Fy
ZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJt
aXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJz
dGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElT
IFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Mg
T1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRIT1JT
IE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9S
IE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBU
T1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJ
T04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4g
VEhFIFNPRlRXQVJFLgorICoKKyAqIEBzZWN0aW9uIERFU0NSSVBUSU9OCisgKgorICogIE9yaWdp
bmFsbHkgYm9ycm93ZWQgZnJvbSB0aGUgUXViZXMgT1MgUHJvamVjdCwgaHR0cDovL3d3dy5xdWJl
cy1vcy5vcmcsCisgKiAgdGhpcyBjb2RlIGhhcyBiZWVuIHN1YnN0YW50aWFsbHkgcmV3cml0dGVu
IHRvIHVzZSB0aGUgZ250ZGV2IGFuZCBnbnRhbGxvYworICogIGRldmljZXMgaW5zdGVhZCBvZiBy
YXcgTUZOcyBhbmQgbWFwX2ZvcmVpZ25fcmFuZ2UuCisgKgorICogIFRoaXMgaXMgYSBsaWJyYXJ5
IGZvciBpbnRlci1kb21haW4gY29tbXVuaWNhdGlvbi4gIEEgc3RhbmRhcmQgWGVuIHJpbmcKKyAq
ICBidWZmZXIgaXMgdXNlZCwgd2l0aCBhIGRhdGFncmFtLWJhc2VkIGludGVyZmFjZSBidWlsdCBv
biB0b3AuICBUaGUgZ3JhbnQKKyAqICByZWZlcmVuY2UgYW5kIGV2ZW50IGNoYW5uZWxzIGFyZSBz
aGFyZWQgaW4gWGVuU3RvcmUgdW5kZXIgYSB1c2VyLXNwZWNpZmllZAorICogIHBhdGguCisgKgor
ICogIFRoZSByaW5nLmggbWFjcm9zIGRlZmluZSBhbiBhc3ltbWV0cmljIGludGVyZmFjZSB0byBh
IHNoYXJlZCBkYXRhIHN0cnVjdHVyZQorICogIHRoYXQgYXNzdW1lcyBhbGwgcmluZ3MgcmVzaWRl
IGluIGEgc2luZ2xlIGNvbnRpZ3VvdXMgbWVtb3J5IHNwYWNlLiBUaGlzIGlzCisgKiAgbm90IHN1
aXRhYmxlIGZvciB2Y2hhbiBiZWNhdXNlIHRoZSBpbnRlcmZhY2UgdG8gdGhlIHJpbmcgaXMgc3lt
bWV0cmljIGV4Y2VwdAorICogIGZvciB0aGUgc2V0dXAuIFVubGlrZSB0aGUgcHJvZHVjZXItY29u
c3VtZXIgcmluZ3MgZGVmaW5lZCBpbiByaW5nLmgsIHRoZQorICogIHNpemUgb2YgdGhlIHJpbmdz
IHVzZWQgaW4gdmNoYW4gYXJlIGRldGVybWluZWQgYXQgZXhlY3V0aW9uIHRpbWUgaW5zdGVhZCBv
ZgorICogIGNvbXBpbGUgdGltZSwgc28gdGhlIG1hY3JvcyBpbiByaW5nLmggY2Fubm90IGJlIHVz
ZWQgdG8gYWNjZXNzIHRoZSByaW5ncy4KKyAqLworCisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5j
bHVkZSA8c3lzL3R5cGVzLmg+CisKK3N0cnVjdCByaW5nX3NoYXJlZCB7CisJdWludDMyX3QgY29u
cywgcHJvZDsKK307CisKKyNkZWZpbmUgVkNIQU5fTk9USUZZX1dSSVRFIDB4MQorI2RlZmluZSBW
Q0hBTl9OT1RJRllfUkVBRCAweDIKKworLyoqCisgKiB2Y2hhbl9pbnRlcmZhY2U6IHByaW1hcnkg
c2hhcmVkIGRhdGEgc3RydWN0dXJlCisgKi8KK3N0cnVjdCB2Y2hhbl9pbnRlcmZhY2UgeworCS8q
KgorCSAqIFN0YW5kYXJkIGNvbnN1bWVyL3Byb2R1Y2VyIGludGVyZmFjZSwgb25lIHBhaXIgcGVy
IGJ1ZmZlcgorCSAqIGxlZnQgaXMgY2xpZW50IHdyaXRlLCBzZXJ2ZXIgcmVhZAorCSAqIHJpZ2h0
IGlzIGNsaWVudCByZWFkLCBzZXJ2ZXIgd3JpdGUKKwkgKi8KKwlzdHJ1Y3QgcmluZ19zaGFyZWQg
bGVmdCwgcmlnaHQ7CisJLyoqCisJICogc2l6ZSBvZiB0aGUgcmluZ3MsIHdoaWNoIGRldGVybWlu
ZXMgdGhlaXIgbG9jYXRpb24KKwkgKiAxMCAgIC0gYXQgb2Zmc2V0IDEwMjQgaW4gcmluZydzIHBh
Z2UKKwkgKiAxMSAgIC0gYXQgb2Zmc2V0IDIwNDggaW4gcmluZydzIHBhZ2UKKwkgKiAxMisgIC0g
dXNlcyAyXihOLTEyKSBncmFudHMgdG8gZGVzY3JpYmUgdGhlIG11bHRpLXBhZ2UgcmluZworCSAq
IFRoZXNlIHNob3VsZCByZW1haW4gY29uc3RhbnQgb25jZSB0aGUgcGFnZSBpcyBzaGFyZWQuCisJ
ICogT25seSBvbmUgb2YgdGhlIHR3byBvcmRlcnMgY2FuIGJlIDEwIChvciAxMSkuCisJICovCisJ
dWludDE2X3QgbGVmdF9vcmRlciwgcmlnaHRfb3JkZXI7CisJLyoqCisJICogU2h1dGRvd24gZGV0
ZWN0aW9uOgorCSAqICAwOiBjbGllbnQgKG9yIHNlcnZlcikgaGFzIGV4aXRlZAorCSAqICAxOiBj
bGllbnQgKG9yIHNlcnZlcikgaXMgY29ubmVjdGVkCisJICogIDI6IGNsaWVudCBoYXMgbm90IHll
dCBjb25uZWN0ZWQKKwkgKi8KKwl1aW50OF90IGNsaV9saXZlLCBzcnZfbGl2ZTsKKwkvKioKKwkg
KiBOb3RpZmljYXRpb24gYml0czoKKwkgKiAgVkNIQU5fTk9USUZZX1dSSVRFOiBzZW5kIG5vdGlm
eSB3aGVuIGRhdGEgaXMgd3JpdHRlbgorCSAqICBWQ0hBTl9OT1RJRllfUkVBRDogc2VuZCBub3Rp
Znkgd2hlbiBkYXRhIGlzIHJlYWQgKGNvbnN1bWVkKQorCSAqIGNsaV9ub3RpZnkgaXMgdXNlZCBm
b3IgdGhlIGNsaWVudCB0byBpbmZvcm0gdGhlIHNlcnZlciBvZiBpdHMgYWN0aW9uCisJICovCisJ
dWludDhfdCBjbGlfbm90aWZ5LCBzcnZfbm90aWZ5OworCS8qKgorCSAqIEdyYW50IGxpc3Q6IG9y
ZGVyaW5nIGlzIGxlZnQsIHJpZ2h0LiBNdXN0IG5vdCBleHRlbmQgaW50byBhY3R1YWwgcmluZwor
CSAqIG9yIGdyb3cgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGluaXRpYWwgc2hhcmVkIHBhZ2UuCisJ
ICogVGhlc2Ugc2hvdWxkIHJlbWFpbiBjb25zdGFudCBvbmNlIHRoZSBwYWdlIGlzIHNoYXJlZCwg
dG8gYWxsb3cKKwkgKiBmb3IgcG9zc2libGUgcmVtYXBwaW5nIGJ5IGEgY2xpZW50IHRoYXQgcmVz
dGFydHMuCisJICovCisJdWludDMyX3QgZ3JhbnRzWzBdOworfTsKKwpkaWZmIC0tZ2l0IGEvaW5j
bHVkZS94ZW4veHNtL2lvL25ldGlmLmggYi9pbmNsdWRlL3hlbi94c20vaW8vbmV0aWYuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDU0NDQ4Ci0tLSAvZGV2L251bGwKKysr
IGIvaW5jbHVkZS94ZW4veHNtL2lvL25ldGlmLmgKQEAgLTAsMCArMSwxMDc2IEBACisvKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisgKiBuZXRpZi5oCisgKgorICogVW5pZmllZCBuZXR3b3JrLWRldmlj
ZSBJL08gaW50ZXJmYWNlIGZvciBYZW4gZ3Vlc3QgT1Nlcy4KKyAqCisgKiBQZXJtaXNzaW9uIGlz
IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcg
YSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24g
ZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhv
dXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdo
dHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJs
aWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBl
cm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8g
c28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92
ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGlu
Y2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBT
b2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V
VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5H
IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisg
KiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUg
TElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5H
CisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBU
SEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQ29w
eXJpZ2h0IChjKSAyMDAzLTIwMDQsIEtlaXIgRnJhc2VyCisgKi8KKworI2lmbmRlZiBfX1hFTl9Q
VUJMSUNfSU9fTkVUSUZfSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19JT19ORVRJRl9IX18KKwor
I2luY2x1ZGUgInJpbmcuaCIKKyNpbmNsdWRlICIuLi9ncmFudF90YWJsZS5oIgorCisvKgorICog
T2xkZXIgaW1wbGVtZW50YXRpb24gb2YgWGVuIG5ldHdvcmsgZnJvbnRlbmQgLyBiYWNrZW5kIGhh
cyBhbgorICogaW1wbGljaXQgZGVwZW5kZW5jeSBvbiB0aGUgTUFYX1NLQl9GUkFHUyBhcyB0aGUg
bWF4aW11bSBudW1iZXIgb2YKKyAqIHJpbmcgc2xvdHMgYSBza2IgY2FuIHVzZS4gTmV0ZnJvbnQg
LyBuZXRiYWNrIG1heSBub3Qgd29yayBhcworICogZXhwZWN0ZWQgd2hlbiBmcm9udGVuZCBhbmQg
YmFja2VuZCBoYXZlIGRpZmZlcmVudCBNQVhfU0tCX0ZSQUdTLgorICoKKyAqIEEgYmV0dGVyIGFw
cHJvYWNoIGlzIHRvIGFkZCBtZWNoYW5pc20gZm9yIG5ldGZyb250IC8gbmV0YmFjayB0bworICog
bmVnb3RpYXRlIHRoaXMgdmFsdWUuIEhvd2V2ZXIgd2UgY2Fubm90IGZpeCBhbGwgcG9zc2libGUK
KyAqIGZyb250ZW5kcywgc28gd2UgbmVlZCB0byBkZWZpbmUgYSB2YWx1ZSB3aGljaCBzdGF0ZXMg
dGhlIG1pbmltdW0KKyAqIHNsb3RzIGJhY2tlbmQgbXVzdCBzdXBwb3J0LgorICoKKyAqIFRoZSBt
aW5pbXVtIHZhbHVlIGRlcml2ZXMgZnJvbSBvbGRlciBMaW51eCBrZXJuZWwncyBNQVhfU0tCX0ZS
QUdTCisgKiAoMTgpLCB3aGljaCBpcyBwcm92ZWQgdG8gd29yayB3aXRoIG1vc3QgZnJvbnRlbmRz
LiBBbnkgbmV3IGJhY2tlbmQKKyAqIHdoaWNoIGRvZXNuJ3QgbmVnb3RpYXRlIHdpdGggZnJvbnRl
bmQgc2hvdWxkIGV4cGVjdCBmcm9udGVuZCB0bworICogc2VuZCBhIHZhbGlkIHBhY2tldCB1c2lu
ZyBzbG90cyB1cCB0byB0aGlzIHZhbHVlLgorICovCisjZGVmaW5lIFhFTl9ORVRJRl9OUl9TTE9U
U19NSU4gMTgKKworLyoKKyAqIE5vdGlmaWNhdGlvbnMgYWZ0ZXIgZW5xdWV1aW5nIGFueSB0eXBl
IG9mIG1lc3NhZ2Ugc2hvdWxkIGJlIGNvbmRpdGlvbmFsIG9uCisgKiB0aGUgYXBwcm9wcmlhdGUg
cmVxX2V2ZW50IG9yIHJzcF9ldmVudCBmaWVsZCBpbiB0aGUgc2hhcmVkIHJpbmcuCisgKiBJZiB0
aGUgY2xpZW50IHNlbmRzIG5vdGlmaWNhdGlvbiBmb3IgcnggcmVxdWVzdHMgdGhlbiBpdCBzaG91
bGQgc3BlY2lmeQorICogZmVhdHVyZSAnZmVhdHVyZS1yeC1ub3RpZnknIHZpYSB4ZW5idXMuIE90
aGVyd2lzZSB0aGUgYmFja2VuZCB3aWxsIGFzc3VtZQorICogdGhhdCBpdCBjYW5ub3Qgc2FmZWx5
IHF1ZXVlIHBhY2tldHMgKGFzIGl0IG1heSBub3QgYmUga2lja2VkIHRvIHNlbmQgdGhlbSkuCisg
Ki8KKworLyoKKyAqICJmZWF0dXJlLXNwbGl0LWV2ZW50LWNoYW5uZWxzIiBpcyBpbnRyb2R1Y2Vk
IHRvIHNlcGFyYXRlIGd1ZXN0IFRYCisgKiBhbmQgUlggbm90aWZpY2F0aW9uLiBCYWNrZW5kIGVp
dGhlciBkb2Vzbid0IHN1cHBvcnQgdGhpcyBmZWF0dXJlIG9yCisgKiBhZHZlcnRpc2VzIGl0IHZp
YSB4ZW5zdG9yZSBhcyAwIChkaXNhYmxlZCkgb3IgMSAoZW5hYmxlZCkuCisgKgorICogVG8gbWFr
ZSB1c2Ugb2YgdGhpcyBmZWF0dXJlLCBmcm9udGVuZCBzaG91bGQgYWxsb2NhdGUgdHdvIGV2ZW50
CisgKiBjaGFubmVscyBmb3IgVFggYW5kIFJYLCBhZHZlcnRpc2UgdGhlbSB0byBiYWNrZW5kIGFz
CisgKiAiZXZlbnQtY2hhbm5lbC10eCIgYW5kICJldmVudC1jaGFubmVsLXJ4IiByZXNwZWN0aXZl
bHkuIElmIGZyb250ZW5kCisgKiBkb2Vzbid0IHdhbnQgdG8gdXNlIHRoaXMgZmVhdHVyZSwgaXQg
anVzdCB3cml0ZXMgImV2ZW50LWNoYW5uZWwiCisgKiBub2RlIGFzIGJlZm9yZS4KKyAqLworCisv
KgorICogTXVsdGlwbGUgdHJhbnNtaXQgYW5kIHJlY2VpdmUgcXVldWVzOgorICogSWYgc3VwcG9y
dGVkLCB0aGUgYmFja2VuZCB3aWxsIHdyaXRlIHRoZSBrZXkgIm11bHRpLXF1ZXVlLW1heC1xdWV1
ZXMiIHRvCisgKiB0aGUgZGlyZWN0b3J5IGZvciB0aGF0IHZpZiwgYW5kIHNldCBpdHMgdmFsdWUg
dG8gdGhlIG1heGltdW0gc3VwcG9ydGVkCisgKiBudW1iZXIgb2YgcXVldWVzLgorICogRnJvbnRl
bmRzIHRoYXQgYXJlIGF3YXJlIG9mIHRoaXMgZmVhdHVyZSBhbmQgd2lzaCB0byB1c2UgaXQgY2Fu
IHdyaXRlIHRoZQorICoga2V5ICJtdWx0aS1xdWV1ZS1udW0tcXVldWVzIiwgc2V0IHRvIHRoZSBu
dW1iZXIgdGhleSB3aXNoIHRvIHVzZSwgd2hpY2gKKyAqIG11c3QgYmUgZ3JlYXRlciB0aGFuIHpl
cm8sIGFuZCBubyBtb3JlIHRoYW4gdGhlIHZhbHVlIHJlcG9ydGVkIGJ5IHRoZSBiYWNrZW5kCisg
KiBpbiAibXVsdGktcXVldWUtbWF4LXF1ZXVlcyIuCisgKgorICogUXVldWVzIHJlcGxpY2F0ZSB0
aGUgc2hhcmVkIHJpbmdzIGFuZCBldmVudCBjaGFubmVscy4KKyAqICJmZWF0dXJlLXNwbGl0LWV2
ZW50LWNoYW5uZWxzIiBtYXkgb3B0aW9uYWxseSBiZSB1c2VkIHdoZW4gdXNpbmcKKyAqIG11bHRp
cGxlIHF1ZXVlcywgYnV0IGlzIG5vdCBtYW5kYXRvcnkuCisgKgorICogRWFjaCBxdWV1ZSBjb25z
aXN0cyBvZiBvbmUgc2hhcmVkIHJpbmcgcGFpciwgaS5lLiB0aGVyZSBtdXN0IGJlIHRoZSBzYW1l
CisgKiBudW1iZXIgb2YgdHggYW5kIHJ4IHJpbmdzLgorICoKKyAqIEZvciBmcm9udGVuZHMgcmVx
dWVzdGluZyBqdXN0IG9uZSBxdWV1ZSwgdGhlIHVzdWFsIGV2ZW50LWNoYW5uZWwgYW5kCisgKiBy
aW5nLXJlZiBrZXlzIGFyZSB3cml0dGVuIGFzIGJlZm9yZSwgc2ltcGxpZnlpbmcgdGhlIGJhY2tl
bmQgcHJvY2Vzc2luZworICogdG8gYXZvaWQgZGlzdGluZ3Vpc2hpbmcgYmV0d2VlbiBhIGZyb250
ZW5kIHRoYXQgZG9lc24ndCB1bmRlcnN0YW5kIHRoZQorICogbXVsdGktcXVldWUgZmVhdHVyZSwg
YW5kIG9uZSB0aGF0IGRvZXMsIGJ1dCByZXF1ZXN0ZWQgb25seSBvbmUgcXVldWUuCisgKgorICog
RnJvbnRlbmRzIHJlcXVlc3RpbmcgdHdvIG9yIG1vcmUgcXVldWVzIG11c3Qgbm90IHdyaXRlIHRo
ZSB0b3BsZXZlbAorICogZXZlbnQtY2hhbm5lbCAob3IgZXZlbnQtY2hhbm5lbC17dHgscnh9KSBh
bmQge3R4LHJ4fS1yaW5nLXJlZiBrZXlzLAorICogaW5zdGVhZCB3cml0aW5nIHRob3NlIGtleXMg
dW5kZXIgc3ViLWtleXMgaGF2aW5nIHRoZSBuYW1lICJxdWV1ZS1OIiB3aGVyZQorICogTiBpcyB0
aGUgaW50ZWdlciBJRCBvZiB0aGUgcXVldWUgZm9yIHdoaWNoIHRob3NlIGtleXMgYmVsb25nLiBR
dWV1ZXMKKyAqIGFyZSBpbmRleGVkIGZyb20gemVyby4gRm9yIGV4YW1wbGUsIGEgZnJvbnRlbmQg
d2l0aCB0d28gcXVldWVzIGFuZCBzcGxpdAorICogZXZlbnQgY2hhbm5lbHMgbXVzdCB3cml0ZSB0
aGUgZm9sbG93aW5nIHNldCBvZiBxdWV1ZS1yZWxhdGVkIGtleXM6CisgKgorICogL2xvY2FsL2Rv
bWFpbi8xL2RldmljZS92aWYvMC9tdWx0aS1xdWV1ZS1udW0tcXVldWVzID0gIjIiCisgKiAvbG9j
YWwvZG9tYWluLzEvZGV2aWNlL3ZpZi8wL3F1ZXVlLTAgPSAiIgorICogL2xvY2FsL2RvbWFpbi8x
L2RldmljZS92aWYvMC9xdWV1ZS0wL3R4LXJpbmctcmVmID0gIjxyaW5nLXJlZi10eDA+IgorICog
L2xvY2FsL2RvbWFpbi8xL2RldmljZS92aWYvMC9xdWV1ZS0wL3J4LXJpbmctcmVmID0gIjxyaW5n
LXJlZi1yeDA+IgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92aWYvMC9xdWV1ZS0wL2V2ZW50
LWNoYW5uZWwtdHggPSAiPGV2dGNobi10eDA+IgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92
aWYvMC9xdWV1ZS0wL2V2ZW50LWNoYW5uZWwtcnggPSAiPGV2dGNobi1yeDA+IgorICogL2xvY2Fs
L2RvbWFpbi8xL2RldmljZS92aWYvMC9xdWV1ZS0xID0gIiIKKyAqIC9sb2NhbC9kb21haW4vMS9k
ZXZpY2UvdmlmLzAvcXVldWUtMS90eC1yaW5nLXJlZiA9ICI8cmluZy1yZWYtdHgxPiIKKyAqIC9s
b2NhbC9kb21haW4vMS9kZXZpY2UvdmlmLzAvcXVldWUtMS9yeC1yaW5nLXJlZiA9ICI8cmluZy1y
ZWYtcngxIgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92aWYvMC9xdWV1ZS0xL2V2ZW50LWNo
YW5uZWwtdHggPSAiPGV2dGNobi10eDE+IgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92aWYv
MC9xdWV1ZS0xL2V2ZW50LWNoYW5uZWwtcnggPSAiPGV2dGNobi1yeDE+IgorICoKKyAqIElmIHRo
ZXJlIGlzIGFueSBpbmNvbnNpc3RlbmN5IGluIHRoZSBYZW5TdG9yZSBkYXRhLCB0aGUgYmFja2Vu
ZCBtYXkKKyAqIGNob29zZSBub3QgdG8gY29ubmVjdCBhbnkgcXVldWVzLCBpbnN0ZWFkIHRyZWF0
aW5nIHRoZSByZXF1ZXN0IGFzIGFuCisgKiBlcnJvci4gVGhpcyBpbmNsdWRlcyBzY2VuYXJpb3Mg
d2hlcmUgbW9yZSAob3IgZmV3ZXIpIHF1ZXVlcyB3ZXJlCisgKiByZXF1ZXN0ZWQgdGhhbiB0aGUg
ZnJvbnRlbmQgcHJvdmlkZWQgZGV0YWlscyBmb3IuCisgKgorICogTWFwcGluZyBvZiBwYWNrZXRz
IHRvIHF1ZXVlcyBpcyBjb25zaWRlcmVkIHRvIGJlIGEgZnVuY3Rpb24gb2YgdGhlCisgKiB0cmFu
c21pdHRpbmcgc3lzdGVtIChiYWNrZW5kIG9yIGZyb250ZW5kKSBhbmQgaXMgbm90IG5lZ290aWF0
ZWQKKyAqIGJldHdlZW4gdGhlIHR3by4gR3Vlc3RzIGFyZSBmcmVlIHRvIHRyYW5zbWl0IHBhY2tl
dHMgb24gYW55IHF1ZXVlCisgKiB0aGV5IGNob29zZSwgcHJvdmlkZWQgaXQgaGFzIGJlZW4gc2V0
IHVwIGNvcnJlY3RseS4gR3Vlc3RzIG11c3QgYmUKKyAqIHByZXBhcmVkIHRvIHJlY2VpdmUgcGFj
a2V0cyBvbiBhbnkgcXVldWUgdGhleSBoYXZlIHJlcXVlc3RlZCBiZSBzZXQgdXAuCisgKi8KKwor
LyoKKyAqICJmZWF0dXJlLW5vLWNzdW0tb2ZmbG9hZCIgc2hvdWxkIGJlIHVzZWQgdG8gdHVybiBJ
UHY0IFRDUC9VRFAgY2hlY2tzdW0KKyAqIG9mZmxvYWQgb2ZmIG9yIG9uLiBJZiBpdCBpcyBtaXNz
aW5nIHRoZW4gdGhlIGZlYXR1cmUgaXMgYXNzdW1lZCB0byBiZSBvbi4KKyAqICJmZWF0dXJlLWlw
djYtY3N1bS1vZmZsb2FkIiBzaG91bGQgYmUgdXNlZCB0byB0dXJuIElQdjYgVENQL1VEUCBjaGVj
a3N1bQorICogb2ZmbG9hZCBvbiBvciBvZmYuIElmIGl0IGlzIG1pc3NpbmcgdGhlbiB0aGUgZmVh
dHVyZSBpcyBhc3N1bWVkIHRvIGJlIG9mZi4KKyAqLworCisvKgorICogImZlYXR1cmUtZ3NvLXRj
cHY0IiBhbmQgImZlYXR1cmUtZ3NvLXRjcHY2IiBhZHZlcnRpc2UgdGhlIGNhcGFiaWxpdHkgdG8K
KyAqIGhhbmRsZSBsYXJnZSBUQ1AgcGFja2V0cyAoaW4gSVB2NCBvciBJUHY2IGZvcm0gcmVzcGVj
dGl2ZWx5KS4gTmVpdGhlcgorICogZnJvbnRlbmRzIG5vciBiYWNrZW5kcyBhcmUgYXNzdW1lZCB0
byBiZSBjYXBhYmxlIHVubGVzcyB0aGUgZmxhZ3MgYXJlCisgKiBwcmVzZW50LgorICovCisKKy8q
CisgKiAiZmVhdHVyZS1tdWx0aWNhc3QtY29udHJvbCIgYW5kICJmZWF0dXJlLWR5bmFtaWMtbXVs
dGljYXN0LWNvbnRyb2wiCisgKiBhZHZlcnRpc2UgdGhlIGNhcGFiaWxpdHkgdG8gZmlsdGVyIGV0
aGVybmV0IG11bHRpY2FzdCBwYWNrZXRzIGluIHRoZQorICogYmFja2VuZC4gSWYgdGhlIGZyb250
ZW5kIHdpc2hlcyB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGlzIGZlYXR1cmUgdGhlbgorICogaXQg
bWF5IHNldCAicmVxdWVzdC1tdWx0aWNhc3QtY29udHJvbCIuIElmIHRoZSBiYWNrZW5kIG9ubHkg
YWR2ZXJ0aXNlcworICogImZlYXR1cmUtbXVsdGljYXN0LWNvbnRyb2wiIHRoZW4gInJlcXVlc3Qt
bXVsdGljYXN0LWNvbnRyb2wiIG11c3QgYmUgc2V0CisgKiBiZWZvcmUgdGhlIGZyb250ZW5kIG1v
dmVzIGludG8gdGhlIGNvbm5lY3RlZCBzdGF0ZS4gVGhlIGJhY2tlbmQgd2lsbAorICogc2FtcGxl
IHRoZSB2YWx1ZSBvbiB0aGlzIHN0YXRlIHRyYW5zaXRpb24gYW5kIGFueSBzdWJzZXF1ZW50IGNo
YW5nZSBpbgorICogdmFsdWUgd2lsbCBoYXZlIG5vIGVmZmVjdC4gSG93ZXZlciwgaWYgdGhlIGJh
Y2tlbmQgYWxzbyBhZHZlcnRpc2VzCisgKiAiZmVhdHVyZS1keW5hbWljLW11bHRpY2FzdC1jb250
cm9sIiB0aGVuICJyZXF1ZXN0LW11bHRpY2FzdC1jb250cm9sIgorICogbWF5IGJlIHNldCBieSB0
aGUgZnJvbnRlbmQgYXQgYW55IHRpbWUuIEluIHRoaXMgY2FzZSwgdGhlIGJhY2tlbmQgd2lsbAor
ICogd2F0Y2ggdGhlIHZhbHVlIGFuZCByZS1zYW1wbGUgb24gd2F0Y2ggZXZlbnRzLgorICoKKyAq
IElmIHRoZSBzYW1wbGVkIHZhbHVlIG9mICJyZXF1ZXN0LW11bHRpY2FzdC1jb250cm9sIiBpcyBz
ZXQgdGhlbiB0aGUKKyAqIGJhY2tlbmQgdHJhbnNtaXQgc2lkZSBzaG91bGQgbm8gbG9uZ2VyIGZs
b29kIG11bHRpY2FzdCBwYWNrZXRzIHRvIHRoZQorICogZnJvbnRlbmQsIGl0IHNob3VsZCBpbnN0
ZWFkIGRyb3AgYW55IG11bHRpY2FzdCBwYWNrZXQgdGhhdCBkb2VzIG5vdAorICogbWF0Y2ggaW4g
YSBmaWx0ZXIgbGlzdC4KKyAqIFRoZSBsaXN0IGlzIGFtZW5kZWQgYnkgdGhlIGZyb250ZW5kIGJ5
IHNlbmRpbmcgZHVtbXkgdHJhbnNtaXQgcmVxdWVzdHMKKyAqIGNvbnRhaW5pbmcgWEVOX05FVElG
X0VYVFJBX1RZUEVfTUNBU1Rfe0FERCxERUx9IGV4dHJhLWluZm8gZnJhZ21lbnRzIGFzCisgKiBz
cGVjaWZpZWQgYmVsb3cuCisgKiBOb3RlIHRoYXQgdGhlIGZpbHRlciBsaXN0IG1heSBiZSBhbWVu
ZGVkIGV2ZW4gaWYgdGhlIHNhbXBsZWQgdmFsdWUgb2YKKyAqICJyZXF1ZXN0LW11bHRpY2FzdC1j
b250cm9sIiBpcyBub3Qgc2V0LCBob3dldmVyIHRoZSBmaWx0ZXIgc2hvdWxkIG9ubHkKKyAqIGJl
IGFwcGxpZWQgaWYgaXQgaXMgc2V0LgorICovCisKKy8qCisgKiBDb250cm9sIHJpbmcKKyAqID09
PT09PT09PT09PQorICoKKyAqIFNvbWUgZmVhdHVyZXMsIHN1Y2ggYXMgaGFzaGluZyAoZGV0YWls
ZWQgYmVsb3cpLCByZXF1aXJlIGEKKyAqIHNpZ25pZmljYW50IGFtb3VudCBvZiBvdXQtb2YtYmFu
ZCBkYXRhIHRvIGJlIHBhc3NlZCBmcm9tIGZyb250ZW5kIHRvCisgKiBiYWNrZW5kLiBVc2Ugb2Yg
eGVuc3RvcmUgaXMgbm90IHN1aXRhYmxlIGZvciBsYXJnZSBxdWFudGl0aWVzIG9mIGRhdGEKKyAq
IGJlY2F1c2Ugb2YgcXVvdGEgbGltaXRhdGlvbnMgYW5kIHNvIGEgZGVkaWNhdGVkICdjb250cm9s
IHJpbmcnIGlzIHVzZWQuCisgKiBUaGUgYWJpbGl0eSBvZiB0aGUgYmFja2VuZCB0byB1c2UgYSBj
b250cm9sIHJpbmcgaXMgYWR2ZXJ0aXNlZCBieQorICogc2V0dGluZzoKKyAqCisgKiAvbG9jYWwv
ZG9tYWluL1gvYmFja2VuZC88ZG9taWQ+Lzx2aWY+L2ZlYXR1cmUtY3RybC1yaW5nID0gIjEiCisg
KgorICogVGhlIGZyb250ZW5kIHByb3ZpZGVzIGEgY29udHJvbCByaW5nIHRvIHRoZSBiYWNrZW5k
IGJ5IHNldHRpbmc6CisgKgorICogL2xvY2FsL2RvbWFpbi88ZG9taWQ+L2RldmljZS92aWYvPHZp
Zj4vY3RybC1yaW5nLXJlZiA9IDxncmVmPgorICogL2xvY2FsL2RvbWFpbi88ZG9taWQ+L2Rldmlj
ZS92aWYvPHZpZj4vZXZlbnQtY2hhbm5lbC1jdHJsID0gPHBvcnQ+CisgKgorICogd2hlcmUgPGdy
ZWY+IGlzIHRoZSBncmFudCByZWZlcmVuY2Ugb2YgdGhlIHNoYXJlZCBwYWdlIHVzZWQgdG8KKyAq
IGltcGxlbWVudCB0aGUgY29udHJvbCByaW5nIGFuZCA8cG9ydD4gaXMgYW4gZXZlbnQgY2hhbm5l
bCB0byBiZSB1c2VkCisgKiBhcyBhIG1haWxib3ggaW50ZXJydXB0LiBUaGVzZSBrZXlzIG11c3Qg
YmUgc2V0IGJlZm9yZSB0aGUgZnJvbnRlbmQKKyAqIG1vdmVzIGludG8gdGhlIGNvbm5lY3RlZCBz
dGF0ZS4KKyAqCisgKiBUaGUgY29udHJvbCByaW5nIHVzZXMgYSBmaXhlZCByZXF1ZXN0L3Jlc3Bv
bnNlIG1lc3NhZ2Ugc2l6ZSBhbmQgaXMKKyAqIGJhbGFuY2VkIChpLmUuIG9uZSByZXF1ZXN0IHRv
IG9uZSByZXNwb25zZSksIHNvIG9wZXJhdGlvbmFsbHkgaXQgaXMgbXVjaAorICogdGhlIHNhbWUg
YXMgYSB0cmFuc21pdCBvciByZWNlaXZlIHJpbmcuCisgKiBOb3RlIHRoYXQgdGhlcmUgaXMgbm8g
cmVxdWlyZW1lbnQgdGhhdCByZXNwb25zZXMgYXJlIGlzc3VlZCBpbiB0aGUgc2FtZQorICogb3Jk
ZXIgYXMgcmVxdWVzdHMuCisgKi8KKworLyoKKyAqIEhhc2ggdHlwZXMKKyAqID09PT09PT09PT0K
KyAqCisgKiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoZSBkZWZpbml0aW9ucyBiZWxvdywgJ1BhY2tl
dFtdJyBpcyBhbiBhcnJheSBvZgorICogb2N0ZXRzIGNvbnRhaW5pbmcgYW4gSVAgcGFja2V0IHdp
dGhvdXQgb3B0aW9ucywgJ0FycmF5W1guLlldJyBtZWFucyBhCisgKiBzdWItYXJyYXkgb2YgJ0Fy
cmF5JyBjb250YWluaW5nIGJ5dGVzIFggdGhydSBZIGluY2x1c2l2ZSwgYW5kICcrJyBpcworICog
dXNlZCB0byBpbmRpY2F0ZSBjb25jYXRlbmF0aW9uIG9mIGFycmF5cy4KKyAqLworCisvKgorICog
QSBoYXNoIGNhbGN1bGF0ZWQgb3ZlciBhbiBJUCB2ZXJzaW9uIDQgaGVhZGVyIGFzIGZvbGxvd3M6
CisgKgorICogQnVmZmVyWzAuLjhdID0gUGFja2V0WzEyLi4xNV0gKHNvdXJjZSBhZGRyZXNzKSAr
CisgKiAgICAgICAgICAgICAgICBQYWNrZXRbMTYuLjE5XSAoZGVzdGluYXRpb24gYWRkcmVzcykK
KyAqCisgKiBSZXN1bHQgPSBIYXNoKEJ1ZmZlciwgOCkKKyAqLworI2RlZmluZSBfWEVOX05FVElG
X0NUUkxfSEFTSF9UWVBFX0lQVjQgMAorI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVf
SVBWNCBcCisgICAgKDEgPDwgX1hFTl9ORVRJRl9DVFJMX0hBU0hfVFlQRV9JUFY0KQorCisvKgor
ICogQSBoYXNoIGNhbGN1bGF0ZWQgb3ZlciBhbiBJUCB2ZXJzaW9uIDQgaGVhZGVyIGFuZCBUQ1Ag
aGVhZGVyIGFzCisgKiBmb2xsb3dzOgorICoKKyAqIEJ1ZmZlclswLi4xMl0gPSBQYWNrZXRbMTIu
LjE1XSAoc291cmNlIGFkZHJlc3MpICsKKyAqICAgICAgICAgICAgICAgICBQYWNrZXRbMTYuLjE5
XSAoZGVzdGluYXRpb24gYWRkcmVzcykgKworICogICAgICAgICAgICAgICAgIFBhY2tldFsyMC4u
MjFdIChzb3VyY2UgcG9ydCkgKworICogICAgICAgICAgICAgICAgIFBhY2tldFsyMi4uMjNdIChk
ZXN0aW5hdGlvbiBwb3J0KQorICoKKyAqIFJlc3VsdCA9IEhhc2goQnVmZmVyLCAxMikKKyAqLwor
I2RlZmluZSBfWEVOX05FVElGX0NUUkxfSEFTSF9UWVBFX0lQVjRfVENQIDEKKyNkZWZpbmUgWEVO
X05FVElGX0NUUkxfSEFTSF9UWVBFX0lQVjRfVENQIFwKKyAgICAoMSA8PCBfWEVOX05FVElGX0NU
UkxfSEFTSF9UWVBFX0lQVjRfVENQKQorCisvKgorICogQSBoYXNoIGNhbGN1bGF0ZWQgb3ZlciBh
biBJUCB2ZXJzaW9uIDYgaGVhZGVyIGFzIGZvbGxvd3M6CisgKgorICogQnVmZmVyWzAuLjMyXSA9
IFBhY2tldFs4Li4yM10gIChzb3VyY2UgYWRkcmVzcyApICsKKyAqICAgICAgICAgICAgICAgICBQ
YWNrZXRbMjQuLjM5XSAoZGVzdGluYXRpb24gYWRkcmVzcykKKyAqCisgKiBSZXN1bHQgPSBIYXNo
KEJ1ZmZlciwgMzIpCisgKi8KKyNkZWZpbmUgX1hFTl9ORVRJRl9DVFJMX0hBU0hfVFlQRV9JUFY2
IDIKKyNkZWZpbmUgWEVOX05FVElGX0NUUkxfSEFTSF9UWVBFX0lQVjYgXAorICAgICgxIDw8IF9Y
RU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfSVBWNikKKworLyoKKyAqIEEgaGFzaCBjYWxjdWxhdGVk
IG92ZXIgYW4gSVAgdmVyc2lvbiA2IGhlYWRlciBhbmQgVENQIGhlYWRlciBhcworICogZm9sbG93
czoKKyAqCisgKiBCdWZmZXJbMC4uMzZdID0gUGFja2V0WzguLjIzXSAgKHNvdXJjZSBhZGRyZXNz
KSArCisgKiAgICAgICAgICAgICAgICAgUGFja2V0WzI0Li4zOV0gKGRlc3RpbmF0aW9uIGFkZHJl
c3MpICsKKyAqICAgICAgICAgICAgICAgICBQYWNrZXRbNDAuLjQxXSAoc291cmNlIHBvcnQpICsK
KyAqICAgICAgICAgICAgICAgICBQYWNrZXRbNDIuLjQzXSAoZGVzdGluYXRpb24gcG9ydCkKKyAq
CisgKiBSZXN1bHQgPSBIYXNoKEJ1ZmZlciwgMzYpCisgKi8KKyNkZWZpbmUgX1hFTl9ORVRJRl9D
VFJMX0hBU0hfVFlQRV9JUFY2X1RDUCAzCisjZGVmaW5lIFhFTl9ORVRJRl9DVFJMX0hBU0hfVFlQ
RV9JUFY2X1RDUCBcCisgICAgKDEgPDwgX1hFTl9ORVRJRl9DVFJMX0hBU0hfVFlQRV9JUFY2X1RD
UCkKKworLyoKKyAqIEhhc2ggYWxnb3JpdGhtcworICogPT09PT09PT09PT09PT09CisgKi8KKwor
I2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9IQVNIX0FMR09SSVRITV9OT05FIDAKKworLyoKKyAqIFRv
ZXBsaXR6IGhhc2g6CisgKi8KKworI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9IQVNIX0FMR09SSVRI
TV9UT0VQTElUWiAxCisKKy8qCisgKiBUaGlzIGFsZ29yaXRobSB1c2VzIGEgJ2tleScgYXMgd2Vs
bCBhcyB0aGUgZGF0YSBidWZmZXIgaXRzZWxmLgorICogKEJ1ZmZlcltdIGFuZCBLZXlbXSBhcmUg
dHJlYXRlZCBhcyBzaGlmdC1yZWdpc3RlcnMgd2hlcmUgdGhlIE1TQiBvZgorICogQnVmZmVyL0tl
eVswXSBpcyBjb25zaWRlcmVkICdsZWZ0LW1vc3QnIGFuZCB0aGUgTFNCIG9mIEJ1ZmZlci9LZXlb
Ti0xXQorICogaXMgdGhlICdyaWdodC1tb3N0JykuCisgKgorICogVmFsdWUgPSAwCisgKiBGb3Ig
bnVtYmVyIG9mIGJpdHMgaW4gQnVmZmVyW10KKyAqICAgIElmIChsZWZ0LW1vc3QgYml0IG9mIEJ1
ZmZlcltdIGlzIDEpCisgKiAgICAgICAgVmFsdWUgXj0gbGVmdC1tb3N0IDMyIGJpdHMgb2YgS2V5
W10KKyAqICAgIEtleVtdIDw8IDEKKyAqICAgIEJ1ZmZlcltdIDw8IDEKKyAqCisgKiBUaGUgY29k
ZSBiZWxvdyBpcyBwcm92aWRlZCBmb3IgY29udmVuaWVuY2Ugd2hlcmUgYW4gb3BlcmF0aW5nIHN5
c3RlbQorICogZG9lcyBub3QgYWxyZWFkeSBwcm92aWRlIGFuIGltcGxlbWVudGF0aW9uLgorICov
CisjaWZkZWYgWEVOX05FVElGX0RFRklORV9UT0VQTElUWgorc3RhdGljIHVpbnQzMl90IHhlbl9u
ZXRpZl90b2VwbGl0el9oYXNoKGNvbnN0IHVpbnQ4X3QgKmtleSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQga2V5bGVuLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgYnVmbGVuKQorewor
ICAgIHVuc2lnbmVkIGludCBrZXlpLCBidWZpOworICAgIHVpbnQ2NF90IHByZWZpeCA9IDA7Cisg
ICAgdWludDY0X3QgaGFzaCA9IDA7CisKKyAgICAvKiBQcmUtbG9hZCBwcmVmaXggd2l0aCB0aGUg
Zmlyc3QgOCBieXRlcyBvZiB0aGUga2V5ICovCisgICAgZm9yIChrZXlpID0gMDsga2V5aSA8IDg7
IGtleWkrKykgeworICAgICAgICBwcmVmaXggPDw9IDg7CisgICAgICAgIHByZWZpeCB8PSAoa2V5
aSA8IGtleWxlbikgPyBrZXlba2V5aV0gOiAwOworICAgIH0KKworICAgIGZvciAoYnVmaSA9IDA7
IGJ1ZmkgPCBidWZsZW47IGJ1ZmkrKykgeworICAgICAgICB1aW50OF90IGJ5dGUgPSBidWZbYnVm
aV07CisgICAgICAgIHVuc2lnbmVkIGludCBiaXQ7CisKKyAgICAgICAgZm9yIChiaXQgPSAwOyBi
aXQgPCA4OyBiaXQrKykgeworICAgICAgICAgICAgaWYgKGJ5dGUgJiAweDgwKQorICAgICAgICAg
ICAgICAgIGhhc2ggXj0gcHJlZml4OworICAgICAgICAgICAgcHJlZml4IDw8PSAxOworICAgICAg
ICAgICAgYnl0ZSA8PD0xOworICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICogJ3By
ZWZpeCcgaGFzIG5vdyBiZWVuIGxlZnQtc2hpZnRlZCBieSA4LCBzbworICAgICAgICAgKiBPUiBp
biB0aGUgbmV4dCBieXRlLgorICAgICAgICAgKi8KKyAgICAgICAgcHJlZml4IHw9IChrZXlpIDwg
a2V5bGVuKSA/IGtleVtrZXlpXSA6IDA7CisgICAgICAgIGtleWkrKzsKKyAgICB9CisKKyAgICAv
KiBUaGUgdmFsaWQgcGFydCBvZiB0aGUgaGFzaCBpcyBpbiB0aGUgdXBwZXIgMzIgYml0cy4gKi8K
KyAgICByZXR1cm4gaGFzaCA+PiAzMjsKK30KKyNlbmRpZiAvKiBYRU5fTkVUSUZfREVGSU5FX1RP
RVBMSVRaICovCisKKy8qCisgKiBDb250cm9sIHJlcXVlc3RzIChzdHJ1Y3QgeGVuX25ldGlmX2N0
cmxfcmVxdWVzdCkKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorICoKKyAqIEFsbCByZXF1ZXN0cyBoYXZlIHRoZSBmb2xsb3dpbmcgZm9ybWF0Ogor
ICoKKyAqICAgIDAgICAgIDEgICAgIDIgICAgIDMgICAgIDQgICAgIDUgICAgIDYgICAgIDcgIG9j
dGV0CisgKiArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0r
CisgKiB8ICAgIGlkICAgICB8ICAgdHlwZSAgICB8ICAgICAgICAgZGF0YVswXSAgICAgICB8Cisg
KiArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rCisgKiB8
ICAgICAgICAgZGF0YVsxXSAgICAgICB8ICAgICAgICAgZGF0YVsyXSAgICAgICB8CisgKiArLS0t
LS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogaWQ6
IHRoZSByZXF1ZXN0IGlkZW50aWZpZXIsIGVjaG9lZCBpbiByZXNwb25zZS4KKyAqIHR5cGU6IHRo
ZSB0eXBlIG9mIHJlcXVlc3QgKHNlZSBiZWxvdykKKyAqIGRhdGFbXTogYW55IGRhdGEgYXNzb2Np
YXRlZCB3aXRoIHRoZSByZXF1ZXN0IChkZXRlcm1pbmVkIGJ5IHR5cGUpCisgKi8KKworc3RydWN0
IHhlbl9uZXRpZl9jdHJsX3JlcXVlc3QgeworICAgIHVpbnQxNl90IGlkOworICAgIHVpbnQxNl90
IHR5cGU7CisKKyNkZWZpbmUgWEVOX05FVElGX0NUUkxfVFlQRV9JTlZBTElEICAgICAgICAgICAg
ICAgMAorI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9UWVBFX0dFVF9IQVNIX0ZMQUdTICAgICAgICAx
CisjZGVmaW5lIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfRkxBR1MgICAgICAgIDIKKyNk
ZWZpbmUgWEVOX05FVElGX0NUUkxfVFlQRV9TRVRfSEFTSF9LRVkgICAgICAgICAgMworI2RlZmlu
ZSBYRU5fTkVUSUZfQ1RSTF9UWVBFX0dFVF9IQVNIX01BUFBJTkdfU0laRSA0CisjZGVmaW5lIFhF
Tl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfTUFQUElOR19TSVpFIDUKKyNkZWZpbmUgWEVOX05F
VElGX0NUUkxfVFlQRV9TRVRfSEFTSF9NQVBQSU5HICAgICAgNgorI2RlZmluZSBYRU5fTkVUSUZf
Q1RSTF9UWVBFX1NFVF9IQVNIX0FMR09SSVRITSAgICA3CisjZGVmaW5lIFhFTl9ORVRJRl9DVFJM
X1RZUEVfR0VUX0dSRUZfTUFQUElOR19TSVpFIDgKKyNkZWZpbmUgWEVOX05FVElGX0NUUkxfVFlQ
RV9BRERfR1JFRl9NQVBQSU5HICAgICAgOQorI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9UWVBFX0RF
TF9HUkVGX01BUFBJTkcgICAgIDEwCisKKyAgICB1aW50MzJfdCBkYXRhWzNdOworfTsKKworLyoK
KyAqIENvbnRyb2wgcmVzcG9uc2VzIChzdHJ1Y3QgeGVuX25ldGlmX2N0cmxfcmVzcG9uc2UpCisg
KiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoK
KyAqIEFsbCByZXNwb25zZXMgaGF2ZSB0aGUgZm9sbG93aW5nIGZvcm1hdDoKKyAqCisgKiAgICAw
ICAgICAxICAgICAyICAgICAzICAgICA0ICAgICA1ICAgICA2ICAgICA3ICBvY3RldAorICogKy0t
LS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKworICogfCAgICBp
ZCAgICAgfCAgIHR5cGUgICAgfCAgICAgICAgIHN0YXR1cyAgICAgICAgfAorICogKy0tLS0tKy0t
LS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKworICogfCAgICAgICAgIGRh
dGEgICAgICAgICAgfAorICogKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKworICoKKyAqIGlkOiB0
aGUgY29ycmVzcG9uZGluZyByZXF1ZXN0IGlkZW50aWZpZXIKKyAqIHR5cGU6IHRoZSB0eXBlIG9m
IHRoZSBjb3JyZXNwb25kaW5nIHJlcXVlc3QKKyAqIHN0YXR1czogdGhlIHN0YXR1cyBvZiByZXF1
ZXN0IHByb2Nlc3NpbmcKKyAqIGRhdGE6IGFueSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVz
cG9uc2UgKGRldGVybWluZWQgYnkgdHlwZSBhbmQKKyAqICAgICAgIHN0YXR1cykKKyAqLworCitz
dHJ1Y3QgeGVuX25ldGlmX2N0cmxfcmVzcG9uc2UgeworICAgIHVpbnQxNl90IGlkOworICAgIHVp
bnQxNl90IHR5cGU7CisgICAgdWludDMyX3Qgc3RhdHVzOworCisjZGVmaW5lIFhFTl9ORVRJRl9D
VFJMX1NUQVRVU19TVUNDRVNTICAgICAgICAgICAwCisjZGVmaW5lIFhFTl9ORVRJRl9DVFJMX1NU
QVRVU19OT1RfU1VQUE9SVEVEICAgICAxCisjZGVmaW5lIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19J
TlZBTElEX1BBUkFNRVRFUiAyCisjZGVmaW5lIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19CVUZGRVJf
T1ZFUkZMT1cgICAzCisKKyAgICB1aW50MzJfdCBkYXRhOworfTsKKworLyoKKyAqIFN0YXRpYyBH
cmFudHMgKHN0cnVjdCB4ZW5fbmV0aWZfZ3JlZikKKyAqID09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KKyAqCisgKiBBIGZyb250ZW5kIG1heSBwcm92aWRlIGEgZml4ZWQgc2V0
IG9mIGdyYW50IHJlZmVyZW5jZXMgdG8gYmUgbWFwcGVkIG9uCisgKiB0aGUgYmFja2VuZC4gVGhl
IG1lc3NhZ2Ugb2YgdHlwZSBYRU5fTkVUSUZfQ1RSTF9UWVBFX0FERF9HUkVGX01BUFBJTkcKKyAq
IHByaW9yIGl0cyB1c2FnZSBpbiB0aGUgY29tbWFuZCByaW5nIGFsbG93cyBmb3IgY3JlYXRpb24g
b2YgdGhlc2UgbWFwcGluZ3MuCisgKiBUaGUgYmFja2VuZCB3aWxsIG1haW50YWluIGEgZml4ZWQg
YW1vdW50IG9mIHRoZXNlIG1hcHBpbmdzLgorICoKKyAqIFhFTl9ORVRJRl9DVFJMX1RZUEVfR0VU
X0dSRUZfTUFQUElOR19TSVpFIGxldHMgYSBmcm9udGVuZCBxdWVyeSBob3cgbWFueQorICogb2Yg
dGhlc2UgbWFwcGluZ3MgY2FuIGJlIGtlcHQuCisgKgorICogRWFjaCBlbnRyeSBpbiB0aGUgWEVO
X05FVElGX0NUUkxfVFlQRV97QURELERFTH1fR1JFRl9NQVBQSU5HIGlucHV0IHRhYmxlIGhhcwor
ICogdGhlIGZvbGxvd2luZyBmb3JtYXQ6CisgKgorICogICAgMCAgICAgMSAgICAgMiAgICAgMyAg
ICAgNCAgICAgNSAgICAgNiAgICAgNyAgb2N0ZXQKKyAqICstLS0tLSstLS0tLSstLS0tLSstLS0t
LSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKKyAqIHwgZ3JhbnQgcmVmICAgICAgICAgICAgIHwg
IGZsYWdzICAgIHwgIHN0YXR1cyAgIHwKKyAqICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0t
LSstLS0tLSstLS0tLSstLS0tLSsKKyAqCisgKiBncmFudCByZWY6IGdyYW50IHJlZmVyZW5jZSAo
SU4pCisgKiBmbGFnczogZmxhZ3MgZGVzY3JpYmluZyB0aGUgY29udHJvbCBvcGVyYXRpb24gKElO
KQorICogc3RhdHVzOiBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfKiAoT1VUKQorICoKKyAqICdzdGF0
dXMnIGlzIGFuIG91dHB1dCBwYXJhbWV0ZXIgd2hpY2ggZG9lcyBub3QgcmVxdWlyZSB0byBiZSBz
ZXQgdG8gemVybworICogcHJpb3IgdG8gaXRzIHVzYWdlIGluIHRoZSBjb3JyZXNwb25kaW5nIGNv
bnRyb2wgbWVzc2FnZXMuCisgKi8KKworc3RydWN0IHhlbl9uZXRpZl9ncmVmIHsKKyAgICAgICBn
cmFudF9yZWZfdCByZWY7CisgICAgICAgdWludDE2X3QgZmxhZ3M7CisKKyNkZWZpbmUgX1hFTl9O
RVRJRl9DVFJMRl9HUkVGX3JlYWRvbmx5ICAgIDAKKyNkZWZpbmUgWEVOX05FVElGX0NUUkxGX0dS
RUZfcmVhZG9ubHkgICAgKDFVPDxfWEVOX05FVElGX0NUUkxGX0dSRUZfcmVhZG9ubHkpCisKKyAg
ICAgICB1aW50MTZfdCBzdGF0dXM7Cit9OworCisvKgorICogQ29udHJvbCBtZXNzYWdlcworICog
PT09PT09PT09PT09PT09PQorICoKKyAqIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfQUxH
T1JJVEhNCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAq
IFRoaXMgaXMgc2VudCBieSB0aGUgZnJvbnRlbmQgdG8gc2V0IHRoZSBkZXNpcmVkIGhhc2ggYWxn
b3JpdGhtLgorICoKKyAqIFJlcXVlc3Q6CisgKgorICogIHR5cGUgICAgPSBYRU5fTkVUSUZfQ1RS
TF9UWVBFX1NFVF9IQVNIX0FMR09SSVRITQorICogIGRhdGFbMF0gPSBhIFhFTl9ORVRJRl9DVFJM
X0hBU0hfQUxHT1JJVEhNXyogdmFsdWUKKyAqICBkYXRhWzFdID0gMAorICogIGRhdGFbMl0gPSAw
CisgKgorICogUmVzcG9uc2U6CisgKgorICogIHN0YXR1cyA9IFhFTl9ORVRJRl9DVFJMX1NUQVRV
U19OT1RfU1VQUE9SVEVEICAgICAtIE9wZXJhdGlvbiBub3QKKyAqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWQKKyAqICAgICAgICAg
ICBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfSU5WQUxJRF9QQVJBTUVURVIgLSBUaGUgYWxnb3JpdGht
IGlzIG5vdAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN1cHBvcnRlZAorICogICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19TVUND
RVNTICAgICAgICAgICAtIE9wZXJhdGlvbiBzdWNjZXNzZnVsCisgKgorICogTk9URTogU2V0dGlu
ZyBkYXRhWzBdIHRvIFhFTl9ORVRJRl9DVFJMX0hBU0hfQUxHT1JJVEhNX05PTkUgZGlzYWJsZXMK
KyAqICAgICAgIGhhc2hpbmcgYW5kIHRoZSBiYWNrZW5kIGlzIGZyZWUgdG8gY2hvb3NlIGhvdyBp
dCBzdGVlcnMgcGFja2V0cworICogICAgICAgdG8gcXVldWVzICh3aGljaCBpcyB0aGUgZGVmYXVs
dCBiZWhhdmlvdXIpLgorICoKKyAqIFhFTl9ORVRJRl9DVFJMX1RZUEVfR0VUX0hBU0hfRkxBR1MK
KyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBUaGlzIGlzIHNl
bnQgYnkgdGhlIGZyb250ZW5kIHRvIHF1ZXJ5IHRoZSB0eXBlcyBvZiBoYXNoIHN1cHBvcnRlZCBi
eQorICogdGhlIGJhY2tlbmQuCisgKgorICogUmVxdWVzdDoKKyAqCisgKiAgdHlwZSAgICA9IFhF
Tl9ORVRJRl9DVFJMX1RZUEVfR0VUX0hBU0hfRkxBR1MKKyAqICBkYXRhWzBdID0gMAorICogIGRh
dGFbMV0gPSAwCisgKiAgZGF0YVsyXSA9IDAKKyAqCisgKiBSZXNwb25zZToKKyAqCisgKiAgc3Rh
dHVzID0gWEVOX05FVElGX0NUUkxfU1RBVFVTX05PVF9TVVBQT1JURUQgLSBPcGVyYXRpb24gbm90
IHN1cHBvcnRlZAorICogICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19TVUNDRVNTICAg
ICAgIC0gT3BlcmF0aW9uIHN1Y2Nlc3NmdWwKKyAqICBkYXRhICAgPSBzdXBwb3J0ZWQgaGFzaCB0
eXBlcyAoaWYgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsKQorICoKKyAqIE5PVEU6IEEgdmFsaWQg
aGFzaCBhbGdvcml0aG0gbXVzdCBiZSBzZWxlY3RlZCBiZWZvcmUgdGhpcyBvcGVyYXRpb24gY2Fu
CisgKiAgICAgICBzdWNjZWVkLgorICoKKyAqIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hf
RkxBR1MKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBUaGlz
IGlzIHNlbnQgYnkgdGhlIGZyb250ZW5kIHRvIHNldCB0aGUgdHlwZXMgb2YgaGFzaCB0aGF0IHRo
ZSBiYWNrZW5kCisgKiBzaG91bGQgY2FsY3VsYXRlLiAoU2VlIGFib3ZlIGZvciBoYXNoIHR5cGUg
ZGVmaW5pdGlvbnMpLgorICogTm90ZSB0aGF0IHRoZSAnbWF4aW1hbCcgdHlwZSBvZiBoYXNoIHNo
b3VsZCBhbHdheXMgYmUgY2hvc2VuLiBGb3IKKyAqIGV4YW1wbGUsIGlmIHRoZSBmcm9udGVuZCBz
ZXRzIGJvdGggSVBWNCBhbmQgSVBWNF9UQ1AgaGFzaCB0eXBlcyB0aGVuCisgKiB0aGUgbGF0dGVy
IGhhc2ggdHlwZSBzaG91bGQgYmUgY2FsY3VsYXRlZCBmb3IgYW55IFRDUCBwYWNrZXQgYW5kIHRo
ZQorICogZm9ybWVyIG9ubHkgY2FsY3VsYXRlZCBmb3Igbm9uLVRDUCBwYWNrZXRzLgorICoKKyAq
IFJlcXVlc3Q6CisgKgorICogIHR5cGUgICAgPSBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9IQVNI
X0ZMQUdTCisgKiAgZGF0YVswXSA9IGJpdHdpc2UgT1Igb2YgWEVOX05FVElGX0NUUkxfSEFTSF9U
WVBFXyogdmFsdWVzCisgKiAgZGF0YVsxXSA9IDAKKyAqICBkYXRhWzJdID0gMAorICoKKyAqIFJl
c3BvbnNlOgorICoKKyAqICBzdGF0dXMgPSBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfTk9UX1NVUFBP
UlRFRCAgICAgLSBPcGVyYXRpb24gbm90CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkCisgKiAgICAgICAgICAgWEVOX05FVElG
X0NUUkxfU1RBVFVTX0lOVkFMSURfUEFSQU1FVEVSIC0gT25lIG9yIG1vcmUgZmxhZworICogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGlz
IGludmFsaWQgb3IKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnN1cHBvcnRlZAorICogICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1NUQVRV
U19TVUNDRVNTICAgICAgICAgICAtIE9wZXJhdGlvbiBzdWNjZXNzZnVsCisgKiAgZGF0YSAgID0g
MAorICoKKyAqIE5PVEU6IEEgdmFsaWQgaGFzaCBhbGdvcml0aG0gbXVzdCBiZSBzZWxlY3RlZCBi
ZWZvcmUgdGhpcyBvcGVyYXRpb24gY2FuCisgKiAgICAgICBzdWNjZWVkLgorICogICAgICAgQWxz
bywgc2V0dGluZyBkYXRhWzBdIHRvIHplcm8gZGlzYWJsZXMgaGFzaGluZyBhbmQgdGhlIGJhY2tl
bmQKKyAqICAgICAgIGlzIGZyZWUgdG8gY2hvb3NlIGhvdyBpdCBzdGVlcnMgcGFja2V0cyB0byBx
dWV1ZXMuCisgKgorICogWEVOX05FVElGX0NUUkxfVFlQRV9TRVRfSEFTSF9LRVkKKyAqIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogVGhpcyBpcyBzZW50IGJ5IHRoZSBm
cm9udGVuZCB0byBzZXQgdGhlIGtleSBvZiB0aGUgaGFzaCBpZiB0aGUgYWxnb3JpdGhtCisgKiBy
ZXF1aXJlcyBpdC4gKFNlZSBoYXNoIGFsZ29yaXRobXMgYWJvdmUpLgorICoKKyAqIFJlcXVlc3Q6
CisgKgorICogIHR5cGUgICAgPSBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9IQVNIX0tFWQorICog
IGRhdGFbMF0gPSBncmFudCByZWZlcmVuY2Ugb2YgcGFnZSBjb250YWluaW5nIHRoZSBrZXkgKGFz
c3VtZWQgdG8KKyAqICAgICAgICAgICAgc3RhcnQgYXQgYmVnaW5uaW5nIG9mIGdyYW50KQorICog
IGRhdGFbMV0gPSBzaXplIG9mIGtleSBpbiBvY3RldHMKKyAqICBkYXRhWzJdID0gMAorICoKKyAq
IFJlc3BvbnNlOgorICoKKyAqICBzdGF0dXMgPSBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfTk9UX1NV
UFBPUlRFRCAgICAgLSBPcGVyYXRpb24gbm90CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkCisgKiAgICAgICAgICAgWEVOX05F
VElGX0NUUkxfU1RBVFVTX0lOVkFMSURfUEFSQU1FVEVSIC0gS2V5IHNpemUgaXMgaW52YWxpZAor
ICogICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19CVUZGRVJfT1ZFUkZMT1cgICAtIEtl
eSBzaXplIGlzIGxhcmdlcgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRoYW4gdGhlIGJhY2tlbmQKKyAqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0cworICogICAgICAgICAgIFhF
Tl9ORVRJRl9DVFJMX1NUQVRVU19TVUNDRVNTICAgICAgICAgICAtIE9wZXJhdGlvbiBzdWNjZXNz
ZnVsCisgKiAgZGF0YSAgID0gMAorICoKKyAqIE5PVEU6IEFueSBrZXkgb2N0ZXRzIG5vdCBzcGVj
aWZpZWQgYXJlIGFzc3VtZWQgdG8gYmUgemVybyAodGhlIGtleQorICogICAgICAgaXMgYXNzdW1l
ZCB0byBiZSBlbXB0eSBieSBkZWZhdWx0KSBhbmQgc3BlY2lmeWluZyBhIG5ldyBrZXkKKyAqICAg
ICAgIGludmFsaWRhdGVzIGFueSBwcmV2aW91cyBrZXksIGhlbmNlIHNwZWNpZnlpbmcgYSBrZXkg
c2l6ZSBvZgorICogICAgICAgemVybyB3aWxsIGNsZWFyIHRoZSBrZXkgKHdoaWNoIGVuc3VyZXMg
dGhhdCB0aGUgY2FsY3VsYXRlZCBoYXNoCisgKiAgICAgICB3aWxsIGFsd2F5cyBiZSB6ZXJvKS4K
KyAqICAgICAgIFRoZSBtYXhpbXVtIHNpemUgb2Yga2V5IGlzIGFsZ29yaXRobSBhbmQgYmFja2Vu
ZCBzcGVjaWZpYywgYnV0CisgKiAgICAgICBpcyBhbHNvIGxpbWl0ZWQgYnkgdGhlIHNpbmdsZSBn
cmFudCByZWZlcmVuY2UuCisgKiAgICAgICBUaGUgZ3JhbnQgcmVmZXJlbmNlIG1heSBiZSByZWFk
LW9ubHkgYW5kIG11c3QgcmVtYWluIHZhbGlkIHVudGlsCisgKiAgICAgICB0aGUgcmVzcG9uc2Ug
aGFzIGJlZW4gcHJvY2Vzc2VkLgorICoKKyAqIFhFTl9ORVRJRl9DVFJMX1RZUEVfR0VUX0hBU0hf
TUFQUElOR19TSVpFCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorICoKKyAqIFRoaXMgaXMgc2VudCBieSB0aGUgZnJvbnRlbmQgdG8gcXVlcnkgdGhlIG1heGlt
dW0gc2l6ZSBvZiBtYXBwaW5nCisgKiB0YWJsZSBzdXBwb3J0ZWQgYnkgdGhlIGJhY2tlbmQuIFRo
ZSBzaXplIGlzIHNwZWNpZmllZCBpbiB0ZXJtcyBvZgorICogdGFibGUgZW50cmllcy4KKyAqCisg
KiBSZXF1ZXN0OgorICoKKyAqICB0eXBlICAgID0gWEVOX05FVElGX0NUUkxfVFlQRV9HRVRfSEFT
SF9NQVBQSU5HX1NJWkUKKyAqICBkYXRhWzBdID0gMAorICogIGRhdGFbMV0gPSAwCisgKiAgZGF0
YVsyXSA9IDAKKyAqCisgKiBSZXNwb25zZToKKyAqCisgKiAgc3RhdHVzID0gWEVOX05FVElGX0NU
UkxfU1RBVFVTX05PVF9TVVBQT1JURUQgLSBPcGVyYXRpb24gbm90IHN1cHBvcnRlZAorICogICAg
ICAgICAgIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19TVUNDRVNTICAgICAgIC0gT3BlcmF0aW9uIHN1
Y2Nlc3NmdWwKKyAqICBkYXRhICAgPSBtYXhpbXVtIG51bWJlciBvZiBlbnRyaWVzIGFsbG93ZWQg
aW4gdGhlIG1hcHBpbmcgdGFibGUKKyAqICAgICAgICAgICAoaWYgb3BlcmF0aW9uIHdhcyBzdWNj
ZXNzZnVsKSBvciB6ZXJvIGlmIGEgbWFwcGluZyB0YWJsZSBpcworICogICAgICAgICAgIG5vdCBz
dXBwb3J0ZWQgKGkuZS4gaGFzaCBtYXBwaW5nIGlzIGRvbmUgb25seSBieSBtb2R1bGFyCisgKiAg
ICAgICAgICAgYXJpdGhtZXRpYykuCisgKgorICogWEVOX05FVElGX0NUUkxfVFlQRV9TRVRfSEFT
SF9NQVBQSU5HX1NJWkUKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KyAqCisgKiBUaGlzIGlzIHNlbnQgYnkgdGhlIGZyb250ZW5kIHRvIHNldCB0aGUgYWN0dWFsIHNp
emUgb2YgdGhlIG1hcHBpbmcKKyAqIHRhYmxlIHRvIGJlIHVzZWQgYnkgdGhlIGJhY2tlbmQuIFRo
ZSBzaXplIGlzIHNwZWNpZmllZCBpbiB0ZXJtcyBvZgorICogdGFibGUgZW50cmllcy4KKyAqIEFu
eSBwcmV2aW91cyB0YWJsZSBpcyBpbnZhbGlkYXRlZCBieSB0aGlzIG1lc3NhZ2UgYW5kIGFueSBu
ZXcgdGFibGUKKyAqIGlzIGFzc3VtZWQgdG8gYmUgemVybyBmaWxsZWQuCisgKgorICogUmVxdWVz
dDoKKyAqCisgKiAgdHlwZSAgICA9IFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfTUFQUElO
R19TSVpFCisgKiAgZGF0YVswXSA9IG51bWJlciBvZiBlbnRyaWVzIGluIG1hcHBpbmcgdGFibGUK
KyAqICBkYXRhWzFdID0gMAorICogIGRhdGFbMl0gPSAwCisgKgorICogUmVzcG9uc2U6CisgKgor
ICogIHN0YXR1cyA9IFhFTl9ORVRJRl9DVFJMX1NUQVRVU19OT1RfU1VQUE9SVEVEICAgICAtIE9w
ZXJhdGlvbiBub3QKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdXBwb3J0ZWQKKyAqICAgICAgICAgICBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNf
SU5WQUxJRF9QQVJBTUVURVIgLSBUYWJsZSBzaXplIGlzIGludmFsaWQKKyAqICAgICAgICAgICBY
RU5fTkVUSUZfQ1RSTF9TVEFUVVNfU1VDQ0VTUyAgICAgICAgICAgLSBPcGVyYXRpb24gc3VjY2Vz
c2Z1bAorICogIGRhdGEgICA9IDAKKyAqCisgKiBOT1RFOiBTZXR0aW5nIGRhdGFbMF0gdG8gMCBt
ZWFucyB0aGF0IGhhc2ggbWFwcGluZyBzaG91bGQgYmUgZG9uZQorICogICAgICAgdXNpbmcgbW9k
dWxhciBhcml0aG1ldGljLgorICoKKyAqIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfTUFQ
UElORworICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogVGhp
cyBpcyBzZW50IGJ5IHRoZSBmcm9udGVuZCB0byBzZXQgdGhlIGNvbnRlbnQgb2YgdGhlIHRhYmxl
IG1hcHBpbmcKKyAqIGhhc2ggdmFsdWUgdG8gcXVldWUgbnVtYmVyLiBUaGUgYmFja2VuZCBzaG91
bGQgY2FsY3VsYXRlIHRoZSBoYXNoIGZyb20KKyAqIHRoZSBwYWNrZXQgaGVhZGVyLCB1c2UgaXQg
YXMgYW4gaW5kZXggaW50byB0aGUgdGFibGUgKG1vZHVsbyB0aGUgc2l6ZQorICogb2YgdGhlIHRh
YmxlKSBhbmQgdGhlbiBzdGVlciB0aGUgcGFja2V0IHRvIHRoZSBxdWV1ZSBudW1iZXIgZm91bmQg
YXQKKyAqIHRoYXQgaW5kZXguCisgKgorICogUmVxdWVzdDoKKyAqCisgKiAgdHlwZSAgICA9IFhF
Tl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfTUFQUElORworICogIGRhdGFbMF0gPSBncmFudCBy
ZWZlcmVuY2Ugb2YgcGFnZSBjb250YWluaW5nIHRoZSBtYXBwaW5nIChzdWItKXRhYmxlCisgKiAg
ICAgICAgICAgIChhc3N1bWVkIHRvIHN0YXJ0IGF0IGJlZ2lubmluZyBvZiBncmFudCkKKyAqICBk
YXRhWzFdID0gc2l6ZSBvZiAoc3ViLSl0YWJsZSBpbiBlbnRyaWVzCisgKiAgZGF0YVsyXSA9IG9m
ZnNldCwgaW4gZW50cmllcywgb2Ygc3ViLXRhYmxlIHdpdGhpbiBvdmVyYWxsIHRhYmxlCisgKgor
ICogUmVzcG9uc2U6CisgKgorICogIHN0YXR1cyA9IFhFTl9ORVRJRl9DVFJMX1NUQVRVU19OT1Rf
U1VQUE9SVEVEICAgICAtIE9wZXJhdGlvbiBub3QKKyAqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWQKKyAqICAgICAgICAgICBYRU5f
TkVUSUZfQ1RSTF9TVEFUVVNfSU5WQUxJRF9QQVJBTUVURVIgLSBUYWJsZSBzaXplIG9yIGNvbnRl
bnQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpcyBpbnZhbGlkCisgKiAgICAgICAgICAgWEVOX05FVElGX0NUUkxfU1RBVFVTX0JVRkZFUl9P
VkVSRkxPVyAgIC0gVGFibGUgc2l6ZSBpcyBsYXJnZXIKKyAqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGFuIHRoZSBiYWNrZW5kCisgKiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydHMK
KyAqICAgICAgICAgICBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfU1VDQ0VTUyAgICAgICAgICAgLSBP
cGVyYXRpb24gc3VjY2Vzc2Z1bAorICogIGRhdGEgICA9IDAKKyAqCisgKiBOT1RFOiBUaGUgb3Zl
cmFsbCB0YWJsZSBoYXMgdGhlIGZvbGxvd2luZyBmb3JtYXQ6CisgKgorICogICAgICAgICAgMCAg
ICAgMSAgICAgMiAgICAgMyAgICAgNCAgICAgNSAgICAgNiAgICAgNyAgb2N0ZXQKKyAqICAgICAg
ICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKKyAqICAg
ICAgIHwgICAgICAgbWFwcGluZ1swXSAgICAgIHwgICAgICAgbWFwcGluZ1sxXSAgICAgIHwKKyAq
ICAgICAgICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsK
KyAqICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIC4gICAgICAgICAgICAgICAgICAgICAg
IHwKKyAqICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIC4gICAgICAgICAgICAgICAgICAg
ICAgIHwKKyAqICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIC4gICAgICAgICAgICAgICAg
ICAgICAgIHwKKyAqICAgICAgICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSst
LS0tLSstLS0tLSsKKyAqICAgICAgIHwgICAgICBtYXBwaW5nW04tMl0gICAgIHwgICAgICBtYXBw
aW5nW04tMV0gICAgIHwKKyAqICAgICAgICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSst
LS0tLSstLS0tLSstLS0tLSsKKyAqCisgKiAgICAgICB3aGVyZSBOIGlzIHNwZWNpZmllZCBieSBh
IFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfTUFQUElOR19TSVpFCisgKiAgICAgICBtZXNz
YWdlIGFuZCBlYWNoICBtYXBwaW5nIG11c3Qgc3BlY2lmaWVzIGEgcXVldWUgYmV0d2VlbiAwIGFu
ZAorICogICAgICAgIm11bHRpLXF1ZXVlLW51bS1xdWV1ZXMiIChzZWUgYWJvdmUpLgorICogICAg
ICAgVGhlIGJhY2tlbmQgbWF5IHN1cHBvcnQgYSBtYXBwaW5nIHRhYmxlIGxhcmdlciB0aGFuIGNh
biBiZQorICogICAgICAgbWFwcGVkIGJ5IGEgc2luZ2xlIGdyYW50IHJlZmVyZW5jZS4gVGh1cyBz
dWItdGFibGVzIHdpdGhpbiBhCisgKiAgICAgICBsYXJnZXIgdGFibGUgY2FuIGJlIGluZGl2aWR1
YWxseSBzZXQgYnkgc2VuZGluZyBtdWx0aXBsZSBtZXNzYWdlcworICogICAgICAgd2l0aCBkaWZm
ZXJpbmcgb2Zmc2V0IHZhbHVlcy4gU3BlY2lmeWluZyBhIG5ldyBzdWItdGFibGUgZG9lcyBub3QK
KyAqICAgICAgIGludmFsaWRhdGUgYW55IHRhYmxlIGRhdGEgb3V0c2lkZSB0aGF0IHJhbmdlLgor
ICogICAgICAgVGhlIGdyYW50IHJlZmVyZW5jZSBtYXkgYmUgcmVhZC1vbmx5IGFuZCBtdXN0IHJl
bWFpbiB2YWxpZCB1bnRpbAorICogICAgICAgdGhlIHJlc3BvbnNlIGhhcyBiZWVuIHByb2Nlc3Nl
ZC4KKyAqCisgKiBYRU5fTkVUSUZfQ1RSTF9UWVBFX0dFVF9HUkVGX01BUFBJTkdfU0laRQorICog
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBUaGlzIGlz
IHNlbnQgYnkgdGhlIGZyb250ZW5kIHRvIGZldGNoIHRoZSBudW1iZXIgb2YgZ3JlZnMgdGhhdCBj
YW4gYmUga2VwdAorICogbWFwcGVkIGluIHRoZSBiYWNrZW5kLgorICoKKyAqIFJlcXVlc3Q6Cisg
KgorICogIHR5cGUgICAgPSBYRU5fTkVUSUZfQ1RSTF9UWVBFX0dFVF9HUkVGX01BUFBJTkdfU0la
RQorICogIGRhdGFbMF0gPSBxdWV1ZSBpbmRleCAoYXNzdW1lZCAwIGZvciBzaW5nbGUgcXVldWUp
CisgKiAgZGF0YVsxXSA9IDAKKyAqICBkYXRhWzJdID0gMAorICoKKyAqIFJlc3BvbnNlOgorICoK
KyAqICBzdGF0dXMgPSBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfTk9UX1NVUFBPUlRFRCAgICAgLSBP
cGVyYXRpb24gbm90CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3VwcG9ydGVkCisgKiAgICAgICAgICAgWEVOX05FVElGX0NUUkxfU1RBVFVT
X0lOVkFMSURfUEFSQU1FVEVSIC0gVGhlIHF1ZXVlIGluZGV4IGlzCisgKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0IG9mIHJhbmdlCisgKiAg
ICAgICAgICAgWEVOX05FVElGX0NUUkxfU1RBVFVTX1NVQ0NFU1MgICAgICAgICAgIC0gT3BlcmF0
aW9uIHN1Y2Nlc3NmdWwKKyAqICBkYXRhICAgPSBtYXhpbXVtIG51bWJlciBvZiBlbnRyaWVzIGFs
bG93ZWQgaW4gdGhlIGdyZWYgbWFwcGluZyB0YWJsZQorICogICAgICAgICAgIChpZiBvcGVyYXRp
b24gd2FzIHN1Y2Nlc3NmdWwpIG9yIHplcm8gaWYgaXQgaXMgbm90IHN1cHBvcnRlZC4KKyAqCisg
KiBYRU5fTkVUSUZfQ1RSTF9UWVBFX0FERF9HUkVGX01BUFBJTkcKKyAqIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIFRoaXMgaXMgc2VudCBieSB0aGUgZnJvbnRl
bmQgZm9yIGJhY2tlbmQgdG8gbWFwIGEgbGlzdCBvZiBncmFudAorICogcmVmZXJlbmNlcy4KKyAq
CisgKiBSZXF1ZXN0OgorICoKKyAqICB0eXBlICAgID0gWEVOX05FVElGX0NUUkxfVFlQRV9BRERf
R1JFRl9NQVBQSU5HCisgKiAgZGF0YVswXSA9IHF1ZXVlIGluZGV4CisgKiAgZGF0YVsxXSA9IGdy
YW50IHJlZmVyZW5jZSBvZiBwYWdlIGNvbnRhaW5pbmcgdGhlIG1hcHBpbmcgbGlzdAorICogICAg
ICAgICAgICAoci93IGFuZCBhc3N1bWVkIHRvIHN0YXJ0IGF0IGJlZ2lubmluZyBvZiBwYWdlKQor
ICogIGRhdGFbMl0gPSBzaXplIG9mIGxpc3QgaW4gZW50cmllcworICoKKyAqIFJlc3BvbnNlOgor
ICoKKyAqICBzdGF0dXMgPSBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfTk9UX1NVUFBPUlRFRCAgICAg
LSBPcGVyYXRpb24gbm90CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3VwcG9ydGVkCisgKiAgICAgICAgICAgWEVOX05FVElGX0NUUkxfU1RB
VFVTX0lOVkFMSURfUEFSQU1FVEVSIC0gT3BlcmF0aW9uIGZhaWxlZAorICogICAgICAgICAgIFhF
Tl9ORVRJRl9DVFJMX1NUQVRVU19TVUNDRVNTICAgICAgICAgICAtIE9wZXJhdGlvbiBzdWNjZXNz
ZnVsCisgKgorICogTk9URTogRWFjaCBlbnRyeSBpbiB0aGUgaW5wdXQgdGFibGUgaGFzIHRoZSBm
b3JtYXQgb3V0bGluZWQKKyAqICAgICAgIGluIHN0cnVjdCB4ZW5fbmV0aWZfZ3JlZi4KKyAqICAg
ICAgIENvbnRyYXJ5IHRvIFhFTl9ORVRJRl9DVFJMX1RZUEVfREVMX0dSRUZfTUFQUElORywgdGhl
IHN0cnVjdAorICogICAgICAgeGVuX25ldGlmX2dyZWYgJ3N0YXR1cycgZmllbGQgaXMgbm90IHVz
ZWQgYW5kIHRoZXJlZm9yZSB0aGUgcmVzcG9uc2UKKyAqICAgICAgICdzdGF0dXMnIGRldGVybWlu
ZXMgdGhlIHN1Y2Nlc3Mgb2YgdGhpcyBvcGVyYXRpb24uIEluIGNhc2Ugb2YKKyAqICAgICAgIGZh
aWx1cmUgbm9uZSBvZiBncmFudHMgbWFwcGluZ3MgZ2V0IGFkZGVkIGluIHRoZSBiYWNrZW5kLgor
ICoKKyAqIFhFTl9ORVRJRl9DVFJMX1RZUEVfREVMX0dSRUZfTUFQUElORworICogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogVGhpcyBpcyBzZW50IGJ5IHRoZSBm
cm9udGVuZCBmb3IgYmFja2VuZCB0byB1bm1hcCBhIGxpc3Qgb2YgZ3JhbnQKKyAqIHJlZmVyZW5j
ZXMuCisgKgorICogUmVxdWVzdDoKKyAqCisgKiAgdHlwZSAgICA9IFhFTl9ORVRJRl9DVFJMX1RZ
UEVfREVMX0dSRUZfTUFQUElORworICogIGRhdGFbMF0gPSBxdWV1ZSBpbmRleAorICogIGRhdGFb
MV0gPSBncmFudCByZWZlcmVuY2Ugb2YgcGFnZSBjb250YWluaW5nIHRoZSBtYXBwaW5nIGxpc3QK
KyAqICAgICAgICAgICAgKHIvdyBhbmQgYXNzdW1lZCB0byBzdGFydCBhdCBiZWdpbm5pbmcgb2Yg
cGFnZSkKKyAqICBkYXRhWzJdID0gc2l6ZSBvZiBsaXN0IGluIGVudHJpZXMKKyAqCisgKiBSZXNw
b25zZToKKyAqCisgKiAgc3RhdHVzID0gWEVOX05FVElGX0NUUkxfU1RBVFVTX05PVF9TVVBQT1JU
RUQgICAgIC0gT3BlcmF0aW9uIG5vdAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZAorICogICAgICAgICAgIFhFTl9ORVRJRl9D
VFJMX1NUQVRVU19JTlZBTElEX1BBUkFNRVRFUiAtIE9wZXJhdGlvbiBmYWlsZWQKKyAqICAgICAg
ICAgICBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfU1VDQ0VTUyAgICAgICAgICAgLSBPcGVyYXRpb24g
c3VjY2Vzc2Z1bAorICogIGRhdGEgICA9IG51bWJlciBvZiBlbnRyaWVzIHRoYXQgd2VyZSB1bm1h
cHBlZAorICoKKyAqIE5PVEU6IEVhY2ggZW50cnkgaW4gdGhlIGlucHV0IHRhYmxlIGhhcyB0aGUg
Zm9ybWF0IG91dGxpbmVkIGluIHN0cnVjdAorICogICAgICAgeGVuX25ldGlmX2dyZWYuCisgKiAg
ICAgICBUaGUgc3RydWN0IHhlbl9uZXRpZl9ncmVmICdzdGF0dXMnIGZpZWxkIGRldGVybWluZXMg
aWYgdGhlIGVudHJ5CisgKiAgICAgICB3YXMgc3VjY2Vzc2Z1bGx5IHJlbW92ZWQuCisgKiAgICAg
ICBUaGUgZW50cmllcyB1c2VkIGFyZSBvbmx5IHRoZSBvbmVzIHJlcHJlc2VudGluZyBncmFudCBy
ZWZlcmVuY2VzIHRoYXQKKyAqICAgICAgIHdlcmUgcHJldmlvdXNseSB0aGUgc3ViamVjdCBvZiBh
IFhFTl9ORVRJRl9DVFJMX1RZUEVfQUREX0dSRUZfTUFQUElORworICogICAgICAgb3BlcmF0aW9u
LiBBbnkgb3RoZXIgZW50cmllcyB3aWxsIGhhdmUgdGhlaXIgc3RhdHVzIHNldCB0bworICogICAg
ICAgWEVOX05FVElGX0NUUkxfU1RBVFVTX0lOVkFMSURfUEFSQU1FVEVSIHVwb24gY29tcGxldGlv
bi4KKyAqLworCitERUZJTkVfUklOR19UWVBFUyh4ZW5fbmV0aWZfY3RybCwKKyAgICAgICAgICAg
ICAgICAgIHN0cnVjdCB4ZW5fbmV0aWZfY3RybF9yZXF1ZXN0LAorICAgICAgICAgICAgICAgICAg
c3RydWN0IHhlbl9uZXRpZl9jdHJsX3Jlc3BvbnNlKTsKKworLyoKKyAqIEd1ZXN0IHRyYW5zbWl0
CisgKiA9PT09PT09PT09PT09PQorICoKKyAqIFRoaXMgaXMgdGhlICd3aXJlJyBmb3JtYXQgZm9y
IHRyYW5zbWl0IChmcm9udGVuZCAtPiBiYWNrZW5kKSBwYWNrZXRzOgorICoKKyAqICBGcmFnbWVu
dCAxOiBuZXRpZl90eF9yZXF1ZXN0X3QgIC0gZmxhZ3MgPSBORVRUWEZfKgorICogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplID0gdG90YWwgcGFja2V0IHNpemUKKyAqIFtF
eHRyYSAxOiBuZXRpZl9leHRyYV9pbmZvX3RdICAgIC0gKG9ubHkgaWYgZnJhZ21lbnQgMSBmbGFn
cyBpbmNsdWRlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRUWEZf
ZXh0cmFfaW5mbykKKyAqICAuLi4KKyAqIFtFeHRyYSBOOiBuZXRpZl9leHRyYV9pbmZvX3RdICAg
IC0gKG9ubHkgaWYgZXh0cmEgTi0xIGZsYWdzIGluY2x1ZGUKKyAqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFhFTl9ORVRJRl9FWFRSQV9NT1JFKQorICogIC4uLgorICogIEZy
YWdtZW50IE46IG5ldGlmX3R4X3JlcXVlc3RfdCAgLSAob25seSBpZiBmcmFnbWVudCBOLTEgZmxh
Z3MgaW5jbHVkZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUVFhG
X21vcmVfZGF0YSAtIGZsYWdzIG9uIHByZWNlZGluZworICogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZXh0cmFzIGFyZSBub3QgcmVsZXZhbnQgaGVyZSkKKyAqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MgPSAwCisgKiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemUgPSBmcmFnbWVudCBzaXplCisgKgorICogTk9URToKKyAq
CisgKiBUaGlzIGZvcm1hdCBzbGlnaHRseSBpcyBkaWZmZXJlbnQgZnJvbSB0aGF0IHVzZWQgZm9y
IHJlY2VpdmUKKyAqIChiYWNrZW5kIC0+IGZyb250ZW5kKSBwYWNrZXRzLiBTcGVjaWZpY2FsbHks
IGluIGEgbXVsdGktZnJhZ21lbnQKKyAqIHBhY2tldCB0aGUgYWN0dWFsIHNpemUgb2YgZnJhZ21l
bnQgMSBjYW4gb25seSBiZSBkZXRlcm1pbmVkIGJ5CisgKiBzdWJ0cmFjdGluZyB0aGUgc2l6ZXMg
b2YgZnJhZ21lbnRzIDIuLk4gZnJvbSB0aGUgdG90YWwgcGFja2V0IHNpemUuCisgKgorICogUmlu
ZyBzbG90IHNpemUgaXMgMTIgb2N0ZXRzLCBob3dldmVyIG5vdCBhbGwgcmVxdWVzdC9yZXNwb25z
ZQorICogc3RydWN0cyB1c2UgdGhlIGZ1bGwgc2l6ZS4KKyAqCisgKiB0eCByZXF1ZXN0IGRhdGEg
KG5ldGlmX3R4X3JlcXVlc3RfdCkKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorICoKKyAqICAgIDAgICAgIDEgICAgIDIgICAgIDMgICAgIDQgICAgIDUgICAgIDYgICAg
IDcgIG9jdGV0CisgKiArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0r
LS0tLS0rCisgKiB8IGdyYW50IHJlZiAgICAgICAgICAgICB8IG9mZnNldCAgICB8IGZsYWdzICAg
ICB8CisgKiArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0r
CisgKiB8IGlkICAgICAgICB8IHNpemUgICAgICB8CisgKiArLS0tLS0rLS0tLS0rLS0tLS0rLS0t
LS0rCisgKgorICogZ3JhbnQgcmVmOiBSZWZlcmVuY2UgdG8gYnVmZmVyIHBhZ2UuCisgKiBvZmZz
ZXQ6IE9mZnNldCB3aXRoaW4gYnVmZmVyIHBhZ2UuCisgKiBmbGFnczogTkVUVFhGXyouCisgKiBp
ZDogcmVxdWVzdCBpZGVudGlmaWVyLCBlY2hvZWQgaW4gcmVzcG9uc2UuCisgKiBzaXplOiBwYWNr
ZXQgc2l6ZSBpbiBieXRlcy4KKyAqCisgKiB0eCByZXNwb25zZSAobmV0aWZfdHhfcmVzcG9uc2Vf
dCkKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqICAgIDAgICAg
IDEgICAgIDIgICAgIDMgICAgIDQgICAgIDUgICAgIDYgICAgIDcgIG9jdGV0CisgKiArLS0tLS0r
LS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rCisgKiB8IGlkICAgICAg
ICB8IHN0YXR1cyAgICB8IHVudXNlZCAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0rLS0tLS0r
LS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rCisgKiB8IHVudXNlZCAgICAgICAg
ICAgICAgICB8CisgKiArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rCisgKgorICogaWQ6IHJlZmxl
Y3RzIGlkIGluIHRyYW5zbWl0IHJlcXVlc3QKKyAqIHN0YXR1czogTkVUSUZfUlNQXyoKKyAqCisg
KiBHdWVzdCByZWNlaXZlCisgKiA9PT09PT09PT09PT09CisgKgorICogVGhpcyBpcyB0aGUgJ3dp
cmUnIGZvcm1hdCBmb3IgcmVjZWl2ZSAoYmFja2VuZCAtPiBmcm9udGVuZCkgcGFja2V0czoKKyAq
CisgKiAgRnJhZ21lbnQgMTogbmV0aWZfcnhfcmVxdWVzdF90ICAtIGZsYWdzID0gTkVUUlhGXyoK
KyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IGZyYWdtZW50IHNp
emUKKyAqIFtFeHRyYSAxOiBuZXRpZl9leHRyYV9pbmZvX3RdICAgIC0gKG9ubHkgaWYgZnJhZ21l
bnQgMSBmbGFncyBpbmNsdWRlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBORVRSWEZfZXh0cmFfaW5mbykKKyAqICAuLi4KKyAqIFtFeHRyYSBOOiBuZXRpZl9leHRyYV9p
bmZvX3RdICAgIC0gKG9ubHkgaWYgZXh0cmEgTi0xIGZsYWdzIGluY2x1ZGUKKyAqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9ORVRJRl9FWFRSQV9NT1JFKQorICogIC4u
LgorICogIEZyYWdtZW50IE46IG5ldGlmX3J4X3JlcXVlc3RfdCAgLSAob25seSBpZiBmcmFnbWVu
dCBOLTEgZmxhZ3MgaW5jbHVkZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTkVUUlhGX21vcmVfZGF0YSAtIGZsYWdzIG9uIHByZWNlZGluZworICogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFzIGFyZSBub3QgcmVsZXZhbnQgaGVyZSkKKyAq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MgPSAwCisgKiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUgPSBmcmFnbWVudCBzaXplCisgKgorICog
Tk9URToKKyAqCisgKiBUaGlzIGZvcm1hdCBzbGlnaHRseSBpcyBkaWZmZXJlbnQgZnJvbSB0aGF0
IHVzZWQgZm9yIHRyYW5zbWl0CisgKiAoZnJvbnRlbmQgLT4gYmFja2VuZCkgcGFja2V0cy4gU3Bl
Y2lmaWNhbGx5LCBpbiBhIG11bHRpLWZyYWdtZW50CisgKiBwYWNrZXQgdGhlIHNpemUgb2YgdGhl
IHBhY2tldCBjYW4gb25seSBiZSBkZXRlcm1pbmVkIGJ5IHN1bW1pbmcgdGhlCisgKiBzaXplcyBv
ZiBmcmFnbWVudHMgMS4uTi4KKyAqCisgKiBSaW5nIHNsb3Qgc2l6ZSBpcyA4IG9jdGV0cy4KKyAq
CisgKiByeCByZXF1ZXN0IChuZXRpZl9yeF9yZXF1ZXN0X3QpCisgKiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisgKgorICogICAgMCAgICAgMSAgICAgMiAgICAgMyAgICAgNCAgICAg
NSAgICAgNiAgICAgNyAgb2N0ZXQKKyAqICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSst
LS0tLSstLS0tLSstLS0tLSsKKyAqIHwgaWQgICAgICAgIHwgcGFkICAgICAgIHwgZ3JlZiAgICAg
ICAgICAgICAgICAgIHwKKyAqICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSst
LS0tLSstLS0tLSsKKyAqCisgKiBpZDogcmVxdWVzdCBpZGVudGlmaWVyLCBlY2hvZWQgaW4gcmVz
cG9uc2UuCisgKiBncmVmOiByZWZlcmVuY2UgdG8gaW5jb21pbmcgZ3JhbnRlZCBmcmFtZS4KKyAq
CisgKiByeCByZXNwb25zZSAobmV0aWZfcnhfcmVzcG9uc2VfdCkKKyAqIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqICAgIDAgICAgIDEgICAgIDIgICAgIDMgICAgIDQg
ICAgIDUgICAgIDYgICAgIDcgIG9jdGV0CisgKiArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0t
LS0rLS0tLS0rLS0tLS0rLS0tLS0rCisgKiB8IGlkICAgICAgICB8IG9mZnNldCAgICB8IGZsYWdz
ICAgICB8IHN0YXR1cyAgICB8CisgKiArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0t
LS0rLS0tLS0rLS0tLS0rCisgKgorICogaWQ6IHJlZmxlY3RzIGlkIGluIHJlY2VpdmUgcmVxdWVz
dAorICogb2Zmc2V0OiBvZmZzZXQgaW4gcGFnZSBvZiBzdGFydCBvZiByZWNlaXZlZCBwYWNrZXQK
KyAqIGZsYWdzOiBORVRSWEZfKgorICogc3RhdHVzOiAtdmU6IE5FVElGX1JTUF8qOyArdmU6IFJ4
J2VkIHBrdCBzaXplLgorICoKKyAqIE5PVEU6IEhpc3RvcmljYWxseSwgdG8gc3VwcG9ydCBHU08g
b24gdGhlIGZyb250ZW5kIHJlY2VpdmUgc2lkZSwgTGludXgKKyAqICAgICAgIG5ldGZyb250IGRv
ZXMgbm90IG1ha2UgdXNlIG9mIHRoZSByeCByZXNwb25zZSBpZCAoYmVjYXVzZSwgYXMKKyAqICAg
ICAgIGRlc2NyaWJlZCBiZWxvdywgZXh0cmEgaW5mbyBzdHJ1Y3R1cmVzIG92ZXJsYXkgdGhlIGlk
IGZpZWxkKS4KKyAqICAgICAgIEluc3RlYWQgaXQgYXNzdW1lcyB0aGF0IHJlc3BvbnNlcyBhbHdh
eXMgYXBwZWFyIGluIHRoZSBzYW1lIHJpbmcKKyAqICAgICAgIHNsb3QgYXMgdGhlaXIgY29ycmVz
cG9uZGluZyByZXF1ZXN0LiBUaHVzLCB0byBtYWludGFpbgorICogICAgICAgY29tcGF0aWJpbGl0
eSwgYmFja2VuZHMgbXVzdCBtYWtlIHN1cmUgdGhpcyBpcyB0aGUgY2FzZS4KKyAqCisgKiBFeHRy
YSBJbmZvCisgKiA9PT09PT09PT09CisgKgorICogQ2FuIGJlIHByZXNlbnQgaWYgaW5pdGlhbCBy
ZXF1ZXN0IG9yIHJlc3BvbnNlIGhhcyBORVR7VCxSfVhGX2V4dHJhX2luZm8sCisgKiBvciBwcmV2
aW91cyBleHRyYSByZXF1ZXN0IGhhcyBYRU5fTkVUSUZfRVhUUkFfTU9SRS4KKyAqCisgKiBUaGUg
c3RydWN0IHRoZXJlZm9yZSBuZWVkcyB0byBmaXQgaW50byBlaXRoZXIgYSB0eCBvciByeCBzbG90
IGFuZAorICogaXMgdGhlcmVmb3JlIGxpbWl0ZWQgdG8gOCBvY3RldHMuCisgKgorICogTk9URTog
QmVjYXVzZSBleHRyYSBpbmZvIGRhdGEgb3ZlcmxheXMgdGhlIHVzdWFsIHJlcXVlc3QvcmVzcG9u
c2UKKyAqICAgICAgIHN0cnVjdHVyZXMsIHRoZXJlIGlzIG5vIGlkIGluZm9ybWF0aW9uIGluIHRo
ZSBvcHBvc2l0ZSBkaXJlY3Rpb24uCisgKiAgICAgICBTbywgaWYgYW4gZXh0cmEgaW5mbyBvdmVy
bGF5cyBhbiByeCByZXNwb25zZSB0aGUgZnJvbnRlbmQgY2FuCisgKiAgICAgICBhc3N1bWUgdGhh
dCBpdCBpcyBpbiB0aGUgc2FtZSByaW5nIHNsb3QgYXMgdGhlIHJlcXVlc3QgdGhhdCB3YXMKKyAq
ICAgICAgIGNvbnN1bWVkIHRvIG1ha2UgdGhlIHNsb3QgYXZhaWxhYmxlLCBhbmQgdGhlIGJhY2tl
bmQgbXVzdCBlbnN1cmUKKyAqICAgICAgIHRoaXMgYXNzdW1wdGlvbiBpcyB0cnVlLgorICoKKyAq
IGV4dHJhIGluZm8gKG5ldGlmX2V4dHJhX2luZm9fdCkKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKyAqCisgKiBHZW5lcmFsIGZvcm1hdDoKKyAqCisgKiAgICAwICAgICAxICAg
ICAyICAgICAzICAgICA0ICAgICA1ICAgICA2ICAgICA3ICBvY3RldAorICogKy0tLS0tKy0tLS0t
Ky0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKworICogfHR5cGUgfGZsYWdzfCB0
eXBlIHNwZWNpZmljIGRhdGEgICAgICAgICAgICAgICAgfAorICogKy0tLS0tKy0tLS0tKy0tLS0t
Ky0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKworICogfCBwYWRkaW5nIGZvciB0eCAgICAg
ICAgfAorICogKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKworICoKKyAqIHR5cGU6IFhFTl9ORVRJ
Rl9FWFRSQV9UWVBFXyoKKyAqIGZsYWdzOiBYRU5fTkVUSUZfRVhUUkFfRkxBR18qCisgKiBwYWRk
aW5nIGZvciB0eDogcHJlc2VudCBvbmx5IGluIHRoZSB0eCBjYXNlIGR1ZSB0byA4IG9jdGV0IGxp
bWl0CisgKiAgICAgICAgICAgICAgICAgZnJvbSByeCBjYXNlLiBOb3Qgc2hvd24gaW4gdHlwZSBz
cGVjaWZpYyBlbnRyaWVzCisgKiAgICAgICAgICAgICAgICAgYmVsb3cuCisgKgorICogWEVOX05F
VElGX0VYVFJBX1RZUEVfR1NPOgorICoKKyAqICAgIDAgICAgIDEgICAgIDIgICAgIDMgICAgIDQg
ICAgIDUgICAgIDYgICAgIDcgIG9jdGV0CisgKiArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0t
LS0rLS0tLS0rLS0tLS0rLS0tLS0rCisgKiB8dHlwZSB8ZmxhZ3N8IHNpemUgICAgICB8dHlwZSB8
IHBhZCB8IGZlYXR1cmVzICB8CisgKiArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0t
LS0rLS0tLS0rLS0tLS0rCisgKgorICogdHlwZTogTXVzdCBiZSBYRU5fTkVUSUZfRVhUUkFfVFlQ
RV9HU08KKyAqIGZsYWdzOiBYRU5fTkVUSUZfRVhUUkFfRkxBR18qCisgKiBzaXplOiBNYXhpbXVt
IHBheWxvYWQgc2l6ZSBvZiBlYWNoIHNlZ21lbnQuIEZvciBleGFtcGxlLAorICogICAgICAgZm9y
IFRDUCB0aGlzIGlzIGp1c3QgdGhlIHBhdGggTVNTLgorICogdHlwZTogWEVOX05FVElGX0dTT19U
WVBFXyo6IFRoaXMgZGV0ZXJtaW5lcyB0aGUgcHJvdG9jb2wgb2YKKyAqICAgICAgIHRoZSBwYWNr
ZXQgYW5kIGFueSBleHRyYSBmZWF0dXJlcyByZXF1aXJlZCB0byBzZWdtZW50IHRoZQorICogICAg
ICAgcGFja2V0IHByb3Blcmx5LgorICogZmVhdHVyZXM6IEVOX05FVElGX0dTT19GRUFUXyo6IFRo
aXMgc3BlY2lmaWVzIGFueSBleHRyYSBHU08KKyAqICAgICAgICAgICBmZWF0dXJlcyByZXF1aXJl
ZCB0byBwcm9jZXNzIHRoaXMgcGFja2V0LCBzdWNoIGFzIEVDTgorICogICAgICAgICAgIHN1cHBv
cnQgZm9yIFRDUHY0LgorICoKKyAqIFhFTl9ORVRJRl9FWFRSQV9UWVBFX01DQVNUX3tBREQsREVM
fToKKyAqCisgKiAgICAwICAgICAxICAgICAyICAgICAzICAgICA0ICAgICA1ICAgICA2ICAgICA3
ICBvY3RldAorICogKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0t
LS0tKworICogfHR5cGUgfGZsYWdzfCBhZGRyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fAorICogKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwor
ICoKKyAqIHR5cGU6IE11c3QgYmUgWEVOX05FVElGX0VYVFJBX1RZUEVfTUNBU1Rfe0FERCxERUx9
CisgKiBmbGFnczogWEVOX05FVElGX0VYVFJBX0ZMQUdfKgorICogYWRkcjogYWRkcmVzcyB0byBh
ZGQvcmVtb3ZlCisgKgorICogWEVOX05FVElGX0VYVFJBX1RZUEVfSEFTSDoKKyAqCisgKiBBIGJh
Y2tlbmQgdGhhdCBzdXBwb3J0cyB0ZW9wbGl0eiBoYXNoaW5nIGlzIGFzc3VtZWQgdG8gYWNjZXB0
CisgKiB0aGlzIHR5cGUgb2YgZXh0cmEgaW5mbyBpbiB0cmFuc21pdCBwYWNrZXRzLgorICogQSBm
cm9udGVuZCB0aGF0IGVuYWJsZXMgaGFzaGluZyBpcyBhc3N1bWVkIHRvIGFjY2VwdAorICogdGhp
cyB0eXBlIG9mIGV4dHJhIGluZm8gaW4gcmVjZWl2ZSBwYWNrZXRzLgorICoKKyAqICAgIDAgICAg
IDEgICAgIDIgICAgIDMgICAgIDQgICAgIDUgICAgIDYgICAgIDcgIG9jdGV0CisgKiArLS0tLS0r
LS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rCisgKiB8dHlwZSB8Zmxh
Z3N8aHR5cGV8IGFsZyB8TFNCIC0tLS0gdmFsdWUgLS0tLSBNU0J8CisgKiArLS0tLS0rLS0tLS0r
LS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rCisgKgorICogdHlwZTogTXVzdCBi
ZSBYRU5fTkVUSUZfRVhUUkFfVFlQRV9IQVNICisgKiBmbGFnczogWEVOX05FVElGX0VYVFJBX0ZM
QUdfKgorICogaHR5cGU6IEhhc2ggdHlwZSAob25lIG9mIF9YRU5fTkVUSUZfQ1RSTF9IQVNIX1RZ
UEVfKiAtIHNlZSBhYm92ZSkKKyAqIGFsZzogVGhlIGFsZ29yaXRobSB1c2VkIHRvIGNhbGN1bGF0
ZSB0aGUgaGFzaCAob25lIG9mCisgKiAgICAgIFhFTl9ORVRJRl9DVFJMX0hBU0hfVFlQRV9BTEdP
UklUSE1fKiAtIHNlZSBhYm92ZSkKKyAqIHZhbHVlOiBIYXNoIHZhbHVlCisgKi8KKworLyogUHJv
dG9jb2wgY2hlY2tzdW0gZmllbGQgaXMgYmxhbmsgaW4gdGhlIHBhY2tldCAoaGFyZHdhcmUgb2Zm
bG9hZCk/ICovCisjZGVmaW5lIF9ORVRUWEZfY3N1bV9ibGFuayAgICAgKDApCisjZGVmaW5lICBO
RVRUWEZfY3N1bV9ibGFuayAgICAgKDFVPDxfTkVUVFhGX2NzdW1fYmxhbmspCisKKy8qIFBhY2tl
dCBkYXRhIGhhcyBiZWVuIHZhbGlkYXRlZCBhZ2FpbnN0IHByb3RvY29sIGNoZWNrc3VtLiAqLwor
I2RlZmluZSBfTkVUVFhGX2RhdGFfdmFsaWRhdGVkICgxKQorI2RlZmluZSAgTkVUVFhGX2RhdGFf
dmFsaWRhdGVkICgxVTw8X05FVFRYRl9kYXRhX3ZhbGlkYXRlZCkKKworLyogUGFja2V0IGNvbnRp
bnVlcyBpbiB0aGUgbmV4dCByZXF1ZXN0IGRlc2NyaXB0b3IuICovCisjZGVmaW5lIF9ORVRUWEZf
bW9yZV9kYXRhICAgICAgKDIpCisjZGVmaW5lICBORVRUWEZfbW9yZV9kYXRhICAgICAgKDFVPDxf
TkVUVFhGX21vcmVfZGF0YSkKKworLyogUGFja2V0IHRvIGJlIGZvbGxvd2VkIGJ5IGV4dHJhIGRl
c2NyaXB0b3IocykuICovCisjZGVmaW5lIF9ORVRUWEZfZXh0cmFfaW5mbyAgICAgKDMpCisjZGVm
aW5lICBORVRUWEZfZXh0cmFfaW5mbyAgICAgKDFVPDxfTkVUVFhGX2V4dHJhX2luZm8pCisKKyNk
ZWZpbmUgWEVOX05FVElGX01BWF9UWF9TSVpFIDB4RkZGRgorc3RydWN0IG5ldGlmX3R4X3JlcXVl
c3QgeworICAgIGdyYW50X3JlZl90IGdyZWY7CisgICAgdWludDE2X3Qgb2Zmc2V0OworICAgIHVp
bnQxNl90IGZsYWdzOworICAgIHVpbnQxNl90IGlkOworICAgIHVpbnQxNl90IHNpemU7Cit9Owor
dHlwZWRlZiBzdHJ1Y3QgbmV0aWZfdHhfcmVxdWVzdCBuZXRpZl90eF9yZXF1ZXN0X3Q7CisKKy8q
IFR5cGVzIG9mIG5ldGlmX2V4dHJhX2luZm8gZGVzY3JpcHRvcnMuICovCisjZGVmaW5lIFhFTl9O
RVRJRl9FWFRSQV9UWVBFX05PTkUgICAgICAoMCkgIC8qIE5ldmVyIHVzZWQgLSBpbnZhbGlkICov
CisjZGVmaW5lIFhFTl9ORVRJRl9FWFRSQV9UWVBFX0dTTyAgICAgICAoMSkgIC8qIHUuZ3NvICov
CisjZGVmaW5lIFhFTl9ORVRJRl9FWFRSQV9UWVBFX01DQVNUX0FERCAoMikgIC8qIHUubWNhc3Qg
Ki8KKyNkZWZpbmUgWEVOX05FVElGX0VYVFJBX1RZUEVfTUNBU1RfREVMICgzKSAgLyogdS5tY2Fz
dCAqLworI2RlZmluZSBYRU5fTkVUSUZfRVhUUkFfVFlQRV9IQVNIICAgICAgKDQpICAvKiB1Lmhh
c2ggKi8KKyNkZWZpbmUgWEVOX05FVElGX0VYVFJBX1RZUEVfTUFYICAgICAgICg1KQorCisvKiBu
ZXRpZl9leHRyYV9pbmZvX3QgZmxhZ3MuICovCisjZGVmaW5lIF9YRU5fTkVUSUZfRVhUUkFfRkxB
R19NT1JFICgwKQorI2RlZmluZSBYRU5fTkVUSUZfRVhUUkFfRkxBR19NT1JFICAoMVU8PF9YRU5f
TkVUSUZfRVhUUkFfRkxBR19NT1JFKQorCisvKiBHU08gdHlwZXMgKi8KKyNkZWZpbmUgWEVOX05F
VElGX0dTT19UWVBFX05PTkUgICAgICAgICAoMCkKKyNkZWZpbmUgWEVOX05FVElGX0dTT19UWVBF
X1RDUFY0ICAgICAgICAoMSkKKyNkZWZpbmUgWEVOX05FVElGX0dTT19UWVBFX1RDUFY2ICAgICAg
ICAoMikKKworLyoKKyAqIFRoaXMgc3RydWN0dXJlIG5lZWRzIHRvIGZpdCB3aXRoaW4gYm90aCBu
ZXRpZl90eF9yZXF1ZXN0X3QgYW5kCisgKiBuZXRpZl9yeF9yZXNwb25zZV90IGZvciBjb21wYXRp
YmlsaXR5LgorICovCitzdHJ1Y3QgbmV0aWZfZXh0cmFfaW5mbyB7CisgICAgdWludDhfdCB0eXBl
OworICAgIHVpbnQ4X3QgZmxhZ3M7CisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3QgeworICAg
ICAgICAgICAgdWludDE2X3Qgc2l6ZTsKKyAgICAgICAgICAgIHVpbnQ4X3QgdHlwZTsKKyAgICAg
ICAgICAgIHVpbnQ4X3QgcGFkOworICAgICAgICAgICAgdWludDE2X3QgZmVhdHVyZXM7CisgICAg
ICAgIH0gZ3NvOworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgdWludDhfdCBhZGRyWzZd
OworICAgICAgICB9IG1jYXN0OworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgdWludDhf
dCB0eXBlOworICAgICAgICAgICAgdWludDhfdCBhbGdvcml0aG07CisgICAgICAgICAgICB1aW50
OF90IHZhbHVlWzRdOworICAgICAgICB9IGhhc2g7CisgICAgICAgIHVpbnQxNl90IHBhZFszXTsK
KyAgICB9IHU7Cit9OwordHlwZWRlZiBzdHJ1Y3QgbmV0aWZfZXh0cmFfaW5mbyBuZXRpZl9leHRy
YV9pbmZvX3Q7CisKK3N0cnVjdCBuZXRpZl90eF9yZXNwb25zZSB7CisgICAgdWludDE2X3QgaWQ7
CisgICAgaW50MTZfdCAgc3RhdHVzOworfTsKK3R5cGVkZWYgc3RydWN0IG5ldGlmX3R4X3Jlc3Bv
bnNlIG5ldGlmX3R4X3Jlc3BvbnNlX3Q7CisKK3N0cnVjdCBuZXRpZl9yeF9yZXF1ZXN0IHsKKyAg
ICB1aW50MTZfdCAgICBpZDsgICAgICAgIC8qIEVjaG9lZCBpbiByZXNwb25zZSBtZXNzYWdlLiAg
ICAgICAgKi8KKyAgICB1aW50MTZfdCAgICBwYWQ7CisgICAgZ3JhbnRfcmVmX3QgZ3JlZjsKK307
Cit0eXBlZGVmIHN0cnVjdCBuZXRpZl9yeF9yZXF1ZXN0IG5ldGlmX3J4X3JlcXVlc3RfdDsKKwor
LyogUGFja2V0IGRhdGEgaGFzIGJlZW4gdmFsaWRhdGVkIGFnYWluc3QgcHJvdG9jb2wgY2hlY2tz
dW0uICovCisjZGVmaW5lIF9ORVRSWEZfZGF0YV92YWxpZGF0ZWQgKDApCisjZGVmaW5lICBORVRS
WEZfZGF0YV92YWxpZGF0ZWQgKDFVPDxfTkVUUlhGX2RhdGFfdmFsaWRhdGVkKQorCisvKiBQcm90
b2NvbCBjaGVja3N1bSBmaWVsZCBpcyBibGFuayBpbiB0aGUgcGFja2V0IChoYXJkd2FyZSBvZmZs
b2FkKT8gKi8KKyNkZWZpbmUgX05FVFJYRl9jc3VtX2JsYW5rICAgICAoMSkKKyNkZWZpbmUgIE5F
VFJYRl9jc3VtX2JsYW5rICAgICAoMVU8PF9ORVRSWEZfY3N1bV9ibGFuaykKKworLyogUGFja2V0
IGNvbnRpbnVlcyBpbiB0aGUgbmV4dCByZXF1ZXN0IGRlc2NyaXB0b3IuICovCisjZGVmaW5lIF9O
RVRSWEZfbW9yZV9kYXRhICAgICAgKDIpCisjZGVmaW5lICBORVRSWEZfbW9yZV9kYXRhICAgICAg
KDFVPDxfTkVUUlhGX21vcmVfZGF0YSkKKworLyogUGFja2V0IHRvIGJlIGZvbGxvd2VkIGJ5IGV4
dHJhIGRlc2NyaXB0b3IocykuICovCisjZGVmaW5lIF9ORVRSWEZfZXh0cmFfaW5mbyAgICAgKDMp
CisjZGVmaW5lICBORVRSWEZfZXh0cmFfaW5mbyAgICAgKDFVPDxfTkVUUlhGX2V4dHJhX2luZm8p
CisKKy8qIFBhY2tldCBoYXMgR1NPIHByZWZpeC4gRGVwcmVjYXRlZCBidXQgaW5jbHVkZWQgZm9y
IGNvbXBhdGliaWxpdHkgKi8KKyNkZWZpbmUgX05FVFJYRl9nc29fcHJlZml4ICAgICAoNCkKKyNk
ZWZpbmUgIE5FVFJYRl9nc29fcHJlZml4ICAgICAoMVU8PF9ORVRSWEZfZ3NvX3ByZWZpeCkKKwor
c3RydWN0IG5ldGlmX3J4X3Jlc3BvbnNlIHsKKyAgICB1aW50MTZfdCBpZDsKKyAgICB1aW50MTZf
dCBvZmZzZXQ7CisgICAgdWludDE2X3QgZmxhZ3M7CisgICAgaW50MTZfdCAgc3RhdHVzOworfTsK
K3R5cGVkZWYgc3RydWN0IG5ldGlmX3J4X3Jlc3BvbnNlIG5ldGlmX3J4X3Jlc3BvbnNlX3Q7CisK
Ky8qCisgKiBHZW5lcmF0ZSBuZXRpZiByaW5nIHN0cnVjdHVyZXMgYW5kIHR5cGVzLgorICovCisK
K0RFRklORV9SSU5HX1RZUEVTKG5ldGlmX3R4LCBzdHJ1Y3QgbmV0aWZfdHhfcmVxdWVzdCwgc3Ry
dWN0IG5ldGlmX3R4X3Jlc3BvbnNlKTsKK0RFRklORV9SSU5HX1RZUEVTKG5ldGlmX3J4LCBzdHJ1
Y3QgbmV0aWZfcnhfcmVxdWVzdCwgc3RydWN0IG5ldGlmX3J4X3Jlc3BvbnNlKTsKKworI2RlZmlu
ZSBORVRJRl9SU1BfRFJPUFBFRCAgICAgICAgIC0yCisjZGVmaW5lIE5FVElGX1JTUF9FUlJPUiAg
ICAgICAgICAgLTEKKyNkZWZpbmUgTkVUSUZfUlNQX09LQVkgICAgICAgICAgICAgMAorLyogTm8g
cmVzcG9uc2U6IHVzZWQgZm9yIGF1eGlsaWFyeSByZXF1ZXN0cyAoZS5nLiwgbmV0aWZfZXh0cmFf
aW5mb190KS4gKi8KKyNkZWZpbmUgTkVUSUZfUlNQX05VTEwgICAgICAgICAgICAgMQorCisjZW5k
aWYKKworLyoKKyAqIExvY2FsIHZhcmlhYmxlczoKKyAqIG1vZGU6IEMKKyAqIGMtZmlsZS1zdHls
ZTogIkJTRCIKKyAqIGMtYmFzaWMtb2Zmc2V0OiA0CisgKiB0YWItd2lkdGg6IDQKKyAqIGluZGVu
dC10YWJzLW1vZGU6IG5pbAorICogRW5kOgorICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi94
c20vaW8vcGNpaWYuaCBiL2luY2x1ZGUveGVuL3hzbS9pby9wY2lpZi5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0YmExM2MKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRl
L3hlbi94c20vaW8vcGNpaWYuaApAQCAtMCwwICsxLDEyNSBAQAorLyoKKyAqIFBDSSBCYWNrZW5k
L0Zyb250ZW5kIENvbW1vbiBEYXRhIFN0cnVjdHVyZXMgJiBNYWNyb3MKKyAqCisgKiBQZXJtaXNz
aW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRh
aW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50
YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJl
IHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisg
KiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRl
LCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5k
IHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQg
dG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRo
ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxs
IGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9m
IHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwg
V0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5D
TFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VN
RU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERF
UlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBB
UklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FS
RSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgor
ICogICBBdXRob3I6IFJ5YW4gV2lsc29uIDxoYXA5QGVwb2NoLm5jc2MubWlsPgorICovCisjaWZu
ZGVmIF9fWEVOX1BDSV9DT01NT05fSF9fCisjZGVmaW5lIF9fWEVOX1BDSV9DT01NT05fSF9fCisK
Ky8qIEJlIHN1cmUgdG8gYnVtcCB0aGlzIG51bWJlciBpZiB5b3UgY2hhbmdlIHRoaXMgZmlsZSAq
LworI2RlZmluZSBYRU5fUENJX01BR0lDICI3IgorCisvKiB4ZW5fcGNpX3NoYXJlZGluZm8gZmxh
Z3MgKi8KKyNkZWZpbmUgX1hFTl9QQ0lGX2FjdGl2ZSAgICAgKDApCisjZGVmaW5lIFhFTl9QQ0lG
X2FjdGl2ZSAgICAgICgxPDxfWEVOX1BDSUZfYWN0aXZlKQorI2RlZmluZSBfWEVOX1BDSUJfQUVS
SEFORExFUiAoMSkKKyNkZWZpbmUgWEVOX1BDSUJfQUVSSEFORExFUiAgKDE8PF9YRU5fUENJQl9B
RVJIQU5ETEVSKQorI2RlZmluZSBfWEVOX1BDSUJfYWN0aXZlICAgICAoMikKKyNkZWZpbmUgWEVO
X1BDSUJfYWN0aXZlICAgICAgKDE8PF9YRU5fUENJQl9hY3RpdmUpCisKKy8qIHhlbl9wY2lfb3Ag
Y29tbWFuZHMgKi8KKyNkZWZpbmUgWEVOX1BDSV9PUF9jb25mX3JlYWQgICAgCSgwKQorI2RlZmlu
ZSBYRU5fUENJX09QX2NvbmZfd3JpdGUgICAJKDEpCisjZGVmaW5lIFhFTl9QQ0lfT1BfZW5hYmxl
X21zaSAgIAkoMikKKyNkZWZpbmUgWEVOX1BDSV9PUF9kaXNhYmxlX21zaSAgCSgzKQorI2RlZmlu
ZSBYRU5fUENJX09QX2VuYWJsZV9tc2l4ICAJKDQpCisjZGVmaW5lIFhFTl9QQ0lfT1BfZGlzYWJs
ZV9tc2l4IAkoNSkKKyNkZWZpbmUgWEVOX1BDSV9PUF9hZXJfZGV0ZWN0ZWQgCSg2KQorI2RlZmlu
ZSBYRU5fUENJX09QX2Flcl9yZXN1bWUJCSg3KQorI2RlZmluZSBYRU5fUENJX09QX2Flcl9tbWlv
CQkoOCkKKyNkZWZpbmUgWEVOX1BDSV9PUF9hZXJfc2xvdHJlc2V0CSg5KQorI2RlZmluZSBYRU5f
UENJX09QX2VuYWJsZV9tdWx0aV9tc2kJKDEwKQorCisvKiB4ZW5fcGNpX29wIGVycm9yIG51bWJl
cnMgKi8KKyNkZWZpbmUgWEVOX1BDSV9FUlJfc3VjY2VzcyAgICAgICAgICAoMCkKKyNkZWZpbmUg
WEVOX1BDSV9FUlJfZGV2X25vdF9mb3VuZCAgICgtMSkKKyNkZWZpbmUgWEVOX1BDSV9FUlJfaW52
YWxpZF9vZmZzZXQgICgtMikKKyNkZWZpbmUgWEVOX1BDSV9FUlJfYWNjZXNzX2RlbmllZCAgICgt
MykKKyNkZWZpbmUgWEVOX1BDSV9FUlJfbm90X2ltcGxlbWVudGVkICgtNCkKKy8qIFhFTl9QQ0lf
RVJSX29wX2ZhaWxlZCAtIGJhY2tlbmQgZmFpbGVkIHRvIGNvbXBsZXRlIHRoZSBvcGVyYXRpb24g
Ki8KKyNkZWZpbmUgWEVOX1BDSV9FUlJfb3BfZmFpbGVkICAgICAgICgtNSkKKworLyoKKyAqIGl0
IHNob3VsZCBiZSBQQUdFX1NJWkUtc2l6ZW9mKHN0cnVjdCB4ZW5fcGNpX29wKSkvc2l6ZW9mKHN0
cnVjdCBtc2l4X2VudHJ5KSkKKyAqIFNob3VsZCBub3QgZXhjZWVkIDEyOAorICovCisjZGVmaW5l
IFNIX0lORk9fTUFYX1ZFQyAgICAgMTI4CisKK3N0cnVjdCB4ZW5fbXNpeF9lbnRyeSB7CisgICAg
dWludDE2X3QgdmVjdG9yOworICAgIHVpbnQxNl90IGVudHJ5OworfTsKK3N0cnVjdCB4ZW5fcGNp
X29wIHsKKyAgICAvKiBJTjogd2hhdCBhY3Rpb24gdG8gcGVyZm9ybTogWEVOX1BDSV9PUF8qICov
CisgICAgdWludDMyX3QgY21kOworCisgICAgLyogT1VUOiB3aWxsIGNvbnRhaW4gYW4gZXJyb3Ig
bnVtYmVyIChpZiBhbnkpIGZyb20gZXJybm8uaCAqLworICAgIGludDMyX3QgZXJyOworCisgICAg
LyogSU46IHdoaWNoIGRldmljZSB0byB0b3VjaCAqLworICAgIHVpbnQzMl90IGRvbWFpbjsgLyog
UENJIERvbWFpbi9TZWdtZW50ICovCisgICAgdWludDMyX3QgYnVzOworICAgIHVpbnQzMl90IGRl
dmZuOworCisgICAgLyogSU46IHdoaWNoIGNvbmZpZ3VyYXRpb24gcmVnaXN0ZXJzIHRvIHRvdWNo
ICovCisgICAgaW50MzJfdCBvZmZzZXQ7CisgICAgaW50MzJfdCBzaXplOworCisgICAgLyogSU4v
T1VUOiBDb250YWlucyB0aGUgcmVzdWx0IGFmdGVyIGEgUkVBRCBvciB0aGUgdmFsdWUgdG8gV1JJ
VEUgKi8KKyAgICB1aW50MzJfdCB2YWx1ZTsKKyAgICAvKiBJTjogQ29udGFpbnMgZXh0cmEgaW5m
b3IgZm9yIHRoaXMgb3BlcmF0aW9uICovCisgICAgdWludDMyX3QgaW5mbzsKKyAgICAvKklOOiAg
cGFyYW0gZm9yIG1zaS14ICovCisgICAgc3RydWN0IHhlbl9tc2l4X2VudHJ5IG1zaXhfZW50cmll
c1tTSF9JTkZPX01BWF9WRUNdOworfTsKKworLyp1c2VkIGZvciBwY2llIGFlciBoYW5kbGluZyov
CitzdHJ1Y3QgeGVuX3BjaWVfYWVyX29wCit7CisKKyAgICAvKiBJTjogd2hhdCBhY3Rpb24gdG8g
cGVyZm9ybTogWEVOX1BDSV9PUF8qICovCisgICAgdWludDMyX3QgY21kOworICAgIC8qSU4vT1VU
OiByZXR1cm4gYWVyX29wIHJlc3VsdCBvciBjYXJyeSBlcnJvcl9kZXRlY3RlZCBzdGF0ZSBhcyBp
bnB1dCovCisgICAgaW50MzJfdCBlcnI7CisKKyAgICAvKiBJTjogd2hpY2ggZGV2aWNlIHRvIHRv
dWNoICovCisgICAgdWludDMyX3QgZG9tYWluOyAvKiBQQ0kgRG9tYWluL1NlZ21lbnQqLworICAg
IHVpbnQzMl90IGJ1czsKKyAgICB1aW50MzJfdCBkZXZmbjsKK307CitzdHJ1Y3QgeGVuX3BjaV9z
aGFyZWRpbmZvIHsKKyAgICAvKiBmbGFncyAtIFhFTl9QQ0lGXyogKi8KKyAgICB1aW50MzJfdCBm
bGFnczsKKyAgICBzdHJ1Y3QgeGVuX3BjaV9vcCBvcDsKKyAgICBzdHJ1Y3QgeGVuX3BjaWVfYWVy
X29wIGFlcl9vcDsKK307CisKKyNlbmRpZiAvKiBfX1hFTl9QQ0lfQ09NTU9OX0hfXyAqLworCisv
KgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNE
IgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMt
bW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3hzbS9pby9w
cm90b2NvbHMuaCBiL2luY2x1ZGUveGVuL3hzbS9pby9wcm90b2NvbHMuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi40MGE5YjMwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVk
ZS94ZW4veHNtL2lvL3Byb3RvY29scy5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKKyAqIHByb3RvY29scy5oCisgKiAKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdy
YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAq
IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhl
ICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmlj
dGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2Us
IGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFu
ZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNv
bnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj
dCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdo
dCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4K
KyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgor
ICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZ
IE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBM
SU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9S
IEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFO
IEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00s
IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1Ig
T1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMp
IDIwMDgsIEtlaXIgRnJhc2VyCisgKi8KKworI2lmbmRlZiBfX1hFTl9QUk9UT0NPTFNfSF9fCisj
ZGVmaW5lIF9fWEVOX1BST1RPQ09MU19IX18KKworI2RlZmluZSBYRU5fSU9fUFJPVE9fQUJJX1g4
Nl8zMiAgICAgIng4Nl8zMi1hYmkiCisjZGVmaW5lIFhFTl9JT19QUk9UT19BQklfWDg2XzY0ICAg
ICAieDg2XzY0LWFiaSIKKyNkZWZpbmUgWEVOX0lPX1BST1RPX0FCSV9BUk0gICAgICAgICJhcm0t
YWJpIgorCisjaWYgZGVmaW5lZChfX2kzODZfXykKKyMgZGVmaW5lIFhFTl9JT19QUk9UT19BQklf
TkFUSVZFIFhFTl9JT19QUk9UT19BQklfWDg2XzMyCisjZWxpZiBkZWZpbmVkKF9feDg2XzY0X18p
CisjIGRlZmluZSBYRU5fSU9fUFJPVE9fQUJJX05BVElWRSBYRU5fSU9fUFJPVE9fQUJJX1g4Nl82
NAorI2VsaWYgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQorIyBkZWZp
bmUgWEVOX0lPX1BST1RPX0FCSV9OQVRJVkUgWEVOX0lPX1BST1RPX0FCSV9BUk0KKyNlbHNlCisj
IGVycm9yIGFyY2ggZml4dXAgbmVlZGVkIGhlcmUKKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL2luY2x1ZGUveGVuL3hzbS9pby9wdmNhbGxzLmggYi9pbmNsdWRlL3hlbi94c20vaW8vcHZj
YWxscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiODE3MTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi94c20vaW8vcHZjYWxscy5oCkBAIC0wLDAgKzEsMTUz
IEBACisvKgorICogcHZjYWxscy5oIC0tIFhlbiBQViBDYWxscyBQcm90b2NvbAorICoKKyAqIFJl
ZmVyIHRvIGRvY3MvbWlzYy9wdmNhbGxzLm1hcmtkb3duIGZvciB0aGUgc3BlY2lmaWNhdGlvbgor
ICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBh
bnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29j
aWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBp
biB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGlt
aXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxp
c2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhl
IFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMK
KyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv
biBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp
YWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9W
SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisg
KiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO
RCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBD
T1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhF
UgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBP
UiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJ
VEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBT
T0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgU3RlZmFubyBTdGFiZWxsaW5pIDxz
dGVmYW5vQGFwb3JldG8uY29tPgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElDX0lPX1BWQ0FM
TFNfSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19JT19QVkNBTExTX0hfXworCisjaW5jbHVkZSAi
Li4vZ3JhbnRfdGFibGUuaCIKKyNpbmNsdWRlICJyaW5nLmgiCisKKy8qCisgKiBTZWUgZG9jcy9t
aXNjL3B2Y2FsbHMubWFya2Rvd24gaW4geGVuLmdpdCBmb3IgdGhlIGZ1bGwgc3BlY2lmaWNhdGlv
bjoKKyAqIGh0dHBzOi8veGVuYml0cy54ZW4ub3JnL2RvY3MvdW5zdGFibGUvbWlzYy9wdmNhbGxz
Lmh0bWwKKyAqLworc3RydWN0IHB2Y2FsbHNfZGF0YV9pbnRmIHsKKyAgICBSSU5HX0lEWCBpbl9j
b25zLCBpbl9wcm9kLCBpbl9lcnJvcjsKKworICAgIHVpbnQ4X3QgcGFkMVs1Ml07CisKKyAgICBS
SU5HX0lEWCBvdXRfY29ucywgb3V0X3Byb2QsIG91dF9lcnJvcjsKKworICAgIHVpbnQ4X3QgcGFk
Mls1Ml07CisKKyAgICBSSU5HX0lEWCByaW5nX29yZGVyOworICAgIGdyYW50X3JlZl90IHJlZltd
OworfTsKK0RFRklORV9YRU5fRkxFWF9SSU5HKHB2Y2FsbHMpOworCisjZGVmaW5lIFBWQ0FMTFNf
U09DS0VUICAgICAgICAgMAorI2RlZmluZSBQVkNBTExTX0NPTk5FQ1QgICAgICAgIDEKKyNkZWZp
bmUgUFZDQUxMU19SRUxFQVNFICAgICAgICAyCisjZGVmaW5lIFBWQ0FMTFNfQklORCAgICAgICAg
ICAgMworI2RlZmluZSBQVkNBTExTX0xJU1RFTiAgICAgICAgIDQKKyNkZWZpbmUgUFZDQUxMU19B
Q0NFUFQgICAgICAgICA1CisjZGVmaW5lIFBWQ0FMTFNfUE9MTCAgICAgICAgICAgNgorCitzdHJ1
Y3QgeGVuX3B2Y2FsbHNfcmVxdWVzdCB7CisgICAgdWludDMyX3QgcmVxX2lkOyAvKiBwcml2YXRl
IHRvIGd1ZXN0LCBlY2hvZWQgaW4gcmVzcG9uc2UgKi8KKyAgICB1aW50MzJfdCBjbWQ7ICAgIC8q
IGNvbW1hbmQgdG8gZXhlY3V0ZSAqLworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHhlbl9w
dmNhbGxzX3NvY2tldCB7CisgICAgICAgICAgICB1aW50NjRfdCBpZDsKKyAgICAgICAgICAgIHVp
bnQzMl90IGRvbWFpbjsKKyAgICAgICAgICAgIHVpbnQzMl90IHR5cGU7CisgICAgICAgICAgICB1
aW50MzJfdCBwcm90b2NvbDsKKyAgICAgICAgfSBzb2NrZXQ7CisgICAgICAgIHN0cnVjdCB4ZW5f
cHZjYWxsc19jb25uZWN0IHsKKyAgICAgICAgICAgIHVpbnQ2NF90IGlkOworICAgICAgICAgICAg
dWludDhfdCBhZGRyWzI4XTsKKyAgICAgICAgICAgIHVpbnQzMl90IGxlbjsKKyAgICAgICAgICAg
IHVpbnQzMl90IGZsYWdzOworICAgICAgICAgICAgZ3JhbnRfcmVmX3QgcmVmOworICAgICAgICAg
ICAgdWludDMyX3QgZXZ0Y2huOworICAgICAgICB9IGNvbm5lY3Q7CisgICAgICAgIHN0cnVjdCB4
ZW5fcHZjYWxsc19yZWxlYXNlIHsKKyAgICAgICAgICAgIHVpbnQ2NF90IGlkOworICAgICAgICAg
ICAgdWludDhfdCByZXVzZTsKKyAgICAgICAgfSByZWxlYXNlOworICAgICAgICBzdHJ1Y3QgeGVu
X3B2Y2FsbHNfYmluZCB7CisgICAgICAgICAgICB1aW50NjRfdCBpZDsKKyAgICAgICAgICAgIHVp
bnQ4X3QgYWRkclsyOF07CisgICAgICAgICAgICB1aW50MzJfdCBsZW47CisgICAgICAgIH0gYmlu
ZDsKKyAgICAgICAgc3RydWN0IHhlbl9wdmNhbGxzX2xpc3RlbiB7CisgICAgICAgICAgICB1aW50
NjRfdCBpZDsKKyAgICAgICAgICAgIHVpbnQzMl90IGJhY2tsb2c7CisgICAgICAgIH0gbGlzdGVu
OworICAgICAgICBzdHJ1Y3QgeGVuX3B2Y2FsbHNfYWNjZXB0IHsKKyAgICAgICAgICAgIHVpbnQ2
NF90IGlkOworICAgICAgICAgICAgdWludDY0X3QgaWRfbmV3OworICAgICAgICAgICAgZ3JhbnRf
cmVmX3QgcmVmOworICAgICAgICAgICAgdWludDMyX3QgZXZ0Y2huOworICAgICAgICB9IGFjY2Vw
dDsKKyAgICAgICAgc3RydWN0IHhlbl9wdmNhbGxzX3BvbGwgeworICAgICAgICAgICAgdWludDY0
X3QgaWQ7CisgICAgICAgIH0gcG9sbDsKKyAgICAgICAgLyogZHVtbXkgbWVtYmVyIHRvIGZvcmNl
IHNpemVvZihzdHJ1Y3QgeGVuX3B2Y2FsbHNfcmVxdWVzdCkKKyAgICAgICAgICogdG8gbWF0Y2gg
YWNyb3NzIGFyY2hzICovCisgICAgICAgIHN0cnVjdCB4ZW5fcHZjYWxsc19kdW1teSB7CisgICAg
ICAgICAgICB1aW50OF90IGR1bW15WzU2XTsKKyAgICAgICAgfSBkdW1teTsKKyAgICB9IHU7Cit9
OworCitzdHJ1Y3QgeGVuX3B2Y2FsbHNfcmVzcG9uc2UgeworICAgIHVpbnQzMl90IHJlcV9pZDsK
KyAgICB1aW50MzJfdCBjbWQ7CisgICAgaW50MzJfdCByZXQ7CisgICAgdWludDMyX3QgcGFkOwor
ICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IF94ZW5fcHZjYWxsc19zb2NrZXQgeworICAgICAg
ICAgICAgdWludDY0X3QgaWQ7CisgICAgICAgIH0gc29ja2V0OworICAgICAgICBzdHJ1Y3QgX3hl
bl9wdmNhbGxzX2Nvbm5lY3QgeworICAgICAgICAgICAgdWludDY0X3QgaWQ7CisgICAgICAgIH0g
Y29ubmVjdDsKKyAgICAgICAgc3RydWN0IF94ZW5fcHZjYWxsc19yZWxlYXNlIHsKKyAgICAgICAg
ICAgIHVpbnQ2NF90IGlkOworICAgICAgICB9IHJlbGVhc2U7CisgICAgICAgIHN0cnVjdCBfeGVu
X3B2Y2FsbHNfYmluZCB7CisgICAgICAgICAgICB1aW50NjRfdCBpZDsKKyAgICAgICAgfSBiaW5k
OworICAgICAgICBzdHJ1Y3QgX3hlbl9wdmNhbGxzX2xpc3RlbiB7CisgICAgICAgICAgICB1aW50
NjRfdCBpZDsKKyAgICAgICAgfSBsaXN0ZW47CisgICAgICAgIHN0cnVjdCBfeGVuX3B2Y2FsbHNf
YWNjZXB0IHsKKyAgICAgICAgICAgIHVpbnQ2NF90IGlkOworICAgICAgICB9IGFjY2VwdDsKKyAg
ICAgICAgc3RydWN0IF94ZW5fcHZjYWxsc19wb2xsIHsKKyAgICAgICAgICAgIHVpbnQ2NF90IGlk
OworICAgICAgICB9IHBvbGw7CisgICAgICAgIHN0cnVjdCBfeGVuX3B2Y2FsbHNfZHVtbXkgewor
ICAgICAgICAgICAgdWludDhfdCBkdW1teVs4XTsKKyAgICAgICAgfSBkdW1teTsKKyAgICB9IHU7
Cit9OworCitERUZJTkVfUklOR19UWVBFUyh4ZW5fcHZjYWxscywgc3RydWN0IHhlbl9wdmNhbGxz
X3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGVuX3B2Y2FsbHNfcmVzcG9uc2Up
OworCisjZW5kaWYKKworLyoKKyAqIExvY2FsIHZhcmlhYmxlczoKKyAqIG1vZGU6IEMKKyAqIGMt
ZmlsZS1zdHlsZTogIkJTRCIKKyAqIGMtYmFzaWMtb2Zmc2V0OiA0CisgKiB0YWItd2lkdGg6IDQK
KyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorICogRW5kOgorICovCmRpZmYgLS1naXQgYS9pbmNs
dWRlL3hlbi94c20vaW8vcmluZy5oIGIvaW5jbHVkZS94ZW4veHNtL2lvL3JpbmcuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDM0MmZjCi0tLSAvZGV2L251bGwKKysrIGIv
aW5jbHVkZS94ZW4veHNtL2lvL3JpbmcuaApAQCAtMCwwICsxLDQ4NCBAQAorLyoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgorICogcmluZy5oCisgKiAKKyAqIFNoYXJlZCBwcm9kdWNlci1jb25zdW1lciBy
aW5nIG1hY3Jvcy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9m
IGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3
YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwg
dG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGlu
ZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks
IG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwg
Y29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl
IFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0
aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVz
IG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09G
VFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwg
RVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAq
IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERB
TUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O
VFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4g
Q09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFM
SU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogVGltIERlZWdhbiBhbmQgQW5kcmV3IFdhcmZp
ZWxkIE5vdmVtYmVyIDIwMDQuCisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfSU9fUklOR19I
X18KKyNkZWZpbmUgX19YRU5fUFVCTElDX0lPX1JJTkdfSF9fCisKKy8qCisgKiBXaGVuICNpbmNs
dWRlJ2luZyB0aGlzIGhlYWRlciwgeW91IG5lZWQgdG8gcHJvdmlkZSB0aGUgZm9sbG93aW5nCisg
KiBkZWNsYXJhdGlvbiB1cGZyb250OgorICogLSBzdGFuZGFyZCBpbnRlZ2VycyB0eXBlcyAodWlu
dDhfdCwgdWludDE2X3QsIGV0YykKKyAqIFRoZXkgYXJlIHByb3ZpZGVkIGJ5IHN0ZGludC5oIG9m
IHRoZSBzdGFuZGFyZCBoZWFkZXJzLgorICoKKyAqIEluIGFkZGl0aW9uLCBpZiB5b3UgaW50ZW5k
IHRvIHVzZSB0aGUgRkxFWCBtYWNyb3MsIHlvdSBhbHNvIG5lZWQgdG8KKyAqIHByb3ZpZGUgdGhl
IGZvbGxvd2luZywgYmVmb3JlIGludm9raW5nIHRoZSBGTEVYIG1hY3JvczoKKyAqIC0gc2l6ZV90
CisgKiAtIG1lbWNweQorICogLSBncmFudF9yZWZfdAorICogVGhlc2UgZGVjbGFyYXRpb25zIGFy
ZSBwcm92aWRlZCBieSBzdHJpbmcuaCBvZiB0aGUgc3RhbmRhcmQgaGVhZGVycywKKyAqIGFuZCBn
cmFudF90YWJsZS5oIGZyb20gdGhlIFhlbiBwdWJsaWMgaGVhZGVycy4KKyAqLworCisjaW5jbHVk
ZSAiLi4veGVuLWNvbXBhdC5oIgorCisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4
MDAwMzAyMDgKKyNkZWZpbmUgeGVuX21iKCkgIG1iKCkKKyNkZWZpbmUgeGVuX3JtYigpIHJtYigp
CisjZGVmaW5lIHhlbl93bWIoKSB3bWIoKQorI2VuZGlmCisKK3R5cGVkZWYgdW5zaWduZWQgaW50
IFJJTkdfSURYOworCisvKiBSb3VuZCBhIDMyLWJpdCB1bnNpZ25lZCBjb25zdGFudCBkb3duIHRv
IHRoZSBuZWFyZXN0IHBvd2VyIG9mIHR3by4gKi8KKyNkZWZpbmUgX19SRDIoX3gpICAoKChfeCkg
JiAweDAwMDAwMDAyKSA/IDB4MiAgICAgICAgICAgICAgICAgIDogKChfeCkgJiAweDEpKQorI2Rl
ZmluZSBfX1JENChfeCkgICgoKF94KSAmIDB4MDAwMDAwMGMpID8gX19SRDIoKF94KT4+Mik8PDIg
ICAgOiBfX1JEMihfeCkpCisjZGVmaW5lIF9fUkQ4KF94KSAgKCgoX3gpICYgMHgwMDAwMDBmMCkg
PyBfX1JENCgoX3gpPj40KTw8NCAgICA6IF9fUkQ0KF94KSkKKyNkZWZpbmUgX19SRDE2KF94KSAo
KChfeCkgJiAweDAwMDBmZjAwKSA/IF9fUkQ4KChfeCk+PjgpPDw4ICAgIDogX19SRDgoX3gpKQor
I2RlZmluZSBfX1JEMzIoX3gpICgoKF94KSAmIDB4ZmZmZjAwMDApID8gX19SRDE2KChfeCk+PjE2
KTw8MTYgOiBfX1JEMTYoX3gpKQorCisvKgorICogQ2FsY3VsYXRlIHNpemUgb2YgYSBzaGFyZWQg
cmluZywgZ2l2ZW4gdGhlIHRvdGFsIGF2YWlsYWJsZSBzcGFjZSBmb3IgdGhlCisgKiByaW5nIGFu
ZCBpbmRleGVzIChfc3opLCBhbmQgdGhlIG5hbWUgdGFnIG9mIHRoZSByZXF1ZXN0L3Jlc3BvbnNl
IHN0cnVjdHVyZS4KKyAqIEEgcmluZyBjb250YWlucyBhcyBtYW55IGVudHJpZXMgYXMgd2lsbCBm
aXQsIHJvdW5kZWQgZG93biB0byB0aGUgbmVhcmVzdCAKKyAqIHBvd2VyIG9mIHR3byAoc28gd2Ug
Y2FuIG1hc2sgd2l0aCAoc2l6ZS0xKSB0byBsb29wIGFyb3VuZCkuCisgKi8KKyNkZWZpbmUgX19D
T05TVF9SSU5HX1NJWkUoX3MsIF9zeikgXAorICAgIChfX1JEMzIoKChfc3opIC0gb2Zmc2V0b2Yo
c3RydWN0IF9zIyNfc3JpbmcsIHJpbmcpKSAvIFwKKwkgICAgc2l6ZW9mKCgoc3RydWN0IF9zIyNf
c3JpbmcgKikwKS0+cmluZ1swXSkpKQorLyoKKyAqIFRoZSBzYW1lIGZvciBwYXNzaW5nIGluIGFu
IGFjdHVhbCBwb2ludGVyIGluc3RlYWQgb2YgYSBuYW1lIHRhZy4KKyAqLworI2RlZmluZSBfX1JJ
TkdfU0laRShfcywgX3N6KSBcCisgICAgKF9fUkQzMigoKF9zeikgLSAobG9uZykoX3MpLT5yaW5n
ICsgKGxvbmcpKF9zKSkgLyBzaXplb2YoKF9zKS0+cmluZ1swXSkpKQorCisvKgorICogTWFjcm9z
IHRvIG1ha2UgdGhlIGNvcnJlY3QgQyBkYXRhdHlwZXMgZm9yIGEgbmV3IGtpbmQgb2YgcmluZy4K
KyAqIAorICogVG8gbWFrZSBhIG5ldyByaW5nIGRhdGF0eXBlLCB5b3UgbmVlZCB0byBoYXZlIHR3
byBtZXNzYWdlIHN0cnVjdHVyZXMsCisgKiBsZXQncyBzYXkgcmVxdWVzdF90LCBhbmQgcmVzcG9u
c2VfdCBhbHJlYWR5IGRlZmluZWQuCisgKgorICogSW4gYSBoZWFkZXIgd2hlcmUgeW91IHdhbnQg
dGhlIHJpbmcgZGF0YXR5cGUgZGVjbGFyZWQsIHlvdSB0aGVuIGRvOgorICoKKyAqICAgICBERUZJ
TkVfUklOR19UWVBFUyhteXRhZywgcmVxdWVzdF90LCByZXNwb25zZV90KTsKKyAqCisgKiBUaGVz
ZSBleHBhbmQgb3V0IHRvIGdpdmUgeW91IGEgc2V0IG9mIHR5cGVzLCBhcyB5b3UgY2FuIHNlZSBi
ZWxvdy4KKyAqIFRoZSBtb3N0IGltcG9ydGFudCBvZiB0aGVzZSBhcmU6CisgKiAKKyAqICAgICBt
eXRhZ19zcmluZ190ICAgICAgLSBUaGUgc2hhcmVkIHJpbmcuCisgKiAgICAgbXl0YWdfZnJvbnRf
cmluZ190IC0gVGhlICdmcm9udCcgaGFsZiBvZiB0aGUgcmluZy4KKyAqICAgICBteXRhZ19iYWNr
X3JpbmdfdCAgLSBUaGUgJ2JhY2snIGhhbGYgb2YgdGhlIHJpbmcuCisgKgorICogVG8gaW5pdGlh
bGl6ZSBhIHJpbmcgaW4geW91ciBjb2RlIHlvdSBuZWVkIHRvIGtub3cgdGhlIGxvY2F0aW9uIGFu
ZCBzaXplCisgKiBvZiB0aGUgc2hhcmVkIG1lbW9yeSBhcmVhIChQQUdFX1NJWkUsIGZvciBpbnN0
YW5jZSkuIFRvIGluaXRpYWxpc2UKKyAqIHRoZSBmcm9udCBoYWxmOgorICoKKyAqICAgICBteXRh
Z19mcm9udF9yaW5nX3QgZnJvbnRfcmluZzsKKyAqICAgICBTSEFSRURfUklOR19JTklUKChteXRh
Z19zcmluZ190ICopc2hhcmVkX3BhZ2UpOworICogICAgIEZST05UX1JJTkdfSU5JVCgmZnJvbnRf
cmluZywgKG15dGFnX3NyaW5nX3QgKilzaGFyZWRfcGFnZSwgUEFHRV9TSVpFKTsKKyAqCisgKiBJ
bml0aWFsaXppbmcgdGhlIGJhY2sgZm9sbG93cyBzaW1pbGFybHkgKG5vdGUgdGhhdCBvbmx5IHRo
ZSBmcm9udAorICogaW5pdGlhbGl6ZXMgdGhlIHNoYXJlZCByaW5nKToKKyAqCisgKiAgICAgbXl0
YWdfYmFja19yaW5nX3QgYmFja19yaW5nOworICogICAgIEJBQ0tfUklOR19JTklUKCZiYWNrX3Jp
bmcsIChteXRhZ19zcmluZ190ICopc2hhcmVkX3BhZ2UsIFBBR0VfU0laRSk7CisgKi8KKworI2Rl
ZmluZSBERUZJTkVfUklOR19UWVBFUyhfX25hbWUsIF9fcmVxX3QsIF9fcnNwX3QpICAgICAgICAg
ICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLyogU2hhcmVkIHJpbmcgZW50cnkgKi8g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAordW5pb24g
X19uYW1lIyNfc3JpbmdfZW50cnkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAorICAgIF9fcmVxX3QgcmVxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIF9fcnNwX3QgcnNwOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorLyogU2hhcmVkIHJpbmcgcGFnZSAqLyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorc3RydWN0IF9fbmFt
ZSMjX3NyaW5nIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgIFJJTkdfSURYIHJlcV9wcm9kLCByZXFfZXZlbnQ7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgIFJJTkdfSURYIHJzcF9wcm9kLCByc3BfZXZlbnQ7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHVuaW9uIHsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorICAgICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgdWludDhfdCBzbWFydHBvbGxfYWN0aXZl
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB9IG5ldGlmOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgdWludDhfdCBtc2c7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB9IHRhcGlmX3VzZXI7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
ICAgICB1aW50OF90IHB2dF9wYWRbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorICAgIH0gcHZ0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHVpbnQ4X3QgX19wYWRbNDRdOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHVu
aW9uIF9fbmFtZSMjX3NyaW5nX2VudHJ5IHJpbmdbMV07IC8qIHZhcmlhYmxlLWxlbmd0aCAqLyAg
ICAgICAgICAgXAorfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLyogIkZyb250
IiBlbmQncyBwcml2YXRlIHZhcmlhYmxlcyAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorc3RydWN0IF9fbmFtZSMjX2Zyb250X3JpbmcgeyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFJJTkdfSURYIHJlcV9wcm9kX3B2dDsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFJJTkdfSURY
IHJzcF9jb25zOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgIHVuc2lnbmVkIGludCBucl9lbnRzOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgIHN0cnVjdCBfX25hbWUjI19zcmluZyAqc3Jpbmc7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorLyogIkJhY2siIGVuZCdzIHByaXZhdGUgdmFyaWFibGVzICov
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorc3RydWN0IF9fbmFtZSMjX2Jh
Y2tfcmluZyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgIFJJTkdfSURYIHJzcF9wcm9kX3B2dDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgIFJJTkdfSURYIHJlcV9jb25zOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHVuc2lnbmVkIGludCBucl9l
bnRzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
IHN0cnVjdCBfX25hbWUjI19zcmluZyAqc3Jpbmc7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLyogU3lu
dGFjdGljIHN1Z2FyICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAordHlwZWRlZiBzdHJ1Y3QgX19uYW1lIyNfc3JpbmcgX19uYW1lIyNfc3Jpbmdf
dDsgICAgICAgICAgICAgICAgICAgICAgICAgXAordHlwZWRlZiBzdHJ1Y3QgX19uYW1lIyNfZnJv
bnRfcmluZyBfX25hbWUjI19mcm9udF9yaW5nX3Q7ICAgICAgICAgICAgICAgXAordHlwZWRlZiBz
dHJ1Y3QgX19uYW1lIyNfYmFja19yaW5nIF9fbmFtZSMjX2JhY2tfcmluZ190CisKKy8qCisgKiBN
YWNyb3MgZm9yIG1hbmlwdWxhdGluZyByaW5ncy4KKyAqIAorICogRlJPTlRfUklOR193aGF0ZXZl
ciB3b3JrcyBvbiB0aGUgImZyb250IGVuZCIgb2YgYSByaW5nOiBoZXJlIAorICogcmVxdWVzdHMg
YXJlIHB1c2hlZCBvbiB0byB0aGUgcmluZyBhbmQgcmVzcG9uc2VzIHRha2VuIG9mZiBpdC4KKyAq
IAorICogQkFDS19SSU5HX3doYXRldmVyIHdvcmtzIG9uIHRoZSAiYmFjayBlbmQiIG9mIGEgcmlu
ZzogaGVyZSAKKyAqIHJlcXVlc3RzIGFyZSB0YWtlbiBvZmYgdGhlIHJpbmcgYW5kIHJlc3BvbnNl
cyBwdXQgb24uCisgKiAKKyAqIE4uQi4gdGhlc2UgbWFjcm9zIGRvIE5PIElOVEVSTE9DS1MgT1Ig
RkxPVyBDT05UUk9MLiAKKyAqIFRoaXMgaXMgT0sgaW4gMS1mb3ItMSByZXF1ZXN0LXJlc3BvbnNl
IHNpdHVhdGlvbnMgd2hlcmUgdGhlIAorICogcmVxdWVzdG9yIChmcm9udCBlbmQpIG5ldmVyIGhh
cyBtb3JlIHRoYW4gUklOR19TSVpFKCktMQorICogb3V0c3RhbmRpbmcgcmVxdWVzdHMuCisgKi8K
KworLyogSW5pdGlhbGlzaW5nIGVtcHR5IHJpbmdzICovCisjZGVmaW5lIFNIQVJFRF9SSU5HX0lO
SVQoX3MpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
KF9zKS0+cmVxX3Byb2QgID0gKF9zKS0+cnNwX3Byb2QgID0gMDsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgICAgKF9zKS0+cmVxX2V2ZW50ID0gKF9zKS0+cnNwX2V2ZW50ID0gMTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKHZvaWQpbWVtc2V0KChfcyktPnB2
dC5wdnRfcGFkLCAwLCBzaXplb2YoKF9zKS0+cHZ0LnB2dF9wYWQpKTsgICAgICBcCisgICAgKHZv
aWQpbWVtc2V0KChfcyktPl9fcGFkLCAwLCBzaXplb2YoKF9zKS0+X19wYWQpKTsgICAgICAgICAg
ICAgICAgICBcCit9IHdoaWxlKDApCisKKyNkZWZpbmUgRlJPTlRfUklOR19JTklUKF9yLCBfcywg
X19zaXplKSBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoX3IpLT5yZXFf
cHJvZF9wdnQgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgICAoX3IpLT5yc3BfY29ucyA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICAoX3IpLT5ucl9lbnRzID0gX19SSU5HX1NJWkUoX3Ms
IF9fc2l6ZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoX3IpLT5zcmluZyA9
IChfcyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
K30gd2hpbGUgKDApCisKKyNkZWZpbmUgQkFDS19SSU5HX0lOSVQoX3IsIF9zLCBfX3NpemUpIGRv
IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoX3IpLT5yc3BfcHJvZF9wdnQg
PSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAo
X3IpLT5yZXFfY29ucyA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICAoX3IpLT5ucl9lbnRzID0gX19SSU5HX1NJWkUoX3MsIF9fc2l6ZSk7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoX3IpLT5zcmluZyA9IChfcyk7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK30gd2hpbGUg
KDApCisKKy8qIEhvdyBiaWcgaXMgdGhpcyByaW5nPyAqLworI2RlZmluZSBSSU5HX1NJWkUoX3Ip
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
ICgoX3IpLT5ucl9lbnRzKQorCisvKiBOdW1iZXIgb2YgZnJlZSByZXF1ZXN0cyAoZm9yIHVzZSBv
biBmcm9udCBzaWRlIG9ubHkpLiAqLworI2RlZmluZSBSSU5HX0ZSRUVfUkVRVUVTVFMoX3IpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIChSSU5HX1NJWkUo
X3IpIC0gKChfciktPnJlcV9wcm9kX3B2dCAtIChfciktPnJzcF9jb25zKSkKKworLyogVGVzdCBp
ZiB0aGVyZSBpcyBhbiBlbXB0eSBzbG90IGF2YWlsYWJsZSBvbiB0aGUgZnJvbnQgcmluZy4KKyAq
IChUaGlzIGlzIG9ubHkgbWVhbmluZ2Z1bCBmcm9tIHRoZSBmcm9udC4gKQorICovCisjZGVmaW5l
IFJJTkdfRlVMTChfcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgKFJJTkdfRlJFRV9SRVFVRVNUUyhfcikgPT0gMCkKKworLyogVGVzdCBp
ZiB0aGVyZSBhcmUgb3V0c3RhbmRpbmcgbWVzc2FnZXMgdG8gYmUgcHJvY2Vzc2VkIG9uIGEgcmlu
Zy4gKi8KKyNkZWZpbmUgUklOR19IQVNfVU5DT05TVU1FRF9SRVNQT05TRVMoX3IpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoKF9yKS0+c3JpbmctPnJzcF9wcm9kIC0gKF9y
KS0+cnNwX2NvbnMpCisKKyNpZmRlZiBfX0dOVUNfXworI2RlZmluZSBSSU5HX0hBU19VTkNPTlNV
TUVEX1JFUVVFU1RTKF9yKSAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHVu
c2lnbmVkIGludCByZXEgPSAoX3IpLT5zcmluZy0+cmVxX3Byb2QgLSAoX3IpLT5yZXFfY29uczsg
ICAgICAgICAgXAorICAgIHVuc2lnbmVkIGludCByc3AgPSBSSU5HX1NJWkUoX3IpIC0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoKF9yKS0+cmVxX2NvbnMgLSAo
X3IpLT5yc3BfcHJvZF9wdnQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHJlcSA8
IHJzcCA/IHJlcSA6IHJzcDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorfSkKKyNlbHNlCisvKiBTYW1lIGFzIGFib3ZlLCBidXQgd2l0aG91dCB0aGUgbmlj
ZSBHQ0MgKHsgLi4uIH0pIHN5bnRheC4gKi8KKyNkZWZpbmUgUklOR19IQVNfVU5DT05TVU1FRF9S
RVFVRVNUUyhfcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoKCgoX3Ip
LT5zcmluZy0+cmVxX3Byb2QgLSAoX3IpLT5yZXFfY29ucykgPCAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICAgIChSSU5HX1NJWkUoX3IpIC0gKChfciktPnJlcV9jb25zIC0gKF9yKS0+cnNw
X3Byb2RfcHZ0KSkpID8gICAgICAgIFwKKyAgICAgKChfciktPnNyaW5nLT5yZXFfcHJvZCAtIChf
ciktPnJlcV9jb25zKSA6ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgKFJJTkdfU0la
RShfcikgLSAoKF9yKS0+cmVxX2NvbnMgLSAoX3IpLT5yc3BfcHJvZF9wdnQpKSkKKyNlbmRpZgor
CisvKiBEaXJlY3QgYWNjZXNzIHRvIGluZGl2aWR1YWwgcmluZyBlbGVtZW50cywgYnkgaW5kZXgu
ICovCisjZGVmaW5lIFJJTkdfR0VUX1JFUVVFU1QoX3IsIF9pZHgpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgKCYoKF9yKS0+c3JpbmctPnJpbmdbKChfaWR4KSAm
IChSSU5HX1NJWkUoX3IpIC0gMSkpXS5yZXEpKQorCisvKgorICogR2V0IGEgbG9jYWwgY29weSBv
ZiBhIHJlcXVlc3QuCisgKgorICogVXNlIHRoaXMgaW4gcHJlZmVyZW5jZSB0byBSSU5HX0dFVF9S
RVFVRVNUKCkgc28gYWxsIHByb2Nlc3NpbmcgaXMKKyAqIGRvbmUgb24gYSBsb2NhbCBjb3B5IHRo
YXQgY2Fubm90IGJlIG1vZGlmaWVkIGJ5IHRoZSBvdGhlciBlbmQuCisgKgorICogTm90ZSB0aGF0
IGh0dHBzOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTU4MTQ1IG1heSBj
YXVzZSB0aGlzCisgKiB0byBiZSBpbmVmZmVjdGl2ZSB3aGVyZSBfcmVxIGlzIGEgc3RydWN0IHdo
aWNoIGNvbnNpc3RzIG9mIG9ubHkgYml0ZmllbGRzLgorICovCisjZGVmaW5lIFJJTkdfQ09QWV9S
RVFVRVNUKF9yLCBfaWR4LCBfcmVxKSBkbyB7CQkJCVwKKwkvKiBVc2Ugdm9sYXRpbGUgdG8gZm9y
Y2UgdGhlIGNvcHkgaW50byBfcmVxLiAqLwkJCVwKKwkqKF9yZXEpID0gKih2b2xhdGlsZSB0eXBl
b2YoX3JlcSkpUklOR19HRVRfUkVRVUVTVChfciwgX2lkeCk7CVwKK30gd2hpbGUgKDApCisKKyNk
ZWZpbmUgUklOR19HRVRfUkVTUE9OU0UoX3IsIF9pZHgpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAoJigoX3IpLT5zcmluZy0+cmluZ1soKF9pZHgpICYgKFJJTkdf
U0laRShfcikgLSAxKSldLnJzcCkpCisKKy8qIExvb3AgdGVybWluYXRpb24gY29uZGl0aW9uOiBX
b3VsZCB0aGUgc3BlY2lmaWVkIGluZGV4IG92ZXJmbG93IHRoZSByaW5nPyAqLworI2RlZmluZSBS
SU5HX1JFUVVFU1RfQ09OU19PVkVSRkxPVyhfciwgX2NvbnMpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgICgoKF9jb25zKSAtIChfciktPnJzcF9wcm9kX3B2dCkgPj0gUklOR19TSVpF
KF9yKSkKKworLyogSWxsLWJlaGF2ZWQgZnJvbnRlbmQgZGV0ZXJtaW5hdGlvbjogQ2FuIHRoZXJl
IGJlIHRoaXMgbWFueSByZXF1ZXN0cz8gKi8KKyNkZWZpbmUgUklOR19SRVFVRVNUX1BST0RfT1ZF
UkZMT1coX3IsIF9wcm9kKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoKChfcHJv
ZCkgLSAoX3IpLT5yc3BfcHJvZF9wdnQpID4gUklOR19TSVpFKF9yKSkKKworI2RlZmluZSBSSU5H
X1BVU0hfUkVRVUVTVFMoX3IpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgIHhlbl93bWIoKTsgLyogYmFjayBzZWVzIHJlcXVlc3RzIC9iZWZvcmUvIHVwZGF0
ZWQgcHJvZHVjZXIgaW5kZXggKi8gXAorICAgIChfciktPnNyaW5nLT5yZXFfcHJvZCA9IChfcikt
PnJlcV9wcm9kX3B2dDsgICAgICAgICAgICAgICAgICAgICAgICAgXAorfSB3aGlsZSAoMCkKKwor
I2RlZmluZSBSSU5HX1BVU0hfUkVTUE9OU0VTKF9yKSBkbyB7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgIHhlbl93bWIoKTsgLyogZnJvbnQgc2VlcyByZXNwcyAvYmVm
b3JlLyB1cGRhdGVkIHByb2R1Y2VyIGluZGV4ICovICAgXAorICAgIChfciktPnNyaW5nLT5yc3Bf
cHJvZCA9IChfciktPnJzcF9wcm9kX3B2dDsgICAgICAgICAgICAgICAgICAgICAgICAgXAorfSB3
aGlsZSAoMCkKKworLyoKKyAqIE5vdGlmaWNhdGlvbiBob2xkLW9mZiAocmVxX2V2ZW50IGFuZCBy
c3BfZXZlbnQpOgorICogCisgKiBXaGVuIHF1ZXVlaW5nIHJlcXVlc3RzIG9yIHJlc3BvbnNlcyBv
biBhIHNoYXJlZCByaW5nLCBpdCBtYXkgbm90IGFsd2F5cyBiZQorICogbmVjZXNzYXJ5IHRvIG5v
dGlmeSB0aGUgcmVtb3RlIGVuZC4gRm9yIGV4YW1wbGUsIGlmIHJlcXVlc3RzIGFyZSBpbiBmbGln
aHQKKyAqIGluIGEgYmFja2VuZCwgdGhlIGZyb250IG1heSBiZSBhYmxlIHRvIHF1ZXVlIGZ1cnRo
ZXIgcmVxdWVzdHMgd2l0aG91dAorICogbm90aWZ5aW5nIHRoZSBiYWNrIChpZiB0aGUgYmFjayBj
aGVja3MgZm9yIG5ldyByZXF1ZXN0cyB3aGVuIGl0IHF1ZXVlcworICogcmVzcG9uc2VzKS4KKyAq
IAorICogV2hlbiBlbnF1ZXVpbmcgcmVxdWVzdHMgb3IgcmVzcG9uc2VzOgorICogCisgKiAgVXNl
IFJJTkdfUFVTSF97UkVRVUVTVFMsUkVTUE9OU0VTfV9BTkRfQ0hFQ0tfTk9USUZZKCkuIFRoZSBz
ZWNvbmQgYXJndW1lbnQKKyAqICBpcyBhIGJvb2xlYW4gcmV0dXJuIHZhbHVlLiBUcnVlIGluZGlj
YXRlcyB0aGF0IHRoZSByZWNlaXZlciByZXF1aXJlcyBhbgorICogIGFzeW5jaHJvbm91cyBub3Rp
ZmljYXRpb24uCisgKiAKKyAqIEFmdGVyIGRlcXVldWluZyByZXF1ZXN0cyBvciByZXNwb25zZXMg
KGJlZm9yZSBzbGVlcGluZyB0aGUgY29ubmVjdGlvbik6CisgKiAKKyAqICBVc2UgUklOR19GSU5B
TF9DSEVDS19GT1JfUkVRVUVTVFMoKSBvciBSSU5HX0ZJTkFMX0NIRUNLX0ZPUl9SRVNQT05TRVMo
KS4KKyAqICBUaGUgc2Vjb25kIGFyZ3VtZW50IGlzIGEgYm9vbGVhbiByZXR1cm4gdmFsdWUuIFRy
dWUgaW5kaWNhdGVzIHRoYXQgdGhlcmUKKyAqICBhcmUgcGVuZGluZyBtZXNzYWdlcyBvbiB0aGUg
cmluZyAoaS5lLiwgdGhlIGNvbm5lY3Rpb24gc2hvdWxkIG5vdCBiZSBwdXQKKyAqICB0byBzbGVl
cCkuCisgKiAKKyAqICBUaGVzZSBtYWNyb3Mgd2lsbCBzZXQgdGhlIHJlcV9ldmVudC9yc3BfZXZl
bnQgZmllbGQgdG8gdHJpZ2dlciBhCisgKiAgbm90aWZpY2F0aW9uIG9uIHRoZSB2ZXJ5IG5leHQg
bWVzc2FnZSB0aGF0IGlzIGVucXVldWVkLiBJZiB5b3Ugd2FudCB0bworICogIGNyZWF0ZSBiYXRj
aGVzIG9mIHdvcmsgKGkuZS4sIG9ubHkgcmVjZWl2ZSBhIG5vdGlmaWNhdGlvbiBhZnRlciBzZXZl
cmFsCisgKiAgbWVzc2FnZXMgaGF2ZSBiZWVuIGVucXVldWVkKSB0aGVuIHlvdSB3aWxsIG5lZWQg
dG8gY3JlYXRlIGEgY3VzdG9taXNlZAorICogIHZlcnNpb24gb2YgdGhlIEZJTkFMX0NIRUNLIG1h
Y3JvIGluIHlvdXIgb3duIGNvZGUsIHdoaWNoIHNldHMgdGhlIGV2ZW50CisgKiAgZmllbGQgYXBw
cm9wcmlhdGVseS4KKyAqLworCisjZGVmaW5lIFJJTkdfUFVTSF9SRVFVRVNUU19BTkRfQ0hFQ0tf
Tk9USUZZKF9yLCBfbm90aWZ5KSBkbyB7ICAgICAgICAgICBcCisgICAgUklOR19JRFggX19vbGQg
PSAoX3IpLT5zcmluZy0+cmVxX3Byb2Q7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgUklOR19JRFggX19uZXcgPSAoX3IpLT5yZXFfcHJvZF9wdnQ7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgeGVuX3dtYigpOyAvKiBiYWNrIHNlZXMgcmVxdWVzdHMgL2Jl
Zm9yZS8gdXBkYXRlZCBwcm9kdWNlciBpbmRleCAqLyBcCisgICAgKF9yKS0+c3JpbmctPnJlcV9w
cm9kID0gX19uZXc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
eGVuX21iKCk7IC8qIGJhY2sgc2VlcyBuZXcgcmVxdWVzdHMgL2JlZm9yZS8gd2UgY2hlY2sgcmVx
X2V2ZW50ICovICBcCisgICAgKF9ub3RpZnkpID0gKChSSU5HX0lEWCkoX19uZXcgLSAoX3IpLT5z
cmluZy0+cmVxX2V2ZW50KSA8ICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgIChSSU5HX0lE
WCkoX19uZXcgLSBfX29sZCkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9IHdoaWxl
ICgwKQorCisjZGVmaW5lIFJJTkdfUFVTSF9SRVNQT05TRVNfQU5EX0NIRUNLX05PVElGWShfciwg
X25vdGlmeSkgZG8geyAgICAgICAgICBcCisgICAgUklOR19JRFggX19vbGQgPSAoX3IpLT5zcmlu
Zy0+cnNwX3Byb2Q7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgUklOR19JRFgg
X19uZXcgPSAoX3IpLT5yc3BfcHJvZF9wdnQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgeGVuX3dtYigpOyAvKiBmcm9udCBzZWVzIHJlc3BzIC9iZWZvcmUvIHVwZGF0ZWQg
cHJvZHVjZXIgaW5kZXggKi8gICBcCisgICAgKF9yKS0+c3JpbmctPnJzcF9wcm9kID0gX19uZXc7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgeGVuX21iKCk7IC8q
IGZyb250IHNlZXMgbmV3IHJlc3BzIC9iZWZvcmUvIHdlIGNoZWNrIHJzcF9ldmVudCAqLyAgICBc
CisgICAgKF9ub3RpZnkpID0gKChSSU5HX0lEWCkoX19uZXcgLSAoX3IpLT5zcmluZy0+cnNwX2V2
ZW50KSA8ICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgIChSSU5HX0lEWCkoX19uZXcgLSBf
X29sZCkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9IHdoaWxlICgwKQorCisjZGVm
aW5lIFJJTkdfRklOQUxfQ0hFQ0tfRk9SX1JFUVVFU1RTKF9yLCBfd29ya190b19kbykgZG8geyAg
ICAgICAgICAgICBcCisgICAgKF93b3JrX3RvX2RvKSA9IFJJTkdfSEFTX1VOQ09OU1VNRURfUkVR
VUVTVFMoX3IpOyAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKF93b3JrX3RvX2RvKSBicmVh
azsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKF9y
KS0+c3JpbmctPnJlcV9ldmVudCA9IChfciktPnJlcV9jb25zICsgMTsgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgeGVuX21iKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKF93b3JrX3RvX2RvKSA9IFJJTkdfSEFT
X1VOQ09OU1VNRURfUkVRVUVTVFMoX3IpOyAgICAgICAgICAgICAgICAgICBcCit9IHdoaWxlICgw
KQorCisjZGVmaW5lIFJJTkdfRklOQUxfQ0hFQ0tfRk9SX1JFU1BPTlNFUyhfciwgX3dvcmtfdG9f
ZG8pIGRvIHsgICAgICAgICAgICBcCisgICAgKF93b3JrX3RvX2RvKSA9IFJJTkdfSEFTX1VOQ09O
U1VNRURfUkVTUE9OU0VTKF9yKTsgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKF93b3JrX3Rv
X2RvKSBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgICAgKF9yKS0+c3JpbmctPnJzcF9ldmVudCA9IChfciktPnJzcF9jb25zICsgMTsgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgeGVuX21iKCk7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKF93b3JrX3RvX2RvKSA9
IFJJTkdfSEFTX1VOQ09OU1VNRURfUkVTUE9OU0VTKF9yKTsgICAgICAgICAgICAgICAgICBcCit9
IHdoaWxlICgwKQorCisKKy8qCisgKiBERUZJTkVfWEVOX0ZMRVhfUklOR19BTkRfSU5URiBkZWZp
bmVzIHR3byBtb25vZGlyZWN0aW9uYWwgcmluZ3MgYW5kCisgKiBmdW5jdGlvbnMgdG8gY2hlY2sg
aWYgdGhlcmUgaXMgZGF0YSBvbiB0aGUgcmluZywgYW5kIHRvIHJlYWQgYW5kCisgKiB3cml0ZSB0
byB0aGVtLgorICoKKyAqIERFRklORV9YRU5fRkxFWF9SSU5HIGlzIHNpbWlsYXIgdG8gREVGSU5F
X1hFTl9GTEVYX1JJTkdfQU5EX0lOVEYsIGJ1dAorICogZG9lcyBub3QgZGVmaW5lIHRoZSBpbmRl
eGVzIHBhZ2UuIEFzIGRpZmZlcmVudCBwcm90b2NvbHMgY2FuIGhhdmUKKyAqIGV4dGVuc2lvbnMg
dG8gdGhlIGJhc2ljIGZvcm1hdCwgdGhpcyBtYWNybyBhbGxvdyB0aGVtIHRvIGRlZmluZSB0aGVp
cgorICogb3duIHN0cnVjdC4KKyAqCisgKiBYRU5fRkxFWF9SSU5HX1NJWkUKKyAqICAgQ29udmVu
aWVuY2UgbWFjcm8gdG8gY2FsY3VsYXRlIHRoZSBzaXplIG9mIG9uZSBvZiB0aGUgdHdvIHJpbmdz
CisgKiAgIGZyb20gdGhlIG92ZXJhbGwgb3JkZXIuCisgKgorICogJE5BTUVfbWFzaworICogICBG
dW5jdGlvbiB0byBhcHBseSB0aGUgc2l6ZSBtYXNrIHRvIGFuIGluZGV4LCB0byByZWR1Y2UgdGhl
IGluZGV4CisgKiAgIHdpdGhpbiB0aGUgcmFuZ2UgWzAtc2l6ZV0uCisgKgorICogJE5BTUVfcmVh
ZF9wYWNrZXQKKyAqICAgRnVuY3Rpb24gdG8gcmVhZCBkYXRhIGZyb20gdGhlIHJpbmcuIFRoZSBh
bW91bnQgb2YgZGF0YSB0byByZWFkIGlzCisgKiAgIHNwZWNpZmllZCBieSB0aGUgInNpemUiIGFy
Z3VtZW50LgorICoKKyAqICROQU1FX3dyaXRlX3BhY2tldAorICogICBGdW5jdGlvbiB0byB3cml0
ZSBkYXRhIHRvIHRoZSByaW5nLiBUaGUgYW1vdW50IG9mIGRhdGEgdG8gd3JpdGUgaXMKKyAqICAg
c3BlY2lmaWVkIGJ5IHRoZSAic2l6ZSIgYXJndW1lbnQuCisgKgorICogJE5BTUVfZ2V0X3Jpbmdf
cHRyCisgKiAgIENvbnZlbmllbmNlIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHBvaW50ZXIgdG8g
cmVhZC93cml0ZSB0byB0aGUKKyAqICAgcmluZyBhdCB0aGUgcmlnaHQgbG9jYXRpb24uCisgKgor
ICogJE5BTUVfZGF0YV9pbnRmCisgKiAgIEluZGV4ZXMgcGFnZSwgc2hhcmVkIGJldHdlZW4gZnJv
bnRlbmQgYW5kIGJhY2tlbmQuIEl0IGFsc28KKyAqICAgY29udGFpbnMgdGhlIGFycmF5IG9mIGdy
YW50IHJlZnMuCisgKgorICogJE5BTUVfcXVldWVkCisgKiAgIEZ1bmN0aW9uIHRvIGNhbGN1bGF0
ZSBob3cgbWFueSBieXRlcyBhcmUgY3VycmVudGx5IG9uIHRoZSByaW5nLAorICogICByZWFkeSB0
byBiZSByZWFkLiBJdCBjYW4gYWxzbyBiZSB1c2VkIHRvIGNhbGN1bGF0ZSBob3cgbXVjaCBmcmVl
CisgKiAgIHNwYWNlIGlzIGN1cnJlbnRseSBvbiB0aGUgcmluZyAoWEVOX0ZMRVhfUklOR19TSVpF
KCkgLQorICogICAkTkFNRV9xdWV1ZWQoKSkuCisgKi8KKworI2lmbmRlZiBYRU5fUEFHRV9TSElG
VAorLyogVGhlIFBBR0VfU0laRSBmb3IgcmluZyBwcm90b2NvbHMgYW5kIGh5cGVyY2FsbCBpbnRl
cmZhY2VzIGlzIGFsd2F5cworICogNEssIHJlZ2FyZGxlc3Mgb2YgdGhlIGFyY2hpdGVjdHVyZSwg
YW5kIHBhZ2UgZ3JhbnVsYXJpdHkgY2hvc2VuIGJ5CisgKiBvcGVyYXRpbmcgc3lzdGVtcy4KKyAq
LworI2RlZmluZSBYRU5fUEFHRV9TSElGVCAxMgorI2VuZGlmCisjZGVmaW5lIFhFTl9GTEVYX1JJ
TkdfU0laRShvcmRlcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgKDFVTCA8PCAoKG9yZGVyKSArIFhFTl9QQUdFX1NISUZUIC0gMSkpCisKKyNkZWZp
bmUgREVGSU5FX1hFTl9GTEVYX1JJTkcobmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKK3N0YXRpYyBpbmxpbmUgUklOR19JRFggbmFtZSMjX21hc2soUklO
R19JRFggaWR4LCBSSU5HX0lEWCByaW5nX3NpemUpICAgICAgICAgIFwKK3sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICByZXR1cm4gaWR4ICYgKHJpbmdfc2l6ZSAtIDEpOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK30gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hhciAqbmFt
ZSMjX2dldF9yaW5nX3B0cih1bnNpZ25lZCBjaGFyICpidWYsICAgICAgICAgIFwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSSU5HX0lEWCBpZHgsICAg
ICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBSSU5HX0lEWCByaW5nX3NpemUpICAgICAgICAgIFwKK3sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICByZXR1cm4gYnVmICsgbmFtZSMjX21hc2soaWR4LCByaW5nX3NpemUpOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK30gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKK3N0YXRpYyBpbmxpbmUgdm9pZCBuYW1lIyNfcmVhZF9wYWNr
ZXQodm9pZCAqb3BhcXVlLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCAgICAg
ICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90
IHNpemUsICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUklOR19JRFggbWFza2VkX3Byb2QsICAgICAgICAgICAgICAgICAg
IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUklOR19JRFggKm1hc2tl
ZF9jb25zLCAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUklOR19JRFggcmluZ19zaXplKSAgICAgICAgICAgICAgICAgICAgIFwKK3sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoKm1hc2tlZF9jb25zIDwgbWFza2VkX3Byb2QgfHwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgc2l6ZSA8
PSByaW5nX3NpemUgLSAqbWFza2VkX2NvbnMpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICAgICAgbWVtY3B5KG9wYXF1ZSwgYnVmICsgKm1hc2tlZF9jb25zLCBzaXpl
KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9IGVsc2UgeyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgbWVtY3B5KG9wYXF1ZSwgYnVmICsgKm1hc2tlZF9jb25zLCByaW5nX3NpemUgLSAq
bWFza2VkX2NvbnMpOyAgICAgICAgIFwKKyAgICAgICAgbWVtY3B5KCh1bnNpZ25lZCBjaGFyICop
b3BhcXVlICsgcmluZ19zaXplIC0gKm1hc2tlZF9jb25zLCBidWYsICAgICAgIFwKKyAgICAgICAg
ICAgICAgIHNpemUgLSAocmluZ19zaXplIC0gKm1hc2tlZF9jb25zKSk7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAqbWFza2VkX2NvbnMg
PSBuYW1lIyNfbWFzaygqbWFza2VkX2NvbnMgKyBzaXplLCByaW5nX3NpemUpOyAgICAgICAgICAg
ICAgIFwKK30gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3N0
YXRpYyBpbmxpbmUgdm9pZCBuYW1lIyNfd3JpdGVfcGFja2V0KHVuc2lnbmVkIGNoYXIgKmJ1Ziwg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IHZvaWQgKm9wYXF1ZSwgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplLCAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJJTkdf
SURYICptYXNrZWRfcHJvZCwgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFJJTkdfSURYIG1hc2tlZF9jb25zLCAgICAgICAgICAgICAgICAg
IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJJTkdfSURYIHJpbmdf
c2l6ZSkgICAgICAgICAgICAgICAgICAgIFwKK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBp
ZiAoKm1hc2tlZF9wcm9kIDwgbWFza2VkX2NvbnMgfHwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgc2l6ZSA8PSByaW5nX3NpemUgLSAqbWFza2VkX3By
b2QpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgbWVtY3B5
KGJ1ZiArICptYXNrZWRfcHJvZCwgb3BhcXVlLCBzaXplKTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICB9IGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgbWVtY3B5KGJ1ZiArICpt
YXNrZWRfcHJvZCwgb3BhcXVlLCByaW5nX3NpemUgLSAqbWFza2VkX3Byb2QpOyAgICAgICAgIFwK
KyAgICAgICAgbWVtY3B5KGJ1ZiwgKHVuc2lnbmVkIGNoYXIgKilvcGFxdWUgKyAocmluZ19zaXpl
IC0gKm1hc2tlZF9wcm9kKSwgICAgIFwKKyAgICAgICAgICAgICAgIHNpemUgLSAocmluZ19zaXpl
IC0gKm1hc2tlZF9wcm9kKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAqbWFza2VkX3Byb2QgPSBuYW1lIyNfbWFzaygqbWFza2VkX3By
b2QgKyBzaXplLCByaW5nX3NpemUpOyAgICAgICAgICAgICAgIFwKK30gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3N0YXRpYyBpbmxpbmUgUklOR19JRFggbmFt
ZSMjX3F1ZXVlZChSSU5HX0lEWCBwcm9kLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSSU5HX0lEWCBjb25zLCAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSSU5HX0lEWCByaW5nX3NpemUpICAgICAgICAgICAgICAgICAgICAgIFwKK3sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICBSSU5HX0lEWCBzaXplOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgICBpZiAocHJvZCA9PSBjb25zKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIDA7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICBwcm9kID0gbmFtZSMjX21hc2socHJvZCwgcmluZ19zaXpl
KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBjb25zID0gbmFt
ZSMjX21hc2soY29ucywgcmluZ19zaXplKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAocHJvZCA9PSBjb25zKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgcmV0dXJuIHJpbmdfc2l6ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAo
cHJvZCA+IGNvbnMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgICAgc2l6ZSA9IHByb2QgLSBjb25zOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBlbHNlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICAgICAgc2l6ZSA9IHJpbmdfc2l6ZSAtIChjb25zIC0gcHJvZCk7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICByZXR1cm4gc2l6ZTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK30g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3N0cnVjdCBuYW1l
IyNfZGF0YSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICB1bnNpZ25lZCBjaGFyICppbjsgLyogaGFsZiBvZiB0aGUgYWxsb2Nh
dGlvbiAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB1bnNpZ25lZCBjaGFyICpv
dXQ7IC8qIGhhbGYgb2YgdGhlIGFsbG9jYXRpb24gKi8gICAgICAgICAgICAgICAgICAgICAgICAg
IFwKK30KKworI2RlZmluZSBERUZJTkVfWEVOX0ZMRVhfUklOR19BTkRfSU5URihuYW1lKSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorc3RydWN0IG5hbWUjI19kYXRhX2ludGYg
eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgIFJJTkdfSURYIGluX2NvbnMsIGluX3Byb2Q7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHVpbnQ4
X3QgcGFkMVs1Nl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFJJTkdfSURYIG91dF9j
b25zLCBvdXRfcHJvZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHVpbnQ4X3QgcGFkMls1Nl07ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgIFJJTkdfSURYIHJpbmdfb3JkZXI7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGdyYW50X3Jl
Zl90IHJlZltdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAorfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorREVGSU5FX1hFTl9GTEVYX1JJTkco
bmFtZSkKKworI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19JT19SSU5HX0hfXyAqLworCisvKgorICog
TG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICog
Yy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTog
bmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3hzbS9pby9zbmRpZi5o
IGIvaW5jbHVkZS94ZW4veHNtL2lvL3NuZGlmLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYzVjMTk3OAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL3hzbS9pby9z
bmRpZi5oCkBAIC0wLDAgKzEsODAzIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBzbmRp
Zi5oCisgKgorICogVW5pZmllZCBzb3VuZC1kZXZpY2UgSS9PIGludGVyZmFjZSBmb3IgWGVuIGd1
ZXN0IE9TZXMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj
aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0d2Fy
ZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRv
CisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcg
d2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt
ZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNv
cGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBT
b2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp
cyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBv
ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRX
QVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVY
UFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBB
VVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1B
R0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRS
QUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENP
Tk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElO
R1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE1IEdsb2Jh
bExvZ2ljIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEVQQU0gU3lzdGVtcyBJbmMu
CisgKgorICogQXV0aG9yczogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRy
dXNoY2hlbmtvQGVwYW0uY29tPgorICogICAgICAgICAgT2xla3NhbmRyIEdyeXRzb3YgPG9sZWtz
YW5kcl9ncnl0c292QGVwYW0uY29tPgorICogICAgICAgICAgT2xla3NhbmRyIERteXRyeXNoeW4g
PG9sZWtzYW5kci5kbXl0cnlzaHluQGdsb2JhbGxvZ2ljLmNvbT4KKyAqICAgICAgICAgIEl1cmlp
IEtvbm92YWxlbmtvIDxpdXJpaS5rb25vdmFsZW5rb0BnbG9iYWxsb2dpYy5jb20+CisgKi8KKwor
I2lmbmRlZiBfX1hFTl9QVUJMSUNfSU9fU05ESUZfSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19J
T19TTkRJRl9IX18KKworI2luY2x1ZGUgInJpbmcuaCIKKyNpbmNsdWRlICIuLi9ncmFudF90YWJs
ZS5oIgorCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICBG
ZWF0dXJlIGFuZCBQYXJhbWV0ZXIgTmVnb3RpYXRpb24KKyAqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyAqCisgKiBGcm9udC0+YmFjayBub3RpZmljYXRpb25zOiB3aGVuIGVucXVldWluZyBhIG5ldyBy
ZXF1ZXN0LCBzZW5kaW5nIGEKKyAqIG5vdGlmaWNhdGlvbiBjYW4gYmUgbWFkZSBjb25kaXRpb25h
bCBvbiB4ZW5zbmRfcmVxIChpLmUuLCB0aGUgZ2VuZXJpYworICogaG9sZC1vZmYgbWVjaGFuaXNt
IHByb3ZpZGVkIGJ5IHRoZSByaW5nIG1hY3JvcykuIEJhY2tlbmRzIG11c3Qgc2V0CisgKiB4ZW5z
bmRfcmVxIGFwcHJvcHJpYXRlbHkgKGUuZy4sIHVzaW5nIFJJTkdfRklOQUxfQ0hFQ0tfRk9SX1JF
UVVFU1RTKCkpLgorICoKKyAqIEJhY2stPmZyb250IG5vdGlmaWNhdGlvbnM6IHdoZW4gZW5xdWV1
aW5nIGEgbmV3IHJlc3BvbnNlLCBzZW5kaW5nIGEKKyAqIG5vdGlmaWNhdGlvbiBjYW4gYmUgbWFk
ZSBjb25kaXRpb25hbCBvbiB4ZW5zbmRfcmVzcCAoaS5lLiwgdGhlIGdlbmVyaWMKKyAqIGhvbGQt
b2ZmIG1lY2hhbmlzbSBwcm92aWRlZCBieSB0aGUgcmluZyBtYWNyb3MpLiBGcm9udGVuZHMgbXVz
dCBzZXQKKyAqIHhlbnNuZF9yZXNwIGFwcHJvcHJpYXRlbHkgKGUuZy4sIHVzaW5nIFJJTkdfRklO
QUxfQ0hFQ0tfRk9SX1JFU1BPTlNFUygpKS4KKyAqCisgKiBUaGUgdHdvIGhhbHZlcyBvZiBhIHBh
cmEtdmlydHVhbCBzb3VuZCBjYXJkIGRyaXZlciB1dGlsaXplIG5vZGVzIHdpdGhpbgorICogWGVu
U3RvcmUgdG8gY29tbXVuaWNhdGUgY2FwYWJpbGl0aWVzIGFuZCB0byBuZWdvdGlhdGUgb3BlcmF0
aW5nIHBhcmFtZXRlcnMuCisgKiBUaGlzIHNlY3Rpb24gZW51bWVyYXRlcyB0aGVzZSBub2RlcyB3
aGljaCByZXNpZGUgaW4gdGhlIHJlc3BlY3RpdmUgZnJvbnQgYW5kCisgKiBiYWNrZW5kIHBvcnRp
b25zIG9mIFhlblN0b3JlLCBmb2xsb3dpbmcgdGhlIFhlbkJ1cyBjb252ZW50aW9uLgorICoKKyAq
IEFsbCBkYXRhIGluIFhlblN0b3JlIGlzIHN0b3JlZCBhcyBzdHJpbmdzLiBOb2RlcyBzcGVjaWZ5
aW5nIG51bWVyaWMKKyAqIHZhbHVlcyBhcmUgZW5jb2RlZCBpbiBkZWNpbWFsLiBJbnRlZ2VyIHZh
bHVlIHJhbmdlcyBsaXN0ZWQgYmVsb3cgYXJlCisgKiBleHByZXNzZWQgYXMgZml4ZWQgc2l6ZWQg
aW50ZWdlciB0eXBlcyBjYXBhYmxlIG9mIHN0b3JpbmcgdGhlIGNvbnZlcnNpb24KKyAqIG9mIGEg
cHJvcGVybHkgZm9ybWF0ZWQgbm9kZSBzdHJpbmcsIHdpdGhvdXQgbG9zcyBvZiBpbmZvcm1hdGlv
bi4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAg
IEV4YW1wbGUgY29uZmlndXJhdGlvbgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIE5v
dGU6IGRlcGVuZGluZyBvbiB0aGUgdXNlLWNhc2UgYmFja2VuZCBjYW4gZXhwb3NlIG1vcmUgc291
bmQgY2FyZHMgYW5kCisgKiBQQ00gZGV2aWNlcy9zdHJlYW1zIHRoYW4gdGhlIHVuZGVybHlpbmcg
SFcgcGh5c2ljYWxseSBoYXMgYnkgZW1wbG95aW5nCisgKiBTVyBtaXhlcnMsIGNvbmZpZ3VyaW5n
IHZpcnR1YWwgc291bmQgc3RyZWFtcywgY2hhbm5lbHMgZXRjLgorICoKKyAqIFRoaXMgaXMgYW4g
ZXhhbXBsZSBvZiBiYWNrZW5kIGFuZCBmcm9udGVuZCBjb25maWd1cmF0aW9uOgorICoKKyAqLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEJhY2tlbmQgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAvbG9jYWwvZG9tYWluLzAvYmFja2VuZC92c25kLzEv
MC9mcm9udGVuZC1pZCA9ICIxIgorICogL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQvdnNuZC8xLzAv
ZnJvbnRlbmQgPSAiL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAiCisgKiAvbG9jYWwvZG9t
YWluLzAvYmFja2VuZC92c25kLzEvMC9zdGF0ZSA9ICI0IgorICogL2xvY2FsL2RvbWFpbi8wL2Jh
Y2tlbmQvdnNuZC8xLzAvdmVyc2lvbnMgPSAiMSwyIgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tIEZyb250ZW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKyAqCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC9iYWNrZW5kLWlkID0gIjAi
CisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC9iYWNrZW5kID0gIi9sb2NhbC9kb21h
aW4vMC9iYWNrZW5kL3ZzbmQvMS8wIgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAv
c3RhdGUgPSAiNCIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wL3ZlcnNpb24gPSAi
MSIKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENhcmQgY29uZmlndXJhdGlv
biAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogL2xvY2FsL2RvbWFpbi8xL2Rl
dmljZS92c25kLzAvc2hvcnQtbmFtZSA9ICJDYXJkIHNob3J0IG5hbWUiCisgKiAvbG9jYWwvZG9t
YWluLzEvZGV2aWNlL3ZzbmQvMC9sb25nLW5hbWUgPSAiQ2FyZCBsb25nIG5hbWUiCisgKiAvbG9j
YWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC9zYW1wbGUtcmF0ZXMgPSAiODAwMCwzMjAwMCw0NDEw
MCw0ODAwMCw5NjAwMCIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wL3NhbXBsZS1m
b3JtYXRzID0gInM4LHU4LHMxNl9sZSxzMTZfYmUiCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNl
L3ZzbmQvMC9idWZmZXItc2l6ZSA9ICIyNjIxNDQiCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIFBDTSBkZXZpY2UgMCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorICoKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzAvbmFtZSA9ICJHZW5lcmFs
IGFuYWxvZyIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzAvY2hhbm5lbHMtbWF4
ID0gIjUiCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTdHJlYW0gMCwgcGxh
eWJhY2sgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIC9sb2NhbC9kb21haW4v
MS9kZXZpY2UvdnNuZC8wLzAvMC90eXBlID0gInAiCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNl
L3ZzbmQvMC8wLzAvc2FtcGxlLWZvcm1hdHMgPSAiczgsdTgiCisgKiAvbG9jYWwvZG9tYWluLzEv
ZGV2aWNlL3ZzbmQvMC8wLzAvdW5pcXVlLWlkID0gIjAiCisgKgorICogL2xvY2FsL2RvbWFpbi8x
L2RldmljZS92c25kLzAvMC8wL3JpbmctcmVmID0gIjM4NiIKKyAqIC9sb2NhbC9kb21haW4vMS9k
ZXZpY2UvdnNuZC8wLzAvMC9ldmVudC1jaGFubmVsID0gIjE1IgorICoKKyAqLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIFN0cmVhbSAxLCBjYXB0dXJlIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKyAqCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC8wLzEvdHlwZSA9
ICJjIgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMC8xL2NoYW5uZWxzLW1heCA9
ICIyIgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMC8xL3VuaXF1ZS1pZCA9ICIx
IgorICoKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzAvMS9yaW5nLXJlZiA9ICIz
ODQiCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC8wLzEvZXZlbnQtY2hhbm5lbCA9
ICIxMyIKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUENNIGRldmljZSAx
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogL2xvY2FsL2RvbWFpbi8x
L2RldmljZS92c25kLzAvMS9uYW1lID0gIkhETUktMCIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZp
Y2UvdnNuZC8wLzEvc2FtcGxlLXJhdGVzID0gIjgwMDAsMzIwMDAsNDQxMDAiCisgKgorICotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU3RyZWFtIDAsIGNhcHR1cmUgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzEv
MC90eXBlID0gImMiCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC8xLzAvdW5pcXVl
LWlkID0gIjIiCisgKgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMS8wL3Jpbmct
cmVmID0gIjM4NyIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzEvMC9ldmVudC1j
aGFubmVsID0gIjE1MSIKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUENN
IGRldmljZSAyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogL2xvY2Fs
L2RvbWFpbi8xL2RldmljZS92c25kLzAvMi9uYW1lID0gIlNQRElGIgorICoKKyAqLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gU3RyZWFtIDAsIHBsYXliYWNrIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKyAqCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC8yLzAvdHlw
ZSA9ICJwIgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMi8wL3VuaXF1ZS1pZCA9
ICIzIgorICoKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzIvMC9yaW5nLXJlZiA9
ICIzODkiCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC8yLzAvZXZlbnQtY2hhbm5l
bCA9ICIxNTIiCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQmFja2VuZCBYZW5CdXMgTm9kZXMKKyAqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFByb3RvY29sIHZlcnNpb24gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogdmVyc2lvbnMKKyAqICAgICAgVmFs
dWVzOiAgICAgICAgIDxzdHJpbmc+CisgKgorICogICAgICBMaXN0IG9mIFhFTlNORF9MSVNUX1NF
UEFSQVRPUiBzZXBhcmF0ZWQgcHJvdG9jb2wgdmVyc2lvbnMgc3VwcG9ydGVkCisgKiAgICAgIGJ5
IHRoZSBiYWNrZW5kLiBGb3IgZXhhbXBsZSAiMSwyLDMiLgorICoKKyAqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyb250ZW5kIFhlbkJ1cyBOb2Rl
cworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gQWRkcmVzc2luZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq
CisgKiBkb20taWQKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MTZfdD4KKyAqCisgKiAg
ICAgIERvbWFpbiBpZGVudGlmaWVyLgorICoKKyAqIGRldi1pZAorICogICAgICBWYWx1ZXM6ICAg
ICAgICAgPHVpbnQxNl90PgorICoKKyAqICAgICAgRGV2aWNlIGlkZW50aWZpZXIuCisgKgorICog
cGNtLWRldi1pZHgKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50OF90PgorICoKKyAqICAg
ICAgWmVybyBiYXNlZCBjb250aWdvdXMgaW5kZXggb2YgdGhlIFBDTSBkZXZpY2UuCisgKgorICog
c3RyZWFtLWlkeAorICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ4X3Q+CisgKgorICogICAg
ICBaZXJvIGJhc2VkIGNvbnRpZ291cyBpbmRleCBvZiB0aGUgc3RyZWFtIG9mIHRoZSBQQ00gZGV2
aWNlLgorICoKKyAqIFRoZSBmb2xsb3dpbmcgcGF0dGVybiBpcyB1c2VkIGZvciBhZGRyZXNzaW5n
OgorICogICAvbG9jYWwvZG9tYWluLzxkb20taWQ+L2RldmljZS92c25kLzxkZXYtaWQ+LzxwY20t
ZGV2LWlkeD4vPHN0cmVhbS1pZHg+Ly4uLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gUHJvdG9jb2wgdmVyc2lvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq
CisgKiB2ZXJzaW9uCisgKiAgICAgIFZhbHVlczogICAgICAgICA8c3RyaW5nPgorICoKKyAqICAg
ICAgUHJvdG9jb2wgdmVyc2lvbiwgY2hvc2VuIGFtb25nIHRoZSBvbmVzIHN1cHBvcnRlZCBieSB0
aGUgYmFja2VuZC4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUENNIHNl
dHRpbmdzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogRXZlcnkgdmly
dHVhbGl6ZWQgc291bmQgZnJvbnRlbmQgaGFzIGEgc2V0IG9mIFBDTSBkZXZpY2VzIGFuZCBzdHJl
YW1zLCBlYWNoCisgKiBjb3VsZCBiZSBpbmRpdmlkdWFsbHkgY29uZmlndXJlZC4gUGFydCBvZiB0
aGUgUENNIGNvbmZpZ3VyYXRpb24gY2FuIGJlCisgKiBkZWZpbmVkIGF0IGhpZ2hlciBsZXZlbCBv
ZiB0aGUgaGllcmFyY2h5IGFuZCBiZSBmdWxseSBvciBwYXJ0aWFsbHkgcmUtdXNlZAorICogYnkg
dGhlIHVuZGVybHlpbmcgbGF5ZXJzLiBUaGVzZSBjb25maWd1cmF0aW9uIHZhbHVlcyBhcmU6Cisg
KiAgbyBudW1iZXIgb2YgY2hhbm5lbHMgKG1pbi9tYXgpCisgKiAgbyBzdXBwb3J0ZWQgc2FtcGxl
IHJhdGVzCisgKiAgbyBzdXBwb3J0ZWQgc2FtcGxlIGZvcm1hdHMuCisgKiBFLmcuIG9uZSBjYW4g
ZGVmaW5lIHRoZXNlIHZhbHVlcyBmb3IgdGhlIHdob2xlIGNhcmQsIGRldmljZSBvciBzdHJlYW0u
CisgKiBFdmVyeSB1bmRlcmx5aW5nIGxheWVyIGluIHR1cm4gY2FuIHJlLWRlZmluZSBzb21lIG9y
IGFsbCBvZiB0aGVtIHRvIGJldHRlcgorICogZml0IGl0cyBuZWVkcy4gRm9yIGV4YW1wbGUsIGNh
cmQgbWF5IGRlZmluZSBudW1iZXIgb2YgY2hhbm5lbHMgdG8gYmUKKyAqIGluIFsxOyA4XSByYW5n
ZSwgYW5kIHNvbWUgcGFydGljdWxhciBzdHJlYW0gbWF5IGJlIGxpbWl0ZWQgdG8gWzE7IDJdIG9u
bHkuCisgKiBUaGUgcnVsZSBpcyB0aGF0IHRoZSB1bmRlcmx5aW5nIGxheWVyIG11c3QgYmUgYSBz
dWJzZXQgb2YgdGhlIHVwcGVyIGxheWVyCisgKiByYW5nZS4KKyAqCisgKiBjaGFubmVscy1taW4K
KyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50OF90PgorICoKKyAqICAgICAgVGhlIG1pbmlt
dW0gYW1vdW50IG9mIGNoYW5uZWxzIHRoYXQgaXMgc3VwcG9ydGVkLCBbMTsgY2hhbm5lbHMtbWF4
XS4KKyAqICAgICAgT3B0aW9uYWwsIGlmIG5vdCBzZXQgb3Igb21pdHRlZCBhIHZhbHVlIG9mIDEg
aXMgdXNlZC4KKyAqCisgKiBjaGFubmVscy1tYXgKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1
aW50OF90PgorICoKKyAqICAgICAgVGhlIG1heGltdW0gYW1vdW50IG9mIGNoYW5uZWxzIHRoYXQg
aXMgc3VwcG9ydGVkLgorICogICAgICBNdXN0IGJlIGF0IGxlYXN0IDxjaGFubmVscy1taW4+Lgor
ICoKKyAqIHNhbXBsZS1yYXRlcworICogICAgICBWYWx1ZXM6ICAgICAgICAgPGxpc3Qgb2YgdWlu
dDMyX3Q+CisgKgorICogICAgICBMaXN0IG9mIHN1cHBvcnRlZCBzYW1wbGUgcmF0ZXMgc2VwYXJh
dGVkIGJ5IFhFTlNORF9MSVNUX1NFUEFSQVRPUi4KKyAqICAgICAgU2FtcGxlIHJhdGVzIGFyZSBl
eHByZXNzZWQgYXMgYSBsaXN0IG9mIGRlY2ltYWwgdmFsdWVzIHcvbyBhbnkKKyAqICAgICAgb3Jk
ZXJpbmcgcmVxdWlyZW1lbnQuCisgKgorICogc2FtcGxlLWZvcm1hdHMKKyAqICAgICAgVmFsdWVz
OiAgICAgICAgIDxsaXN0IG9mIFhFTlNORF9QQ01fRk9STUFUX1hYWF9TVFI+CisgKgorICogICAg
ICBMaXN0IG9mIHN1cHBvcnRlZCBzYW1wbGUgZm9ybWF0cyBzZXBhcmF0ZWQgYnkgWEVOU05EX0xJ
U1RfU0VQQVJBVE9SLgorICogICAgICBJdGVtcyBtdXN0IG5vdCBleGNlZWQgWEVOU05EX1NBTVBM
RV9GT1JNQVRfTUFYX0xFTiBsZW5ndGguCisgKgorICogYnVmZmVyLXNpemUKKyAqICAgICAgVmFs
dWVzOiAgICAgICAgIDx1aW50MzJfdD4KKyAqCisgKiAgICAgIFRoZSBtYXhpbXVtIHNpemUgaW4g
b2N0ZXRzIG9mIHRoZSBidWZmZXIgdG8gYWxsb2NhdGUgcGVyIHN0cmVhbS4KKyAqCisgKi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIFZpcnR1YWwgc291bmQgY2FyZCBzZXR0aW5ncyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisgKiBzaG9ydC1uYW1lCisgKiAgICAgIFZhbHVlczogICAgICAgICA8
Y2hhclszMl0+CisgKgorICogICAgICBTaG9ydCBuYW1lIG9mIHRoZSB2aXJ0dWFsIHNvdW5kIGNh
cmQuIE9wdGlvbmFsLgorICoKKyAqIGxvbmctbmFtZQorICogICAgICBWYWx1ZXM6ICAgICAgICAg
PGNoYXJbODBdPgorICoKKyAqICAgICAgTG9uZyBuYW1lIG9mIHRoZSB2aXJ0dWFsIHNvdW5kIGNh
cmQuIE9wdGlvbmFsLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRGV2aWNl
IHNldHRpbmdzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIG5hbWUKKyAqICAg
ICAgVmFsdWVzOiAgICAgICAgIDxjaGFyWzgwXT4KKyAqCisgKiAgICAgIE5hbWUgb2YgdGhlIHNv
dW5kIGRldmljZSB3aXRoaW4gdGhlIHZpcnR1YWwgc291bmQgY2FyZC4gT3B0aW9uYWwuCisgKgor
ICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTdHJlYW0gc2V0dGluZ3MgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHR5cGUKKyAqICAgICAgVmFsdWVzOiAgICAg
ICAgICJwIiwgImMiCisgKgorICogICAgICBTdHJlYW0gdHlwZTogInAiIC0gcGxheWJhY2sgc3Ry
ZWFtLCAiYyIgLSBjYXB0dXJlIHN0cmVhbQorICoKKyAqICAgICAgSWYgYm90aCBjYXB0dXJlIGFu
ZCBwbGF5YmFjayBhcmUgbmVlZGVkIHRoZW4gdHdvIHN0cmVhbXMgbmVlZCB0byBiZQorICogICAg
ICBkZWZpbmVkIHVuZGVyIHRoZSBzYW1lIGRldmljZS4KKyAqCisgKiB1bmlxdWUtaWQKKyAqICAg
ICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4KKyAqCisgKiAgICAgIEFmdGVyIHN0cmVhbSBp
bml0aWFsaXphdGlvbiBpdCBpcyBhc3NpZ25lZCBhIHVuaXF1ZSBJRCAod2l0aGluIHRoZSBmcm9u
dAorICogICAgICBkcml2ZXIpLCBzbyBldmVyeSBzdHJlYW0gb2YgdGhlIGZyb250ZW5kIGNhbiBi
ZSBpZGVudGlmaWVkIGJ5IHRoZQorICogICAgICBiYWNrZW5kIGJ5IHRoaXMgSUQuIFRoaXMgaXMg
bm90IGVxdWFsIHRvIHN0cmVhbS1pZHggYXMgdGhlIGxhdGVyIGlzCisgKiAgICAgIHplcm8gYmFz
ZWQgd2l0aGluIHRoZSBkZXZpY2UsIGJ1dCB0aGlzIGluZGV4IGlzIGNvbnRpZ291cyB3aXRoaW4g
dGhlCisgKiAgICAgIGRyaXZlci4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tIFN0cmVhbSBS
ZXF1ZXN0IFRyYW5zcG9ydCBQYXJhbWV0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICog
ZXZlbnQtY2hhbm5lbAorICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQzMl90PgorICoKKyAq
ICAgICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIFhlbiBldmVudCBjaGFubmVsIHVzZWQgdG8gc2ln
bmFsIGFjdGl2aXR5CisgKiAgICAgIGluIHRoZSByaW5nIGJ1ZmZlci4KKyAqCisgKiByaW5nLXJl
ZgorICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQzMl90PgorICoKKyAqICAgICAgVGhlIFhl
biBncmFudCByZWZlcmVuY2UgZ3JhbnRpbmcgcGVybWlzc2lvbiBmb3IgdGhlIGJhY2tlbmQgdG8g
bWFwCisgKiAgICAgIGEgc29sZSBwYWdlIGluIGEgc2luZ2xlIHBhZ2Ugc2l6ZWQgcmluZyBidWZm
ZXIuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgU1RBVEUgRElBR1JBTVMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBU
b29sIHN0YWNrIGNyZWF0ZXMgZnJvbnQgYW5kIGJhY2sgc3RhdGUgbm9kZXMgd2l0aCBpbml0aWFs
IHN0YXRlCisgKiBYZW5idXNTdGF0ZUluaXRpYWxpc2luZy4KKyAqIFRvb2wgc3RhY2sgY3JlYXRl
cyBhbmQgc2V0cyB1cCBmcm9udGVuZCBzb3VuZCBjb25maWd1cmF0aW9uIG5vZGVzIHBlciBkb21h
aW4uCisgKgorICogRnJvbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhY2sKKyAq
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgICA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisgKiBYZW5idXNTdGF0ZUluaXRpYWxpc2luZyAgICAgICAgICAg
ICAgWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbyBRdWVyeSBiYWNrZW5kIGRldmljZSBpZGVudGlmaWNhdGlvbgorICogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuCisgKiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gT3BlbiBhbmQgdmFsaWRhdGUgYmFja2VuZCBk
ZXZpY2UuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBWCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWGVu
YnVzU3RhdGVJbml0V2FpdAorICoKKyAqIG8gUXVlcnkgZnJvbnRlbmQgY29uZmlndXJhdGlvbgor
ICogbyBBbGxvY2F0ZSBhbmQgaW5pdGlhbGl6ZQorICogICBldmVudCBjaGFubmVscyBwZXIgY29u
ZmlndXJlZAorICogICBwbGF5YmFjay9jYXB0dXJlIHN0cmVhbS4KKyAqIG8gUHVibGlzaCB0cmFu
c3BvcnQgcGFyYW1ldGVycworICogICB0aGF0IHdpbGwgYmUgaW4gZWZmZWN0IGR1cmluZworICog
ICB0aGlzIGNvbm5lY3Rpb24uCisgKiAgICAgICAgICAgICAgfAorICogICAgICAgICAgICAgIHwK
KyAqICAgICAgICAgICAgICBWCisgKiBYZW5idXNTdGF0ZUluaXRpYWxpc2VkCisgKgorICogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvIFF1ZXJ5IGZyb250ZW5kIHRyYW5z
cG9ydCBwYXJhbWV0ZXJzLgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvIENvbm5lY3QgdG8gdGhlIGV2ZW50IGNoYW5uZWxzLgorICogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVgorICogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlQ29ubmVjdGVkCisgKgorICogIG8g
Q3JlYXRlIGFuZCBpbml0aWFsaXplIE9TCisgKiAgICB2aXJ0dWFsIHNvdW5kIGRldmljZSBpbnN0
YW5jZXMKKyAqICAgIGFzIHBlciBjb25maWd1cmF0aW9uLgorICogICAgICAgICAgICAgIHwKKyAq
ICAgICAgICAgICAgICB8CisgKiAgICAgICAgICAgICAgVgorICogWGVuYnVzU3RhdGVDb25uZWN0
ZWQKKyAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWGVuYnVzU3Rh
dGVVbmtub3duCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWGVuYnVz
U3RhdGVDbG9zZWQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYZW5i
dXNTdGF0ZUNsb3NpbmcKKyAqIG8gUmVtb3ZlIHZpcnR1YWwgc291bmQgZGV2aWNlCisgKiBvIFJl
bW92ZSBldmVudCBjaGFubmVscworICogICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICB8
CisgKiAgICAgICAgICAgICAgVgorICogWGVuYnVzU3RhdGVDbG9zZWQKKyAqCisgKi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUmVjb3ZlcnkgZmxvdyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisgKgorICogSW4gY2FzZSBvZiBmcm9udGVuZCB1bnJlY292ZXJhYmxlIGVy
cm9ycyBiYWNrZW5kIGhhbmRsZXMgdGhhdCBhcworICogaWYgZnJvbnRlbmQgZ29lcyBpbnRvIHRo
ZSBYZW5idXNTdGF0ZUNsb3NlZCBzdGF0ZS4KKyAqCisgKiBJbiBjYXNlIG9mIGJhY2tlbmQgdW5y
ZWNvdmVyYWJsZSBlcnJvcnMgZnJvbnRlbmQgdHJpZXMgcmVtb3ZpbmcKKyAqIHRoZSB2aXJ0dWFs
aXplZCBkZXZpY2UuIElmIHRoaXMgaXMgcG9zc2libGUgYXQgdGhlIG1vbWVudCBvZiBlcnJvciwK
KyAqIHRoZW4gZnJvbnRlbmQgZ29lcyBpbnRvIHRoZSBYZW5idXNTdGF0ZUluaXRpYWxpc2luZyBz
dGF0ZSBhbmQgaXMgcmVhZHkgZm9yCisgKiBuZXcgY29ubmVjdGlvbiB3aXRoIGJhY2tlbmQuIElm
IHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UgaXMgc3RpbGwgaW4gdXNlIGFuZAorICogY2Fubm90IGJl
IHJlbW92ZWQsIHRoZW4gZnJvbnRlbmQgZ29lcyBpbnRvIHRoZSBYZW5idXNTdGF0ZVJlY29uZmln
dXJpbmcgc3RhdGUKKyAqIHVudGlsIGVpdGhlciB0aGUgdmlydHVhbGl6ZWQgZGV2aWNlIHJlbW92
ZWQgb3IgYmFja2VuZCBpbml0aWF0ZXMgYSBuZXcKKyAqIGNvbm5lY3Rpb24uIE9uIHRoZSB2aXJ0
dWFsaXplZCBkZXZpY2UgcmVtb3ZhbCBmcm9udGVuZCBnb2VzIGludG8gdGhlCisgKiBYZW5idXNT
dGF0ZUluaXRpYWxpc2luZyBzdGF0ZS4KKyAqCisgKiBOb3RlIG9uIFhlbmJ1c1N0YXRlUmVjb25m
aWd1cmluZyBzdGF0ZSBvZiB0aGUgZnJvbnRlbmQ6IGlmIGJhY2tlbmQgaGFzCisgKiB1bnJlY292
ZXJhYmxlIGVycm9ycyB0aGVuIGZyb250ZW5kIGNhbm5vdCBzZW5kIHJlcXVlc3RzIHRvIHRoZSBi
YWNrZW5kCisgKiBhbmQgdGh1cyBjYW5ub3QgcHJvdmlkZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSB2
aXJ0dWFsaXplZCBkZXZpY2UgYW55bW9yZS4KKyAqIEFmdGVyIGJhY2tlbmQgaXMgYmFjayB0byBu
b3JtYWwgdGhlIHZpcnR1YWxpemVkIGRldmljZSBtYXkgc3RpbGwgaG9sZCBzb21lCisgKiBzdGF0
ZTogY29uZmlndXJhdGlvbiBpbiB1c2UsIGFsbG9jYXRlZCBidWZmZXJzLCBjbGllbnQgYXBwbGlj
YXRpb24gc3RhdGUgZXRjLgorICogU28sIGluIG1vc3QgY2FzZXMsIHRoaXMgd2lsbCByZXF1aXJl
IGZyb250ZW5kIHRvIGltcGxlbWVudCBjb21wbGV4IHJlY292ZXJ5CisgKiByZWNvbm5lY3QgbG9n
aWMuIEluc3RlYWQsIGJ5IGdvaW5nIGludG8gWGVuYnVzU3RhdGVSZWNvbmZpZ3VyaW5nIHN0YXRl
LAorICogZnJvbnRlbmQgd2lsbCBtYWtlIHN1cmUgbm8gbmV3IGNsaWVudHMgb2YgdGhlIHZpcnR1
YWxpemVkIGRldmljZSBhcmUKKyAqIGFjY2VwdGVkLCBhbGxvdyBleGlzdGluZyBjbGllbnQocykg
dG8gZXhpdCBncmFjZWZ1bGx5IGJ5IHNpZ25hbGluZyBlcnJvcgorICogc3RhdGUgZXRjLgorICog
T25jZSBhbGwgdGhlIGNsaWVudHMgYXJlIGdvbmUgZnJvbnRlbmQgY2FuIHJlaW5pdGlhbGl6ZSB0
aGUgdmlydHVhbGl6ZWQKKyAqIGRldmljZSBhbmQgZ2V0IGludG8gWGVuYnVzU3RhdGVJbml0aWFs
aXNpbmcgc3RhdGUgYWdhaW4gc2lnbmFsaW5nIHRoZQorICogYmFja2VuZCB0aGF0IGEgbmV3IGNv
bm5lY3Rpb24gY2FuIGJlIG1hZGUuCisgKgorICogVGhlcmUgYXJlIG11bHRpcGxlIGNvbmRpdGlv
bnMgcG9zc2libGUgdW5kZXIgd2hpY2ggZnJvbnRlbmQgd2lsbCBnbyBmcm9tCisgKiBYZW5idXNT
dGF0ZVJlY29uZmlndXJpbmcgaW50byBYZW5idXNTdGF0ZUluaXRpYWxpc2luZywgc29tZSBvZiB0
aGVtIGFyZSBPUworICogc3BlY2lmaWMuIEZvciBleGFtcGxlOgorICogMS4gVGhlIHVuZGVybHlp
bmcgT1MgZnJhbWV3b3JrIG1heSBwcm92aWRlIGNhbGxiYWNrcyB0byBzaWduYWwgdGhhdCB0aGUg
bGFzdAorICogICAgY2xpZW50IG9mIHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UgaGFzIGdvbmUgYW5k
IHRoZSBkZXZpY2UgY2FuIGJlIHJlbW92ZWQKKyAqIDIuIEZyb250ZW5kIGNhbiBzY2hlZHVsZSBh
IGRlZmVycmVkIHdvcmsgKHRpbWVyL3Rhc2tsZXQvd29ya3F1ZXVlKQorICogICAgdG8gcGVyaW9k
aWNhbGx5IGNoZWNrIGlmIHRoaXMgaXMgdGhlIHJpZ2h0IHRpbWUgdG8gcmUtdHJ5IHJlbW92YWwg
b2YKKyAqICAgIHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UuCisgKiAzLiBCeSBhbnkgb3RoZXIgbWVh
bnMuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFBDTSBGT1JNQVRTCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogWEVOU05E
X1BDTV9GT1JNQVRfPGZvcm1hdD5bXzxlbmRpYW4+XQorICoKKyAqIGZvcm1hdDogPFMvVS9GPjxi
aXRzPiBvciA8bmFtZT4KKyAqICAgICBTIC0gc2lnbmVkLCBVIC0gdW5zaWduZWQsIEYgLSBmbG9h
dAorICogICAgIGJpdHMgLSA4LCAxNiwgMjQsIDMyCisgKiAgICAgbmFtZSAtIE1VX0xBVywgR1NN
LCBldGMuCisgKgorICogZW5kaWFuOiA8TEUvQkU+LCBtYXkgYmUgYWJzZW50CisgKiAgICAgTEUg
LSBMaXR0bGUgZW5kaWFuLCBCRSAtIEJpZyBlbmRpYW4KKyAqLworI2RlZmluZSBYRU5TTkRfUENN
X0ZPUk1BVF9TOCAgICAgICAgICAgIDAKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTggICAg
ICAgICAgICAxCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MxNl9MRSAgICAgICAgMgorI2Rl
ZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMTZfQkUgICAgICAgIDMKKyNkZWZpbmUgWEVOU05EX1BD
TV9GT1JNQVRfVTE2X0xFICAgICAgICA0CisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UxNl9C
RSAgICAgICAgNQorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMjRfTEUgICAgICAgIDYKKyNk
ZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzI0X0JFICAgICAgICA3CisjZGVmaW5lIFhFTlNORF9Q
Q01fRk9STUFUX1UyNF9MRSAgICAgICAgOAorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VMjRf
QkUgICAgICAgIDkKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzMyX0xFICAgICAgICAxMAor
I2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMzJfQkUgICAgICAgIDExCisjZGVmaW5lIFhFTlNO
RF9QQ01fRk9STUFUX1UzMl9MRSAgICAgICAgMTIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRf
VTMyX0JFICAgICAgICAxMworI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9GMzJfTEUgICAgICAg
IDE0IC8qIDQtYnl0ZSBmbG9hdCwgSUVFRS03NTQgMzItYml0LCAqLworI2RlZmluZSBYRU5TTkRf
UENNX0ZPUk1BVF9GMzJfQkUgICAgICAgIDE1IC8qIHJhbmdlIC0xLjAgdG8gMS4wICAgICAgICAg
ICAgICAqLworI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9GNjRfTEUgICAgICAgIDE2IC8qIDgt
Ynl0ZSBmbG9hdCwgSUVFRS03NTQgNjQtYml0LCAqLworI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1B
VF9GNjRfQkUgICAgICAgIDE3IC8qIHJhbmdlIC0xLjAgdG8gMS4wICAgICAgICAgICAgICAqLwor
I2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9JRUM5NThfU1VCRlJBTUVfTEUgMTgKKyNkZWZpbmUg
WEVOU05EX1BDTV9GT1JNQVRfSUVDOTU4X1NVQkZSQU1FX0JFIDE5CisjZGVmaW5lIFhFTlNORF9Q
Q01fRk9STUFUX01VX0xBVyAgICAgICAgMjAKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfQV9M
QVcgICAgICAgICAyMQorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9JTUFfQURQQ00gICAgIDIy
CisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX01QRUcgICAgICAgICAgMjMKKyNkZWZpbmUgWEVO
U05EX1BDTV9GT1JNQVRfR1NNICAgICAgICAgICAyNAorCisvKgorICoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFUVVFU1QgQ09ERVMKKyAqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKKyAqLworI2RlZmluZSBYRU5TTkRfT1BfT1BFTiAgICAgICAgICAg
ICAgICAgIDAKKyNkZWZpbmUgWEVOU05EX09QX0NMT1NFICAgICAgICAgICAgICAgICAxCisjZGVm
aW5lIFhFTlNORF9PUF9SRUFEICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBYRU5TTkRfT1Bf
V1JJVEUgICAgICAgICAgICAgICAgIDMKKyNkZWZpbmUgWEVOU05EX09QX1NFVF9WT0xVTUUgICAg
ICAgICAgICA0CisjZGVmaW5lIFhFTlNORF9PUF9HRVRfVk9MVU1FICAgICAgICAgICAgNQorI2Rl
ZmluZSBYRU5TTkRfT1BfTVVURSAgICAgICAgICAgICAgICAgIDYKKyNkZWZpbmUgWEVOU05EX09Q
X1VOTVVURSAgICAgICAgICAgICAgICA3CisKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisg
KiAgICAgICAgICAgICAgIFhFTlNUT1JFIEZJRUxEIEFORCBQQVRIIE5BTUUgU1RSSU5HUywgSEVM
UEVSUworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisjZGVmaW5lIFhFTlNORF9EUklWRVJf
TkFNRSAgICAgICAgICAgICAgInZzbmQiCisKKyNkZWZpbmUgWEVOU05EX0xJU1RfU0VQQVJBVE9S
ICAgICAgICAgICAiLCIKKy8qIEZpZWxkIG5hbWVzICovCisjZGVmaW5lIFhFTlNORF9GSUVMRF9C
RV9WRVJTSU9OUyAgICAgICAgInZlcnNpb25zIgorI2RlZmluZSBYRU5TTkRfRklFTERfRkVfVkVS
U0lPTiAgICAgICAgICJ2ZXJzaW9uIgorI2RlZmluZSBYRU5TTkRfRklFTERfVkNBUkRfU0hPUlRf
TkFNRSAgICJzaG9ydC1uYW1lIgorI2RlZmluZSBYRU5TTkRfRklFTERfVkNBUkRfTE9OR19OQU1F
ICAgICJsb25nLW5hbWUiCisjZGVmaW5lIFhFTlNORF9GSUVMRF9SSU5HX1JFRiAgICAgICAgICAg
InJpbmctcmVmIgorI2RlZmluZSBYRU5TTkRfRklFTERfRVZUX0NITkwgICAgICAgICAgICJldmVu
dC1jaGFubmVsIgorI2RlZmluZSBYRU5TTkRfRklFTERfREVWSUNFX05BTUUgICAgICAgICJuYW1l
IgorI2RlZmluZSBYRU5TTkRfRklFTERfVFlQRSAgICAgICAgICAgICAgICJ0eXBlIgorI2RlZmlu
ZSBYRU5TTkRfRklFTERfU1RSRUFNX1VOSVFVRV9JRCAgICJ1bmlxdWUtaWQiCisjZGVmaW5lIFhF
TlNORF9GSUVMRF9DSEFOTkVMU19NSU4gICAgICAgImNoYW5uZWxzLW1pbiIKKyNkZWZpbmUgWEVO
U05EX0ZJRUxEX0NIQU5ORUxTX01BWCAgICAgICAiY2hhbm5lbHMtbWF4IgorI2RlZmluZSBYRU5T
TkRfRklFTERfU0FNUExFX1JBVEVTICAgICAgICJzYW1wbGUtcmF0ZXMiCisjZGVmaW5lIFhFTlNO
RF9GSUVMRF9TQU1QTEVfRk9STUFUUyAgICAgInNhbXBsZS1mb3JtYXRzIgorI2RlZmluZSBYRU5T
TkRfRklFTERfQlVGRkVSX1NJWkUgICAgICAgICJidWZmZXItc2l6ZSIKKworLyogU3RyZWFtIHR5
cGUgZmllbGQgdmFsdWVzLiAqLworI2RlZmluZSBYRU5TTkRfU1RSRUFNX1RZUEVfUExBWUJBQ0sg
ICAgICJwIgorI2RlZmluZSBYRU5TTkRfU1RSRUFNX1RZUEVfQ0FQVFVSRSAgICAgICJjIgorLyog
U2FtcGxlIHJhdGUgbWF4IHN0cmluZyBsZW5ndGggKi8KKyNkZWZpbmUgWEVOU05EX1NBTVBMRV9S
QVRFX01BWF9MRU4gICAgICAxMQorLyogU2FtcGxlIGZvcm1hdCBmaWVsZCB2YWx1ZXMgKi8KKyNk
ZWZpbmUgWEVOU05EX1NBTVBMRV9GT1JNQVRfTUFYX0xFTiAgICAyNAorCisjZGVmaW5lIFhFTlNO
RF9QQ01fRk9STUFUX1M4X1NUUiAgICAgICAgInM4IgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1B
VF9VOF9TVFIgICAgICAgICJ1OCIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzE2X0xFX1NU
UiAgICAiczE2X2xlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMTZfQkVfU1RSICAgICJz
MTZfYmUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UxNl9MRV9TVFIgICAgInUxNl9sZSIK
KyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTE2X0JFX1NUUiAgICAidTE2X2JlIgorI2RlZmlu
ZSBYRU5TTkRfUENNX0ZPUk1BVF9TMjRfTEVfU1RSICAgICJzMjRfbGUiCisjZGVmaW5lIFhFTlNO
RF9QQ01fRk9STUFUX1MyNF9CRV9TVFIgICAgInMyNF9iZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9G
T1JNQVRfVTI0X0xFX1NUUiAgICAidTI0X2xlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9V
MjRfQkVfU1RSICAgICJ1MjRfYmUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MzMl9MRV9T
VFIgICAgInMzMl9sZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzMyX0JFX1NUUiAgICAi
czMyX2JlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VMzJfTEVfU1RSICAgICJ1MzJfbGUi
CisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UzMl9CRV9TVFIgICAgInUzMl9iZSIKKyNkZWZp
bmUgWEVOU05EX1BDTV9GT1JNQVRfRjMyX0xFX1NUUiAgICAiZmxvYXRfbGUiCisjZGVmaW5lIFhF
TlNORF9QQ01fRk9STUFUX0YzMl9CRV9TVFIgICAgImZsb2F0X2JlIgorI2RlZmluZSBYRU5TTkRf
UENNX0ZPUk1BVF9GNjRfTEVfU1RSICAgICJmbG9hdDY0X2xlIgorI2RlZmluZSBYRU5TTkRfUENN
X0ZPUk1BVF9GNjRfQkVfU1RSICAgICJmbG9hdDY0X2JlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZP
Uk1BVF9JRUM5NThfU1VCRlJBTUVfTEVfU1RSICJpZWM5NThfc3ViZnJhbWVfbGUiCisjZGVmaW5l
IFhFTlNORF9QQ01fRk9STUFUX0lFQzk1OF9TVUJGUkFNRV9CRV9TVFIgImllYzk1OF9zdWJmcmFt
ZV9iZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfTVVfTEFXX1NUUiAgICAibXVfbGF3Igor
I2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9BX0xBV19TVFIgICAgICJhX2xhdyIKKyNkZWZpbmUg
WEVOU05EX1BDTV9GT1JNQVRfSU1BX0FEUENNX1NUUiAiaW1hX2FkcGNtIgorI2RlZmluZSBYRU5T
TkRfUENNX0ZPUk1BVF9NUEVHX1NUUiAgICAgICJtcGVnIgorI2RlZmluZSBYRU5TTkRfUENNX0ZP
Uk1BVF9HU01fU1RSICAgICAgICJnc20iCisKKworLyoKKyAqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyAqICAgICAgICAgICAgICAgICAgICAgICAgICBTVEFUVVMgUkVUVVJOIENPREVTCisgKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisgKgorICogU3RhdHVzIHJldHVybiBjb2RlIGlzIHplcm8gb24gc3Vj
Y2VzcyBhbmQgLVhFTl9FWFggb24gZmFpbHVyZS4KKyAqCisgKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFzc3VtcHRpb25zCisgKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqCisgKiBvIHVzYWdlIG9mIGdyYW50IHJlZmVyZW5jZSAwIGFzIGludmFsaWQg
Z3JhbnQgcmVmZXJlbmNlOgorICogICBncmFudCByZWZlcmVuY2UgMCBpcyB2YWxpZCwgYnV0IG5l
dmVyIGV4cG9zZWQgdG8gYSBQViBkcml2ZXIsCisgKiAgIGJlY2F1c2Ugb2YgdGhlIGZhY3QgaXQg
aXMgYWxyZWFkeSBpbiB1c2UvcmVzZXJ2ZWQgYnkgdGhlIFBWIGNvbnNvbGUuCisgKiBvIGFsbCBy
ZWZlcmVuY2VzIGluIHRoaXMgZG9jdW1lbnQgdG8gcGFnZSBzaXplcyBtdXN0IGJlIHRyZWF0ZWQK
KyAqICAgYXMgcGFnZXMgb2Ygc2l6ZSBYRU5fUEFHRV9TSVpFIHVubGVzcyBvdGhlcndpc2Ugbm90
ZWQuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgRGVzY3JpcHRpb24gb2Yg
dGhlIHByb3RvY29sIGJldHdlZW4gZnJvbnRlbmQgYW5kIGJhY2tlbmQgZHJpdmVyCisgKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisgKgorICogVGhlIHR3byBoYWx2ZXMgb2YgYSBQYXJhLXZpcnR1YWwg
c291bmQgZHJpdmVyIGNvbW11bmljYXRlIHdpdGgKKyAqIGVhY2ggb3RoZXIgdXNpbmcgc2hhcmVk
IHBhZ2VzIGFuZCBldmVudCBjaGFubmVscy4KKyAqIFNoYXJlZCBwYWdlIGNvbnRhaW5zIGEgcmlu
ZyB3aXRoIHJlcXVlc3QvcmVzcG9uc2UgcGFja2V0cy4KKyAqCisgKiBQYWNrZXRzLCB1c2VkIGZv
ciBpbnB1dC9vdXRwdXQgb3BlcmF0aW9ucywgZS5nLiByZWFkL3dyaXRlLCBzZXQvZ2V0IHZvbHVt
ZSwKKyAqIGV0Yy4sIHByb3ZpZGUgb2Zmc2V0L2xlbmd0aCBmaWVsZHMgaW4gb3JkZXIgdG8gYWxs
b3cgYXN5bmNocm9ub3VzIHByb3RvY29sCisgKiBvcGVyYXRpb24gd2l0aCBidWZmZXIgc3BhY2Ug
c2hhcmluZzogcGFydCBvZiB0aGUgYnVmZmVyIGFsbG9jYXRlZCBhdAorICogWEVOU05EX09QX09Q
RU4gY2FuIGJlIHVzZWQgZm9yIGF1ZGlvIHNhbXBsZXMgYW5kIHBhcnQsIGZvciBleGFtcGxlLAor
ICogZm9yIHZvbHVtZSBjb250cm9sLgorICoKKyAqIEFsbCByZXNlcnZlZCBmaWVsZHMgaW4gdGhl
IHN0cnVjdHVyZXMgYmVsb3cgbXVzdCBiZSAwLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSBSZXF1ZXN0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KyAqCisgKiBBbGwgcmVxdWVzdCBwYWNrZXRzIGhhdmUgdGhlIHNhbWUgbGVuZ3RoICgzMiBvY3Rl
dHMpCisgKiBBbGwgcmVxdWVzdCBwYWNrZXRzIGhhdmUgY29tbW9uIGhlYWRlcjoKKyAqICAgICAg
ICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAg
ICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgIGlkICAgICAg
ICAgICAgICAgIHwgICAgb3BlcmF0aW9uICAgfCAgICByZXNlcnZlZCAgICB8IDQKKyAqICstLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8IDgKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogICBpZCAtIHVp
bnQxNl90LCBwcml2YXRlIGd1ZXN0IHZhbHVlLCBlY2hvZWQgaW4gcmVzcG9uc2UKKyAqICAgb3Bl
cmF0aW9uIC0gdWludDhfdCwgb3BlcmF0aW9uIGNvZGUsIFhFTlNORF9PUF8/Pz8KKyAqCisgKiBG
b3IgYWxsIHBhY2tldHMgd2hpY2ggdXNlIG9mZnNldCBhbmQgbGVuZ3RoOgorICogICBvZmZzZXQg
LSB1aW50MzJfdCwgcmVhZCBvciB3cml0ZSBkYXRhIG9mZnNldCB3aXRoaW4gdGhlIHNoYXJlZCBi
dWZmZXIsCisgKiAgICAgcGFzc2VkIHdpdGggWEVOU05EX09QX09QRU4gcmVxdWVzdCwgb2N0ZXRz
LAorICogICAgIFswOyBYRU5TTkRfT1BfT1BFTi5idWZmZXJfc3ogLSAxXS4KKyAqICAgbGVuZ3Ro
IC0gdWludDMyX3QsIHJlYWQgb3Igd3JpdGUgZGF0YSBsZW5ndGgsIG9jdGV0cworICoKKyAqIFJl
cXVlc3Qgb3BlbiAtIG9wZW4gYSBQQ00gc3RyZWFtIGZvciBwbGF5YmFjayBvciBjYXB0dXJlOgor
ICoKKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAg
ICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAg
ICAgIGlkICAgICAgICAgICAgICAgIHwgWEVOU05EX09QX09QRU4gfCAgICByZXNlcnZlZCAgICB8
IDQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz
ZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKKyAqICstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwor
ICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNtX3JhdGUgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8IDEyCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgIHBjbV9mb3JtYXQgICAg
fCAgcGNtX2NoYW5uZWxzICB8ICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgfCAxNgor
ICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJf
c3ogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAKKyAqICstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICog
fCAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZWZfZGlyZWN0b3J5ICAgICAgICAgICAgICAg
ICAgICAgICAgICB8IDI0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyOAorICog
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IDMyCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBwY21fcmF0ZSAtIHVpbnQzMl90LCBz
dHJlYW0gZGF0YSByYXRlLCBIegorICogcGNtX2Zvcm1hdCAtIHVpbnQ4X3QsIFhFTlNORF9QQ01f
Rk9STUFUX1hYWCB2YWx1ZQorICogcGNtX2NoYW5uZWxzIC0gdWludDhfdCwgbnVtYmVyIG9mIGNo
YW5uZWxzIG9mIHRoaXMgc3RyZWFtLAorICogICBbY2hhbm5lbHMtbWluOyBjaGFubmVscy1tYXhd
CisgKiBidWZmZXJfc3ogLSB1aW50MzJfdCwgYnVmZmVyIHNpemUgdG8gYmUgYWxsb2NhdGVkLCBv
Y3RldHMKKyAqIGdyZWZfZGlyZWN0b3J5IC0gZ3JhbnRfcmVmX3QsIGEgcmVmZXJlbmNlIHRvIHRo
ZSBmaXJzdCBzaGFyZWQgcGFnZQorICogICBkZXNjcmliaW5nIHNoYXJlZCBidWZmZXIgcmVmZXJl
bmNlcy4gQXQgbGVhc3Qgb25lIHBhZ2UgZXhpc3RzLiBJZiBzaGFyZWQKKyAqICAgYnVmZmVyIHNp
emUgIChidWZmZXJfc3opIGV4Y2VlZHMgd2hhdCBjYW4gYmUgYWRkcmVzc2VkIGJ5IHRoaXMgc2lu
Z2xlIHBhZ2UsCisgKiAgIHRoZW4gcmVmZXJlbmNlIHRvIHRoZSBuZXh0IHBhZ2UgbXVzdCBiZSBz
dXBwbGllZCAoc2VlIGdyZWZfZGlyX25leHRfcGFnZQorICogICBiZWxvdykKKyAqLworCitzdHJ1
Y3QgeGVuc25kX29wZW5fcmVxIHsKKyAgICB1aW50MzJfdCBwY21fcmF0ZTsKKyAgICB1aW50OF90
IHBjbV9mb3JtYXQ7CisgICAgdWludDhfdCBwY21fY2hhbm5lbHM7CisgICAgdWludDE2X3QgcmVz
ZXJ2ZWQ7CisgICAgdWludDMyX3QgYnVmZmVyX3N6OworICAgIGdyYW50X3JlZl90IGdyZWZfZGly
ZWN0b3J5OworfTsKKworLyoKKyAqIFNoYXJlZCBwYWdlIGZvciBYRU5TTkRfT1BfT1BFTiBidWZm
ZXIgZGVzY3JpcHRvciAoZ3JlZl9kaXJlY3RvcnkgaW4gdGhlCisgKiAgIHJlcXVlc3QpIGVtcGxv
eXMgYSBsaXN0IG9mIHBhZ2VzLCBkZXNjcmliaW5nIGFsbCBwYWdlcyBvZiB0aGUgc2hhcmVkIGRh
dGEKKyAqICAgYnVmZmVyOgorICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAg
ICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisg
KiB8ICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZl9kaXJfbmV4dF9wYWdlICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgNAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ3JlZlswXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAorICog
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdyZWZbaV0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IGkqNCs4CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmVmW04gLSAxXSAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgTio0KzgKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIGdy
ZWZfZGlyX25leHRfcGFnZSAtIGdyYW50X3JlZl90LCByZWZlcmVuY2UgdG8gdGhlIG5leHQgcGFn
ZSBkZXNjcmliaW5nCisgKiAgIHBhZ2UgZGlyZWN0b3J5LiBNdXN0IGJlIDAgaWYgdGhlcmUgYXJl
IG5vIG1vcmUgcGFnZXMgaW4gdGhlIGxpc3QuCisgKiBncmVmW2ldIC0gZ3JhbnRfcmVmX3QsIHJl
ZmVyZW5jZSB0byBhIHNoYXJlZCBwYWdlIG9mIHRoZSBidWZmZXIKKyAqICAgYWxsb2NhdGVkIGF0
IFhFTlNORF9PUF9PUEVOCisgKgorICogTnVtYmVyIG9mIGdyYW50X3JlZl90IGVudHJpZXMgaW4g
dGhlIHdob2xlIHBhZ2UgZGlyZWN0b3J5IGlzIG5vdAorICogcGFzc2VkLCBidXQgaW5zdGVhZCBj
YW4gYmUgY2FsY3VsYXRlZCBhczoKKyAqICAgbnVtX2dyZWZzX3RvdGFsID0gKFhFTlNORF9PUF9P
UEVOLmJ1ZmZlcl9zeiArIFhFTl9QQUdFX1NJWkUgLSAxKSAvCisgKiAgICAgICBYRU5fUEFHRV9T
SVpFCisgKi8KKworc3RydWN0IHhlbnNuZF9wYWdlX2RpcmVjdG9yeSB7CisgICAgZ3JhbnRfcmVm
X3QgZ3JlZl9kaXJfbmV4dF9wYWdlOworICAgIGdyYW50X3JlZl90IGdyZWZbMV07IC8qIFZhcmlh
YmxlIGxlbmd0aCAqLworfTsKKworLyoKKyAqICBSZXF1ZXN0IGNsb3NlIC0gY2xvc2UgYW4gb3Bl
bmVkIHBjbSBzdHJlYW06CisgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAg
ICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAq
IHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8IFhFTlNORF9PUF9DTE9TRXwgICAg
cmVzZXJ2ZWQgICAgfCA0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4CisgKiAr
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgMzIKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIFJlcXVlc3QgcmVhZC93cml0ZSAtIHVz
ZWQgZm9yIHJlYWQgKGZvciBjYXB0dXJlKSBvciB3cml0ZSAoZm9yIHBsYXliYWNrKToKKyAqICAg
ICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAg
MyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgIGlkICAg
ICAgICAgICAgICAgIHwgICBvcGVyYXRpb24gICAgfCAgICByZXNlcnZlZCAgICB8IDQKKyAqICst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IDEyCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZW5ndGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNgorICogKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgMjAKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC98CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
c2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzMgorICogKy0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r
CisgKgorICogb3BlcmF0aW9uIC0gWEVOU05EX09QX1JFQUQgZm9yIHJlYWQgb3IgWEVOU05EX09Q
X1dSSVRFIGZvciB3cml0ZQorICovCisKK3N0cnVjdCB4ZW5zbmRfcndfcmVxIHsKKyAgICB1aW50
MzJfdCBvZmZzZXQ7CisgICAgdWludDMyX3QgbGVuZ3RoOworfTsKKworLyoKKyAqIFJlcXVlc3Qg
c2V0L2dldCB2b2x1bWUgLSBzZXQvZ2V0IGNoYW5uZWxzJyB2b2x1bWUgb2YgdGhlIHN0cmVhbSBn
aXZlbjoKKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAg
ICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAg
ICAgICAgIGlkICAgICAgICAgICAgICAgIHwgICBvcGVyYXRpb24gICAgfCAgICByZXNlcnZlZCAg
ICB8IDQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKKyAqICstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
KworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8IDEyCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZW5ndGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAx
NgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICog
fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8IDMyCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBvcGVyYXRpb24gLSBYRU5T
TkRfT1BfU0VUX1ZPTFVNRSBmb3Igdm9sdW1lIHNldAorICogICBvciBYRU5TTkRfT1BfR0VUX1ZP
TFVNRSBmb3Igdm9sdW1lIGdldAorICogQnVmZmVyIHBhc3NlZCB3aXRoIFhFTlNORF9PUF9PUEVO
IGlzIHVzZWQgdG8gZXhjaGFuZ2Ugdm9sdW1lCisgKiB2YWx1ZXM6CisgKgorICogICAgICAgICAw
ICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAg
ICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjaGFubmVsWzBdICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNAorICogKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2hhbm5lbFtpXSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGkq
NAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICog
fCAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbTiAtIDFdICAgICAgICAgICAgICAg
ICAgICAgICAgICB8IChOLTEpKjQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIE4gPSBYRU5TTkRf
T1BfT1BFTi5wY21fY2hhbm5lbHMKKyAqIGkgLSB1aW50OF90LCBpbmRleCBvZiBhIGNoYW5uZWwK
KyAqIGNoYW5uZWxbaV0gLSBzaW50MzJfdCwgdm9sdW1lIG9mIGktdGggY2hhbm5lbAorICogVm9s
dW1lIGlzIGV4cHJlc3NlZCBhcyBhIHNpZ25lZCB2YWx1ZSBpbiBzdGVwcyBvZiAwLjAwMSBkQiwK
KyAqIHdoaWxlIDAgYmVpbmcgMCBkQi4KKyAqCisgKiBSZXF1ZXN0IG11dGUvdW5tdXRlIC0gbXV0
ZS91bm11dGUgc3RyZWFtOgorICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAg
ICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisg
KiB8ICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAgfCAgIG9wZXJhdGlvbiAgICB8ICAg
IHJlc2VydmVkICAgIHwgNAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAorICog
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8IDE2CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgMzIKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIG9wZXJh
dGlvbiAtIFhFTlNORF9PUF9NVVRFIGZvciBtdXRlIG9yIFhFTlNORF9PUF9VTk1VVEUgZm9yIHVu
bXV0ZQorICogQnVmZmVyIHBhc3NlZCB3aXRoIFhFTlNORF9PUF9PUEVOIGlzIHVzZWQgdG8gZXhj
aGFuZ2UgbXV0ZS91bm11dGUKKyAqIHZhbHVlczoKKyAqCisgKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9jdGV0Cisg
KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWxb
MF0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0CisgKiArLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqICsv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c
L1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGFubmVsW2ldICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgaSo0CisgKiArLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSsKKyAqICsvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2hhbm5lbFtOIC0gMV0gICAgICAgICAgICAgICAgICAgICAgICAg
IHwgKE4tMSkqNAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogTiA9IFhFTlNORF9PUF9PUEVOLnBj
bV9jaGFubmVscworICogaSAtIHVpbnQ4X3QsIGluZGV4IG9mIGEgY2hhbm5lbAorICogY2hhbm5l
bFtpXSAtIHVpbnQ4X3QsIG5vbi16ZXJvIGlmIGktdGggY2hhbm5lbCBuZWVkcyB0byBiZSBtdXRl
ZC91bm11dGVkCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTi5C
LiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIFRoZSAnc3RydWN0
IHhlbnNuZF9yd19yZXEnIGlzIGFsc28gdXNlZCBmb3IgWEVOU05EX09QX1NFVF9WT0xVTUUsCisg
KiBYRU5TTkRfT1BfR0VUX1ZPTFVNRSwgWEVOU05EX09QX01VVEUsIFhFTlNORF9PUF9VTk1VVEUu
CisgKi8KKworLyoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSZXNwb25z
ZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBBbGwgcmVzcG9uc2Ug
cGFja2V0cyBoYXZlIHRoZSBzYW1lIGxlbmd0aCAoMzIgb2N0ZXRzKQorICoKKyAqIFJlc3BvbnNl
IGZvciBhbGwgcmVxdWVzdHM6CisgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAg
ICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsK
KyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8ICAgIG9wZXJhdGlvbiAgIHwg
ICAgcmVzZXJ2ZWQgICAgfCA0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdGF0dXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cisg
KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMgorICogKy0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8
L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv
XC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMyCisgKiArLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLSsKKyAqCisgKiBpZCAtIHVpbnQxNl90LCBjb3BpZWQgZnJvbSB0aGUgcmVxdWVzdAor
ICogb3BlcmF0aW9uIC0gdWludDhfdCwgWEVOU05EX09QXyogLSBjb3BpZWQgZnJvbSByZXF1ZXN0
CisgKiBzdGF0dXMgLSBpbnQzMl90LCByZXNwb25zZSBzdGF0dXMsIHplcm8gb24gc3VjY2VzcyBh
bmQgLVhFTl9FWFggb24gZmFpbHVyZQorICovCisKK3N0cnVjdCB4ZW5zbmRfcmVxIHsKKyAgICB1
aW50MTZfdCBpZDsKKyAgICB1aW50OF90IG9wZXJhdGlvbjsKKyAgICB1aW50OF90IHJlc2VydmVk
WzVdOworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHhlbnNuZF9vcGVuX3JlcSBvcGVuOwor
ICAgICAgICBzdHJ1Y3QgeGVuc25kX3J3X3JlcSBydzsKKyAgICAgICAgdWludDhfdCByZXNlcnZl
ZFsyNF07CisgICAgfSBvcDsKK307CisKK3N0cnVjdCB4ZW5zbmRfcmVzcCB7CisgICAgdWludDE2
X3QgaWQ7CisgICAgdWludDhfdCBvcGVyYXRpb247CisgICAgdWludDhfdCByZXNlcnZlZDsKKyAg
ICBpbnQzMl90IHN0YXR1czsKKyAgICB1aW50OF90IHJlc2VydmVkMVsyNF07Cit9OworCitERUZJ
TkVfUklOR19UWVBFUyh4ZW5fc25kaWYsIHN0cnVjdCB4ZW5zbmRfcmVxLCBzdHJ1Y3QgeGVuc25k
X3Jlc3ApOworCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0lPX1NORElGX0hfXyAqLworCisvKgor
ICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgor
ICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9k
ZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3hzbS9pby90cG1p
Zi5oIGIvaW5jbHVkZS94ZW4veHNtL2lvL3RwbWlmLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uOTc0M2RjOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL3hzbS9p
by90cG1pZi5oCkBAIC0wLDAgKzEsMTQzIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiB0
cG1pZi5oCisgKgorICogVFBNIEkvTyBpbnRlcmZhY2UgZm9yIFhlbiBndWVzdCBPU2VzLgorICoK
KyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg
cGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0
ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0
aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRh
dGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs
IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNv
ZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAq
IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6
CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu
b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg
cG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURF
RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJ
TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBO
T05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZ
UklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgor
ICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBP
VEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEgg
VEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZU
V0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDUsIElCTSBDb3Jwb3JhdGlvbgorICoKKyAq
IEF1dGhvcjogU3RlZmFuIEJlcmdlciwgc3RlZmFuYkB1cy5pYm0uY29tCisgKiBHcmFudCB0YWJs
ZSBzdXBwb3J0OiBNYWhhZGV2YW4gR29tYXRoaXNhbmthcmFuCisgKgorICogVGhpcyBjb2RlIGhh
cyBiZWVuIGRlcml2ZWQgZnJvbSB0b29scy9saWJ4Yy94ZW4vaW8vbmV0aWYuaAorICoKKyAqIENv
cHlyaWdodCAoYykgMjAwMy0yMDA0LCBLZWlyIEZyYXNlcgorICovCisKKyNpZm5kZWYgX19YRU5f
UFVCTElDX0lPX1RQTUlGX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfSU9fVFBNSUZfSF9fCisK
KyNpbmNsdWRlICIuLi9ncmFudF90YWJsZS5oIgorCitzdHJ1Y3QgdHBtaWZfdHhfcmVxdWVzdCB7
CisgICAgdW5zaWduZWQgbG9uZyBhZGRyOyAgIC8qIE1hY2hpbmUgYWRkcmVzcyBvZiBwYWNrZXQu
ICAgKi8KKyAgICBncmFudF9yZWZfdCByZWY7ICAgICAgLyogZ3JhbnQgdGFibGUgYWNjZXNzIHJl
ZmVyZW5jZSAqLworICAgIHVpbnQxNl90IHVudXNlZDsKKyAgICB1aW50MTZfdCBzaXplOyAgICAg
ICAgLyogUGFja2V0IHNpemUgaW4gYnl0ZXMuICAgICAgICAqLworfTsKK3R5cGVkZWYgc3RydWN0
IHRwbWlmX3R4X3JlcXVlc3QgdHBtaWZfdHhfcmVxdWVzdF90OworCisvKgorICogVGhlIFRQTUlG
X1RYX1JJTkdfU0laRSBkZWZpbmVzIHRoZSBudW1iZXIgb2YgcGFnZXMgdGhlCisgKiBmcm9udC1l
bmQgYW5kIGJhY2tlbmQgY2FuIGV4Y2hhbmdlICg9IHNpemUgb2YgYXJyYXkpLgorICovCit0eXBl
ZGVmIHVpbnQzMl90IFRQTUlGX1JJTkdfSURYOworCisjZGVmaW5lIFRQTUlGX1RYX1JJTkdfU0la
RSAxCisKKy8qIFRoaXMgc3RydWN0dXJlIG11c3QgZml0IGluIGEgbWVtb3J5IHBhZ2UuICovCisK
K3N0cnVjdCB0cG1pZl9yaW5nIHsKKyAgICBzdHJ1Y3QgdHBtaWZfdHhfcmVxdWVzdCByZXE7Cit9
OwordHlwZWRlZiBzdHJ1Y3QgdHBtaWZfcmluZyB0cG1pZl9yaW5nX3Q7CisKK3N0cnVjdCB0cG1p
Zl90eF9pbnRlcmZhY2UgeworICAgIHN0cnVjdCB0cG1pZl9yaW5nIHJpbmdbVFBNSUZfVFhfUklO
R19TSVpFXTsKK307Cit0eXBlZGVmIHN0cnVjdCB0cG1pZl90eF9pbnRlcmZhY2UgdHBtaWZfdHhf
aW50ZXJmYWNlX3Q7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFRQTSBJL08gaW50ZXJm
YWNlIGZvciBYZW4gZ3Vlc3QgT1NlcywgdjIKKyAqCisgKiBBdXRob3I6IERhbmllbCBEZSBHcmFh
ZiA8ZGdkZWdyYUB0eWNoby5uc2EuZ292PgorICoKKyAqIFRoaXMgcHJvdG9jb2wgZW11bGF0ZXMg
dGhlIHJlcXVlc3QvcmVzcG9uc2UgYmVoYXZpb3Igb2YgYSBUUE0gdXNpbmcgYSBYZW4KKyAqIHNo
YXJlZCBtZW1vcnkgaW50ZXJmYWNlLiBBbGwgaW50ZXJhY3Rpb24gd2l0aCB0aGUgVFBNIGlzIGF0
IHRoZSBkaXJlY3Rpb24KKyAqIG9mIHRoZSBmcm9udGVuZCwgc2luY2UgYSBUUE0gKGhhcmR3YXJl
IG9yIHZpcnR1YWwpIGlzIGEgcGFzc2l2ZSBkZXZpY2UgLQorICogdGhlIGJhY2tlbmQgb25seSBw
cm9jZXNzZXMgY29tbWFuZHMgYXMgcmVxdWVzdGVkIGJ5IHRoZSBmcm9udGVuZC4KKyAqCisgKiBU
aGUgZnJvbnRlbmQgc2VuZHMgYSByZXF1ZXN0IHRvIHRoZSBUUE0gYnkgcG9wdWxhdGluZyB0aGUg
c2hhcmVkIHBhZ2Ugd2l0aAorICogdGhlIHJlcXVlc3QgcGFja2V0LCBjaGFuZ2luZyB0aGUgc3Rh
dGUgdG8gVFBNSUZfU1RBVEVfU1VCTUlULCBhbmQgc2VuZGluZworICogYW5kIGV2ZW50IGNoYW5u
ZWwgbm90aWZpY2F0aW9uLiBXaGVuIHRoZSBiYWNrZW5kIGlzIGZpbmlzaGVkLCBpdCB3aWxsIHNl
dAorICogdGhlIHN0YXRlIHRvIFRQTUlGX1NUQVRFX0ZJTklTSCBhbmQgc2VuZCBhbiBldmVudCBj
aGFubmVsIG5vdGlmaWNhdGlvbi4KKyAqCisgKiBJbiBvcmRlciB0byBhbGxvdyBsb25nLXJ1bm5p
bmcgY29tbWFuZHMgdG8gYmUgY2FuY2VsZWQsIHRoZSBmcm9udGVuZCBjYW4KKyAqIGF0IGFueSB0
aW1lIGNoYW5nZSB0aGUgc3RhdGUgdG8gVFBNSUZfU1RBVEVfQ0FOQ0VMIGFuZCBzZW5kIGEgbm90
aWZpY2F0aW9uLgorICogVGhlIFRQTSBjYW4gZWl0aGVyIGZpbmlzaCB0aGUgY29tbWFuZCAoY2hh
bmdpbmcgc3RhdGUgdG8gVFBNSUZfU1RBVEVfRklOSVNIKQorICogb3IgY2FuIGNhbmNlbCB0aGUg
Y29tbWFuZCBhbmQgY2hhbmdlIHRoZSBzdGF0ZSB0byBUUE1JRl9TVEFURV9JRExFLiBUaGUgVFBN
CisgKiBjYW4gYWxzbyBjaGFuZ2UgdGhlIHN0YXRlIHRvIFRQTUlGX1NUQVRFX0lETEUgaW5zdGVh
ZCBvZiBUUE1JRl9TVEFURV9GSU5JU0gKKyAqIGlmIGFub3RoZXIgcmVhc29uIGZvciBjYW5jZWxs
YXRpb24gaXMgcmVxdWlyZWQgLSBmb3IgZXhhbXBsZSwgYSBwaHlzaWNhbAorICogVFBNIG1heSBj
YW5jZWwgYSBjb21tYW5kIGlmIHRoZSBpbnRlcmZhY2UgaXMgc2VpemVkIGJ5IGFub3RoZXIgbG9j
YWxpdHkuCisgKgorICogVGhlIFRQTSBjb21tYW5kIGZvcm1hdCBpcyBkZWZpbmVkIGJ5IHRoZSBU
Q0csIGFuZCBpcyBhdmFpbGFibGUgYXQKKyAqIGh0dHA6Ly93d3cudHJ1c3RlZGNvbXB1dGluZ2dy
b3VwLm9yZy9yZXNvdXJjZXMvdHBtX21haW5fc3BlY2lmaWNhdGlvbgorICovCisKK2VudW0gdHBt
aWZfc3RhdGUgeworICAgIFRQTUlGX1NUQVRFX0lETEUsICAgICAgICAvKiBubyBjb250ZW50cyAv
IHZUUE0gaWRsZSAvIGNhbmNlbCBjb21wbGV0ZSAqLworICAgIFRQTUlGX1NUQVRFX1NVQk1JVCwg
ICAgICAvKiByZXF1ZXN0IHJlYWR5IC8gdlRQTSB3b3JraW5nICovCisgICAgVFBNSUZfU1RBVEVf
RklOSVNILCAgICAgIC8qIHJlc3BvbnNlIHJlYWR5IC8gdlRQTSBpZGxlICovCisgICAgVFBNSUZf
U1RBVEVfQ0FOQ0VMLCAgICAgIC8qIGNhbmNlbCByZXF1ZXN0ZWQgLyB2VFBNIHdvcmtpbmcgKi8K
K307CisvKiBOb3RlOiBUaGUgYmFja2VuZCBzaG91bGQgb25seSBjaGFuZ2Ugc3RhdGUgdG8gSURM
RSBvciBGSU5JU0gsIHdoaWxlIHRoZQorICogZnJvbnRlbmQgc2hvdWxkIG9ubHkgY2hhbmdlIHRv
IFNVQk1JVCBvciBDQU5DRUwuIFN0YXR1cyBjaGFuZ2VzIGRvIG5vdCBuZWVkCisgKiB0byB1c2Ug
YXRvbWljIG9wZXJhdGlvbnMuCisgKi8KKworCisvKiBUaGUgc2hhcmVkIHBhZ2UgZm9yIHZUUE0g
cmVxdWVzdC9yZXNwb25zZSBwYWNrZXRzIGxvb2tzIGxpa2U6CisgKgorICogIE9mZnNldCAgICAg
ICAgICAgICAgIENvbnRlbnRzCisgKiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQorICogIDAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0cG1pZl9z
aGFyZWRfcGFnZQorICogIDE2ICAgICAgICAgICAgICAgICAgIFtvcHRpb25hbF0gTGlzdCBvZiBn
cmFudCBJRHMKKyAqICAxNis0Km5yX2V4dHJhX3BhZ2VzICBUUE0gcGFja2V0IGRhdGEKKyAqCisg
KiBJZiB0aGUgVFBNIHBhY2tldCBkYXRhIGV4dGVuZHMgYmV5b25kIHRoZSBlbmQgb2YgYSBzaW5n
bGUgcGFnZSwgdGhlIGdyYW50IElEcworICogZGVmaW5lZCBpbiBleHRyYV9wYWdlcyBhcmUgdXNl
ZCBhcyBpZiB0aGV5IHdlcmUgbWFwcGVkIGltbWVkaWF0ZWx5IGZvbGxvd2luZworICogdGhlIHBy
aW1hcnkgc2hhcmVkIHBhZ2UuIFRoZSBncmFudHMgYXJlIGFsbG9jYXRlZCBieSB0aGUgZnJvbnRl
bmQgYW5kIG1hcHBlZAorICogYnkgdGhlIGJhY2tlbmQuIEJlZm9yZSBzZW5kaW5nIGEgcmVxdWVz
dCBzcGFubmluZyBtdWx0aXBsZSBwYWdlcywgdGhlCisgKiBmcm9udGVuZCBzaG91bGQgdmVyaWZ5
IHRoYXQgdGhlIFRQTSBzdXBwb3J0cyBzdWNoIGxhcmdlIHJlcXVlc3RzIGJ5IHF1ZXJ5aW5nCisg
KiB0aGUgVFBNX0NBUF9QUk9QX0lOUFVUX0JVRkZFUiBwcm9wZXJ0eSBmcm9tIHRoZSBUUE0uCisg
Ki8KK3N0cnVjdCB0cG1pZl9zaGFyZWRfcGFnZSB7CisgICAgdWludDMyX3QgbGVuZ3RoOyAgICAg
ICAgIC8qIHJlcXVlc3QvcmVzcG9uc2UgbGVuZ3RoIGluIGJ5dGVzICovCisKKyAgICB1aW50OF90
IHN0YXRlOyAgICAgICAgICAgLyogZW51bSB0cG1pZl9zdGF0ZSAqLworICAgIHVpbnQ4X3QgbG9j
YWxpdHk7ICAgICAgICAvKiBmb3IgdGhlIGN1cnJlbnQgcmVxdWVzdCAqLworICAgIHVpbnQ4X3Qg
cGFkOyAgICAgICAgICAgICAvKiBzaG91bGQgYmUgemVybyAqLworCisgICAgdWludDhfdCBucl9l
eHRyYV9wYWdlczsgIC8qIGV4dHJhIHBhZ2VzIGZvciBsb25nIHBhY2tldHM7IG1heSBiZSB6ZXJv
ICovCisgICAgdWludDMyX3QgZXh0cmFfcGFnZXNbMF07IC8qIGdyYW50IElEczsgbGVuZ3RoIGlz
IGFjdHVhbGx5IG5yX2V4dHJhX3BhZ2VzICovCit9OwordHlwZWRlZiBzdHJ1Y3QgdHBtaWZfc2hh
cmVkX3BhZ2UgdHBtaWZfc2hhcmVkX3BhZ2VfdDsKKworI2VuZGlmCisKKy8qCisgKiBMb2NhbCB2
YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2lj
LW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAq
IEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4veHNtL2lvL3VzYmlmLmggYi9pbmNs
dWRlL3hlbi94c20vaW8vdXNiaWYuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5jNmE1ODYzCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94ZW4veHNtL2lvL3VzYmlmLmgK
QEAgLTAsMCArMSwyNTQgQEAKKy8qCisgKiB1c2JpZi5oCisgKgorICogVVNCIEkvTyBpbnRlcmZh
Y2UgZm9yIFhlbiBndWVzdCBPU2VzLgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOSwgRlVKSVRT
VSBMQUJPUkFUT1JJRVMgTFRELgorICogQXV0aG9yOiBOb2JvcnUgSXdhbWF0c3UgPG5faXdhbWF0
c3VAanAuZnVqaXRzdS5jb20+CisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwg
ZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhp
cyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3
YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBp
bmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwg
bW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisg
KiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3
aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj
ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxs
IGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICog
VEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5Z
IEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQg
VE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENM
QUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9O
IE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9G
IE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgor
ICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElD
X0lPX1VTQklGX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfSU9fVVNCSUZfSF9fCisKKyNpbmNs
dWRlICJyaW5nLmgiCisjaW5jbHVkZSAiLi4vZ3JhbnRfdGFibGUuaCIKKworLyoKKyAqIEZlYXR1
cmUgYW5kIFBhcmFtZXRlciBOZWdvdGlhdGlvbgorICogPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CisgKiBUaGUgdHdvIGhhbHZlcyBvZiBhIFhlbiBwdlVTQiBkcml2ZXIgdXRpbGl6
ZSBub2RlcyB3aXRoaW4gdGhlIFhlblN0b3JlIHRvCisgKiBjb21tdW5pY2F0ZSBjYXBhYmlsaXRp
ZXMgYW5kIHRvIG5lZ290aWF0ZSBvcGVyYXRpbmcgcGFyYW1ldGVycy4gVGhpcworICogc2VjdGlv
biBlbnVtZXJhdGVzIHRoZXNlIG5vZGVzIHdoaWNoIHJlc2lkZSBpbiB0aGUgcmVzcGVjdGl2ZSBm
cm9udCBhbmQKKyAqIGJhY2tlbmQgcG9ydGlvbnMgb2YgdGhlIFhlblN0b3JlLCBmb2xsb3dpbmcg
dGhlIFhlbkJ1cyBjb252ZW50aW9uLgorICoKKyAqIEFueSBzcGVjaWZpZWQgZGVmYXVsdCB2YWx1
ZSBpcyBpbiBlZmZlY3QgaWYgdGhlIGNvcnJlc3BvbmRpbmcgWGVuQnVzIG5vZGUKKyAqIGlzIG5v
dCBwcmVzZW50IGluIHRoZSBYZW5TdG9yZS4KKyAqCisgKiBYZW5TdG9yZSBub2RlcyBpbiBzZWN0
aW9ucyBtYXJrZWQgIlBSSVZBVEUiIGFyZSBzb2xlbHkgZm9yIHVzZSBieSB0aGUKKyAqIGRyaXZl
ciBzaWRlIHdob3NlIFhlbkJ1cyB0cmVlIGNvbnRhaW5zIHRoZW0uCisgKgorICoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYWNrZW5kIFhlbkJ1cyBO
b2RlcworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0gQmFj
a2VuZCBEZXZpY2UgSWRlbnRpZmljYXRpb24gKFBSSVZBVEUpIC0tLS0tLS0tLS0tLS0tLS0tLQor
ICoKKyAqIG51bS1wb3J0cworICogICAgICBWYWx1ZXM6ICAgICAgICAgdW5zaWduZWQgWzEuLi4z
MV0KKyAqCisgKiAgICAgIE51bWJlciBvZiBwb3J0cyBmb3IgdGhpcyAodmlydHVhbCkgVVNCIGhv
c3QgY29ubmVjdG9yLgorICoKKyAqIHVzYi12ZXIKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIHVu
c2lnbmVkIFsxLi4uMl0KKyAqCisgKiAgICAgIFVTQiB2ZXJzaW9uIG9mIHRoaXMgaG9zdCBjb25u
ZWN0b3I6IDEgPSBVU0IgMS4xLCAyID0gVVNCIDIuMC4KKyAqCisgKiBwb3J0L1sxLi4uMzFdCisg
KiAgICAgIFZhbHVlczogICAgICAgICBzdHJpbmcKKyAqCisgKiAgICAgIFBoeXNpY2FsIFVTQiBk
ZXZpY2UgY29ubmVjdGVkIHRvIHRoZSBnaXZlbiBwb3J0LCBlLmcuICIzLTEuNSIuCisgKgorICoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVu
ZCBYZW5CdXMgTm9kZXMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gUmVxdWVzdCBUcmFuc3BvcnQgUGFyYW1ldGVycyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorICoKKyAqIGV2ZW50LWNoYW5uZWwKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIHVu
c2lnbmVkCisgKgorICogICAgICBUaGUgaWRlbnRpZmllciBvZiB0aGUgWGVuIGV2ZW50IGNoYW5u
ZWwgdXNlZCB0byBzaWduYWwgYWN0aXZpdHkKKyAqICAgICAgaW4gdGhlIHJpbmcgYnVmZmVyLgor
ICoKKyAqIHVyYi1yaW5nLXJlZgorICogICAgICBWYWx1ZXM6ICAgICAgICAgdW5zaWduZWQKKyAq
CisgKiAgICAgIFRoZSBYZW4gZ3JhbnQgcmVmZXJlbmNlIGdyYW50aW5nIHBlcm1pc3Npb24gZm9y
IHRoZSBiYWNrZW5kIHRvIG1hcAorICogICAgICB0aGUgc29sZSBwYWdlIGluIGEgc2luZ2xlIHBh
Z2Ugc2l6ZWQgcmluZyBidWZmZXIuIFRoaXMgaXMgdGhlIHJpbmcKKyAqICAgICAgYnVmZmVyIGZv
ciB1cmIgcmVxdWVzdHMuCisgKgorICogY29ubi1yaW5nLXJlZgorICogICAgICBWYWx1ZXM6ICAg
ICAgICAgdW5zaWduZWQKKyAqCisgKiAgICAgIFRoZSBYZW4gZ3JhbnQgcmVmZXJlbmNlIGdyYW50
aW5nIHBlcm1pc3Npb24gZm9yIHRoZSBiYWNrZW5kIHRvIG1hcAorICogICAgICB0aGUgc29sZSBw
YWdlIGluIGEgc2luZ2xlIHBhZ2Ugc2l6ZWQgcmluZyBidWZmZXIuIFRoaXMgaXMgdGhlIHJpbmcK
KyAqICAgICAgYnVmZmVyIGZvciBjb25uZWN0aW9uL2Rpc2Nvbm5lY3Rpb24gcmVxdWVzdHMuCisg
KgorICogcHJvdG9jb2wKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIHN0cmluZyAoWEVOX0lPX1BS
T1RPX0FCSV8qKQorICogICAgICBEZWZhdWx0IFZhbHVlOiAgWEVOX0lPX1BST1RPX0FCSV9OQVRJ
VkUKKyAqCisgKiAgICAgIFRoZSBtYWNoaW5lIEFCSSBydWxlcyBnb3Zlcm5pbmcgdGhlIGZvcm1h
dCBvZiBhbGwgcmluZyByZXF1ZXN0IGFuZAorICogICAgICByZXNwb25zZSBzdHJ1Y3R1cmVzLgor
ICoKKyAqLworCitlbnVtIHVzYl9zcGVjX3ZlcnNpb24geworCVVTQl9WRVJfVU5LTk9XTiA9IDAs
CisJVVNCX1ZFUl9VU0IxMSwKKwlVU0JfVkVSX1VTQjIwLAorCVVTQl9WRVJfVVNCMzAsCS8qIG5v
dCBzdXBwb3J0ZWQgeWV0ICovCit9OworCisvKgorICogIFVTQiBwaXBlIGluIHVzYmlmX3JlcXVl
c3QKKyAqCisgKiAgLSBwb3J0IG51bWJlcjoJYml0cyAwLTQKKyAqCQkJCShVU0JfTUFYQ0hJTERS
RU4gaXMgMzEpCisgKgorICogIC0gb3BlcmF0aW9uIGZsYWc6CWJpdCA1CisgKgkJCQkoMCA9IHN1
Ym1pdCB1cmIsCisgKgkJCQkgMSA9IHVubGluayB1cmIpCisgKgorICogIC0gZGlyZWN0aW9uOgkJ
Yml0IDcKKyAqCQkJCSgwID0gSG9zdC10by1EZXZpY2UgW091dF0KKyAqCQkJCSAxID0gRGV2aWNl
LXRvLUhvc3QgW0luXSkKKyAqCisgKiAgLSBkZXZpY2UgYWRkcmVzczoJYml0cyA4LTE0CisgKgor
ICogIC0gZW5kcG9pbnQ6CQliaXRzIDE1LTE4CisgKgorICogIC0gcGlwZSB0eXBlOgliaXRzIDMw
LTMxCisgKgkJCQkoMDAgPSBpc29jaHJvbm91cywgMDEgPSBpbnRlcnJ1cHQsCisgKgkJCQkgMTAg
PSBjb250cm9sLCAxMSA9IGJ1bGspCisgKi8KKworI2RlZmluZSBVU0JJRl9QSVBFX1BPUlRfTUFT
SwkweDAwMDAwMDFmCisjZGVmaW5lIFVTQklGX1BJUEVfVU5MSU5LCTB4MDAwMDAwMjAKKyNkZWZp
bmUgVVNCSUZfUElQRV9ESVIJCTB4MDAwMDAwODAKKyNkZWZpbmUgVVNCSUZfUElQRV9ERVZfTUFT
SwkweDAwMDAwMDdmCisjZGVmaW5lIFVTQklGX1BJUEVfREVWX1NISUZUCTgKKyNkZWZpbmUgVVNC
SUZfUElQRV9FUF9NQVNLCTB4MDAwMDAwMGYKKyNkZWZpbmUgVVNCSUZfUElQRV9FUF9TSElGVAkx
NQorI2RlZmluZSBVU0JJRl9QSVBFX1RZUEVfTUFTSwkweDAwMDAwMDAzCisjZGVmaW5lIFVTQklG
X1BJUEVfVFlQRV9TSElGVAkzMAorI2RlZmluZSBVU0JJRl9QSVBFX1RZUEVfSVNPQwkwCisjZGVm
aW5lIFVTQklGX1BJUEVfVFlQRV9JTlQJMQorI2RlZmluZSBVU0JJRl9QSVBFX1RZUEVfQ1RSTAky
CisjZGVmaW5lIFVTQklGX1BJUEVfVFlQRV9CVUxLCTMKKworI2RlZmluZSB1c2JpZl9waXBlcG9y
dG51bShwaXBlKQkJCSgocGlwZSkgJiBVU0JJRl9QSVBFX1BPUlRfTUFTSykKKyNkZWZpbmUgdXNi
aWZfc2V0cG9ydG51bV9waXBlKHBpcGUsIHBvcnRudW0pCSgocGlwZSkgfCAocG9ydG51bSkpCisK
KyNkZWZpbmUgdXNiaWZfcGlwZXVubGluayhwaXBlKQkJCSgocGlwZSkgJiBVU0JJRl9QSVBFX1VO
TElOSykKKyNkZWZpbmUgdXNiaWZfcGlwZXN1Ym1pdChwaXBlKQkJCSghdXNiaWZfcGlwZXVubGlu
ayhwaXBlKSkKKyNkZWZpbmUgdXNiaWZfc2V0dW5saW5rX3BpcGUocGlwZSkJCSgocGlwZSkgfCBV
U0JJRl9QSVBFX1VOTElOSykKKworI2RlZmluZSB1c2JpZl9waXBlaW4ocGlwZSkJCQkoKHBpcGUp
ICYgVVNCSUZfUElQRV9ESVIpCisjZGVmaW5lIHVzYmlmX3BpcGVvdXQocGlwZSkJCQkoIXVzYmlm
X3BpcGVpbihwaXBlKSkKKworI2RlZmluZSB1c2JpZl9waXBlZGV2aWNlKHBpcGUpCQkJXAorCQko
KChwaXBlKSA+PiBVU0JJRl9QSVBFX0RFVl9TSElGVCkgJiBVU0JJRl9QSVBFX0RFVl9NQVNLKQor
CisjZGVmaW5lIHVzYmlmX3BpcGVlbmRwb2ludChwaXBlKQkJXAorCQkoKChwaXBlKSA+PiBVU0JJ
Rl9QSVBFX0VQX1NISUZUKSAmIFVTQklGX1BJUEVfRVBfTUFTSykKKworI2RlZmluZSB1c2JpZl9w
aXBldHlwZShwaXBlKQkJCVwKKwkJKCgocGlwZSkgPj4gVVNCSUZfUElQRV9UWVBFX1NISUZUKSAm
IFVTQklGX1BJUEVfVFlQRV9NQVNLKQorI2RlZmluZSB1c2JpZl9waXBlaXNvYyhwaXBlKQkodXNi
aWZfcGlwZXR5cGUocGlwZSkgPT0gVVNCSUZfUElQRV9UWVBFX0lTT0MpCisjZGVmaW5lIHVzYmlm
X3BpcGVpbnQocGlwZSkJKHVzYmlmX3BpcGV0eXBlKHBpcGUpID09IFVTQklGX1BJUEVfVFlQRV9J
TlQpCisjZGVmaW5lIHVzYmlmX3BpcGVjdHJsKHBpcGUpCSh1c2JpZl9waXBldHlwZShwaXBlKSA9
PSBVU0JJRl9QSVBFX1RZUEVfQ1RSTCkKKyNkZWZpbmUgdXNiaWZfcGlwZWJ1bGsocGlwZSkJKHVz
YmlmX3BpcGV0eXBlKHBpcGUpID09IFVTQklGX1BJUEVfVFlQRV9CVUxLKQorCisjZGVmaW5lIFVT
QklGX01BWF9TRUdNRU5UU19QRVJfUkVRVUVTVCAoMTYpCisjZGVmaW5lIFVTQklGX01BWF9QT1JU
TlIJMzEKKyNkZWZpbmUgVVNCSUZfUklOR19TSVpFCTQwOTYKKworLyoKKyAqIFJJTkcgZm9yIHRy
YW5zZmVycmluZyB1cmJzLgorICovCitzdHJ1Y3QgdXNiaWZfcmVxdWVzdF9zZWdtZW50IHsKKwln
cmFudF9yZWZfdCBncmVmOworCXVpbnQxNl90IG9mZnNldDsKKwl1aW50MTZfdCBsZW5ndGg7Cit9
OworCitzdHJ1Y3QgdXNiaWZfdXJiX3JlcXVlc3QgeworCXVpbnQxNl90IGlkOyAvKiByZXF1ZXN0
IGlkICovCisJdWludDE2X3QgbnJfYnVmZmVyX3NlZ3M7IC8qIG51bWJlciBvZiB1cmItPnRyYW5z
ZmVyX2J1ZmZlciBzZWdtZW50cyAqLworCisJLyogYmFzaWMgdXJiIHBhcmFtZXRlciAqLworCXVp
bnQzMl90IHBpcGU7CisJdWludDE2X3QgdHJhbnNmZXJfZmxhZ3M7CisjZGVmaW5lIFVTQklGX1NI
T1JUX05PVF9PSwkweDAwMDEKKwl1aW50MTZfdCBidWZmZXJfbGVuZ3RoOworCXVuaW9uIHsKKwkJ
dWludDhfdCBjdHJsWzhdOyAvKiBzZXR1cF9wYWNrZXQgKEN0cmwpICovCisKKwkJc3RydWN0IHsK
KwkJCXVpbnQxNl90IGludGVydmFsOyAvKiBtYXhpbXVtICgxMDI0KjgpIGluIHVzYiBjb3JlICov
CisJCQl1aW50MTZfdCBzdGFydF9mcmFtZTsgLyogc3RhcnQgZnJhbWUgKi8KKwkJCXVpbnQxNl90
IG51bWJlcl9vZl9wYWNrZXRzOyAvKiBudW1iZXIgb2YgSVNPIHBhY2tldCAqLworCQkJdWludDE2
X3QgbnJfZnJhbWVfZGVzY19zZWdzOyAvKiBudW1iZXIgb2YgaXNvX2ZyYW1lX2Rlc2Mgc2VnbWVu
dHMgKi8KKwkJfSBpc29jOworCisJCXN0cnVjdCB7CisJCQl1aW50MTZfdCBpbnRlcnZhbDsgLyog
bWF4aW11bSAoMTAyNCo4KSBpbiB1c2IgY29yZSAqLworCQkJdWludDE2X3QgcGFkWzNdOworCQl9
IGludHI7CisKKwkJc3RydWN0IHsKKwkJCXVpbnQxNl90IHVubGlua19pZDsgLyogdW5saW5rIHJl
cXVlc3QgaWQgKi8KKwkJCXVpbnQxNl90IHBhZFszXTsKKwkJfSB1bmxpbms7CisKKwl9IHU7CisK
KwkvKiB1cmIgZGF0YSBzZWdtZW50cyAqLworCXN0cnVjdCB1c2JpZl9yZXF1ZXN0X3NlZ21lbnQg
c2VnW1VTQklGX01BWF9TRUdNRU5UU19QRVJfUkVRVUVTVF07Cit9OwordHlwZWRlZiBzdHJ1Y3Qg
dXNiaWZfdXJiX3JlcXVlc3QgdXNiaWZfdXJiX3JlcXVlc3RfdDsKKworc3RydWN0IHVzYmlmX3Vy
Yl9yZXNwb25zZSB7CisJdWludDE2X3QgaWQ7IC8qIHJlcXVlc3QgaWQgKi8KKwl1aW50MTZfdCBz
dGFydF9mcmFtZTsgIC8qIHN0YXJ0IGZyYW1lIChJU08pICovCisJaW50MzJfdCBzdGF0dXM7IC8q
IHN0YXR1cyAobm9uLUlTTykgKi8KKwlpbnQzMl90IGFjdHVhbF9sZW5ndGg7IC8qIGFjdHVhbCB0
cmFuc2ZlciBsZW5ndGggKi8KKwlpbnQzMl90IGVycm9yX2NvdW50OyAvKiBudW1iZXIgb2YgSVNP
IGVycm9ycyAqLworfTsKK3R5cGVkZWYgc3RydWN0IHVzYmlmX3VyYl9yZXNwb25zZSB1c2JpZl91
cmJfcmVzcG9uc2VfdDsKKworREVGSU5FX1JJTkdfVFlQRVModXNiaWZfdXJiLCBzdHJ1Y3QgdXNi
aWZfdXJiX3JlcXVlc3QsIHN0cnVjdCB1c2JpZl91cmJfcmVzcG9uc2UpOworI2RlZmluZSBVU0Jf
VVJCX1JJTkdfU0laRSBfX0NPTlNUX1JJTkdfU0laRSh1c2JpZl91cmIsIFVTQklGX1JJTkdfU0la
RSkKKworLyoKKyAqIFJJTkcgZm9yIG5vdGlmeWluZyBjb25uZWN0L2Rpc2Nvbm5lY3QgZXZlbnRz
IHRvIGZyb250ZW5kCisgKi8KK3N0cnVjdCB1c2JpZl9jb25uX3JlcXVlc3QgeworCXVpbnQxNl90
IGlkOworfTsKK3R5cGVkZWYgc3RydWN0IHVzYmlmX2Nvbm5fcmVxdWVzdCB1c2JpZl9jb25uX3Jl
cXVlc3RfdDsKKworc3RydWN0IHVzYmlmX2Nvbm5fcmVzcG9uc2UgeworCXVpbnQxNl90IGlkOyAv
KiByZXF1ZXN0IGlkICovCisJdWludDhfdCBwb3J0bnVtOyAvKiBwb3J0IG51bWJlciAqLworCXVp
bnQ4X3Qgc3BlZWQ7IC8qIHVzYl9kZXZpY2Vfc3BlZWQgKi8KKyNkZWZpbmUgVVNCSUZfU1BFRURf
Tk9ORQkwCisjZGVmaW5lIFVTQklGX1NQRUVEX0xPVwkJMQorI2RlZmluZSBVU0JJRl9TUEVFRF9G
VUxMCTIKKyNkZWZpbmUgVVNCSUZfU1BFRURfSElHSAkzCit9OwordHlwZWRlZiBzdHJ1Y3QgdXNi
aWZfY29ubl9yZXNwb25zZSB1c2JpZl9jb25uX3Jlc3BvbnNlX3Q7CisKK0RFRklORV9SSU5HX1RZ
UEVTKHVzYmlmX2Nvbm4sIHN0cnVjdCB1c2JpZl9jb25uX3JlcXVlc3QsIHN0cnVjdCB1c2JpZl9j
b25uX3Jlc3BvbnNlKTsKKyNkZWZpbmUgVVNCX0NPTk5fUklOR19TSVpFIF9fQ09OU1RfUklOR19T
SVpFKHVzYmlmX2Nvbm4sIFVTQklGX1JJTkdfU0laRSkKKworI2VuZGlmIC8qIF9fWEVOX1BVQkxJ
Q19JT19VU0JJRl9IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3hzbS9pby92c2NzaWlm
LmggYi9pbmNsdWRlL3hlbi94c20vaW8vdnNjc2lpZi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmQwYmQzYjUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi94c20v
aW8vdnNjc2lpZi5oCkBAIC0wLDAgKzEsMzMwIEBACisvKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisg
KiB2c2NzaWlmLmgKKyAqCisgKiBCYXNlZCBvbiB0aGUgYmxraWYuaCBjb2RlLgorICoKKyAqIFBl
cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u
IG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9j
dW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29m
dHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0
aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3Ry
aWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJl
LCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5p
c2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgor
ICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ug
c2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv
bnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMg
SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVE
LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS
SU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQg
SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElB
QklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJ
U0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNP
RlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4K
KyAqCisgKiBDb3B5cmlnaHQoYykgRlVKSVRTVSBMaW1pdGVkIDIwMDguCisgKi8KKworI2lmbmRl
ZiBfX1hFTl9fUFVCTElDX0lPX1NDU0lfSF9fCisjZGVmaW5lIF9fWEVOX19QVUJMSUNfSU9fU0NT
SV9IX18KKworI2luY2x1ZGUgInJpbmcuaCIKKyNpbmNsdWRlICIuLi9ncmFudF90YWJsZS5oIgor
CisvKgorICogRmVhdHVyZSBhbmQgUGFyYW1ldGVyIE5lZ290aWF0aW9uCisgKiA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIFRoZSB0d28gaGFsdmVzIG9mIGEgWGVuIHB2U0NT
SSBkcml2ZXIgdXRpbGl6ZSBub2RlcyB3aXRoaW4gdGhlIFhlblN0b3JlIHRvCisgKiBjb21tdW5p
Y2F0ZSBjYXBhYmlsaXRpZXMgYW5kIHRvIG5lZ290aWF0ZSBvcGVyYXRpbmcgcGFyYW1ldGVycy4g
IFRoaXMKKyAqIHNlY3Rpb24gZW51bWVyYXRlcyB0aGVzZSBub2RlcyB3aGljaCByZXNpZGUgaW4g
dGhlIHJlc3BlY3RpdmUgZnJvbnQgYW5kCisgKiBiYWNrZW5kIHBvcnRpb25zIG9mIHRoZSBYZW5T
dG9yZSwgZm9sbG93aW5nIHRoZSBYZW5CdXMgY29udmVudGlvbi4KKyAqCisgKiBBbnkgc3BlY2lm
aWVkIGRlZmF1bHQgdmFsdWUgaXMgaW4gZWZmZWN0IGlmIHRoZSBjb3JyZXNwb25kaW5nIFhlbkJ1
cyBub2RlCisgKiBpcyBub3QgcHJlc2VudCBpbiB0aGUgWGVuU3RvcmUuCisgKgorICogWGVuU3Rv
cmUgbm9kZXMgaW4gc2VjdGlvbnMgbWFya2VkICJQUklWQVRFIiBhcmUgc29sZWx5IGZvciB1c2Ug
YnkgdGhlCisgKiBkcml2ZXIgc2lkZSB3aG9zZSBYZW5CdXMgdHJlZSBjb250YWlucyB0aGVtLgor
ICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAg
QmFja2VuZCBYZW5CdXMgTm9kZXMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLS0tLS0t
LS0tLS0tLS0tLS0tIEJhY2tlbmQgRGV2aWNlIElkZW50aWZpY2F0aW9uIChQUklWQVRFKSAtLS0t
LS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwLWRldm5hbWUKKyAqICAgICAgVmFsdWVzOiAgICAgICAg
IHN0cmluZworICoKKyAqICAgICAgQSBmcmVlIHN0cmluZyB1c2VkIHRvIGlkZW50aWZ5IHRoZSBw
aHlzaWNhbCBkZXZpY2UgKGUuZy4gYSBkaXNrIG5hbWUpLgorICoKKyAqIHAtZGV2CisgKiAgICAg
IFZhbHVlczogICAgICAgICBzdHJpbmcKKyAqCisgKiAgICAgIEEgc3RyaW5nIHNwZWNpZnlpbmcg
dGhlIGJhY2tlbmQgZGV2aWNlOiBlaXRoZXIgYSA0LXR1cGxlICJoOmM6dDpsIgorICogICAgICAo
aG9zdCwgY29udHJvbGxlciwgdGFyZ2V0LCBsdW4sIGFsbCBpbnRlZ2VycyksIG9yIGEgV1dOIChl
LmcuCisgKiAgICAgICJuYWEuNjAwMTQwNTRhYzc4MDU4MjowIikuCisgKgorICogdi1kZXYKKyAq
ICAgICAgVmFsdWVzOiAgICAgICAgIHN0cmluZworICoKKyAqICAgICAgQSBzdHJpbmcgc3BlY2lm
eWluZyB0aGUgZnJvbnRlbmQgZGV2aWNlIGluIGZvcm0gb2YgYSA0LXR1cGxlICJoOmM6dDpsIgor
ICogICAgICAoaG9zdCwgY29udHJvbGxlciwgdGFyZ2V0LCBsdW4sIGFsbCBpbnRlZ2VycykuCisg
KgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRmVhdHVyZXMgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogZmVhdHVyZS1zZy1ncmFudAorICogICAg
ICBWYWx1ZXM6ICAgICAgICAgdW5zaWduZWQgW1ZTQ1NJSUZfU0dfVEFCTEVTSVpFLi4uNjU1MzVd
CisgKiAgICAgIERlZmF1bHQgVmFsdWU6ICAwCisgKgorICogICAgICBTcGVjaWZpZXMgdGhlIG1h
eGltdW0gbnVtYmVyIG9mIHNjYXR0ZXIvZ2F0aGVyIGVsZW1lbnRzIGluIGdyYW50IHBhZ2VzCisg
KiAgICAgIHN1cHBvcnRlZC4gSWYgbm90IHNldCwgdGhlIGJhY2tlbmQgc3VwcG9ydHMgdXAgdG8g
VlNDU0lJRl9TR19UQUJMRVNJWkUKKyAqICAgICAgU0cgZWxlbWVudHMgc3BlY2lmaWVkIGRpcmVj
dGx5IGluIHRoZSByZXF1ZXN0LgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmQgWGVuQnVzIE5vZGVzCisgKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFJlcXVlc3QgVHJhbnNwb3J0
IFBhcmFtZXRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBldmVudC1jaGFubmVs
CisgKiAgICAgIFZhbHVlczogICAgICAgICB1bnNpZ25lZAorICoKKyAqICAgICAgVGhlIGlkZW50
aWZpZXIgb2YgdGhlIFhlbiBldmVudCBjaGFubmVsIHVzZWQgdG8gc2lnbmFsIGFjdGl2aXR5Cisg
KiAgICAgIGluIHRoZSByaW5nIGJ1ZmZlci4KKyAqCisgKiByaW5nLXJlZgorICogICAgICBWYWx1
ZXM6ICAgICAgICAgdW5zaWduZWQKKyAqCisgKiAgICAgIFRoZSBYZW4gZ3JhbnQgcmVmZXJlbmNl
IGdyYW50aW5nIHBlcm1pc3Npb24gZm9yIHRoZSBiYWNrZW5kIHRvIG1hcAorICogICAgICB0aGUg
c29sZSBwYWdlIGluIGEgc2luZ2xlIHBhZ2Ugc2l6ZWQgcmluZyBidWZmZXIuCisgKgorICogcHJv
dG9jb2wKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIHN0cmluZyAoWEVOX0lPX1BST1RPX0FCSV8q
KQorICogICAgICBEZWZhdWx0IFZhbHVlOiAgWEVOX0lPX1BST1RPX0FCSV9OQVRJVkUKKyAqCisg
KiAgICAgIFRoZSBtYWNoaW5lIEFCSSBydWxlcyBnb3Zlcm5pbmcgdGhlIGZvcm1hdCBvZiBhbGwg
cmluZyByZXF1ZXN0IGFuZAorICogICAgICByZXNwb25zZSBzdHJ1Y3R1cmVzLgorICovCisKKy8q
CisgKiBYZW5zdG9yZSBmb3JtYXQgaW4gcHJhY3RpY2UKKyAqID09PT09PT09PT09PT09PT09PT09
PT09PT09PQorICogCisgKiBUaGUgYmFja2VuZCBkcml2ZXIgdXNlcyBhIHNpbmdsZV9ob3N0Om1h
bnlfZGV2aWNlcyBub3RhdGlvbiB0byBtYW5hZ2UgZG9tVQorICogZGV2aWNlcy4gRXZlcnl0aGlu
ZyBpcyBzdG9yZWQgaW4gL2xvY2FsL2RvbWFpbi88YmFja2VuZF9kb21pZD4vYmFja2VuZC92c2Nz
aS8uCisgKiBUaGUgeGVuc3RvcmUgbGF5b3V0IGxvb2tzIGxpa2UgdGhpcyAoZG9tMCBpcyBhc3N1
bWVkIHRvIGJlIHRoZSBiYWNrZW5kX2RvbWlkKToKKyAqIAorICogICAgIDxkb21pZD4vPHZob3N0
Pi9mZWF0dXJlLWhvc3QgPSAiMCIKKyAqICAgICA8ZG9taWQ+Lzx2aG9zdD4vZnJvbnRlbmQgPSAi
L2xvY2FsL2RvbWFpbi88ZG9taWQ+L2RldmljZS92c2NzaS8wIgorICogICAgIDxkb21pZD4vPHZo
b3N0Pi9mcm9udGVuZC1pZCA9ICI8ZG9taWQ+IgorICogICAgIDxkb21pZD4vPHZob3N0Pi9vbmxp
bmUgPSAiMSIKKyAqICAgICA8ZG9taWQ+Lzx2aG9zdD4vc3RhdGUgPSAiNCIKKyAqICAgICA8ZG9t
aWQ+Lzx2aG9zdD4vdnNjc2ktZGV2cy9kZXYtMC9wLWRldiA9ICI4OjA6MjoxIiBvciAibmFhLnd3
bjpsdW4iCisgKiAgICAgPGRvbWlkPi88dmhvc3Q+L3ZzY3NpLWRldnMvZGV2LTAvc3RhdGUgPSAi
NCIKKyAqICAgICA8ZG9taWQ+Lzx2aG9zdD4vdnNjc2ktZGV2cy9kZXYtMC92LWRldiA9ICIwOjA6
MDowIgorICogICAgIDxkb21pZD4vPHZob3N0Pi92c2NzaS1kZXZzL2Rldi0xL3AtZGV2ID0gIjg6
MDoyOjIiCisgKiAgICAgPGRvbWlkPi88dmhvc3Q+L3ZzY3NpLWRldnMvZGV2LTEvc3RhdGUgPSAi
NCIKKyAqICAgICA8ZG9taWQ+Lzx2aG9zdD4vdnNjc2ktZGV2cy9kZXYtMS92LWRldiA9ICIwOjA6
MTowIgorICogCisgKiBUaGUgZnJvbnRlbmQgZHJpdmVyIG1haW50YWlucyBpdHMgc3RhdGUgaW4K
KyAqIC9sb2NhbC9kb21haW4vPGRvbWlkPi9kZXZpY2UvdnNjc2kvLgorICogCisgKiAgICAgPHZo
b3N0Pi9iYWNrZW5kID0gIi9sb2NhbC9kb21haW4vMC9iYWNrZW5kL3ZzY3NpLzxkb21pZD4vPHZo
b3N0PiIKKyAqICAgICA8dmhvc3Q+L2JhY2tlbmQtaWQgPSAiMCIKKyAqICAgICA8dmhvc3Q+L2V2
ZW50LWNoYW5uZWwgPSAiMjAiCisgKiAgICAgPHZob3N0Pi9yaW5nLXJlZiA9ICI0MyIKKyAqICAg
ICA8dmhvc3Q+L3N0YXRlID0gIjQiCisgKiAgICAgPHZob3N0Pi92c2NzaS1kZXZzL2Rldi0wL3N0
YXRlID0gIjQiCisgKiAgICAgPHZob3N0Pi92c2NzaS1kZXZzL2Rldi0xL3N0YXRlID0gIjQiCisg
KiAKKyAqIEluIGFkZGl0aW9uIHRvIHRoZSBlbnRyaWVzIGZvciBiYWNrZW5kIGFuZCBmcm9udGVu
ZCB0aGVzZSBmbGFncyBhcmUgc3RvcmVkCisgKiBmb3IgdGhlIHRvb2xzdGFjazoKKyAqIAorICog
ICAgIDxkb21pZD4vPHZob3N0Pi92c2NzaS1kZXZzL2Rldi0xL3AtZGV2bmFtZSA9ICIvZGV2LyRk
ZXZpY2UiCisgKiAgICAgPGRvbWlkPi88dmhvc3Q+L2xpYnhsX2N0cmxfaW5kZXggPSAiMCIKKyAq
IAorICogCisgKiBCYWNrZW5kL2Zyb250ZW5kIHByb3RvY29sCisgKiA9PT09PT09PT09PT09PT09
PT09PT09PT09CisgKiAKKyAqIFRvIGNyZWF0ZSBhIHZob3N0IGFsb25nIHdpdGggYSBkZXZpY2U6
CisgKiAgICAgPGRvbWlkPi88dmhvc3Q+L2ZlYXR1cmUtaG9zdCA9ICIwIgorICogICAgIDxkb21p
ZD4vPHZob3N0Pi9mcm9udGVuZCA9ICIvbG9jYWwvZG9tYWluLzxkb21pZD4vZGV2aWNlL3ZzY3Np
LzAiCisgKiAgICAgPGRvbWlkPi88dmhvc3Q+L2Zyb250ZW5kLWlkID0gIjxkb21pZD4iCisgKiAg
ICAgPGRvbWlkPi88dmhvc3Q+L29ubGluZSA9ICIxIgorICogICAgIDxkb21pZD4vPHZob3N0Pi9z
dGF0ZSA9ICIxIgorICogICAgIDxkb21pZD4vPHZob3N0Pi92c2NzaS1kZXZzL2Rldi0wL3AtZGV2
ID0gIjg6MDoyOjEiCisgKiAgICAgPGRvbWlkPi88dmhvc3Q+L3ZzY3NpLWRldnMvZGV2LTAvc3Rh
dGUgPSAiMSIKKyAqICAgICA8ZG9taWQ+Lzx2aG9zdD4vdnNjc2ktZGV2cy9kZXYtMC92LWRldiA9
ICIwOjA6MDowIgorICogV2FpdCBmb3IgPGRvbWlkPi88dmhvc3Q+L3N0YXRlICsgPGRvbWlkPi88
dmhvc3Q+L3ZzY3NpLWRldnMvZGV2LTAvc3RhdGUgYmVjb21lIDQKKyAqIAorICogVG8gYWRkIGFu
b3RoZXIgZGV2aWNlIHRvIGEgdmhvc3Q6CisgKiAgICAgPGRvbWlkPi88dmhvc3Q+L3N0YXRlID0g
IjciCisgKiAgICAgPGRvbWlkPi88dmhvc3Q+L3ZzY3NpLWRldnMvZGV2LTEvcC1kZXYgPSAiODow
OjI6MiIKKyAqICAgICA8ZG9taWQ+Lzx2aG9zdD4vdnNjc2ktZGV2cy9kZXYtMS9zdGF0ZSA9ICIx
IgorICogICAgIDxkb21pZD4vPHZob3N0Pi92c2NzaS1kZXZzL2Rldi0xL3YtZGV2ID0gIjA6MDox
OjAiCisgKiBXYWl0IGZvciA8ZG9taWQ+Lzx2aG9zdD4vc3RhdGUgKyA8ZG9taWQ+Lzx2aG9zdD4v
dnNjc2ktZGV2cy9kZXYtMS9zdGF0ZSBiZWNvbWUgNAorICogCisgKiBUbyByZW1vdmUgYSBkZXZp
Y2UgZnJvbSBhIHZob3N0OgorICogICAgIDxkb21pZD4vPHZob3N0Pi9zdGF0ZSA9ICI3IgorICog
ICAgIDxkb21pZD4vPHZob3N0Pi92c2NzaS1kZXZzL2Rldi0xL3N0YXRlID0gIjUiCisgKiBXYWl0
IGZvciA8ZG9taWQ+Lzx2aG9zdD4vc3RhdGUgdG8gYmVjb21lIDQKKyAqIFdhaXQgZm9yIDxkb21p
ZD4vPHZob3N0Pi92c2NzaS1kZXZzL2Rldi0xL3N0YXRlIGJlY29tZSA2CisgKiBSZW1vdmUgPGRv
bWlkPi88dmhvc3Q+L3ZzY3NpLWRldnMvZGV2LTEve3N0YXRlLHAtZGV2LHYtZGV2LHAtZGV2bmFt
ZX0KKyAqIFJlbW92ZSA8ZG9taWQ+Lzx2aG9zdD4vdnNjc2ktZGV2cy9kZXYtMS8KKyAqCisgKi8K
KworLyogUmVxdWVzdHMgZnJvbSB0aGUgZnJvbnRlbmQgdG8gdGhlIGJhY2tlbmQgKi8KKworLyoK
KyAqIFJlcXVlc3QgYSBTQ1NJIG9wZXJhdGlvbiBzcGVjaWZpZWQgdmlhIGEgQ0RCIGluIHZzY3Np
aWZfcmVxdWVzdC5jbW5kLgorICogVGhlIHRhcmdldCBpcyBzcGVjaWZpZWQgdmlhIGNoYW5uZWws
IGlkIGFuZCBsdW4uCisgKgorICogVGhlIG9wZXJhdGlvbiB0byBiZSBwZXJmb3JtZWQgaXMgc3Bl
Y2lmaWVkIHZpYSBhIENEQiBpbiBjbW5kW10sIHRoZSBsZW5ndGgKKyAqIG9mIHRoZSBDREIgaXMg
aW4gY21kX2xlbi4gc2NfZGF0YV9kaXJlY3Rpb24gc3BlY2lmaWVzIHRoZSBkaXJlY3Rpb24gb2Yg
ZGF0YQorICogKHRvIHRoZSBkZXZpY2UsIGZyb20gdGhlIGRldmljZSwgb3Igbm9uZSBhdCBhbGwp
LgorICoKKyAqIElmIGRhdGEgaXMgdG8gYmUgdHJhbnNmZXJyZWQgdG8gb3IgZnJvbSB0aGUgZGV2
aWNlIHRoZSBidWZmZXIocykgaW4gdGhlCisgKiBndWVzdCBtZW1vcnkgaXMvYXJlIHNwZWNpZmll
ZCB2aWEgb25lIG9yIG11bHRpcGxlIHNjc2lpZl9yZXF1ZXN0X3NlZ21lbnQKKyAqIGRlc2NyaXB0
b3JzIGVhY2ggc3BlY2lmeWluZyBhIG1lbW9yeSBwYWdlIHZpYSBhIGdyYW50X3JlZl90LCBhIG9m
ZnNldCBpbnRvCisgKiB0aGUgcGFnZSBhbmQgdGhlIGxlbmd0aCBvZiB0aGUgYXJlYSBpbiB0aGF0
IHBhZ2UuIEFsbCBzY3NpaWZfcmVxdWVzdF9zZWdtZW50CisgKiBhcmVhcyBjb25jYXRlbmF0ZWQg
Zm9ybSB0aGUgcmVzdWx0aW5nIGRhdGEgYnVmZmVyIHVzZWQgYnkgdGhlIG9wZXJhdGlvbi4KKyAq
IElmIHRoZSBudW1iZXIgb2Ygc2NzaWlmX3JlcXVlc3Rfc2VnbWVudCBhcmVhcyBpcyBub3QgdG9v
IGxhcmdlIChsZXNzIHRoYW4KKyAqIG9yIGVxdWFsIFZTQ1NJSUZfU0dfVEFCTEVTSVpFKSB0aGUg
YXJlYXMgY2FuIGJlIHNwZWNpZmllZCBkaXJlY3RseSBpbiB0aGUKKyAqIHNlZ1tdIGFycmF5IGFu
ZCB0aGUgbnVtYmVyIG9mIHZhbGlkIHNjc2lpZl9yZXF1ZXN0X3NlZ21lbnQgZWxlbWVudHMgaXMg
dG8gYmUKKyAqIHNldCBpbiBucl9zZWdtZW50cy4KKyAqCisgKiBJZiAiZmVhdHVyZS1zZy1ncmFu
dCIgaW4gdGhlIFhlbnN0b3JlIGlzIHNldCBpdCBpcyBwb3NzaWJsZSB0byBzcGVjaWZ5IG1vcmUK
KyAqIHRoYW4gVlNDU0lJRl9TR19UQUJMRVNJWkUgc2NzaWlmX3JlcXVlc3Rfc2VnbWVudCBlbGVt
ZW50cyB2aWEgaW5kaXJlY3Rpb24uCisgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgYWxsb3dlZCBz
Y3NpaWZfcmVxdWVzdF9zZWdtZW50IGVsZW1lbnRzIGlzIHRoZSB2YWx1ZQorICogb2YgdGhlICJm
ZWF0dXJlLXNnLWdyYW50IiBlbnRyeSBmcm9tIFhlbnN0b3JlLiBXaGVuIHVzaW5nIGluZGlyZWN0
aW9uIHRoZQorICogc2VnW10gYXJyYXkgZG9lc24ndCBjb250YWluIHNwZWNpZmljYXRpb25zIG9m
IHRoZSBkYXRhIGJ1ZmZlcnMsIGJ1dAorICogcmVmZXJlbmNlcyB0byBzY3NpaWZfcmVxdWVzdF9z
ZWdtZW50IGFycmF5cywgd2hpY2ggaW4gdHVybiByZWZlcmVuY2UgdGhlCisgKiBkYXRhIGJ1ZmZl
cnMuIFdoaWxlIG5yX3NlZ21lbnRzIGhvbGRzIHRoZSBudW1iZXIgb2YgcG9wdWxhdGVkIHNlZ1td
IGVudHJpZXMKKyAqIChwbHVzIHRoZSBzZXQgVlNDU0lJRl9TR19HUkFOVCBiaXQpLCB0aGUgbnVt
YmVyIG9mIHNjc2lpZl9yZXF1ZXN0X3NlZ21lbnQKKyAqIGVsZW1lbnRzIHJlZmVyZW5jaW5nIHRo
ZSB0YXJnZXQgZGF0YSBidWZmZXJzIGlzIGNhbGN1bGF0ZWQgZnJvbSB0aGUgbGVuZ3RocworICog
b2YgdGhlIHNlZ1tdIGVsZW1lbnRzICh0aGUgc3VtIG9mIGFsbCB2YWxpZCBzZWdbXS5sZW5ndGgg
ZGl2aWRlZCBieSB0aGUKKyAqIHNpemUgb2Ygb25lIHNjc2lpZl9yZXF1ZXN0X3NlZ21lbnQgc3Ry
dWN0dXJlKS4gVGhlIGZyb250ZW5kIG1heSB1c2UgYSBtaXggb2YKKyAqIGRpcmVjdCBhbmQgaW5k
aXJlY3QgcmVxdWVzdHMuCisgKi8KKyNkZWZpbmUgVlNDU0lJRl9BQ1RfU0NTSV9DREIgICAgICAg
ICAxCisKKy8qCisgKiBSZXF1ZXN0IGFib3J0IG9mIGEgcnVubmluZyBvcGVyYXRpb24gZm9yIHRo
ZSBzcGVjaWZpZWQgdGFyZ2V0IGdpdmVuIGJ5CisgKiBjaGFubmVsLCBpZCwgbHVuIGFuZCB0aGUg
b3BlcmF0aW9uJ3MgcnFpZCBpbiByZWZfcnFpZC4KKyAqLworI2RlZmluZSBWU0NTSUlGX0FDVF9T
Q1NJX0FCT1JUICAgICAgIDIKKworLyoKKyAqIFJlcXVlc3QgYSBkZXZpY2UgcmVzZXQgb2YgdGhl
IHNwZWNpZmllZCB0YXJnZXQgKGNoYW5uZWwgYW5kIGlkKS4KKyAqLworI2RlZmluZSBWU0NTSUlG
X0FDVF9TQ1NJX1JFU0VUICAgICAgIDMKKworLyoKKyAqIFByZXNldCBzY2F0dGVyL2dhdGhlciBl
bGVtZW50cyBmb3IgYSBmb2xsb3dpbmcgcmVxdWVzdC4gRGVwcmVjYXRlZC4KKyAqIEtlZXBpbmcg
dGhlIGRlZmluZSBvbmx5IHRvIGF2b2lkIHVzYWdlIG9mIHRoZSB2YWx1ZSAiNCIgZm9yIG90aGVy
IGFjdGlvbnMuCisgKi8KKyNkZWZpbmUgVlNDU0lJRl9BQ1RfU0NTSV9TR19QUkVTRVQgICA0CisK
Ky8qCisgKiBNYXhpbXVtIHNjYXR0ZXIvZ2F0aGVyIHNlZ21lbnRzIHBlciByZXF1ZXN0LgorICoK
KyAqIENvbnNpZGVyaW5nIGJhbGFuY2UgYmV0d2VlbiBhbGxvY2F0aW5nIGF0IGxlYXN0IDE2ICJ2
c2NzaWlmX3JlcXVlc3QiCisgKiBzdHJ1Y3R1cmVzIG9uIG9uZSBwYWdlICg0MDk2IGJ5dGVzKSBh
bmQgdGhlIG51bWJlciBvZiBzY2F0dGVyL2dhdGhlcgorICogZWxlbWVudHMgbmVlZGVkLCB3ZSBk
ZWNpZGVkIHRvIHVzZSAyNiBhcyBhIG1hZ2ljIG51bWJlci4KKyAqCisgKiBJZiAiZmVhdHVyZS1z
Zy1ncmFudCIgaXMgc2V0LCBtb3JlIHNjYXR0ZXIvZ2F0aGVyIGVsZW1lbnRzIGNhbiBiZSBzcGVj
aWZpZWQKKyAqIGJ5IHBsYWNpbmcgdGhlbSBpbiBvbmUgb3IgbW9yZSAodXAgdG8gVlNDU0lJRl9T
R19UQUJMRVNJWkUpIGdyYW50ZWQgcGFnZXMuCisgKiBJbiB0aGlzIGNhc2UgdGhlIHZzY3NpaWZf
cmVxdWVzdCBzZWcgZWxlbWVudHMgZG9uJ3QgY29udGFpbiByZWZlcmVuY2VzIHRvCisgKiB0aGUg
dXNlciBkYXRhLCBidXQgdG8gdGhlIFNHIGVsZW1lbnRzIHJlZmVyZW5jaW5nIHRoZSB1c2VyIGRh
dGEuCisgKi8KKyNkZWZpbmUgVlNDU0lJRl9TR19UQUJMRVNJWkUgICAgICAgICAgICAgMjYKKwor
LyoKKyAqIGJhc2VkIG9uIExpbnV4IGtlcm5lbCAyLjYuMTgsIHN0aWxsIHZhbGlkCisgKgorICog
Q2hhbmdpbmcgdGhlc2UgdmFsdWVzIHJlcXVpcmVzIHN1cHBvcnQgb2YgbXVsdGlwbGUgcHJvdG9j
b2xzIHZpYSB0aGUgcmluZ3MKKyAqIGFzICJvbGQgY2xpZW50cyIgd2lsbCBibGluZGx5IHVzZSB0
aGVzZSB2YWx1ZXMgYW5kIHRoZSByZXN1bHRpbmcgc3RydWN0dXJlCisgKiBzaXplcy4KKyAqLwor
I2RlZmluZSBWU0NTSUlGX01BWF9DT01NQU5EX1NJWkUgICAgICAgICAxNgorI2RlZmluZSBWU0NT
SUlGX1NFTlNFX0JVRkZFUlNJWkUgICAgICAgICA5NgorI2RlZmluZSBWU0NTSUlGX1BBR0VfU0la
RSAgICAgICAgICAgICAgNDA5NgorCitzdHJ1Y3Qgc2NzaWlmX3JlcXVlc3Rfc2VnbWVudCB7Cisg
ICAgZ3JhbnRfcmVmX3QgZ3JlZjsKKyAgICB1aW50MTZfdCBvZmZzZXQ7CisgICAgdWludDE2X3Qg
bGVuZ3RoOworfTsKK3R5cGVkZWYgc3RydWN0IHNjc2lpZl9yZXF1ZXN0X3NlZ21lbnQgdnNjc2lp
Zl9zZWdtZW50X3Q7CisKKyNkZWZpbmUgVlNDU0lJRl9TR19QRVJfUEFHRSAoVlNDU0lJRl9QQUdF
X1NJWkUgLyBzaXplb2Yoc3RydWN0IHNjc2lpZl9yZXF1ZXN0X3NlZ21lbnQpKQorCisvKiBTaXpl
IG9mIG9uZSByZXF1ZXN0IGlzIDI1MiBieXRlcyAqLworc3RydWN0IHZzY3NpaWZfcmVxdWVzdCB7
CisgICAgdWludDE2X3QgcnFpZDsgICAgICAgICAgLyogcHJpdmF0ZSBndWVzdCB2YWx1ZSwgZWNo
b2VkIGluIHJlc3AgICovCisgICAgdWludDhfdCBhY3Q7ICAgICAgICAgICAgLyogY29tbWFuZCBi
ZXR3ZWVuIGJhY2tlbmQgYW5kIGZyb250ZW5kICovCisgICAgdWludDhfdCBjbWRfbGVuOyAgICAg
ICAgLyogdmFsaWQgQ0RCIGJ5dGVzICovCisKKyAgICB1aW50OF90IGNtbmRbVlNDU0lJRl9NQVhf
Q09NTUFORF9TSVpFXTsgLyogdGhlIENEQiAqLworICAgIHVpbnQxNl90IHRpbWVvdXRfcGVyX2Nv
bW1hbmQ7ICAgLyogZGVwcmVjYXRlZDogdGltZW91dCBpbiBzZWNzLCAwPWRlZmF1bHQgKi8KKyAg
ICB1aW50MTZfdCBjaGFubmVsLCBpZCwgbHVuOyAgICAgIC8qICh2aXJ0dWFsKSBkZXZpY2Ugc3Bl
Y2lmaWNhdGlvbiAqLworICAgIHVpbnQxNl90IHJlZl9ycWlkOyAgICAgICAgICAgICAgLyogY29t
bWFuZCBhYm9ydCByZWZlcmVuY2UgKi8KKyAgICB1aW50OF90IHNjX2RhdGFfZGlyZWN0aW9uOyAg
ICAgIC8qIGZvciBETUFfVE9fREVWSUNFKDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBETUFfRlJPTV9ERVZJQ0UoMikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIERNQV9OT05FKDMpIHJlcXVlc3RzICAqLworICAgIHVpbnQ4X3QgbnJfc2Vn
bWVudHM7ICAgICAgICAgICAgLyogTnVtYmVyIG9mIHBpZWNlcyBvZiBzY2F0dGVyLWdhdGhlciAq
LworLyoKKyAqIGZsYWcgaW4gbnJfc2VnbWVudHM6IFNHIGVsZW1lbnRzIHZpYSBncmFudCBwYWdl
CisgKgorICogSWYgVlNDU0lJRl9TR19HUkFOVCBpcyBzZXQsIHRoZSBsb3cgNyBiaXRzIG9mIG5y
X3NlZ21lbnRzIHNwZWNpZnkgdGhlIG51bWJlcgorICogb2YgZ3JhbnQgcGFnZXMgY29udGFpbmlu
ZyBTRyBlbGVtZW50cy4gVXNhYmxlIGlmICJmZWF0dXJlLXNnLWdyYW50IiBzZXQuCisgKi8KKyNk
ZWZpbmUgVlNDU0lJRl9TR19HUkFOVCAgICAweDgwCisKKyAgICB2c2NzaWlmX3NlZ21lbnRfdCBz
ZWdbVlNDU0lJRl9TR19UQUJMRVNJWkVdOworICAgIHVpbnQzMl90IHJlc2VydmVkWzNdOworfTsK
K3R5cGVkZWYgc3RydWN0IHZzY3NpaWZfcmVxdWVzdCB2c2NzaWlmX3JlcXVlc3RfdDsKKworLyoK
KyAqIFRoZSBmb2xsb3dpbmcgaW50ZXJmYWNlIGlzIGRlcHJlY2F0ZWQhCisgKi8KKyNkZWZpbmUg
VlNDU0lJRl9TR19MSVNUX1NJWkUgKChzaXplb2YodnNjc2lpZl9yZXF1ZXN0X3QpIC0gNCkgXAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyBzaXplb2YodnNjc2lpZl9zZWdtZW50X3Qp
KQorCitzdHJ1Y3QgdnNjc2lpZl9zZ19saXN0IHsKKyAgICAvKiBGaXJzdCB0d28gZmllbGRzIG11
c3QgbWF0Y2ggc3RydWN0IHZzY3NpaWZfcmVxdWVzdCEgKi8KKyAgICB1aW50MTZfdCBycWlkOyAg
ICAgICAgICAvKiBwcml2YXRlIGd1ZXN0IHZhbHVlLCBtdXN0IG1hdGNoIG1haW4gcmVxICovCisg
ICAgdWludDhfdCBhY3Q7ICAgICAgICAgICAgLyogVlNDU0lJRl9BQ1RfU0NTSV9TR19QUkVTRVQg
Ki8KKyAgICB1aW50OF90IG5yX3NlZ21lbnRzOyAgICAvKiBOdW1iZXIgb2YgcGllY2VzIG9mIHNj
YXR0ZXItZ2F0aGVyICovCisgICAgdnNjc2lpZl9zZWdtZW50X3Qgc2VnW1ZTQ1NJSUZfU0dfTElT
VF9TSVpFXTsKK307Cit0eXBlZGVmIHN0cnVjdCB2c2NzaWlmX3NnX2xpc3QgdnNjc2lpZl9zZ19s
aXN0X3Q7CisvKiBFbmQgb2YgZGVwcmVjYXRlZCBpbnRlcmZhY2UgKi8KKworLyogU2l6ZSBvZiBv
bmUgcmVzcG9uc2UgaXMgMjUyIGJ5dGVzICovCitzdHJ1Y3QgdnNjc2lpZl9yZXNwb25zZSB7Cisg
ICAgdWludDE2X3QgcnFpZDsgICAgICAgICAgLyogaWRlbnRpZmllcyByZXF1ZXN0ICovCisgICAg
dWludDhfdCBhY3Q7ICAgICAgICAgICAgLyogZGVwcmVjYXRlZDogdmFsaWQgb25seSBpZiBTR19Q
UkVTRVQgc3VwcG9ydGVkICovCisgICAgdWludDhfdCBzZW5zZV9sZW47CisgICAgdWludDhfdCBz
ZW5zZV9idWZmZXJbVlNDU0lJRl9TRU5TRV9CVUZGRVJTSVpFXTsKKyAgICBpbnQzMl90IHJzbHQ7
CisgICAgdWludDMyX3QgcmVzaWR1YWxfbGVuOyAgICAgLyogcmVxdWVzdCBidWZmbGVuIC0gCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoZSB2YWx1ZSBmcm9tIHBo
eXNpY2FsIGRldmljZSAqLworICAgIHVpbnQzMl90IHJlc2VydmVkWzM2XTsKK307Cit0eXBlZGVm
IHN0cnVjdCB2c2NzaWlmX3Jlc3BvbnNlIHZzY3NpaWZfcmVzcG9uc2VfdDsKKworREVGSU5FX1JJ
TkdfVFlQRVModnNjc2lpZiwgc3RydWN0IHZzY3NpaWZfcmVxdWVzdCwgc3RydWN0IHZzY3NpaWZf
cmVzcG9uc2UpOworCisKKyNlbmRpZiAgLypfX1hFTl9fUFVCTElDX0lPX1NDU0lfSF9fKi8KKy8q
CisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0Qi
CisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1t
b2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4veHNtL2lvL3hl
bmJ1cy5oIGIvaW5jbHVkZS94ZW4veHNtL2lvL3hlbmJ1cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjkyN2Y5ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi94
c20vaW8veGVuYnVzLmgKQEAgLTAsMCArMSw4MCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisg
KiB4ZW5idXMuaAorICoKKyAqIFhlbmJ1cyBwcm90b2NvbCBkZXRhaWxzLgorICoKKyAqIFBlcm1p
c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i
dGFpbmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1l
bnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdh
cmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUK
KyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1
dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBh
bmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hl
ZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICog
VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hh
bGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMg
b2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMi
LCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJ
TkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5H
RU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9M
REVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklM
SVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0Us
IEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRX
QVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAq
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgWGVuU291cmNlIEx0ZC4KKyAqLworCisjaWZuZGVmIF9Y
RU5fUFVCTElDX0lPX1hFTkJVU19ICisjZGVmaW5lIF9YRU5fUFVCTElDX0lPX1hFTkJVU19ICisK
Ky8qCisgKiBUaGUgc3RhdGUgb2YgZWl0aGVyIGVuZCBvZiB0aGUgWGVuYnVzLCBpLmUuIHRoZSBj
dXJyZW50IGNvbW11bmljYXRpb24KKyAqIHN0YXR1cyBvZiBpbml0aWFsaXNhdGlvbiBhY3Jvc3Mg
dGhlIGJ1cy4gIFN0YXRlcyBoZXJlIGltcGx5IG5vdGhpbmcgYWJvdXQKKyAqIHRoZSBzdGF0ZSBv
ZiB0aGUgY29ubmVjdGlvbiBiZXR3ZWVuIHRoZSBkcml2ZXIgYW5kIHRoZSBrZXJuZWwncyBkZXZp
Y2UKKyAqIGxheWVycy4KKyAqLworZW51bSB4ZW5idXNfc3RhdGUgeworICAgIFhlbmJ1c1N0YXRl
VW5rbm93biAgICAgICA9IDAsCisKKyAgICBYZW5idXNTdGF0ZUluaXRpYWxpc2luZyAgPSAxLAor
CisgICAgLyoKKyAgICAgKiBJbml0V2FpdDogRmluaXNoZWQgZWFybHkgaW5pdGlhbGlzYXRpb24g
YnV0IHdhaXRpbmcgZm9yIGluZm9ybWF0aW9uCisgICAgICogZnJvbSB0aGUgcGVlciBvciBob3Rw
bHVnIHNjcmlwdHMuCisgICAgICovCisgICAgWGVuYnVzU3RhdGVJbml0V2FpdCAgICAgID0gMiwK
KworICAgIC8qCisgICAgICogSW5pdGlhbGlzZWQ6IFdhaXRpbmcgZm9yIGEgY29ubmVjdGlvbiBm
cm9tIHRoZSBwZWVyLgorICAgICAqLworICAgIFhlbmJ1c1N0YXRlSW5pdGlhbGlzZWQgICA9IDMs
CisKKyAgICBYZW5idXNTdGF0ZUNvbm5lY3RlZCAgICAgPSA0LAorCisgICAgLyoKKyAgICAgKiBD
bG9zaW5nOiBUaGUgZGV2aWNlIGlzIGJlaW5nIGNsb3NlZCBkdWUgdG8gYW4gZXJyb3Igb3IgYW4g
dW5wbHVnIGV2ZW50LgorICAgICAqLworICAgIFhlbmJ1c1N0YXRlQ2xvc2luZyAgICAgICA9IDUs
CisKKyAgICBYZW5idXNTdGF0ZUNsb3NlZCAgICAgICAgPSA2LAorCisgICAgLyoKKyAgICAgKiBS
ZWNvbmZpZ3VyaW5nOiBUaGUgZGV2aWNlIGlzIGJlaW5nIHJlY29uZmlndXJlZC4KKyAgICAgKi8K
KyAgICBYZW5idXNTdGF0ZVJlY29uZmlndXJpbmcgPSA3LAorCisgICAgWGVuYnVzU3RhdGVSZWNv
bmZpZ3VyZWQgID0gOAorfTsKK3R5cGVkZWYgZW51bSB4ZW5idXNfc3RhdGUgWGVuYnVzU3RhdGU7
CisKKyNlbmRpZiAvKiBfWEVOX1BVQkxJQ19JT19YRU5CVVNfSCAqLworCisvKgorICogTG9jYWwg
dmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNp
Yy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisg
KiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3hzbS9pby94c193aXJlLmggYi9p
bmNsdWRlL3hlbi94c20vaW8veHNfd2lyZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjRkZDY2MzIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi94c20vaW8veHNf
d2lyZS5oCkBAIC0wLDAgKzEsMTUzIEBACisvKgorICogRGV0YWlscyBvZiB0aGUgIndpcmUiIHBy
b3RvY29sIGJldHdlZW4gWGVuIFN0b3JlIERhZW1vbiBhbmQgY2xpZW50CisgKiBsaWJyYXJ5IG9y
IGd1ZXN0IGtlcm5lbC4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVl
IG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNv
ZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUi
KSwgdG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1
ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2Rp
ZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNl
bGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20g
dGhlIFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu
ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29w
aWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUg
U09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO
RCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBU
SEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUK
KyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0s
IERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0Yg
Q09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1Ig
SU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBE
RUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA1IFJ1c3R5
IFJ1c3NlbGwgSUJNIENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBfWFNfV0lSRV9ICisjZGVm
aW5lIF9YU19XSVJFX0gKKworZW51bSB4c2Rfc29ja21zZ190eXBlCit7CisgICAgWFNfQ09OVFJP
TCwKKyNkZWZpbmUgWFNfREVCVUcgWFNfQ09OVFJPTAorICAgIFhTX0RJUkVDVE9SWSwKKyAgICBY
U19SRUFELAorICAgIFhTX0dFVF9QRVJNUywKKyAgICBYU19XQVRDSCwKKyAgICBYU19VTldBVENI
LAorICAgIFhTX1RSQU5TQUNUSU9OX1NUQVJULAorICAgIFhTX1RSQU5TQUNUSU9OX0VORCwKKyAg
ICBYU19JTlRST0RVQ0UsCisgICAgWFNfUkVMRUFTRSwKKyAgICBYU19HRVRfRE9NQUlOX1BBVEgs
CisgICAgWFNfV1JJVEUsCisgICAgWFNfTUtESVIsCisgICAgWFNfUk0sCisgICAgWFNfU0VUX1BF
Uk1TLAorICAgIFhTX1dBVENIX0VWRU5ULAorICAgIFhTX0VSUk9SLAorICAgIFhTX0lTX0RPTUFJ
Tl9JTlRST0RVQ0VELAorICAgIFhTX1JFU1VNRSwKKyAgICBYU19TRVRfVEFSR0VULAorICAgIC8q
IFhTX1JFU1RSSUNUIGhhcyBiZWVuIHJlbW92ZWQgKi8KKyAgICBYU19SRVNFVF9XQVRDSEVTID0g
WFNfU0VUX1RBUkdFVCArIDIsCisgICAgWFNfRElSRUNUT1JZX1BBUlQsCisKKyAgICBYU19UWVBF
X0NPVU5ULCAgICAgIC8qIE51bWJlciBvZiB2YWxpZCB0eXBlcy4gKi8KKworICAgIFhTX0lOVkFM
SUQgPSAweGZmZmYgLyogR3VhcmFudGVlZCB0byByZW1haW4gYW4gaW52YWxpZCB0eXBlICovCit9
OworCisjZGVmaW5lIFhTX1dSSVRFX05PTkUgIk5PTkUiCisjZGVmaW5lIFhTX1dSSVRFX0NSRUFU
RSAiQ1JFQVRFIgorI2RlZmluZSBYU19XUklURV9DUkVBVEVfRVhDTCAiQ1JFQVRFfEVYQ0wiCisK
Ky8qIFdlIGhhbmQgZXJyb3JzIGFzIHN0cmluZ3MsIGZvciBwb3J0YWJpbGl0eS4gKi8KK3N0cnVj
dCB4c2RfZXJyb3JzCit7CisgICAgaW50IGVycm51bTsKKyAgICBjb25zdCBjaGFyICplcnJzdHJp
bmc7Cit9OworI2lmZGVmIEVJTlZBTAorI2RlZmluZSBYU0RfRVJST1IoeCkgeyB4LCAjeCB9Cisv
KiBMSU5URUQ6IHN0YXRpYyB1bnVzZWQgKi8KK3N0YXRpYyBzdHJ1Y3QgeHNkX2Vycm9ycyB4c2Rf
ZXJyb3JzW10KKyNpZiBkZWZpbmVkKF9fR05VQ19fKQorX19hdHRyaWJ1dGVfXygodW51c2VkKSkK
KyNlbmRpZgorICAgID0geworICAgIFhTRF9FUlJPUihFSU5WQUwpLAorICAgIFhTRF9FUlJPUihF
QUNDRVMpLAorICAgIFhTRF9FUlJPUihFRVhJU1QpLAorICAgIFhTRF9FUlJPUihFSVNESVIpLAor
ICAgIFhTRF9FUlJPUihFTk9FTlQpLAorICAgIFhTRF9FUlJPUihFTk9NRU0pLAorICAgIFhTRF9F
UlJPUihFTk9TUEMpLAorICAgIFhTRF9FUlJPUihFSU8pLAorICAgIFhTRF9FUlJPUihFTk9URU1Q
VFkpLAorICAgIFhTRF9FUlJPUihFTk9TWVMpLAorICAgIFhTRF9FUlJPUihFUk9GUyksCisgICAg
WFNEX0VSUk9SKEVCVVNZKSwKKyAgICBYU0RfRVJST1IoRUFHQUlOKSwKKyAgICBYU0RfRVJST1Io
RUlTQ09OTiksCisgICAgWFNEX0VSUk9SKEUyQklHKQorfTsKKyNlbmRpZgorCitzdHJ1Y3QgeHNk
X3NvY2ttc2cKK3sKKyAgICB1aW50MzJfdCB0eXBlOyAgLyogWFNfPz8/ICovCisgICAgdWludDMy
X3QgcmVxX2lkOy8qIFJlcXVlc3QgaWRlbnRpZmllciwgZWNob2VkIGluIGRhZW1vbidzIHJlc3Bv
bnNlLiAgKi8KKyAgICB1aW50MzJfdCB0eF9pZDsgLyogVHJhbnNhY3Rpb24gaWQgKDAgaWYgbm90
IHJlbGF0ZWQgdG8gYSB0cmFuc2FjdGlvbikuICovCisgICAgdWludDMyX3QgbGVuOyAgIC8qIExl
bmd0aCBvZiBkYXRhIGZvbGxvd2luZyB0aGlzLiAqLworCisgICAgLyogR2VuZXJhbGx5IGZvbGxv
d2VkIGJ5IG51bC10ZXJtaW5hdGVkIHN0cmluZyhzKS4gKi8KK307CisKK2VudW0geHNfd2F0Y2hf
dHlwZQoreworICAgIFhTX1dBVENIX1BBVEggPSAwLAorICAgIFhTX1dBVENIX1RPS0VOCit9Owor
CisvKgorICogYGluY29udGVudHMgMTUwIHhlbnN0b3JlX3N0cnVjdCBYZW5TdG9yZSB3aXJlIHBy
b3RvY29sLgorICoKKyAqIEludGVyLWRvbWFpbiBzaGFyZWQgbWVtb3J5IGNvbW11bmljYXRpb25z
LiAqLworI2RlZmluZSBYRU5TVE9SRV9SSU5HX1NJWkUgMTAyNAordHlwZWRlZiB1aW50MzJfdCBY
RU5TVE9SRV9SSU5HX0lEWDsKKyNkZWZpbmUgTUFTS19YRU5TVE9SRV9JRFgoaWR4KSAoKGlkeCkg
JiAoWEVOU1RPUkVfUklOR19TSVpFLTEpKQorc3RydWN0IHhlbnN0b3JlX2RvbWFpbl9pbnRlcmZh
Y2UgeworICAgIGNoYXIgcmVxW1hFTlNUT1JFX1JJTkdfU0laRV07IC8qIFJlcXVlc3RzIHRvIHhl
bnN0b3JlIGRhZW1vbi4gKi8KKyAgICBjaGFyIHJzcFtYRU5TVE9SRV9SSU5HX1NJWkVdOyAvKiBS
ZXBsaWVzIGFuZCBhc3luYyB3YXRjaCBldmVudHMuICovCisgICAgWEVOU1RPUkVfUklOR19JRFgg
cmVxX2NvbnMsIHJlcV9wcm9kOworICAgIFhFTlNUT1JFX1JJTkdfSURYIHJzcF9jb25zLCByc3Bf
cHJvZDsKKyAgICB1aW50MzJfdCBzZXJ2ZXJfZmVhdHVyZXM7IC8qIEJpdG1hcCBvZiBmZWF0dXJl
cyBzdXBwb3J0ZWQgYnkgdGhlIHNlcnZlciAqLworICAgIHVpbnQzMl90IGNvbm5lY3Rpb247Cit9
OworCisvKiBWaW9sYXRpbmcgdGhpcyBpcyB2ZXJ5IGJhZC4gIFNlZSBkb2NzL21pc2MveGVuc3Rv
cmUudHh0LiAqLworI2RlZmluZSBYRU5TVE9SRV9QQVlMT0FEX01BWCA0MDk2CisKKy8qIFZpb2xh
dGluZyB0aGVzZSBqdXN0IGdldHMgeW91IGFuIGVycm9yIGJhY2sgKi8KKyNkZWZpbmUgWEVOU1RP
UkVfQUJTX1BBVEhfTUFYIDMwNzIKKyNkZWZpbmUgWEVOU1RPUkVfUkVMX1BBVEhfTUFYIDIwNDgK
KworLyogVGhlIGFiaWxpdHkgdG8gcmVjb25uZWN0IGEgcmluZyAqLworI2RlZmluZSBYRU5TVE9S
RV9TRVJWRVJfRkVBVFVSRV9SRUNPTk5FQ1RJT04gMQorCisvKiBWYWxpZCB2YWx1ZXMgZm9yIHRo
ZSBjb25uZWN0aW9uIGZpZWxkICovCisjZGVmaW5lIFhFTlNUT1JFX0NPTk5FQ1RFRCAwIC8qIHRo
ZSBzdGVhZHktc3RhdGUgKi8KKyNkZWZpbmUgWEVOU1RPUkVfUkVDT05ORUNUIDEgLyogZ3Vlc3Qg
aGFzIGluaXRpYXRlZCBhIHJlY29ubmVjdCAqLworCisjZW5kaWYgLyogX1hTX1dJUkVfSCAqLwor
CisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAi
QlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRh
YnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3hzbS9r
ZXhlYy5oIGIvaW5jbHVkZS94ZW4veHNtL2tleGVjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNzRlYTk4MQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL3hzbS9r
ZXhlYy5oCkBAIC0wLDAgKzEsMjYzIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBrZXhl
Yy5oIC0gUHVibGljIHBvcnRpb24KKyAqIAorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl
ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2Yg
dGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNv
ZnR3YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9u
LCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29w
eSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29y
CisgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0
byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5v
dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICog
YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgor
ICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg
QU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU
RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5Z
IENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNU
SU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VU
IE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhF
UgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICogCisgKiBYZW4gcG9ydCB3cml0dGVu
IGJ5OgorICogLSBTaW1vbiAnSG9ybXMnIEhvcm1hbiA8aG9ybXNAdmVyZ2UubmV0LmF1PgorICog
LSBNYWdudXMgRGFtbSA8bWFnbnVzQHZhbGludXguY28uanA+CisgKi8KKworI2lmbmRlZiBfWEVO
X1BVQkxJQ19LRVhFQ19ICisjZGVmaW5lIF9YRU5fUFVCTElDX0tFWEVDX0gKKworCisvKiBUaGlz
IGZpbGUgZGVzY3JpYmVzIHRoZSBLZXhlYyAvIEtkdW1wIGh5cGVyY2FsbCBpbnRlcmZhY2UgZm9y
IFhlbi4KKyAqCisgKiBLZXhlYyB1bmRlciB2YW5pbGxhIExpbnV4IGFsbG93cyBhIHVzZXIgdG8g
cmVib290IHRoZSBwaHlzaWNhbCBtYWNoaW5lIAorICogaW50byBhIG5ldyB1c2VyLXNwZWNpZmll
ZCBrZXJuZWwuIFRoZSBYZW4gcG9ydCBleHRlbmRzIHRoaXMgaWRlYQorICogdG8gYWxsb3cgcmVi
b290aW5nIG9mIHRoZSBtYWNoaW5lIGZyb20gZG9tMC4gV2hlbiBrZXhlYyBmb3IgZG9tMAorICog
aXMgdXNlZCB0byByZWJvb3QsICBib3RoIHRoZSBoeXBlcnZpc29yIGFuZCB0aGUgZG9tYWlucyBn
ZXQgcmVwbGFjZWQKKyAqIHdpdGggc29tZSBvdGhlciBrZXJuZWwuIEl0IGlzIHBvc3NpYmxlIHRv
IGtleGVjIGJldHdlZW4gdmFuaWxsYQorICogTGludXggYW5kIFhlbiBhbmQgYmFjayBhZ2Fpbi4g
WGVuIHRvIFhlbiB3b3JrcyB3ZWxsIHRvby4KKyAqCisgKiBUaGUgaHlwZXJjYWxsIGludGVyZmFj
ZSBmb3Iga2V4ZWMgY2FuIGJlIGRpdmlkZWQgaW50byB0aHJlZSBtYWluCisgKiB0eXBlcyBvZiBo
eXBlcmNhbGwgb3BlcmF0aW9uczoKKyAqCisgKiAxKSBSYW5nZSBpbmZvcm1hdGlvbjoKKyAqICAg
IFRoaXMgaXMgdXNlZCBieSB0aGUgZG9tMCBrZXJuZWwgdG8gYXNrIHRoZSBoeXBlcnZpc29yIGFi
b3V0IHZhcmlvdXMgCisgKiAgICBhZGRyZXNzIGluZm9ybWF0aW9uLiBUaGlzIGluZm9ybWF0aW9u
IGlzIG5lZWRlZCB0byBhbGxvdyBrZXhlYy10b29scyAKKyAqICAgIHRvIGZpbGwgaW4gdGhlIEVM
RiBoZWFkZXJzIGZvciAvcHJvYy92bWNvcmUgcHJvcGVybHkuCisgKgorICogMikgTG9hZCBhbmQg
dW5sb2FkIG9mIGltYWdlczoKKyAqICAgIFRoZXJlIGFyZSBubyBiaWcgc3VycHJpc2VzIGhlcmUs
IHRoZSBrZXhlYyBiaW5hcnkgZnJvbSBrZXhlYy10b29scworICogICAgcnVucyBpbiB1c2Vyc3Bh
Y2UgaW4gZG9tMC4gVGhlIHRvb2wgbG9hZHMvdW5sb2FkcyBkYXRhIGludG8gdGhlCisgKiAgICBk
b20wIGtlcm5lbCBzdWNoIGFzIG5ldyBrZXJuZWwsIGluaXRyYW1mcyBhbmQgaHlwZXJ2aXNvci4g
V2hlbgorICogICAgbG9hZGVkIHRoZSBkb20wIGtlcm5lbCBwZXJmb3JtcyBhIGxvYWQgaHlwZXJj
YWxsIG9wZXJhdGlvbiwgYW5kCisgKiAgICBiZWZvcmUgcmVsZWFzaW5nIGFsbCBwYWdlIHJlZmVy
ZW5jZXMgdGhlIGRvbTAga2VybmVsIGNhbGxzIHVubG9hZC4KKyAqCisgKiAzKSBLZXhlYyBvcGVy
YXRpb246CisgKiAgICBUaGlzIGlzIHVzZWQgdG8gc3RhcnQgYSBwcmV2aW91c2x5IGxvYWRlZCBr
ZXJuZWwuCisgKi8KKworI2luY2x1ZGUgInhlbi5oIgorCisjaWYgZGVmaW5lZChfX2kzODZfXykg
fHwgZGVmaW5lZChfX3g4Nl82NF9fKQorI2RlZmluZSBLRVhFQ19YRU5fTk9fUEFHRVMgMTcKKyNl
bmRpZgorCisvKgorICogUHJvdG90eXBlIGZvciB0aGlzIGh5cGVyY2FsbCBpczoKKyAqICBpbnQg
a2V4ZWNfb3AoaW50IGNtZCwgdm9pZCAqYXJncykKKyAqIEBjbWQgID09IEtFWEVDX0NNRF8uLi4g
CisgKiAgICAgICAgICBLRVhFQyBvcGVyYXRpb24gdG8gcGVyZm9ybQorICogQGFyZ3MgPT0gT3Bl
cmF0aW9uLXNwZWNpZmljIGV4dHJhIGFyZ3VtZW50cyAoTlVMTCBpZiBub25lKS4KKyAqLworCisv
KgorICogS2V4ZWMgc3VwcG9ydHMgdHdvIHR5cGVzIG9mIG9wZXJhdGlvbjoKKyAqIC0ga2V4ZWMg
aW50byBhIHJlZ3VsYXIga2VybmVsLCB2ZXJ5IHNpbWlsYXIgdG8gYSBzdGFuZGFyZCByZWJvb3QK
KyAqICAgLSBLRVhFQ19UWVBFX0RFRkFVTFQgaXMgdXNlZCB0byBzcGVjaWZ5IHRoaXMgdHlwZQor
ICogLSBrZXhlYyBpbnRvIGEgc3BlY2lhbCAiY3Jhc2gga2VybmVsIiwgYWthIGtleGVjLW9uLXBh
bmljCisgKiAgIC0gS0VYRUNfVFlQRV9DUkFTSCBpcyB1c2VkIHRvIHNwZWNpZnkgdGhpcyB0eXBl
CisgKiAgIC0gcGFydHMgb2Ygb3VyIHN5c3RlbSBtYXkgYmUgYnJva2VuIGF0IGtleGVjLW9uLXBh
bmljIHRpbWUKKyAqICAgICAtIHRoZSBjb2RlIHNob3VsZCBiZSBrZXB0IGFzIHNpbXBsZSBhbmQg
c2VsZi1jb250YWluZWQgYXMgcG9zc2libGUKKyAqLworCisjZGVmaW5lIEtFWEVDX1RZUEVfREVG
QVVMVCAwCisjZGVmaW5lIEtFWEVDX1RZUEVfQ1JBU0ggICAxCisKKworLyogVGhlIGtleGVjIGlt
cGxlbWVudGF0aW9uIGZvciBYZW4gYWxsb3dzIHRoZSB1c2VyIHRvIGxvYWQgdHdvCisgKiB0eXBl
cyBvZiBrZXJuZWxzLCBLRVhFQ19UWVBFX0RFRkFVTFQgYW5kIEtFWEVDX1RZUEVfQ1JBU0guCisg
KiBBbGwgZGF0YSBuZWVkZWQgZm9yIGEga2V4ZWMgcmVib290IGlzIGtlcHQgaW4gb25lIHhlbl9r
ZXhlY19pbWFnZV90CisgKiBwZXIgImluc3RhbmNlIi4gVGhlIGRhdGEgbWFpbmx5IGNvbnNpc3Rz
IG9mIG1hY2hpbmUgYWRkcmVzcyBsaXN0cyB0byBwYWdlcworICogdG9nZXRoZXIgd2l0aCBkZXN0
aW5hdGlvbiBhZGRyZXNzZXMuIFRoZSBkYXRhIGluIHhlbl9rZXhlY19pbWFnZV90CisgKiBpcyBw
YXNzZWQgdG8gdGhlICJjb2RlIHBhZ2UiIHdoaWNoIGlzIG9uZSBwYWdlIG9mIGNvZGUgdGhhdCBw
ZXJmb3JtcworICogdGhlIGZpbmFsIHJlbG9jYXRpb25zIGJlZm9yZSBqdW1waW5nIHRvIHRoZSBu
ZXcga2VybmVsLgorICovCisgCit0eXBlZGVmIHN0cnVjdCB4ZW5fa2V4ZWNfaW1hZ2UgeworI2lm
IGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKKyAgICB1bnNpZ25lZCBs
b25nIHBhZ2VfbGlzdFtLRVhFQ19YRU5fTk9fUEFHRVNdOworI2VuZGlmCisgICAgdW5zaWduZWQg
bG9uZyBpbmRpcmVjdGlvbl9wYWdlOworICAgIHVuc2lnbmVkIGxvbmcgc3RhcnRfYWRkcmVzczsK
K30geGVuX2tleGVjX2ltYWdlX3Q7CisKKy8qCisgKiBQZXJmb3JtIGtleGVjIGhhdmluZyBwcmV2
aW91c2x5IGxvYWRlZCBhIGtleGVjIG9yIGtkdW1wIGtlcm5lbAorICogYXMgYXBwcm9wcmlhdGUu
CisgKiB0eXBlID09IEtFWEVDX1RZUEVfREVGQVVMVCBvciBLRVhFQ19UWVBFX0NSQVNIIFtpbl0K
KyAqCisgKiBDb250cm9sIGlzIHRyYW5zZmVycmVkIHRvIHRoZSBpbWFnZSBlbnRyeSBwb2ludCB3
aXRoIHRoZSBob3N0IGluCisgKiB0aGUgZm9sbG93aW5nIHN0YXRlLgorICoKKyAqIC0gVGhlIGlt
YWdlIG1heSBiZSBleGVjdXRlZCBvbiBhbnkgUENQVSBhbmQgYWxsIG90aGVyIFBDUFVzIGFyZQor
ICogICBzdG9wcGVkLgorICoKKyAqIC0gTG9jYWwgaW50ZXJydXB0cyBhcmUgZGlzYWJsZWQuCisg
KgorICogLSBSZWdpc3RlciB2YWx1ZXMgYXJlIHVuZGVmaW5lZC4KKyAqCisgKiAtIFRoZSBpbWFn
ZSBzZWdtZW50cyBoYXZlIHdyaXRlYWJsZSAxOjEgdmlydHVhbCB0byBtYWNoaW5lCisgKiAgIG1h
cHBpbmdzLiAgVGhlIGxvY2F0aW9uIG9mIGFueSBwYWdlIHRhYmxlcyBpcyB1bmRlZmluZWQgYW5k
IHRoZXNlCisgKiAgIHBhZ2UgdGFibGUgZnJhbWVzIGFyZSBub3QgYmUgbWFwcGVkLgorICovCisj
ZGVmaW5lIEtFWEVDX0NNRF9rZXhlYyAgICAgICAgICAgICAgICAgMAordHlwZWRlZiBzdHJ1Y3Qg
eGVuX2tleGVjX2V4ZWMgeworICAgIGludCB0eXBlOworfSB4ZW5fa2V4ZWNfZXhlY190OworCisv
KgorICogTG9hZC9VbmxvYWQga2VybmVsIGltYWdlIGZvciBrZXhlYyBvciBrZHVtcC4KKyAqIHR5
cGUgID09IEtFWEVDX1RZUEVfREVGQVVMVCBvciBLRVhFQ19UWVBFX0NSQVNIIFtpbl0KKyAqIGlt
YWdlID09IHJlbG9jYXRpb24gaW5mb3JtYXRpb24gZm9yIGtleGVjIChpZ25vcmVkIGZvciB1bmxv
YWQpIFtpbl0KKyAqLworI2RlZmluZSBLRVhFQ19DTURfa2V4ZWNfbG9hZF92MSAgICAgICAgIDEg
Lyogb2Jzb2xldGUgc2luY2UgMHgwMDA0MDQwMCAqLworI2RlZmluZSBLRVhFQ19DTURfa2V4ZWNf
dW5sb2FkX3YxICAgICAgIDIgLyogb2Jzb2xldGUgc2luY2UgMHgwMDA0MDQwMCAqLwordHlwZWRl
ZiBzdHJ1Y3QgeGVuX2tleGVjX2xvYWRfdjEgeworICAgIGludCB0eXBlOworICAgIHhlbl9rZXhl
Y19pbWFnZV90IGltYWdlOworfSB4ZW5fa2V4ZWNfbG9hZF92MV90OworCisjZGVmaW5lIEtFWEVD
X1JBTkdFX01BX0NSQVNIICAgICAgMCAvKiBtYWNoaW5lIGFkZHJlc3MgYW5kIHNpemUgb2YgY3Jh
c2ggYXJlYSAqLworI2RlZmluZSBLRVhFQ19SQU5HRV9NQV9YRU4gICAgICAgIDEgLyogbWFjaGlu
ZSBhZGRyZXNzIGFuZCBzaXplIG9mIFhlbiBpdHNlbGYgKi8KKyNkZWZpbmUgS0VYRUNfUkFOR0Vf
TUFfQ1BVICAgICAgICAyIC8qIG1hY2hpbmUgYWRkcmVzcyBhbmQgc2l6ZSBvZiBhIENQVSBub3Rl
ICovCisjZGVmaW5lIEtFWEVDX1JBTkdFX01BX1hFTkhFQVAgICAgMyAvKiBtYWNoaW5lIGFkZHJl
c3MgYW5kIHNpemUgb2YgeGVuaGVhcAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICogTm90ZSB0aGF0IGFsdGhvdWdoIHRoaXMgaXMgYWRqYWNlbnQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqIHRvIFhlbiBpdCBleGlzdHMgaW4gYSBzZXBhcmF0ZSBF
RkkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHJlZ2lvbiBvbiBpYTY0
LCBhbmQgdGh1cyBuZWVkcyB0byBiZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICogaW5zZXJ0ZWQgaW50byBpb21lbV9tYWNoaW5lIHNlcGFyYXRlbHkgKi8KKyNkZWZpbmUg
S0VYRUNfUkFOR0VfTUFfQk9PVF9QQVJBTSA0IC8qIE9ic29sZXRlOiBtYWNoaW5lIGFkZHJlc3Mg
YW5kIHNpemUgb2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRoZSBp
YTY0X2Jvb3RfcGFyYW0gKi8KKyNkZWZpbmUgS0VYRUNfUkFOR0VfTUFfRUZJX01FTU1BUCA1IC8q
IG1hY2hpbmUgYWRkcmVzcyBhbmQgc2l6ZSBvZgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICogb2YgdGhlIEVGSSBNZW1vcnkgTWFwICovCisjZGVmaW5lIEtFWEVDX1JBTkdF
X01BX1ZNQ09SRUlORk8gNiAvKiBtYWNoaW5lIGFkZHJlc3MgYW5kIHNpemUgb2Ygdm1jb3JlaW5m
byAqLworCisvKgorICogRmluZCB0aGUgYWRkcmVzcyBhbmQgc2l6ZSBvZiBjZXJ0YWluIG1lbW9y
eSBhcmVhcworICogcmFuZ2UgPT0gS0VYRUNfUkFOR0VfLi4uIFtpbl0KKyAqIG5yICAgID09IHBo
eXNpY2FsIENQVSBudW1iZXIgKHN0YXJ0aW5nIGZyb20gMCkgaWYgS0VYRUNfUkFOR0VfTUFfQ1BV
IFtpbl0KKyAqIHNpemUgID09IG51bWJlciBvZiBieXRlcyByZXNlcnZlZCBpbiB3aW5kb3cgW291
dF0KKyAqIHN0YXJ0ID09IGFkZHJlc3Mgb2YgdGhlIGZpcnN0IGJ5dGUgaW4gdGhlIHdpbmRvdyBb
b3V0XQorICovCisjZGVmaW5lIEtFWEVDX0NNRF9rZXhlY19nZXRfcmFuZ2UgICAgICAgMwordHlw
ZWRlZiBzdHJ1Y3QgeGVuX2tleGVjX3JhbmdlIHsKKyAgICBpbnQgcmFuZ2U7CisgICAgaW50IG5y
OworICAgIHVuc2lnbmVkIGxvbmcgc2l6ZTsKKyAgICB1bnNpZ25lZCBsb25nIHN0YXJ0OworfSB4
ZW5fa2V4ZWNfcmFuZ2VfdDsKKworI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPj0gMHgw
MDA0MDQwMAorLyoKKyAqIEEgY29udGlndW91cyBjaHVuayBvZiBhIGtleGVjIGltYWdlIGFuZCBp
dCdzIGRlc3RpbmF0aW9uIG1hY2hpbmUKKyAqIGFkZHJlc3MuCisgKi8KK3R5cGVkZWYgc3RydWN0
IHhlbl9rZXhlY19zZWdtZW50IHsKKyAgICB1bmlvbiB7CisgICAgICAgIFhFTl9HVUVTVF9IQU5E
TEUoY29uc3Rfdm9pZCkgaDsKKyAgICAgICAgdWludDY0X3QgX3BhZDsKKyAgICB9IGJ1ZjsKKyAg
ICB1aW50NjRfdCBidWZfc2l6ZTsKKyAgICB1aW50NjRfdCBkZXN0X21hZGRyOworICAgIHVpbnQ2
NF90IGRlc3Rfc2l6ZTsKK30geGVuX2tleGVjX3NlZ21lbnRfdDsKK0RFRklORV9YRU5fR1VFU1Rf
SEFORExFKHhlbl9rZXhlY19zZWdtZW50X3QpOworCisvKgorICogTG9hZCBhIGtleGVjIGltYWdl
IGludG8gbWVtb3J5LgorICoKKyAqIEZvciBLRVhFQ19UWVBFX0RFRkFVTFQgaW1hZ2VzLCB0aGUg
c2VnbWVudHMgbWF5IGJlIGFueXdoZXJlIGluIFJBTS4KKyAqIFRoZSBpbWFnZSBpcyByZWxvY2F0
ZWQgcHJpb3IgdG8gYmVpbmcgZXhlY3V0ZWQuCisgKgorICogRm9yIEtFWEVDX1RZUEVfQ1JBU0gg
aW1hZ2VzLCBlYWNoIHNlZ21lbnQgb2YgdGhlIGltYWdlIG11c3QgcmVzaWRlCisgKiBpbiB0aGUg
bWVtb3J5IHJlZ2lvbiByZXNlcnZlZCBmb3Iga2V4ZWMgKEtFWEVDX1JBTkdFX01BX0NSQVNIKSBh
bmQKKyAqIHRoZSBlbnRyeSBwb2ludCBtdXN0IGJlIHdpdGhpbiB0aGUgaW1hZ2UuIFRoZSBjYWxs
ZXIgaXMgcmVzcG9uc2libGUKKyAqIGZvciBlbnN1cmluZyB0aGF0IG11bHRpcGxlIGltYWdlcyBk
byBub3Qgb3ZlcmxhcC4KKyAqCisgKiBBbGwgaW1hZ2Ugc2VnbWVudHMgd2lsbCBiZSBsb2FkZWQg
dG8gdGhlaXIgZGVzdGluYXRpb24gbWFjaGluZQorICogYWRkcmVzc2VzIHByaW9yIHRvIGJlaW5n
IGV4ZWN1dGVkLiAgVGhlIHRyYWlsaW5nIHBvcnRpb24gb2YgYW55CisgKiBzZWdtZW50cyB3aXRo
IGEgc291cmNlIGJ1ZmZlciAoZnJvbSBkZXN0X21hZGRyICsgYnVmX3NpemUgdG8KKyAqIGRlc3Rf
bWFkZHIgKyBkZXN0X3NpemUpIHdpbGwgYmUgemVyb2VkLgorICoKKyAqIFNlZ21lbnRzIHdpdGgg
bm8gc291cmNlIGJ1ZmZlciB3aWxsIGJlIGFjY2Vzc2libGUgdG8gdGhlIGltYWdlIHdoZW4KKyAq
IGl0IGlzIGV4ZWN1dGVkLgorICovCisKKyNkZWZpbmUgS0VYRUNfQ01EX2tleGVjX2xvYWQgNAor
dHlwZWRlZiBzdHJ1Y3QgeGVuX2tleGVjX2xvYWQgeworICAgIHVpbnQ4X3QgIHR5cGU7ICAgICAg
ICAvKiBPbmUgb2YgS0VYRUNfVFlQRV8qICovCisgICAgdWludDhfdCAgX3BhZDsKKyAgICB1aW50
MTZfdCBhcmNoOyAgICAgICAgLyogRUxGIG1hY2hpbmUgdHlwZSAoRU1fKikuICovCisgICAgdWlu
dDMyX3QgbnJfc2VnbWVudHM7CisgICAgdW5pb24geworICAgICAgICBYRU5fR1VFU1RfSEFORExF
KHhlbl9rZXhlY19zZWdtZW50X3QpIGg7CisgICAgICAgIHVpbnQ2NF90IF9wYWQ7CisgICAgfSBz
ZWdtZW50czsKKyAgICB1aW50NjRfdCBlbnRyeV9tYWRkcjsgLyogaW1hZ2UgZW50cnkgcG9pbnQg
bWFjaGluZSBhZGRyZXNzLiAqLworfSB4ZW5fa2V4ZWNfbG9hZF90OworREVGSU5FX1hFTl9HVUVT
VF9IQU5ETEUoeGVuX2tleGVjX2xvYWRfdCk7CisKKy8qCisgKiBVbmxvYWQgYSBrZXhlYyBpbWFn
ZS4KKyAqCisgKiBUeXBlIG11c3QgYmUgb25lIG9mIEtFWEVDX1RZUEVfREVGQVVMVCBvciBLRVhF
Q19UWVBFX0NSQVNILgorICovCisjZGVmaW5lIEtFWEVDX0NNRF9rZXhlY191bmxvYWQgNQordHlw
ZWRlZiBzdHJ1Y3QgeGVuX2tleGVjX3VubG9hZCB7CisgICAgdWludDhfdCB0eXBlOworfSB4ZW5f
a2V4ZWNfdW5sb2FkX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fa2V4ZWNfdW5sb2Fk
X3QpOworCisvKgorICogRmlndXJlIG91dCB3aGV0aGVyIHdlIGhhdmUgYW4gaW1hZ2UgbG9hZGVk
LiBBIHJldHVybiB2YWx1ZSBvZgorICogemVybyBpbmRpY2F0ZXMgbm8gaW1hZ2UgbG9hZGVkLiBB
IHJldHVybiB2YWx1ZSBvZiBvbmUKKyAqIGluZGljYXRlcyBhbiBpbWFnZSBpcyBsb2FkZWQuIEEg
bmVnYXRpdmUgcmV0dXJuIHZhbHVlCisgKiBpbmRpY2F0ZXMgYW4gZXJyb3IuCisgKgorICogVHlw
ZSBtdXN0IGJlIG9uZSBvZiBLRVhFQ19UWVBFX0RFRkFVTFQgb3IgS0VYRUNfVFlQRV9DUkFTSC4K
KyAqLworI2RlZmluZSBLRVhFQ19DTURfa2V4ZWNfc3RhdHVzIDYKK3R5cGVkZWYgc3RydWN0IHhl
bl9rZXhlY19zdGF0dXMgeworICAgIHVpbnQ4X3QgdHlwZTsKK30geGVuX2tleGVjX3N0YXR1c190
OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2tleGVjX3N0YXR1c190KTsKKworI2Vsc2Ug
LyogX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAwNDA0MDAgKi8KKworI2RlZmluZSBL
RVhFQ19DTURfa2V4ZWNfbG9hZCBLRVhFQ19DTURfa2V4ZWNfbG9hZF92MQorI2RlZmluZSBLRVhF
Q19DTURfa2V4ZWNfdW5sb2FkIEtFWEVDX0NNRF9rZXhlY191bmxvYWRfdjEKKyNkZWZpbmUgeGVu
X2tleGVjX2xvYWQgeGVuX2tleGVjX2xvYWRfdjEKKyNkZWZpbmUgeGVuX2tleGVjX2xvYWRfdCB4
ZW5fa2V4ZWNfbG9hZF92MV90CisKKyNlbmRpZgorCisjZW5kaWYgLyogX1hFTl9QVUJMSUNfS0VY
RUNfSCAqLworCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxl
LXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICog
aW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUv
eGVuL3hzbS9tZW1vcnkuaCBiL2luY2x1ZGUveGVuL3hzbS9tZW1vcnkuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTM4NmRmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVk
ZS94ZW4veHNtL21lbW9yeS5oCkBAIC0wLDAgKzEsNjY1IEBACisvKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCisgKiBtZW1vcnkuaAorICogCisgKiBNZW1vcnkgcmVzZXJ2YXRpb24gYW5kIGluZm9ybWF0
aW9uLgorICogCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJn
ZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFu
ZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAq
IGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRo
b3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdl
LCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVz
IG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3
YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl
cm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1
YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUg
SVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVT
UyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhP
UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMg
T1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs
IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVD
VElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJ
TiBUSEUgU09GVFdBUkUuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA1LCBLZWlyIEZyYXNlciA8
a2VpckB4ZW5zb3VyY2UuY29tPgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElDX01FTU9SWV9I
X18KKyNkZWZpbmUgX19YRU5fUFVCTElDX01FTU9SWV9IX18KKworI2luY2x1ZGUgInhlbi5oIgor
I2luY2x1ZGUgInBoeXNkZXYuaCIKKworLyoKKyAqIEluY3JlYXNlIG9yIGRlY3JlYXNlIHRoZSBz
cGVjaWZpZWQgZG9tYWluJ3MgbWVtb3J5IHJlc2VydmF0aW9uLiBSZXR1cm5zIHRoZQorICogbnVt
YmVyIG9mIGV4dGVudHMgc3VjY2Vzc2Z1bGx5IGFsbG9jYXRlZCBvciBmcmVlZC4KKyAqIGFyZyA9
PSBhZGRyIG9mIHN0cnVjdCB4ZW5fbWVtb3J5X3Jlc2VydmF0aW9uLgorICovCisjZGVmaW5lIFhF
Tk1FTV9pbmNyZWFzZV9yZXNlcnZhdGlvbiAwCisjZGVmaW5lIFhFTk1FTV9kZWNyZWFzZV9yZXNl
cnZhdGlvbiAxCisjZGVmaW5lIFhFTk1FTV9wb3B1bGF0ZV9waHlzbWFwICAgICA2CisKKyNpZiBf
X1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fID49IDB4MDAwMzAyMDkKKy8qCisgKiBNYXhpbXVtICMg
Yml0cyBhZGRyZXNzYWJsZSBieSB0aGUgdXNlciBvZiB0aGUgYWxsb2NhdGVkIHJlZ2lvbiAoZS5n
LiwgSS9PIAorICogZGV2aWNlcyBvZnRlbiBoYXZlIGEgMzItYml0IGxpbWl0YXRpb24gZXZlbiBp
biA2NC1iaXQgc3lzdGVtcykuIElmIHplcm8gCisgKiB0aGVuIHRoZSB1c2VyIGhhcyBubyBhZGRy
ZXNzaW5nIHJlc3RyaWN0aW9uLiBUaGlzIGZpZWxkIGlzIG5vdCB1c2VkIGJ5IAorICogWEVOTUVN
X2RlY3JlYXNlX3Jlc2VydmF0aW9uLgorICovCisjZGVmaW5lIFhFTk1FTUZfYWRkcmVzc19iaXRz
KHgpICAgICAoeCkKKyNkZWZpbmUgWEVOTUVNRl9nZXRfYWRkcmVzc19iaXRzKHgpICgoeCkgJiAw
eGZmdSkKKy8qIE5VTUEgbm9kZSB0byBhbGxvY2F0ZSBmcm9tLiAqLworI2RlZmluZSBYRU5NRU1G
X25vZGUoeCkgICAgICgoKHgpICsgMSkgPDwgOCkKKyNkZWZpbmUgWEVOTUVNRl9nZXRfbm9kZSh4
KSAoKCgoeCkgPj4gOCkgLSAxKSAmIDB4ZmZ1KQorLyogRmxhZyB0byBwb3B1bGF0ZSBwaHlzbWFw
IHdpdGggcG9wdWxhdGUtb24tZGVtYW5kIGVudHJpZXMgKi8KKyNkZWZpbmUgWEVOTUVNRl9wb3B1
bGF0ZV9vbl9kZW1hbmQgKDE8PDE2KQorLyogRmxhZyB0byByZXF1ZXN0IGFsbG9jYXRpb24gb25s
eSBmcm9tIHRoZSBub2RlIHNwZWNpZmllZCAqLworI2RlZmluZSBYRU5NRU1GX2V4YWN0X25vZGVf
cmVxdWVzdCAgKDE8PDE3KQorI2RlZmluZSBYRU5NRU1GX2V4YWN0X25vZGUobikgKFhFTk1FTUZf
bm9kZShuKSB8IFhFTk1FTUZfZXhhY3Rfbm9kZV9yZXF1ZXN0KQorLyogRmxhZyB0byBpbmRpY2F0
ZSB0aGUgbm9kZSBzcGVjaWZpZWQgaXMgdmlydHVhbCBub2RlICovCisjZGVmaW5lIFhFTk1FTUZf
dm5vZGUgICgxPDwxOCkKKyNlbmRpZgorCitzdHJ1Y3QgeGVuX21lbW9yeV9yZXNlcnZhdGlvbiB7
CisKKyAgICAvKgorICAgICAqIFhFTk1FTV9pbmNyZWFzZV9yZXNlcnZhdGlvbjoKKyAgICAgKiAg
IE9VVDogTUZOICgqbm90KiBHTUZOKSBiYXNlcyBvZiBleHRlbnRzIHRoYXQgd2VyZSBhbGxvY2F0
ZWQKKyAgICAgKiBYRU5NRU1fZGVjcmVhc2VfcmVzZXJ2YXRpb246CisgICAgICogICBJTjogIEdN
Rk4gYmFzZXMgb2YgZXh0ZW50cyB0byBmcmVlCisgICAgICogWEVOTUVNX3BvcHVsYXRlX3BoeXNt
YXA6CisgICAgICogICBJTjogIEdQRk4gYmFzZXMgb2YgZXh0ZW50cyB0byBwb3B1bGF0ZSB3aXRo
IG1lbW9yeQorICAgICAqICAgT1VUOiBHTUZOIGJhc2VzIG9mIGV4dGVudHMgdGhhdCB3ZXJlIGFs
bG9jYXRlZAorICAgICAqICAgKE5CLiBUaGlzIGNvbW1hbmQgYWxzbyB1cGRhdGVzIHRoZSBtYWNo
X3RvX3BoeXMgdHJhbnNsYXRpb24gdGFibGUpCisgICAgICogWEVOTUVNX2NsYWltX3BhZ2VzOgor
ICAgICAqICAgSU46IG11c3QgYmUgemVybworICAgICAqLworICAgIFhFTl9HVUVTVF9IQU5ETEUo
eGVuX3Bmbl90KSBleHRlbnRfc3RhcnQ7CisKKyAgICAvKiBOdW1iZXIgb2YgZXh0ZW50cywgYW5k
IHNpemUvYWxpZ25tZW50IG9mIGVhY2ggKDJeZXh0ZW50X29yZGVyIHBhZ2VzKS4gKi8KKyAgICB4
ZW5fdWxvbmdfdCAgICBucl9leHRlbnRzOworICAgIHVuc2lnbmVkIGludCAgIGV4dGVudF9vcmRl
cjsKKworI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPj0gMHgwMDAzMDIwOQorICAgIC8q
IFhFTk1FTUYgZmxhZ3MuICovCisgICAgdW5zaWduZWQgaW50ICAgbWVtX2ZsYWdzOworI2Vsc2UK
KyAgICB1bnNpZ25lZCBpbnQgICBhZGRyZXNzX2JpdHM7CisjZW5kaWYKKworICAgIC8qCisgICAg
ICogRG9tYWluIHdob3NlIHJlc2VydmF0aW9uIGlzIGJlaW5nIGNoYW5nZWQuCisgICAgICogVW5w
cml2aWxlZ2VkIGRvbWFpbnMgY2FuIHNwZWNpZnkgb25seSBET01JRF9TRUxGLgorICAgICAqLwor
ICAgIGRvbWlkX3QgICAgICAgIGRvbWlkOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9tZW1vcnlf
cmVzZXJ2YXRpb24geGVuX21lbW9yeV9yZXNlcnZhdGlvbl90OworREVGSU5FX1hFTl9HVUVTVF9I
QU5ETEUoeGVuX21lbW9yeV9yZXNlcnZhdGlvbl90KTsKKworLyoKKyAqIEFuIGF0b21pYyBleGNo
YW5nZSBvZiBtZW1vcnkgcGFnZXMuIElmIHJldHVybiBjb2RlIGlzIHplcm8gdGhlbgorICogQG91
dC5leHRlbnRfbGlzdCBwcm92aWRlcyBHTUZOcyBvZiB0aGUgbmV3bHktYWxsb2NhdGVkIG1lbW9y
eS4KKyAqIFJldHVybnMgemVybyBvbiBjb21wbGV0ZSBzdWNjZXNzLCBvdGhlcndpc2UgYSBuZWdh
dGl2ZSBlcnJvciBjb2RlLgorICogT24gY29tcGxldGUgc3VjY2VzcyB0aGVuIGFsd2F5cyBAbnJf
ZXhjaGFuZ2VkID09IEBpbi5ucl9leHRlbnRzLgorICogT24gcGFydGlhbCBzdWNjZXNzIEBucl9l
eGNoYW5nZWQgaW5kaWNhdGVzIGhvdyBtdWNoIHdvcmsgd2FzIGRvbmUuCisgKgorICogTm90ZSB0
aGF0IG9ubHkgUFYgZ3Vlc3RzIGNhbiB1c2UgdGhpcyBvcGVyYXRpb24uCisgKi8KKyNkZWZpbmUg
WEVOTUVNX2V4Y2hhbmdlICAgICAgICAgICAgIDExCitzdHJ1Y3QgeGVuX21lbW9yeV9leGNoYW5n
ZSB7CisgICAgLyoKKyAgICAgKiBbSU5dIERldGFpbHMgb2YgbWVtb3J5IGV4dGVudHMgdG8gYmUg
ZXhjaGFuZ2VkIChHTUZOIGJhc2VzKS4KKyAgICAgKiBOb3RlIHRoYXQgQGluLmFkZHJlc3NfYml0
cyBpcyBpZ25vcmVkIGFuZCB1bnVzZWQuCisgICAgICovCisgICAgc3RydWN0IHhlbl9tZW1vcnlf
cmVzZXJ2YXRpb24gaW47CisKKyAgICAvKgorICAgICAqIFtJTi9PVVRdIERldGFpbHMgb2YgbmV3
IG1lbW9yeSBleHRlbnRzLgorICAgICAqIFdlIHJlcXVpcmUgdGhhdDoKKyAgICAgKiAgMS4gQGlu
LmRvbWlkID09IEBvdXQuZG9taWQKKyAgICAgKiAgMi4gQGluLm5yX2V4dGVudHMgIDw8IEBpbi5l
eHRlbnRfb3JkZXIgPT0gCisgICAgICogICAgIEBvdXQubnJfZXh0ZW50cyA8PCBAb3V0LmV4dGVu
dF9vcmRlcgorICAgICAqICAzLiBAaW4uZXh0ZW50X3N0YXJ0IGFuZCBAb3V0LmV4dGVudF9zdGFy
dCBsaXN0cyBtdXN0IG5vdCBvdmVybGFwCisgICAgICogIDQuIEBvdXQuZXh0ZW50X3N0YXJ0IGxp
c3RzIEdQRk4gYmFzZXMgdG8gYmUgcG9wdWxhdGVkCisgICAgICogIDUuIEBvdXQuZXh0ZW50X3N0
YXJ0IGlzIG92ZXJ3cml0dGVuIHdpdGggYWxsb2NhdGVkIEdNRk4gYmFzZXMKKyAgICAgKi8KKyAg
ICBzdHJ1Y3QgeGVuX21lbW9yeV9yZXNlcnZhdGlvbiBvdXQ7CisKKyAgICAvKgorICAgICAqIFtP
VVRdIE51bWJlciBvZiBpbnB1dCBleHRlbnRzIHRoYXQgd2VyZSBzdWNjZXNzZnVsbHkgZXhjaGFu
Z2VkOgorICAgICAqICAxLiBUaGUgZmlyc3QgQG5yX2V4Y2hhbmdlZCBpbnB1dCBleHRlbnRzIHdl
cmUgc3VjY2Vzc2Z1bGx5CisgICAgICogICAgIGRlYWxsb2NhdGVkLgorICAgICAqICAyLiBUaGUg
Y29ycmVzcG9uZGluZyBmaXJzdCBlbnRyaWVzIGluIHRoZSBvdXRwdXQgZXh0ZW50IGxpc3QgY29y
cmVjdGx5CisgICAgICogICAgIGluZGljYXRlIHRoZSBHTUZOcyB0aGF0IHdlcmUgc3VjY2Vzc2Z1
bGx5IGV4Y2hhbmdlZC4KKyAgICAgKiAgMy4gQWxsIG90aGVyIGlucHV0IGFuZCBvdXRwdXQgZXh0
ZW50cyBhcmUgdW50b3VjaGVkLgorICAgICAqICA0LiBJZiBub3QgYWxsIGlucHV0IGV4ZW50cyBh
cmUgZXhjaGFuZ2VkIHRoZW4gdGhlIHJldHVybiBjb2RlIG9mIHRoaXMKKyAgICAgKiAgICAgY29t
bWFuZCB3aWxsIGJlIG5vbi16ZXJvLgorICAgICAqICA1LiBUSElTIEZJRUxEIE1VU1QgQkUgSU5J
VElBTElTRUQgVE8gWkVSTyBCWSBUSEUgQ0FMTEVSIQorICAgICAqLworICAgIHhlbl91bG9uZ190
IG5yX2V4Y2hhbmdlZDsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5fbWVtb3J5X2V4Y2hhbmdlIHhl
bl9tZW1vcnlfZXhjaGFuZ2VfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9tZW1vcnlf
ZXhjaGFuZ2VfdCk7CisKKy8qCisgKiBSZXR1cm5zIHRoZSBtYXhpbXVtIG1hY2hpbmUgZnJhbWUg
bnVtYmVyIG9mIG1hcHBlZCBSQU0gaW4gdGhpcyBzeXN0ZW0uCisgKiBUaGlzIGNvbW1hbmQgYWx3
YXlzIHN1Y2NlZWRzIChpdCBuZXZlciByZXR1cm5zIGFuIGVycm9yIGNvZGUpLgorICogYXJnID09
IE5VTEwuCisgKi8KKyNkZWZpbmUgWEVOTUVNX21heGltdW1fcmFtX3BhZ2UgICAgIDIKKworLyoK
KyAqIFJldHVybnMgdGhlIGN1cnJlbnQgb3IgbWF4aW11bSBtZW1vcnkgcmVzZXJ2YXRpb24sIGlu
IHBhZ2VzLCBvZiB0aGUKKyAqIHNwZWNpZmllZCBkb21haW4gKG1heSBiZSBET01JRF9TRUxGKS4g
UmV0dXJucyAtdmUgZXJyY29kZSBvbiBmYWlsdXJlLgorICogYXJnID09IGFkZHIgb2YgZG9taWRf
dC4KKyAqLworI2RlZmluZSBYRU5NRU1fY3VycmVudF9yZXNlcnZhdGlvbiAgMworI2RlZmluZSBY
RU5NRU1fbWF4aW11bV9yZXNlcnZhdGlvbiAgNAorCisvKgorICogUmV0dXJucyB0aGUgbWF4aW11
bSBHUEZOIGluIHVzZSBieSB0aGUgZ3Vlc3QsIG9yIC12ZSBlcnJjb2RlIG9uIGZhaWx1cmUuCisg
Ki8KKyNkZWZpbmUgWEVOTUVNX21heGltdW1fZ3BmbiAgICAgICAgIDE0CisKKy8qCisgKiBSZXR1
cm5zIGEgbGlzdCBvZiBNRk4gYmFzZXMgb2YgMk1CIGV4dGVudHMgY29tcHJpc2luZyB0aGUgbWFj
aGluZV90b19waHlzCisgKiBtYXBwaW5nIHRhYmxlLiBBcmNoaXRlY3R1cmVzIHdoaWNoIGRvIG5v
dCBoYXZlIGEgbTJwIHRhYmxlIGRvIG5vdCBpbXBsZW1lbnQKKyAqIHRoaXMgY29tbWFuZC4KKyAq
IGFyZyA9PSBhZGRyIG9mIHhlbl9tYWNocGh5c19tZm5fbGlzdF90LgorICovCisjZGVmaW5lIFhF
Tk1FTV9tYWNocGh5c19tZm5fbGlzdCAgICA1CitzdHJ1Y3QgeGVuX21hY2hwaHlzX21mbl9saXN0
IHsKKyAgICAvKgorICAgICAqIFNpemUgb2YgdGhlICdleHRlbnRfc3RhcnQnIGFycmF5LiBGZXdl
ciBlbnRyaWVzIHdpbGwgYmUgZmlsbGVkIGlmIHRoZQorICAgICAqIG1hY2hwaHlzIHRhYmxlIGlz
IHNtYWxsZXIgdGhhbiBtYXhfZXh0ZW50cyAqIDJNQi4KKyAgICAgKi8KKyAgICB1bnNpZ25lZCBp
bnQgbWF4X2V4dGVudHM7CisKKyAgICAvKgorICAgICAqIFBvaW50ZXIgdG8gYnVmZmVyIHRvIGZp
bGwgd2l0aCBsaXN0IG9mIGV4dGVudCBzdGFydHMuIElmIHRoZXJlIGFyZQorICAgICAqIGFueSBs
YXJnZSBkaXNjb250aWd1aXRpZXMgaW4gdGhlIG1hY2hpbmUgYWRkcmVzcyBzcGFjZSwgMk1CIGdh
cHMgaW4KKyAgICAgKiB0aGUgbWFjaHBoeXMgdGFibGUgd2lsbCBiZSByZXByZXNlbnRlZCBieSBh
biBNRk4gYmFzZSBvZiB6ZXJvLgorICAgICAqLworICAgIFhFTl9HVUVTVF9IQU5ETEUoeGVuX3Bm
bl90KSBleHRlbnRfc3RhcnQ7CisKKyAgICAvKgorICAgICAqIE51bWJlciBvZiBleHRlbnRzIHdy
aXR0ZW4gdG8gdGhlIGFib3ZlIGFycmF5LiBUaGlzIHdpbGwgYmUgc21hbGxlcgorICAgICAqIHRo
YW4gJ21heF9leHRlbnRzJyBpZiB0aGUgbWFjaHBoeXMgdGFibGUgaXMgc21hbGxlciB0aGFuIG1h
eF9lICogMk1CLgorICAgICAqLworICAgIHVuc2lnbmVkIGludCBucl9leHRlbnRzOworfTsKK3R5
cGVkZWYgc3RydWN0IHhlbl9tYWNocGh5c19tZm5fbGlzdCB4ZW5fbWFjaHBoeXNfbWZuX2xpc3Rf
dDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9tYWNocGh5c19tZm5fbGlzdF90KTsKKwor
LyoKKyAqIEZvciBhIGNvbXBhdCBjYWxsZXIsIHRoaXMgaXMgaWRlbnRpY2FsIHRvIFhFTk1FTV9t
YWNocGh5c19tZm5fbGlzdC4KKyAqCisgKiBGb3IgYSBub24gY29tcGF0IGNhbGxlciwgdGhpcyBm
dW5jdGlvbnMgc2ltaWxhcmx5IHRvCisgKiBYRU5NRU1fbWFjaHBoeXNfbWZuX2xpc3QsIGJ1dCBy
ZXR1cm5zIHRoZSBtZm5zIG1ha2luZyB1cCB0aGUgY29tcGF0aWJpbGl0eQorICogbTJwIHRhYmxl
LgorICovCisjZGVmaW5lIFhFTk1FTV9tYWNocGh5c19jb21wYXRfbWZuX2xpc3QgICAgIDI1CisK
Ky8qCisgKiBSZXR1cm5zIHRoZSBsb2NhdGlvbiBpbiB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2Ugb2Yg
dGhlIG1hY2hpbmVfdG9fcGh5cworICogbWFwcGluZyB0YWJsZS4gQXJjaGl0ZWN0dXJlcyB3aGlj
aCBkbyBub3QgaGF2ZSBhIG0ycCB0YWJsZSwgb3Igd2hpY2ggZG8gbm90CisgKiBtYXAgaXQgYnkg
ZGVmYXVsdCBpbnRvIGd1ZXN0IGFkZHJlc3Mgc3BhY2UsIGRvIG5vdCBpbXBsZW1lbnQgdGhpcyBj
b21tYW5kLgorICogYXJnID09IGFkZHIgb2YgeGVuX21hY2hwaHlzX21hcHBpbmdfdC4KKyAqLwor
I2RlZmluZSBYRU5NRU1fbWFjaHBoeXNfbWFwcGluZyAgICAgMTIKK3N0cnVjdCB4ZW5fbWFjaHBo
eXNfbWFwcGluZyB7CisgICAgeGVuX3Vsb25nX3Qgdl9zdGFydCwgdl9lbmQ7IC8qIFN0YXJ0IGFu
ZCBlbmQgdmlydHVhbCBhZGRyZXNzZXMuICAgKi8KKyAgICB4ZW5fdWxvbmdfdCBtYXhfbWZuOyAg
ICAgICAgLyogTWF4aW11bSBNRk4gdGhhdCBjYW4gYmUgbG9va2VkIHVwLiAqLworfTsKK3R5cGVk
ZWYgc3RydWN0IHhlbl9tYWNocGh5c19tYXBwaW5nIHhlbl9tYWNocGh5c19tYXBwaW5nX3Q7CitE
RUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fbWFjaHBoeXNfbWFwcGluZ190KTsKKworLyogU291
cmNlIG1hcHBpbmcgc3BhY2UuICovCisvKiBgIGVudW0gcGh5c19tYXBfc3BhY2UgeyAqLworI2Rl
ZmluZSBYRU5NQVBTUEFDRV9zaGFyZWRfaW5mbyAgMCAvKiBzaGFyZWQgaW5mbyBwYWdlICovCisj
ZGVmaW5lIFhFTk1BUFNQQUNFX2dyYW50X3RhYmxlICAxIC8qIGdyYW50IHRhYmxlIHBhZ2UgKi8K
KyNkZWZpbmUgWEVOTUFQU1BBQ0VfZ21mbiAgICAgICAgIDIgLyogR01GTiAqLworI2RlZmluZSBY
RU5NQVBTUEFDRV9nbWZuX3JhbmdlICAgMyAvKiBHTUZOIHJhbmdlLCBYRU5NRU1fYWRkX3RvX3Bo
eXNtYXAgb25seS4gKi8KKyNkZWZpbmUgWEVOTUFQU1BBQ0VfZ21mbl9mb3JlaWduIDQgLyogR01G
TiBmcm9tIGFub3RoZXIgZG9tLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KiBYRU5NRU1fYWRkX3RvX3BoeXNtYXBfYmF0Y2ggb25seS4gKi8KKyNkZWZpbmUgWEVOTUFQU1BB
Q0VfZGV2X21taW8gICAgIDUgLyogZGV2aWNlIG1taW8gcmVnaW9uCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEFSTSBvbmx5OyB0aGUgcmVnaW9uIGlzIG1hcHBlZCBpbgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFnZS0yIHVzaW5nIHRoZSBO
b3JtYWwgTWVtb3J5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElubmVy
L091dGVyIFdyaXRlLUJhY2sgQ2FjaGVhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1lbW9yeSBhdHRyaWJ1dGUuICovCisvKiBgIH0gKi8KKworLyoKKyAqIFNldHMg
dGhlIEdQRk4gYXQgd2hpY2ggYSBwYXJ0aWN1bGFyIHBhZ2UgYXBwZWFycyBpbiB0aGUgc3BlY2lm
aWVkIGd1ZXN0J3MKKyAqIHBzZXVkb3BoeXNpY2FsIGFkZHJlc3Mgc3BhY2UuCisgKiBhcmcgPT0g
YWRkciBvZiB4ZW5fYWRkX3RvX3BoeXNtYXBfdC4KKyAqLworI2RlZmluZSBYRU5NRU1fYWRkX3Rv
X3BoeXNtYXAgICAgICA3CitzdHJ1Y3QgeGVuX2FkZF90b19waHlzbWFwIHsKKyAgICAvKiBXaGlj
aCBkb21haW4gdG8gY2hhbmdlIHRoZSBtYXBwaW5nIGZvci4gKi8KKyAgICBkb21pZF90IGRvbWlk
OworCisgICAgLyogTnVtYmVyIG9mIHBhZ2VzIHRvIGdvIHRocm91Z2ggZm9yIGdtZm5fcmFuZ2Ug
Ki8KKyAgICB1aW50MTZfdCAgICBzaXplOworCisgICAgdW5zaWduZWQgaW50IHNwYWNlOyAvKiA9
PiBlbnVtIHBoeXNfbWFwX3NwYWNlICovCisKKyNkZWZpbmUgWEVOTUFQSURYX2dyYW50X3RhYmxl
X3N0YXR1cyAweDgwMDAwMDAwCisKKyAgICAvKiBJbmRleCBpbnRvIHNwYWNlIGJlaW5nIG1hcHBl
ZC4gKi8KKyAgICB4ZW5fdWxvbmdfdCBpZHg7CisKKyAgICAvKiBHUEZOIGluIGRvbWlkIHdoZXJl
IHRoZSBzb3VyY2UgbWFwcGluZyBwYWdlIHNob3VsZCBhcHBlYXIuICovCisgICAgeGVuX3Bmbl90
ICAgICBncGZuOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9hZGRfdG9fcGh5c21hcCB4ZW5fYWRk
X3RvX3BoeXNtYXBfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9hZGRfdG9fcGh5c21h
cF90KTsKKworLyogQSBiYXRjaGVkIHZlcnNpb24gb2YgYWRkX3RvX3BoeXNtYXAuICovCisjZGVm
aW5lIFhFTk1FTV9hZGRfdG9fcGh5c21hcF9iYXRjaCAyMworc3RydWN0IHhlbl9hZGRfdG9fcGh5
c21hcF9iYXRjaCB7CisgICAgLyogSU4gKi8KKyAgICAvKiBXaGljaCBkb21haW4gdG8gY2hhbmdl
IHRoZSBtYXBwaW5nIGZvci4gKi8KKyAgICBkb21pZF90IGRvbWlkOworICAgIHVpbnQxNl90IHNw
YWNlOyAvKiA9PiBlbnVtIHBoeXNfbWFwX3NwYWNlICovCisKKyAgICAvKiBOdW1iZXIgb2YgcGFn
ZXMgdG8gZ28gdGhyb3VnaCAqLworICAgIHVpbnQxNl90IHNpemU7CisKKyNpZiBfX1hFTl9JTlRF
UkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDA0MDcwMAorICAgIGRvbWlkX3QgZm9yZWlnbl9kb21pZDsg
LyogSUZGIGdtZm5fZm9yZWlnbi4gU2hvdWxkIGJlIDAgZm9yIG90aGVyIHNwYWNlcy4gKi8KKyNl
bHNlCisgICAgdW5pb24geGVuX2FkZF90b19waHlzbWFwX2JhdGNoX2V4dHJhIHsKKyAgICAgICAg
ZG9taWRfdCBmb3JlaWduX2RvbWlkOyAvKiBnbWZuX2ZvcmVpZ24gKi8KKyAgICAgICAgdWludDE2
X3QgcmVzMDsgIC8qIEFsbCB0aGUgb3RoZXIgc3BhY2VzLiBTaG91bGQgYmUgMCAqLworICAgIH0g
dTsKKyNlbmRpZgorCisgICAgLyogSW5kZXhlcyBpbnRvIHNwYWNlIGJlaW5nIG1hcHBlZC4gKi8K
KyAgICBYRU5fR1VFU1RfSEFORExFKHhlbl91bG9uZ190KSBpZHhzOworCisgICAgLyogR1BGTiBp
biBkb21pZCB3aGVyZSB0aGUgc291cmNlIG1hcHBpbmcgcGFnZSBzaG91bGQgYXBwZWFyLiAqLwor
ICAgIFhFTl9HVUVTVF9IQU5ETEUoeGVuX3Bmbl90KSBncGZuczsKKworICAgIC8qIE9VVCAqLwor
CisgICAgLyogUGVyIGluZGV4IGVycm9yIGNvZGUuICovCisgICAgWEVOX0dVRVNUX0hBTkRMRShp
bnQpIGVycnM7Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2FkZF90b19waHlzbWFwX2JhdGNoIHhl
bl9hZGRfdG9fcGh5c21hcF9iYXRjaF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2Fk
ZF90b19waHlzbWFwX2JhdGNoX3QpOworCisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8
IDB4MDAwNDA0MDAKKyNkZWZpbmUgWEVOTUVNX2FkZF90b19waHlzbWFwX3JhbmdlIFhFTk1FTV9h
ZGRfdG9fcGh5c21hcF9iYXRjaAorI2RlZmluZSB4ZW5fYWRkX3RvX3BoeXNtYXBfcmFuZ2UgeGVu
X2FkZF90b19waHlzbWFwX2JhdGNoCit0eXBlZGVmIHN0cnVjdCB4ZW5fYWRkX3RvX3BoeXNtYXBf
YmF0Y2ggeGVuX2FkZF90b19waHlzbWFwX3JhbmdlX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRM
RSh4ZW5fYWRkX3RvX3BoeXNtYXBfcmFuZ2VfdCk7CisjZW5kaWYKKworLyoKKyAqIFVubWFwcyB0
aGUgcGFnZSBhcHBlYXJpbmcgYXQgYSBwYXJ0aWN1bGFyIEdQRk4gZnJvbSB0aGUgc3BlY2lmaWVk
IGd1ZXN0J3MKKyAqIHBzZXVkb3BoeXNpY2FsIGFkZHJlc3Mgc3BhY2UuCisgKiBhcmcgPT0gYWRk
ciBvZiB4ZW5fcmVtb3ZlX2Zyb21fcGh5c21hcF90LgorICovCisjZGVmaW5lIFhFTk1FTV9yZW1v
dmVfZnJvbV9waHlzbWFwICAgICAgMTUKK3N0cnVjdCB4ZW5fcmVtb3ZlX2Zyb21fcGh5c21hcCB7
CisgICAgLyogV2hpY2ggZG9tYWluIHRvIGNoYW5nZSB0aGUgbWFwcGluZyBmb3IuICovCisgICAg
ZG9taWRfdCBkb21pZDsKKworICAgIC8qIEdQRk4gb2YgdGhlIGN1cnJlbnQgbWFwcGluZyBvZiB0
aGUgcGFnZS4gKi8KKyAgICB4ZW5fcGZuX3QgICAgIGdwZm47Cit9OwordHlwZWRlZiBzdHJ1Y3Qg
eGVuX3JlbW92ZV9mcm9tX3BoeXNtYXAgeGVuX3JlbW92ZV9mcm9tX3BoeXNtYXBfdDsKK0RFRklO
RV9YRU5fR1VFU1RfSEFORExFKHhlbl9yZW1vdmVfZnJvbV9waHlzbWFwX3QpOworCisvKioqIFJF
TU9WRUQgKioqLworLyojZGVmaW5lIFhFTk1FTV90cmFuc2xhdGVfZ3Bmbl9saXN0ICA4Ki8KKwor
LyoKKyAqIFJldHVybnMgdGhlIHBzZXVkby1waHlzaWNhbCBtZW1vcnkgbWFwIGFzIGl0IHdhcyB3
aGVuIHRoZSBkb21haW4KKyAqIHdhcyBzdGFydGVkIChzcGVjaWZpZWQgYnkgWEVOTUVNX3NldF9t
ZW1vcnlfbWFwKS4KKyAqIGFyZyA9PSBhZGRyIG9mIHhlbl9tZW1vcnlfbWFwX3QuCisgKi8KKyNk
ZWZpbmUgWEVOTUVNX21lbW9yeV9tYXAgICAgICAgICAgIDkKK3N0cnVjdCB4ZW5fbWVtb3J5X21h
cCB7CisgICAgLyoKKyAgICAgKiBPbiBjYWxsIHRoZSBudW1iZXIgb2YgZW50cmllcyB3aGljaCBj
YW4gYmUgc3RvcmVkIGluIGJ1ZmZlci4gT24KKyAgICAgKiByZXR1cm4gdGhlIG51bWJlciBvZiBl
bnRyaWVzIHdoaWNoIGhhdmUgYmVlbiBzdG9yZWQgaW4KKyAgICAgKiBidWZmZXIuCisgICAgICov
CisgICAgdW5zaWduZWQgaW50IG5yX2VudHJpZXM7CisKKyAgICAvKgorICAgICAqIEVudHJpZXMg
aW4gdGhlIGJ1ZmZlciBhcmUgaW4gdGhlIHNhbWUgZm9ybWF0IGFzIHJldHVybmVkIGJ5IHRoZQor
ICAgICAqIEJJT1MgSU5UIDB4MTUgRUFYPTB4RTgyMCBjYWxsLgorICAgICAqLworICAgIFhFTl9H
VUVTVF9IQU5ETEUodm9pZCkgYnVmZmVyOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9tZW1vcnlf
bWFwIHhlbl9tZW1vcnlfbWFwX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fbWVtb3J5
X21hcF90KTsKKworLyoKKyAqIFJldHVybnMgdGhlIHJlYWwgcGh5c2ljYWwgbWVtb3J5IG1hcC4g
UGFzc2VzIHRoZSBzYW1lIHN0cnVjdHVyZSBhcworICogWEVOTUVNX21lbW9yeV9tYXAuCisgKiBT
cGVjaWZ5aW5nIGJ1ZmZlciBhcyBOVUxMIHdpbGwgcmV0dXJuIHRoZSBudW1iZXIgb2YgZW50cmll
cyByZXF1aXJlZAorICogdG8gc3RvcmUgdGhlIGNvbXBsZXRlIG1lbW9yeSBtYXAuCisgKiBhcmcg
PT0gYWRkciBvZiB4ZW5fbWVtb3J5X21hcF90LgorICovCisjZGVmaW5lIFhFTk1FTV9tYWNoaW5l
X21lbW9yeV9tYXAgICAxMAorCisvKgorICogU2V0IHRoZSBwc2V1ZG8tcGh5c2ljYWwgbWVtb3J5
IG1hcCBvZiBhIGRvbWFpbiwgYXMgcmV0dXJuZWQgYnkKKyAqIFhFTk1FTV9tZW1vcnlfbWFwLgor
ICogYXJnID09IGFkZHIgb2YgeGVuX2ZvcmVpZ25fbWVtb3J5X21hcF90LgorICovCisjZGVmaW5l
IFhFTk1FTV9zZXRfbWVtb3J5X21hcCAgICAgICAxMworc3RydWN0IHhlbl9mb3JlaWduX21lbW9y
eV9tYXAgeworICAgIGRvbWlkX3QgZG9taWQ7CisgICAgc3RydWN0IHhlbl9tZW1vcnlfbWFwIG1h
cDsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5fZm9yZWlnbl9tZW1vcnlfbWFwIHhlbl9mb3JlaWdu
X21lbW9yeV9tYXBfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9mb3JlaWduX21lbW9y
eV9tYXBfdCk7CisKKyNkZWZpbmUgWEVOTUVNX3NldF9wb2RfdGFyZ2V0ICAgICAgIDE2CisjZGVm
aW5lIFhFTk1FTV9nZXRfcG9kX3RhcmdldCAgICAgICAxNworc3RydWN0IHhlbl9wb2RfdGFyZ2V0
IHsKKyAgICAvKiBJTiAqLworICAgIHVpbnQ2NF90IHRhcmdldF9wYWdlczsKKyAgICAvKiBPVVQg
Ki8KKyAgICB1aW50NjRfdCB0b3RfcGFnZXM7CisgICAgdWludDY0X3QgcG9kX2NhY2hlX3BhZ2Vz
OworICAgIHVpbnQ2NF90IHBvZF9lbnRyaWVzOworICAgIC8qIElOICovCisgICAgZG9taWRfdCBk
b21pZDsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5fcG9kX3RhcmdldCB4ZW5fcG9kX3RhcmdldF90
OworCisjaWYgZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCisKKyNp
Zm5kZWYgdWludDY0X2FsaWduZWRfdAorI2RlZmluZSB1aW50NjRfYWxpZ25lZF90IHVpbnQ2NF90
CisjZW5kaWYKKworLyoKKyAqIEdldCB0aGUgbnVtYmVyIG9mIE1GTnMgc2F2ZWQgdGhyb3VnaCBt
ZW1vcnkgc2hhcmluZy4KKyAqIFRoZSBjYWxsIG5ldmVyIGZhaWxzLiAKKyAqLworI2RlZmluZSBY
RU5NRU1fZ2V0X3NoYXJpbmdfZnJlZWRfcGFnZXMgICAgMTgKKyNkZWZpbmUgWEVOTUVNX2dldF9z
aGFyaW5nX3NoYXJlZF9wYWdlcyAgIDE5CisKKyNkZWZpbmUgWEVOTUVNX3BhZ2luZ19vcCAgICAg
ICAgICAgICAgICAgICAgMjAKKyNkZWZpbmUgWEVOTUVNX3BhZ2luZ19vcF9ub21pbmF0ZSAgICAg
ICAgICAgMAorI2RlZmluZSBYRU5NRU1fcGFnaW5nX29wX2V2aWN0ICAgICAgICAgICAgICAxCisj
ZGVmaW5lIFhFTk1FTV9wYWdpbmdfb3BfcHJlcCAgICAgICAgICAgICAgIDIKKworc3RydWN0IHhl
bl9tZW1fcGFnaW5nX29wIHsKKyAgICB1aW50OF90ICAgICBvcDsgICAgICAgICAvKiBYRU5NRU1f
cGFnaW5nX29wXyogKi8KKyAgICBkb21pZF90ICAgICBkb21haW47CisKKyAgICAvKiBQQUdJTkdf
UFJFUCBJTjogYnVmZmVyIHRvIGltbWVkaWF0ZWx5IGZpbGwgcGFnZSBpbiAqLworICAgIHVpbnQ2
NF9hbGlnbmVkX3QgICAgYnVmZmVyOworICAgIC8qIE90aGVyIE9QcyAqLworICAgIHVpbnQ2NF9h
bGlnbmVkX3QgICAgZ2ZuOyAgICAgICAgICAgLyogSU46ICBnZm4gb2YgcGFnZSBiZWluZyBvcGVy
YXRlZCBvbiAqLworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9tZW1fcGFnaW5nX29wIHhlbl9tZW1f
cGFnaW5nX29wX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fbWVtX3BhZ2luZ19vcF90
KTsKKworI2RlZmluZSBYRU5NRU1fYWNjZXNzX29wICAgICAgICAgICAgICAgICAgICAyMQorI2Rl
ZmluZSBYRU5NRU1fYWNjZXNzX29wX3NldF9hY2Nlc3MgICAgICAgICAwCisjZGVmaW5lIFhFTk1F
TV9hY2Nlc3Nfb3BfZ2V0X2FjY2VzcyAgICAgICAgIDEKKy8qCisgKiBYRU5NRU1fYWNjZXNzX29w
X2VuYWJsZV9lbXVsYXRlIGFuZCBYRU5NRU1fYWNjZXNzX29wX2Rpc2FibGVfZW11bGF0ZSBhcmUK
KyAqIGN1cnJlbnRseSB1bnVzZWQsIGJ1dCBzaW5jZSB0aGV5IGhhdmUgYmVlbiBpbiB1c2UgcGxl
YXNlIGRvIG5vdCByZXVzZSB0aGVtLgorICoKKyAqICNkZWZpbmUgWEVOTUVNX2FjY2Vzc19vcF9l
bmFibGVfZW11bGF0ZSAgICAgMgorICogI2RlZmluZSBYRU5NRU1fYWNjZXNzX29wX2Rpc2FibGVf
ZW11bGF0ZSAgICAzCisgKi8KKyNkZWZpbmUgWEVOTUVNX2FjY2Vzc19vcF9zZXRfYWNjZXNzX211
bHRpICAgNAorCit0eXBlZGVmIGVudW0geworICAgIFhFTk1FTV9hY2Nlc3NfbiwKKyAgICBYRU5N
RU1fYWNjZXNzX3IsCisgICAgWEVOTUVNX2FjY2Vzc193LAorICAgIFhFTk1FTV9hY2Nlc3Nfcncs
CisgICAgWEVOTUVNX2FjY2Vzc194LAorICAgIFhFTk1FTV9hY2Nlc3NfcngsCisgICAgWEVOTUVN
X2FjY2Vzc193eCwKKyAgICBYRU5NRU1fYWNjZXNzX3J3eCwKKyAgICAvKgorICAgICAqIFBhZ2Ug
c3RhcnRzIG9mZiBhcyByLXgsIGJ1dCBhdXRvbWF0aWNhbGx5CisgICAgICogY2hhbmdlIHRvIHIt
dyBvbiBhIHdyaXRlCisgICAgICovCisgICAgWEVOTUVNX2FjY2Vzc19yeDJydywKKyAgICAvKgor
ICAgICAqIExvZyBhY2Nlc3M6IHN0YXJ0cyBvZmYgYXMgbiwgYXV0b21hdGljYWxseQorICAgICAq
IGdvZXMgdG8gcnd4LCBnZW5lcmF0aW5nIGFuIGV2ZW50IHdpdGhvdXQKKyAgICAgKiBwYXVzaW5n
IHRoZSB2Y3B1CisgICAgICovCisgICAgWEVOTUVNX2FjY2Vzc19uMnJ3eCwKKyAgICAvKiBUYWtl
IHRoZSBkb21haW4gZGVmYXVsdCAqLworICAgIFhFTk1FTV9hY2Nlc3NfZGVmYXVsdAorfSB4ZW5t
ZW1fYWNjZXNzX3Q7CisKK3N0cnVjdCB4ZW5fbWVtX2FjY2Vzc19vcCB7CisgICAgLyogWEVOTUVN
X2FjY2Vzc19vcF8qICovCisgICAgdWludDhfdCBvcDsKKyAgICAvKiB4ZW5tZW1fYWNjZXNzX3Qg
Ki8KKyAgICB1aW50OF90IGFjY2VzczsKKyAgICBkb21pZF90IGRvbWlkOworICAgIC8qCisgICAg
ICogTnVtYmVyIG9mIHBhZ2VzIGZvciBzZXQgb3AgKG9yIHNpemUgb2YgcGZuX2xpc3QgZm9yCisg
ICAgICogWEVOTUVNX2FjY2Vzc19vcF9zZXRfYWNjZXNzX211bHRpKQorICAgICAqIElnbm9yZWQg
b24gc2V0dGluZyBkZWZhdWx0IGFjY2VzcyBhbmQgb3RoZXIgb3BzCisgICAgICovCisgICAgdWlu
dDMyX3QgbnI7CisgICAgLyoKKyAgICAgKiBGaXJzdCBwZm4gZm9yIHNldCBvcAorICAgICAqIHBm
biBmb3IgZ2V0IG9wCisgICAgICogfjB1bGwgaXMgdXNlZCB0byBzZXQgYW5kIGdldCB0aGUgZGVm
YXVsdCBhY2Nlc3MgZm9yIHBhZ2VzCisgICAgICovCisgICAgdWludDY0X2FsaWduZWRfdCBwZm47
CisgICAgLyoKKyAgICAgKiBMaXN0IG9mIHBmbnMgdG8gc2V0IGFjY2VzcyBmb3IKKyAgICAgKiBV
c2VkIG9ubHkgd2l0aCBYRU5NRU1fYWNjZXNzX29wX3NldF9hY2Nlc3NfbXVsdGkKKyAgICAgKi8K
KyAgICBYRU5fR1VFU1RfSEFORExFKGNvbnN0X3VpbnQ2NCkgcGZuX2xpc3Q7CisgICAgLyoKKyAg
ICAgKiBDb3JyZXNwb25kaW5nIGxpc3Qgb2YgYWNjZXNzIHNldHRpbmdzIGZvciBwZm5fbGlzdAor
ICAgICAqIFVzZWQgb25seSB3aXRoIFhFTk1FTV9hY2Nlc3Nfb3Bfc2V0X2FjY2Vzc19tdWx0aQor
ICAgICAqLworICAgIFhFTl9HVUVTVF9IQU5ETEUoY29uc3RfdWludDgpIGFjY2Vzc19saXN0Owor
fTsKK3R5cGVkZWYgc3RydWN0IHhlbl9tZW1fYWNjZXNzX29wIHhlbl9tZW1fYWNjZXNzX29wX3Q7
CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fbWVtX2FjY2Vzc19vcF90KTsKKworI2RlZmlu
ZSBYRU5NRU1fc2hhcmluZ19vcCAgICAgICAgICAgICAgICAgICAyMgorI2RlZmluZSBYRU5NRU1f
c2hhcmluZ19vcF9ub21pbmF0ZV9nZm4gICAgICAwCisjZGVmaW5lIFhFTk1FTV9zaGFyaW5nX29w
X25vbWluYXRlX2dyZWYgICAgIDEKKyNkZWZpbmUgWEVOTUVNX3NoYXJpbmdfb3Bfc2hhcmUgICAg
ICAgICAgICAgMgorI2RlZmluZSBYRU5NRU1fc2hhcmluZ19vcF9kZWJ1Z19nZm4gICAgICAgICAz
CisjZGVmaW5lIFhFTk1FTV9zaGFyaW5nX29wX2RlYnVnX21mbiAgICAgICAgIDQKKyNkZWZpbmUg
WEVOTUVNX3NoYXJpbmdfb3BfZGVidWdfZ3JlZiAgICAgICAgNQorI2RlZmluZSBYRU5NRU1fc2hh
cmluZ19vcF9hZGRfcGh5c21hcCAgICAgICA2CisjZGVmaW5lIFhFTk1FTV9zaGFyaW5nX29wX2F1
ZGl0ICAgICAgICAgICAgIDcKKyNkZWZpbmUgWEVOTUVNX3NoYXJpbmdfb3BfcmFuZ2Vfc2hhcmUg
ICAgICAgOAorCisjZGVmaW5lIFhFTk1FTV9TSEFSSU5HX09QX1NfSEFORExFX0lOVkFMSUQgICgt
MTApCisjZGVmaW5lIFhFTk1FTV9TSEFSSU5HX09QX0NfSEFORExFX0lOVkFMSUQgICgtOSkKKwor
LyogVGhlIGZvbGxvd2luZyBhbGxvd3Mgc2hhcmluZyBvZiBncmFudCByZWZzLiBUaGlzIGlzIHVz
ZWZ1bAorICogZm9yIHNoYXJpbmcgdXRpbGl0aWVzIHNpdHRpbmcgYXMgImZpbHRlcnMiIGluIElP
IGJhY2tlbmRzCisgKiAoZS5nLiBtZW1zaHIgKyBibGt0YXAoMikpLiBUaGUgSU8gYmFja2VuZCBp
cyBvbmx5IGV4cG9zZWQgCisgKiB0byBncmFudCByZWZlcmVuY2VzLCBhbmQgdGhpcyBhbGxvd3Mg
c2hhcmluZyBvZiB0aGUgZ3JlZnMgKi8KKyNkZWZpbmUgWEVOTUVNX1NIQVJJTkdfT1BfRklFTERf
SVNfR1JFRl9GTEFHICAgKHhlbl9ta191bGxvbmcoMSkgPDwgNjIpCisKKyNkZWZpbmUgWEVOTUVN
X1NIQVJJTkdfT1BfRklFTERfTUFLRV9HUkVGKGZpZWxkLCB2YWwpICBcCisgICAgKGZpZWxkKSA9
IChYRU5NRU1fU0hBUklOR19PUF9GSUVMRF9JU19HUkVGX0ZMQUcgfCB2YWwpCisjZGVmaW5lIFhF
Tk1FTV9TSEFSSU5HX09QX0ZJRUxEX0lTX0dSRUYoZmllbGQpICAgICAgICAgXAorICAgICgoZmll
bGQpICYgWEVOTUVNX1NIQVJJTkdfT1BfRklFTERfSVNfR1JFRl9GTEFHKQorI2RlZmluZSBYRU5N
RU1fU0hBUklOR19PUF9GSUVMRF9HRVRfR1JFRihmaWVsZCkgICAgICAgIFwKKyAgICAoKGZpZWxk
KSAmICh+WEVOTUVNX1NIQVJJTkdfT1BfRklFTERfSVNfR1JFRl9GTEFHKSkKKworc3RydWN0IHhl
bl9tZW1fc2hhcmluZ19vcCB7CisgICAgdWludDhfdCAgICAgb3A7ICAgICAvKiBYRU5NRU1fc2hh
cmluZ19vcF8qICovCisgICAgZG9taWRfdCAgICAgZG9tYWluOworCisgICAgdW5pb24geworICAg
ICAgICBzdHJ1Y3QgbWVtX3NoYXJpbmdfb3Bfbm9taW5hdGUgeyAgLyogT1BfTk9NSU5BVEVfeHh4
ICAgICAgICAgICAqLworICAgICAgICAgICAgdW5pb24geworICAgICAgICAgICAgICAgIHVpbnQ2
NF9hbGlnbmVkX3QgZ2ZuOyAgICAgLyogSU46IGdmbiB0byBub21pbmF0ZSAgICAgICAqLworICAg
ICAgICAgICAgICAgIHVpbnQzMl90ICAgICAgZ3JhbnRfcmVmOyAgLyogSU46IGdyYW50IHJlZiB0
byBub21pbmF0ZSAqLworICAgICAgICAgICAgfSB1OworICAgICAgICAgICAgdWludDY0X2FsaWdu
ZWRfdCAgaGFuZGxlOyAgICAgLyogT1VUOiB0aGUgaGFuZGxlICAgICAgICAgICAqLworICAgICAg
ICB9IG5vbWluYXRlOworICAgICAgICBzdHJ1Y3QgbWVtX3NoYXJpbmdfb3Bfc2hhcmUgeyAgICAg
LyogT1BfU0hBUkUvQUREX1BIWVNNQVAgKi8KKyAgICAgICAgICAgIHVpbnQ2NF9hbGlnbmVkX3Qg
c291cmNlX2dmbjsgICAgLyogSU46IHRoZSBnZm4gb2YgdGhlIHNvdXJjZSBwYWdlICovCisgICAg
ICAgICAgICB1aW50NjRfYWxpZ25lZF90IHNvdXJjZV9oYW5kbGU7IC8qIElOOiBoYW5kbGUgdG8g
dGhlIHNvdXJjZSBwYWdlICovCisgICAgICAgICAgICB1aW50NjRfYWxpZ25lZF90IGNsaWVudF9n
Zm47ICAgIC8qIElOOiB0aGUgY2xpZW50IGdmbiAqLworICAgICAgICAgICAgdWludDY0X2FsaWdu
ZWRfdCBjbGllbnRfaGFuZGxlOyAvKiBJTjogaGFuZGxlIHRvIHRoZSBjbGllbnQgcGFnZSAqLwor
ICAgICAgICAgICAgZG9taWRfdCAgY2xpZW50X2RvbWFpbjsgLyogSU46IHRoZSBjbGllbnQgZG9t
YWluIGlkICovCisgICAgICAgIH0gc2hhcmU7CisgICAgICAgIHN0cnVjdCBtZW1fc2hhcmluZ19v
cF9yYW5nZSB7ICAgICAgICAgLyogT1BfUkFOR0VfU0hBUkUgKi8KKyAgICAgICAgICAgIHVpbnQ2
NF9hbGlnbmVkX3QgZmlyc3RfZ2ZuOyAgICAgIC8qIElOOiB0aGUgZmlyc3QgZ2ZuICovCisgICAg
ICAgICAgICB1aW50NjRfYWxpZ25lZF90IGxhc3RfZ2ZuOyAgICAgICAvKiBJTjogdGhlIGxhc3Qg
Z2ZuICovCisgICAgICAgICAgICB1aW50NjRfYWxpZ25lZF90IG9wYXF1ZTsgICAgICAgICAvKiBN
dXN0IGJlIHNldCB0byAwICovCisgICAgICAgICAgICBkb21pZF90IGNsaWVudF9kb21haW47ICAg
ICAgICAgICAvKiBJTjogdGhlIGNsaWVudCBkb21haW4gaWQgKi8KKyAgICAgICAgICAgIHVpbnQx
Nl90IF9wYWRbM107ICAgICAgICAgICAgICAgIC8qIE11c3QgYmUgc2V0IHRvIDAgKi8KKyAgICAg
ICAgfSByYW5nZTsKKyAgICAgICAgc3RydWN0IG1lbV9zaGFyaW5nX29wX2RlYnVnIHsgICAgIC8q
IE9QX0RFQlVHX3h4eCAqLworICAgICAgICAgICAgdW5pb24geworICAgICAgICAgICAgICAgIHVp
bnQ2NF9hbGlnbmVkX3QgZ2ZuOyAgICAgIC8qIElOOiBnZm4gdG8gZGVidWcgICAgICAgICAgKi8K
KyAgICAgICAgICAgICAgICB1aW50NjRfYWxpZ25lZF90IG1mbjsgICAgICAvKiBJTjogbWZuIHRv
IGRlYnVnICAgICAgICAgICovCisgICAgICAgICAgICAgICAgdWludDMyX3QgZ3JlZjsgICAgIC8q
IElOOiBncmVmIHRvIGRlYnVnICAgICAgICAgKi8KKyAgICAgICAgICAgIH0gdTsKKyAgICAgICAg
fSBkZWJ1ZzsKKyAgICB9IHU7Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX21lbV9zaGFyaW5nX29w
IHhlbl9tZW1fc2hhcmluZ19vcF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX21lbV9z
aGFyaW5nX29wX3QpOworCisvKgorICogQXR0ZW1wdCB0byBzdGFrZSBhIGNsYWltIGZvciBhIGRv
bWFpbiBvbiBhIHF1YW50aXR5IG9mIHBhZ2VzCisgKiBvZiBzeXN0ZW0gUkFNLCBidXQgX25vdF8g
YXNzaWduIHNwZWNpZmljIHBhZ2VmcmFtZXMuICBPbmx5CisgKiBhcml0aG1ldGljIGlzIHBlcmZv
cm1lZCBzbyB0aGUgaHlwZXJjYWxsIGlzIHZlcnkgZmFzdCBhbmQgbmVlZAorICogbm90IGJlIHBy
ZWVtcHRpYmxlLCB0aHVzIHNpZGVzdGVwcGluZyB0aW1lLW9mLWNoZWNrLXRpbWUtb2YtdXNlCisg
KiByYWNlcyBmb3IgbWVtb3J5IGFsbG9jYXRpb24uICBSZXR1cm5zIDAgaWYgdGhlIGh5cGVydmlz
b3IgcGFnZQorICogYWxsb2NhdG9yIGhhcyBhdG9taWNhbGx5IGFuZCBzdWNjZXNzZnVsbHkgY2xh
aW1lZCB0aGUgcmVxdWVzdGVkCisgKiBudW1iZXIgb2YgcGFnZXMsIGVsc2Ugbm9uLXplcm8uCisg
KgorICogQW55IGRvbWFpbiBtYXkgaGF2ZSBvbmx5IG9uZSBhY3RpdmUgY2xhaW0uICBXaGVuIHN1
ZmZpY2llbnQgbWVtb3J5CisgKiBoYXMgYmVlbiBhbGxvY2F0ZWQgdG8gcmVzb2x2ZSB0aGUgY2xh
aW0sIHRoZSBjbGFpbSBzaWxlbnRseSBleHBpcmVzLgorICogQ2xhaW1pbmcgemVybyBwYWdlcyBl
ZmZlY3RpdmVseSByZXNldHMgYW55IG91dHN0YW5kaW5nIGNsYWltIGFuZAorICogaXMgYWx3YXlz
IHN1Y2Nlc3NmdWwuCisgKgorICogTm90ZSB0aGF0IGEgdmFsaWQgY2xhaW0gbWF5IGJlIHN0YWtl
ZCBldmVuIGFmdGVyIG1lbW9yeSBoYXMgYmVlbgorICogYWxsb2NhdGVkIGZvciBhIGRvbWFpbi4g
IEluIHRoaXMgY2FzZSwgdGhlIGNsYWltIGlzIG5vdCBpbmNyZW1lbnRhbCwKKyAqIGkuZS4gaWYg
dGhlIGRvbWFpbidzIHRvdF9wYWdlcyBpcyAzLCBhbmQgYSBjbGFpbSBpcyBzdGFrZWQgZm9yIDEw
LAorICogb25seSA3IGFkZGl0aW9uYWwgcGFnZXMgYXJlIGNsYWltZWQuCisgKgorICogQ2FsbGVy
IG11c3QgYmUgcHJpdmlsZWdlZCBvciB0aGUgaHlwZXJjYWxsIGZhaWxzLgorICovCisjZGVmaW5l
IFhFTk1FTV9jbGFpbV9wYWdlcyAgICAgICAgICAgICAgICAgIDI0CisKKy8qCisgKiBYRU5NRU1f
Y2xhaW1fcGFnZXMgZmxhZ3MgLSB0aGUgYXJlIG5vIGZsYWdzIGF0IHRoaXMgdGltZS4KKyAqIFRo
ZSB6ZXJvIHZhbHVlIGlzIGFwcHJvcHJpYXRlLgorICovCisKKy8qCisgKiBXaXRoIHNvbWUgbGVn
YWN5IGRldmljZXMsIGNlcnRhaW4gZ3Vlc3QtcGh5c2ljYWwgYWRkcmVzc2VzIGNhbm5vdCBzYWZl
bHkKKyAqIGJlIHVzZWQgZm9yIG90aGVyIHB1cnBvc2VzLCBlLmcuIHRvIG1hcCBndWVzdCBSQU0u
ICBUaGlzIGh5cGVyY2FsbAorICogZW51bWVyYXRlcyB0aG9zZSByZWdpb25zIHNvIHRoZSB0b29s
c3RhY2sgY2FuIGF2b2lkIHVzaW5nIHRoZW0uCisgKi8KKyNkZWZpbmUgWEVOTUVNX3Jlc2VydmVk
X2RldmljZV9tZW1vcnlfbWFwICAgMjcKK3N0cnVjdCB4ZW5fcmVzZXJ2ZWRfZGV2aWNlX21lbW9y
eSB7CisgICAgeGVuX3Bmbl90IHN0YXJ0X3BmbjsKKyAgICB4ZW5fdWxvbmdfdCBucl9wYWdlczsK
K307Cit0eXBlZGVmIHN0cnVjdCB4ZW5fcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeSB4ZW5fcmVzZXJ2
ZWRfZGV2aWNlX21lbW9yeV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3Jlc2VydmVk
X2RldmljZV9tZW1vcnlfdCk7CisKK3N0cnVjdCB4ZW5fcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeV9t
YXAgeworI2RlZmluZSBYRU5NRU1fUkRNX0FMTCAxIC8qIFJlcXVlc3QgYWxsIHJlZ2lvbnMgKGln
bm9yZSBkZXYgdW5pb24pLiAqLworICAgIC8qIElOICovCisgICAgdWludDMyX3QgZmxhZ3M7Cisg
ICAgLyoKKyAgICAgKiBJTi9PVVQKKyAgICAgKgorICAgICAqIEdldHMgc2V0IHRvIHRoZSByZXF1
aXJlZCBudW1iZXIgb2YgZW50cmllcyB3aGVuIHRvbyBsb3csCisgICAgICogc2lnbmFsZWQgYnkg
ZXJyb3IgY29kZSAtRVJBTkdFLgorICAgICAqLworICAgIHVuc2lnbmVkIGludCBucl9lbnRyaWVz
OworICAgIC8qIE9VVCAqLworICAgIFhFTl9HVUVTVF9IQU5ETEUoeGVuX3Jlc2VydmVkX2Rldmlj
ZV9tZW1vcnlfdCkgYnVmZmVyOworICAgIC8qIElOICovCisgICAgdW5pb24geworICAgICAgICBz
dHJ1Y3QgcGh5c2Rldl9wY2lfZGV2aWNlIHBjaTsKKyAgICB9IGRldjsKK307Cit0eXBlZGVmIHN0
cnVjdCB4ZW5fcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeV9tYXAgeGVuX3Jlc2VydmVkX2RldmljZV9t
ZW1vcnlfbWFwX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fcmVzZXJ2ZWRfZGV2aWNl
X21lbW9yeV9tYXBfdCk7CisKKyNlbmRpZiAvKiBkZWZpbmVkKF9fWEVOX18pIHx8IGRlZmluZWQo
X19YRU5fVE9PTFNfXykgKi8KKworLyoKKyAqIFhFTk1FTV9nZXRfdm51bWFpbmZvIHVzZWQgYnkg
Z3Vlc3QgdG8gZ2V0CisgKiB2TlVNQSB0b3BvbG9neSBmcm9tIGh5cGVydmlzb3IuCisgKi8KKyNk
ZWZpbmUgWEVOTUVNX2dldF92bnVtYWluZm8gICAgICAgICAgICAgICAgMjYKKworLyogdk5VTUEg
bm9kZSBtZW1vcnkgcmFuZ2VzICovCitzdHJ1Y3QgeGVuX3ZtZW1yYW5nZSB7CisgICAgdWludDY0
X3Qgc3RhcnQsIGVuZDsKKyAgICB1bnNpZ25lZCBpbnQgZmxhZ3M7CisgICAgdW5zaWduZWQgaW50
IG5pZDsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5fdm1lbXJhbmdlIHhlbl92bWVtcmFuZ2VfdDsK
K0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl92bWVtcmFuZ2VfdCk7CisKKy8qCisgKiB2TlVN
QSB0b3BvbG9neSBzcGVjaWZpZXMgdk5VTUEgbm9kZSBudW1iZXIsIGRpc3RhbmNlIHRhYmxlLAor
ICogbWVtb3J5IHJhbmdlcyBhbmQgdmNwdSBtYXBwaW5nIHByb3ZpZGVkIGZvciBndWVzdHMuCisg
KiBYRU5NRU1fZ2V0X3ZudW1haW5mbyBoeXBlcmNhbGwgZXhwZWN0cyB0byBzZWUgZnJvbSBndWVz
dAorICogbnJfdm5vZGVzLCBucl92bWVtcmFuZ2VzIGFuZCBucl92Y3B1cyB0byBpbmRpY2F0ZSBh
dmFpbGFibGUgbWVtb3J5LgorICogQWZ0ZXIgZmlsbGluZyBndWVzdHMgc3RydWN0dXJlcywgbnJf
dm5vZGVzLCBucl92bWVtcmFuZ2VzIGFuZCBucl92Y3B1cworICogY29waWVkIGJhY2sgdG8gZ3Vl
c3QuIERvbWFpbiByZXR1cm5zIGV4cGVjdGVkIHZhbHVlcyBvZiBucl92bm9kZXMsCisgKiBucl92
bWVtcmFuZ2VzIGFuZCBucl92Y3B1cyB0byBndWVzdCBpZiB0aGUgdmFsdWVzIHdoZXJlIGluY29y
cmVjdC4KKyAqLworc3RydWN0IHhlbl92bnVtYV90b3BvbG9neV9pbmZvIHsKKyAgICAvKiBJTiAq
LworICAgIGRvbWlkX3QgZG9taWQ7CisgICAgdWludDE2X3QgcGFkOworICAgIC8qIElOL09VVCAq
LworICAgIHVuc2lnbmVkIGludCBucl92bm9kZXM7CisgICAgdW5zaWduZWQgaW50IG5yX3ZjcHVz
OworICAgIHVuc2lnbmVkIGludCBucl92bWVtcmFuZ2VzOworICAgIC8qIE9VVCAqLworICAgIHVu
aW9uIHsKKyAgICAgICAgWEVOX0dVRVNUX0hBTkRMRSh1aW50KSBoOworICAgICAgICB1aW50NjRf
dCBwYWQ7CisgICAgfSB2ZGlzdGFuY2U7CisgICAgdW5pb24geworICAgICAgICBYRU5fR1VFU1Rf
SEFORExFKHVpbnQpIGg7CisgICAgICAgIHVpbnQ2NF90IHBhZDsKKyAgICB9IHZjcHVfdG9fdm5v
ZGU7CisgICAgdW5pb24geworICAgICAgICBYRU5fR1VFU1RfSEFORExFKHhlbl92bWVtcmFuZ2Vf
dCkgaDsKKyAgICAgICAgdWludDY0X3QgcGFkOworICAgIH0gdm1lbXJhbmdlOworfTsKK3R5cGVk
ZWYgc3RydWN0IHhlbl92bnVtYV90b3BvbG9neV9pbmZvIHhlbl92bnVtYV90b3BvbG9neV9pbmZv
X3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fdm51bWFfdG9wb2xvZ3lfaW5mb190KTsK
KworLyogTmV4dCBhdmFpbGFibGUgc3Vib3AgbnVtYmVyIGlzIDI4ICovCisKKyNlbmRpZiAvKiBf
X1hFTl9QVUJMSUNfTUVNT1JZX0hfXyAqLworCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICog
bW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAq
IHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlm
ZiAtLWdpdCBhL2luY2x1ZGUveGVuL3hzbS9ubWkuaCBiL2luY2x1ZGUveGVuL3hzbS9ubWkuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MDRiMjkzCi0tLSAvZGV2L251bGwK
KysrIGIvaW5jbHVkZS94ZW4veHNtL25taS5oCkBAIC0wLDAgKzEsODUgQEAKKy8qKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKKyAqIG5taS5oCisgKiAKKyAqIE5NSSBjYWxsYmFjayByZWdpc3RyYXRpb24g
YW5kIHJlYXNvbiBjb2Rlcy4KKyAqIAorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwg
ZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhp
cyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3
YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBp
bmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwg
bW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisg
KiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3
aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj
ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxs
IGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICog
VEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5Z
IEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQg
VE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENM
QUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9O
IE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9G
IE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgor
ICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAwNSwg
S2VpciBGcmFzZXIgPGtlaXJAeGVuc291cmNlLmNvbT4KKyAqLworCisjaWZuZGVmIF9fWEVOX1BV
QkxJQ19OTUlfSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19OTUlfSF9fCisKKyNpbmNsdWRlICJ4
ZW4uaCIKKworLyoKKyAqIE5NSSByZWFzb24gY29kZXM6CisgKiBDdXJyZW50bHkgdGhlc2UgYXJl
IHg4Ni1zcGVjaWZpYywgc3RvcmVkIGluIGFyY2hfc2hhcmVkX2luZm8ubm1pX3JlYXNvbi4KKyAq
LworIC8qIEkvTy1jaGVjayBlcnJvciByZXBvcnRlZCB2aWEgSVNBIHBvcnQgMHg2MSwgYml0IDYu
ICovCisjZGVmaW5lIF9YRU5fTk1JUkVBU09OX2lvX2Vycm9yICAgICAwCisjZGVmaW5lIFhFTl9O
TUlSRUFTT05faW9fZXJyb3IgICAgICAoMVVMIDw8IF9YRU5fTk1JUkVBU09OX2lvX2Vycm9yKQor
IC8qIFBDSSBTRVJSIHJlcG9ydGVkIHZpYSBJU0EgcG9ydCAweDYxLCBiaXQgNy4gKi8KKyNkZWZp
bmUgX1hFTl9OTUlSRUFTT05fcGNpX3NlcnIgICAgIDEKKyNkZWZpbmUgWEVOX05NSVJFQVNPTl9w
Y2lfc2VyciAgICAgICgxVUwgPDwgX1hFTl9OTUlSRUFTT05fcGNpX3NlcnIpCisjaWYgX19YRU5f
SU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAwNDAzMDAgLyogbGVnYWN5IGFsaWFzIG9mIHRoZSBh
Ym92ZSAqLworIC8qIFBhcml0eSBlcnJvciByZXBvcnRlZCB2aWEgSVNBIHBvcnQgMHg2MSwgYml0
IDcuICovCisjZGVmaW5lIF9YRU5fTk1JUkVBU09OX3Bhcml0eV9lcnJvciAxCisjZGVmaW5lIFhF
Tl9OTUlSRUFTT05fcGFyaXR5X2Vycm9yICAoMVVMIDw8IF9YRU5fTk1JUkVBU09OX3Bhcml0eV9l
cnJvcikKKyNlbmRpZgorIC8qIFVua25vd24gaGFyZHdhcmUtZ2VuZXJhdGVkIE5NSS4gKi8KKyNk
ZWZpbmUgX1hFTl9OTUlSRUFTT05fdW5rbm93biAgICAgIDIKKyNkZWZpbmUgWEVOX05NSVJFQVNP
Tl91bmtub3duICAgICAgICgxVUwgPDwgX1hFTl9OTUlSRUFTT05fdW5rbm93bikKKworLyoKKyAq
IGxvbmcgbm1pX29wKHVuc2lnbmVkIGludCBjbWQsIHZvaWQgKmFyZykKKyAqIE5CLiBBbGwgb3Bz
IHJldHVybiB6ZXJvIG9uIHN1Y2Nlc3MsIGVsc2UgYSBuZWdhdGl2ZSBlcnJvciBjb2RlLgorICov
CisKKy8qCisgKiBSZWdpc3RlciBOTUkgY2FsbGJhY2sgZm9yIHRoaXMgKGNhbGxpbmcpIFZDUFUu
IEN1cnJlbnRseSB0aGlzIG9ubHkgbWFrZXMKKyAqIHNlbnNlIGZvciBkb21haW4gMCwgdmNwdSAw
LiBBbGwgb3RoZXIgY2FsbGVycyB3aWxsIGJlIHJldHVybmVkIEVJTlZBTC4KKyAqIGFyZyA9PSBw
b2ludGVyIHRvIHhlbm5taV9jYWxsYmFjayBzdHJ1Y3R1cmUuCisgKi8KKyNkZWZpbmUgWEVOTk1J
X3JlZ2lzdGVyX2NhbGxiYWNrICAgMAorc3RydWN0IHhlbm5taV9jYWxsYmFjayB7CisgICAgdW5z
aWduZWQgbG9uZyBoYW5kbGVyX2FkZHJlc3M7CisgICAgdW5zaWduZWQgbG9uZyBwYWQ7Cit9Owor
dHlwZWRlZiBzdHJ1Y3QgeGVubm1pX2NhbGxiYWNrIHhlbm5taV9jYWxsYmFja190OworREVGSU5F
X1hFTl9HVUVTVF9IQU5ETEUoeGVubm1pX2NhbGxiYWNrX3QpOworCisvKgorICogRGVyZWdpc3Rl
ciBOTUkgY2FsbGJhY2sgZm9yIHRoaXMgKGNhbGxpbmcpIFZDUFUuCisgKiBhcmcgPT0gTlVMTC4K
KyAqLworI2RlZmluZSBYRU5OTUlfdW5yZWdpc3Rlcl9jYWxsYmFjayAxCisKKyNlbmRpZiAvKiBf
X1hFTl9QVUJMSUNfTk1JX0hfXyAqLworCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9k
ZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRh
Yi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAt
LWdpdCBhL2luY2x1ZGUveGVuL3hzbS9waHlzZGV2LmggYi9pbmNsdWRlL3hlbi94c20vcGh5c2Rl
di5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlNTQ2MzUKLS0tIC9kZXYv
bnVsbAorKysgYi9pbmNsdWRlL3hlbi94c20vcGh5c2Rldi5oCkBAIC0wLDAgKzEsMzg3IEBACisv
KgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFu
eSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2Np
YXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFsIGlu
IHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1p
dGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlz
aCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0aGUg
U29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwor
ICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
czoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u
IG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlh
bCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJ
REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAq
IElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5E
IE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENP
UFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVS
CisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9S
IE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lU
SCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNP
RlRXQVJFLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAwNiwgS2VpciBGcmFzZXIKKyAqLworCisj
aWZuZGVmIF9fWEVOX1BVQkxJQ19QSFlTREVWX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfUEhZ
U0RFVl9IX18KKworI2luY2x1ZGUgInhlbi5oIgorCisvKgorICogUHJvdG90eXBlIGZvciB0aGlz
IGh5cGVyY2FsbCBpczoKKyAqICBpbnQgcGh5c2Rldl9vcChpbnQgY21kLCB2b2lkICphcmdzKQor
ICogQGNtZCAgPT0gUEhZU0RFVk9QXz8/PyAocGh5c2RldiBvcGVyYXRpb24pLgorICogQGFyZ3Mg
PT0gT3BlcmF0aW9uLXNwZWNpZmljIGV4dHJhIGFyZ3VtZW50cyAoTlVMTCBpZiBub25lKS4KKyAq
LworCisvKgorICogTm90aWZ5IGVuZC1vZi1pbnRlcnJ1cHQgKEVPSSkgZm9yIHRoZSBzcGVjaWZp
ZWQgSVJRLgorICogQGFyZyA9PSBwb2ludGVyIHRvIHBoeXNkZXZfZW9pIHN0cnVjdHVyZS4KKyAq
LworI2RlZmluZSBQSFlTREVWT1BfZW9pICAgICAgICAgICAgICAgICAgIDEyCitzdHJ1Y3QgcGh5
c2Rldl9lb2kgeworICAgIC8qIElOICovCisgICAgdWludDMyX3QgaXJxOworfTsKK3R5cGVkZWYg
c3RydWN0IHBoeXNkZXZfZW9pIHBoeXNkZXZfZW9pX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRM
RShwaHlzZGV2X2VvaV90KTsKKworLyoKKyAqIFJlZ2lzdGVyIGEgc2hhcmVkIHBhZ2UgZm9yIHRo
ZSBoeXBlcnZpc29yIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIGd1ZXN0CisgKiBtdXN0IGlzc3Vl
IFBIWVNERVZPUF9lb2kuIFRoZSBzZW1hbnRpY3Mgb2YgUEhZU0RFVk9QX2VvaSBjaGFuZ2Ugc2xp
Z2h0bHkKKyAqIG9uY2UgdGhlIGd1ZXN0IHVzZWQgdGhpcyBmdW5jdGlvbiBpbiB0aGF0IHRoZSBh
c3NvY2lhdGVkIGV2ZW50IGNoYW5uZWwKKyAqIHdpbGwgYXV0b21hdGljYWxseSBnZXQgdW5tYXNr
ZWQuIFRoZSBwYWdlIHJlZ2lzdGVyZWQgaXMgdXNlZCBhcyBhIGJpdAorICogYXJyYXkgaW5kZXhl
ZCBieSBYZW4ncyBQSVJRIHZhbHVlLgorICovCisjZGVmaW5lIFBIWVNERVZPUF9waXJxX2VvaV9n
bWZuX3YxICAgICAgIDE3CisvKgorICogUmVnaXN0ZXIgYSBzaGFyZWQgcGFnZSBmb3IgdGhlIGh5
cGVydmlzb3IgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUKKyAqIGd1ZXN0IG11c3QgaXNzdWUgUEhZ
U0RFVk9QX2VvaS4gVGhpcyBoeXBlcmNhbGwgaXMgdmVyeSBzaW1pbGFyIHRvCisgKiBQSFlTREVW
T1BfcGlycV9lb2lfZ21mbl92MSBidXQgaXQgZG9lc24ndCBjaGFuZ2UgdGhlIHNlbWFudGljcyBv
ZgorICogUEhZU0RFVk9QX2VvaS4gVGhlIHBhZ2UgcmVnaXN0ZXJlZCBpcyB1c2VkIGFzIGEgYml0
IGFycmF5IGluZGV4ZWQgYnkKKyAqIFhlbidzIFBJUlEgdmFsdWUuCisgKi8KKyNkZWZpbmUgUEhZ
U0RFVk9QX3BpcnFfZW9pX2dtZm5fdjIgICAgICAgMjgKK3N0cnVjdCBwaHlzZGV2X3BpcnFfZW9p
X2dtZm4geworICAgIC8qIElOICovCisgICAgeGVuX3Bmbl90IGdtZm47Cit9OwordHlwZWRlZiBz
dHJ1Y3QgcGh5c2Rldl9waXJxX2VvaV9nbWZuIHBoeXNkZXZfcGlycV9lb2lfZ21mbl90OworREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUocGh5c2Rldl9waXJxX2VvaV9nbWZuX3QpOworCisvKgorICog
UXVlcnkgdGhlIHN0YXR1cyBvZiBhbiBJUlEgbGluZS4KKyAqIEBhcmcgPT0gcG9pbnRlciB0byBw
aHlzZGV2X2lycV9zdGF0dXNfcXVlcnkgc3RydWN0dXJlLgorICovCisjZGVmaW5lIFBIWVNERVZP
UF9pcnFfc3RhdHVzX3F1ZXJ5ICAgICAgIDUKK3N0cnVjdCBwaHlzZGV2X2lycV9zdGF0dXNfcXVl
cnkgeworICAgIC8qIElOICovCisgICAgdWludDMyX3QgaXJxOworICAgIC8qIE9VVCAqLworICAg
IHVpbnQzMl90IGZsYWdzOyAvKiBYRU5JUlFTVEFUXyogKi8KK307Cit0eXBlZGVmIHN0cnVjdCBw
aHlzZGV2X2lycV9zdGF0dXNfcXVlcnkgcGh5c2Rldl9pcnFfc3RhdHVzX3F1ZXJ5X3Q7CitERUZJ
TkVfWEVOX0dVRVNUX0hBTkRMRShwaHlzZGV2X2lycV9zdGF0dXNfcXVlcnlfdCk7CisKKy8qIE5l
ZWQgdG8gY2FsbCBQSFlTREVWT1BfZW9pIHdoZW4gdGhlIElSUSBoYXMgYmVlbiBzZXJ2aWNlZD8g
Ki8KKyNkZWZpbmUgX1hFTklSUVNUQVRfbmVlZHNfZW9pICAgKDApCisjZGVmaW5lICBYRU5JUlFT
VEFUX25lZWRzX2VvaSAgICgxVTw8X1hFTklSUVNUQVRfbmVlZHNfZW9pKQorCisvKiBJUlEgc2hh
cmVkIGJ5IG11bHRpcGxlIGd1ZXN0cz8gKi8KKyNkZWZpbmUgX1hFTklSUVNUQVRfc2hhcmVkICAg
ICAgKDEpCisjZGVmaW5lICBYRU5JUlFTVEFUX3NoYXJlZCAgICAgICgxVTw8X1hFTklSUVNUQVRf
c2hhcmVkKQorCisvKgorICogU2V0IHRoZSBjdXJyZW50IFZDUFUncyBJL08gcHJpdmlsZWdlIGxl
dmVsLgorICogQGFyZyA9PSBwb2ludGVyIHRvIHBoeXNkZXZfc2V0X2lvcGwgc3RydWN0dXJlLgor
ICovCisjZGVmaW5lIFBIWVNERVZPUF9zZXRfaW9wbCAgICAgICAgICAgICAgIDYKK3N0cnVjdCBw
aHlzZGV2X3NldF9pb3BsIHsKKyAgICAvKiBJTiAqLworICAgIHVpbnQzMl90IGlvcGw7Cit9Owor
dHlwZWRlZiBzdHJ1Y3QgcGh5c2Rldl9zZXRfaW9wbCBwaHlzZGV2X3NldF9pb3BsX3Q7CitERUZJ
TkVfWEVOX0dVRVNUX0hBTkRMRShwaHlzZGV2X3NldF9pb3BsX3QpOworCisvKgorICogU2V0IHRo
ZSBjdXJyZW50IFZDUFUncyBJL08tcG9ydCBwZXJtaXNzaW9ucyBiaXRtYXAuCisgKiBAYXJnID09
IHBvaW50ZXIgdG8gcGh5c2Rldl9zZXRfaW9iaXRtYXAgc3RydWN0dXJlLgorICovCisjZGVmaW5l
IFBIWVNERVZPUF9zZXRfaW9iaXRtYXAgICAgICAgICAgIDcKK3N0cnVjdCBwaHlzZGV2X3NldF9p
b2JpdG1hcCB7CisgICAgLyogSU4gKi8KKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fID49
IDB4MDAwMzAyMDUKKyAgICBYRU5fR1VFU1RfSEFORExFKHVpbnQ4KSBiaXRtYXA7CisjZWxzZQor
ICAgIHVpbnQ4X3QgKmJpdG1hcDsKKyNlbmRpZgorICAgIHVpbnQzMl90IG5yX3BvcnRzOworfTsK
K3R5cGVkZWYgc3RydWN0IHBoeXNkZXZfc2V0X2lvYml0bWFwIHBoeXNkZXZfc2V0X2lvYml0bWFw
X3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShwaHlzZGV2X3NldF9pb2JpdG1hcF90KTsKKwor
LyoKKyAqIFJlYWQgb3Igd3JpdGUgYW4gSU8tQVBJQyByZWdpc3Rlci4KKyAqIEBhcmcgPT0gcG9p
bnRlciB0byBwaHlzZGV2X2FwaWMgc3RydWN0dXJlLgorICovCisjZGVmaW5lIFBIWVNERVZPUF9h
cGljX3JlYWQgICAgICAgICAgICAgIDgKKyNkZWZpbmUgUEhZU0RFVk9QX2FwaWNfd3JpdGUgICAg
ICAgICAgICAgOQorc3RydWN0IHBoeXNkZXZfYXBpYyB7CisgICAgLyogSU4gKi8KKyAgICB1bnNp
Z25lZCBsb25nIGFwaWNfcGh5c2Jhc2U7CisgICAgdWludDMyX3QgcmVnOworICAgIC8qIElOIG9y
IE9VVCAqLworICAgIHVpbnQzMl90IHZhbHVlOworfTsKK3R5cGVkZWYgc3RydWN0IHBoeXNkZXZf
YXBpYyBwaHlzZGV2X2FwaWNfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHBoeXNkZXZfYXBp
Y190KTsKKworLyoKKyAqIEFsbG9jYXRlIG9yIGZyZWUgYSBwaHlzaWNhbCB1cGNhbGwgdmVjdG9y
IGZvciB0aGUgc3BlY2lmaWVkIElSUSBsaW5lLgorICogQGFyZyA9PSBwb2ludGVyIHRvIHBoeXNk
ZXZfaXJxIHN0cnVjdHVyZS4KKyAqLworI2RlZmluZSBQSFlTREVWT1BfYWxsb2NfaXJxX3ZlY3Rv
ciAgICAgIDEwCisjZGVmaW5lIFBIWVNERVZPUF9mcmVlX2lycV92ZWN0b3IgICAgICAgMTEKK3N0
cnVjdCBwaHlzZGV2X2lycSB7CisgICAgLyogSU4gKi8KKyAgICB1aW50MzJfdCBpcnE7CisgICAg
LyogSU4gb3IgT1VUICovCisgICAgdWludDMyX3QgdmVjdG9yOworfTsKK3R5cGVkZWYgc3RydWN0
IHBoeXNkZXZfaXJxIHBoeXNkZXZfaXJxX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShwaHlz
ZGV2X2lycV90KTsKKyAKKyNkZWZpbmUgTUFQX1BJUlFfVFlQRV9NU0kgICAgICAgICAgICAgICAw
eDAKKyNkZWZpbmUgTUFQX1BJUlFfVFlQRV9HU0kgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUg
TUFQX1BJUlFfVFlQRV9VTktOT1dOICAgICAgICAgICAweDIKKyNkZWZpbmUgTUFQX1BJUlFfVFlQ
RV9NU0lfU0VHICAgICAgICAgICAweDMKKyNkZWZpbmUgTUFQX1BJUlFfVFlQRV9NVUxUSV9NU0kg
ICAgICAgICAweDQKKworI2RlZmluZSBQSFlTREVWT1BfbWFwX3BpcnEgICAgICAgICAgICAgICAx
Mworc3RydWN0IHBoeXNkZXZfbWFwX3BpcnEgeworICAgIGRvbWlkX3QgZG9taWQ7CisgICAgLyog
SU4gKi8KKyAgICBpbnQgdHlwZTsKKyAgICAvKiBJTiAoaWdub3JlZCBmb3IgLi4uX01VTFRJX01T
SSkgKi8KKyAgICBpbnQgaW5kZXg7CisgICAgLyogSU4gb3IgT1VUICovCisgICAgaW50IHBpcnE7
CisgICAgLyogSU4gLSBoaWdoIDE2IGJpdHMgaG9sZCBzZWdtZW50IGZvciAuLi5fTVNJX1NFRyBh
bmQgLi4uX01VTFRJX01TSSAqLworICAgIGludCBidXM7CisgICAgLyogSU4gKi8KKyAgICBpbnQg
ZGV2Zm47CisgICAgLyogSU4gKGFsc28gT1VUIGZvciAuLi5fTVVMVElfTVNJKSAqLworICAgIGlu
dCBlbnRyeV9ucjsKKyAgICAvKiBJTiAqLworICAgIHVpbnQ2NF90IHRhYmxlX2Jhc2U7Cit9Owor
dHlwZWRlZiBzdHJ1Y3QgcGh5c2Rldl9tYXBfcGlycSBwaHlzZGV2X21hcF9waXJxX3Q7CitERUZJ
TkVfWEVOX0dVRVNUX0hBTkRMRShwaHlzZGV2X21hcF9waXJxX3QpOworCisjZGVmaW5lIFBIWVNE
RVZPUF91bm1hcF9waXJxICAgICAgICAgICAgIDE0CitzdHJ1Y3QgcGh5c2Rldl91bm1hcF9waXJx
IHsKKyAgICBkb21pZF90IGRvbWlkOworICAgIC8qIElOICovCisgICAgaW50IHBpcnE7Cit9Owor
Cit0eXBlZGVmIHN0cnVjdCBwaHlzZGV2X3VubWFwX3BpcnEgcGh5c2Rldl91bm1hcF9waXJxX3Q7
CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShwaHlzZGV2X3VubWFwX3BpcnFfdCk7CisKKyNkZWZp
bmUgUEhZU0RFVk9QX21hbmFnZV9wY2lfYWRkICAgICAgICAgMTUKKyNkZWZpbmUgUEhZU0RFVk9Q
X21hbmFnZV9wY2lfcmVtb3ZlICAgICAgMTYKK3N0cnVjdCBwaHlzZGV2X21hbmFnZV9wY2kgewor
ICAgIC8qIElOICovCisgICAgdWludDhfdCBidXM7CisgICAgdWludDhfdCBkZXZmbjsKK307IAor
Cit0eXBlZGVmIHN0cnVjdCBwaHlzZGV2X21hbmFnZV9wY2kgcGh5c2Rldl9tYW5hZ2VfcGNpX3Q7
CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShwaHlzZGV2X21hbmFnZV9wY2lfdCk7CisKKyNkZWZp
bmUgUEhZU0RFVk9QX3Jlc3RvcmVfbXNpICAgICAgICAgICAgMTkKK3N0cnVjdCBwaHlzZGV2X3Jl
c3RvcmVfbXNpIHsKKyAgICAvKiBJTiAqLworICAgIHVpbnQ4X3QgYnVzOworICAgIHVpbnQ4X3Qg
ZGV2Zm47Cit9OwordHlwZWRlZiBzdHJ1Y3QgcGh5c2Rldl9yZXN0b3JlX21zaSBwaHlzZGV2X3Jl
c3RvcmVfbXNpX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShwaHlzZGV2X3Jlc3RvcmVfbXNp
X3QpOworCisjZGVmaW5lIFBIWVNERVZPUF9tYW5hZ2VfcGNpX2FkZF9leHQgICAgIDIwCitzdHJ1
Y3QgcGh5c2Rldl9tYW5hZ2VfcGNpX2V4dCB7CisgICAgLyogSU4gKi8KKyAgICB1aW50OF90IGJ1
czsKKyAgICB1aW50OF90IGRldmZuOworICAgIHVuc2lnbmVkIGlzX2V4dGZuOworICAgIHVuc2ln
bmVkIGlzX3ZpcnRmbjsKKyAgICBzdHJ1Y3QgeworICAgICAgICB1aW50OF90IGJ1czsKKyAgICAg
ICAgdWludDhfdCBkZXZmbjsKKyAgICB9IHBoeXNmbjsKK307CisKK3R5cGVkZWYgc3RydWN0IHBo
eXNkZXZfbWFuYWdlX3BjaV9leHQgcGh5c2Rldl9tYW5hZ2VfcGNpX2V4dF90OworREVGSU5FX1hF
Tl9HVUVTVF9IQU5ETEUocGh5c2Rldl9tYW5hZ2VfcGNpX2V4dF90KTsKKworLyoKKyAqIEFyZ3Vt
ZW50IHRvIHBoeXNkZXZfb3BfY29tcGF0KCkgaHlwZXJjYWxsLiBTdXBlcmNlZGVkIGJ5IG5ldyBw
aHlzZGV2X29wKCkKKyAqIGh5cGVyY2FsbCBzaW5jZSAweDAwMDMwMjAyLgorICovCitzdHJ1Y3Qg
cGh5c2Rldl9vcCB7CisgICAgdWludDMyX3QgY21kOworICAgIHVuaW9uIHsKKyAgICAgICAgc3Ry
dWN0IHBoeXNkZXZfaXJxX3N0YXR1c19xdWVyeSAgICAgIGlycV9zdGF0dXNfcXVlcnk7CisgICAg
ICAgIHN0cnVjdCBwaHlzZGV2X3NldF9pb3BsICAgICAgICAgICAgICBzZXRfaW9wbDsKKyAgICAg
ICAgc3RydWN0IHBoeXNkZXZfc2V0X2lvYml0bWFwICAgICAgICAgIHNldF9pb2JpdG1hcDsKKyAg
ICAgICAgc3RydWN0IHBoeXNkZXZfYXBpYyAgICAgICAgICAgICAgICAgIGFwaWNfb3A7CisgICAg
ICAgIHN0cnVjdCBwaHlzZGV2X2lycSAgICAgICAgICAgICAgICAgICBpcnFfb3A7CisgICAgfSB1
OworfTsKK3R5cGVkZWYgc3RydWN0IHBoeXNkZXZfb3AgcGh5c2Rldl9vcF90OworREVGSU5FX1hF
Tl9HVUVTVF9IQU5ETEUocGh5c2Rldl9vcF90KTsKKworI2RlZmluZSBQSFlTREVWT1Bfc2V0dXBf
Z3NpICAgIDIxCitzdHJ1Y3QgcGh5c2Rldl9zZXR1cF9nc2kgeworICAgIGludCBnc2k7CisgICAg
LyogSU4gKi8KKyAgICB1aW50OF90IHRyaWdnZXJpbmc7CisgICAgLyogSU4gKi8KKyAgICB1aW50
OF90IHBvbGFyaXR5OworICAgIC8qIElOICovCit9OworCit0eXBlZGVmIHN0cnVjdCBwaHlzZGV2
X3NldHVwX2dzaSBwaHlzZGV2X3NldHVwX2dzaV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo
cGh5c2Rldl9zZXR1cF9nc2lfdCk7CisKKy8qIGxlYXZlIFBIWVNERVZPUCAyMiBmcmVlICovCisK
Ky8qIHR5cGUgaXMgTUFQX1BJUlFfVFlQRV9HU0kgb3IgTUFQX1BJUlFfVFlQRV9NU0kKKyAqIHRo
ZSBoeXBlcmNhbGwgcmV0dXJucyBhIGZyZWUgcGlycSAqLworI2RlZmluZSBQSFlTREVWT1BfZ2V0
X2ZyZWVfcGlycSAgICAyMworc3RydWN0IHBoeXNkZXZfZ2V0X2ZyZWVfcGlycSB7CisgICAgLyog
SU4gKi8gCisgICAgaW50IHR5cGU7CisgICAgLyogT1VUICovCisgICAgdWludDMyX3QgcGlycTsK
K307CisKK3R5cGVkZWYgc3RydWN0IHBoeXNkZXZfZ2V0X2ZyZWVfcGlycSBwaHlzZGV2X2dldF9m
cmVlX3BpcnFfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHBoeXNkZXZfZ2V0X2ZyZWVfcGly
cV90KTsKKworI2RlZmluZSBYRU5fUENJX01NQ0ZHX1JFU0VSVkVEICAgICAgICAgMHgxCisKKyNk
ZWZpbmUgUEhZU0RFVk9QX3BjaV9tbWNmZ19yZXNlcnZlZCAgICAyNAorc3RydWN0IHBoeXNkZXZf
cGNpX21tY2ZnX3Jlc2VydmVkIHsKKyAgICB1aW50NjRfdCBhZGRyZXNzOworICAgIHVpbnQxNl90
IHNlZ21lbnQ7CisgICAgdWludDhfdCBzdGFydF9idXM7CisgICAgdWludDhfdCBlbmRfYnVzOwor
ICAgIHVpbnQzMl90IGZsYWdzOworfTsKK3R5cGVkZWYgc3RydWN0IHBoeXNkZXZfcGNpX21tY2Zn
X3Jlc2VydmVkIHBoeXNkZXZfcGNpX21tY2ZnX3Jlc2VydmVkX3Q7CitERUZJTkVfWEVOX0dVRVNU
X0hBTkRMRShwaHlzZGV2X3BjaV9tbWNmZ19yZXNlcnZlZF90KTsKKworI2RlZmluZSBYRU5fUENJ
X0RFVl9FWFRGTiAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFhFTl9QQ0lfREVWX1ZJUlRGTiAg
ICAgICAgICAgICAweDIKKyNkZWZpbmUgWEVOX1BDSV9ERVZfUFhNICAgICAgICAgICAgICAgIDB4
NAorCisjZGVmaW5lIFBIWVNERVZPUF9wY2lfZGV2aWNlX2FkZCAgICAgICAgMjUKK3N0cnVjdCBw
aHlzZGV2X3BjaV9kZXZpY2VfYWRkIHsKKyAgICAvKiBJTiAqLworICAgIHVpbnQxNl90IHNlZzsK
KyAgICB1aW50OF90IGJ1czsKKyAgICB1aW50OF90IGRldmZuOworICAgIHVpbnQzMl90IGZsYWdz
OworICAgIHN0cnVjdCB7CisgICAgICAgIHVpbnQ4X3QgYnVzOworICAgICAgICB1aW50OF90IGRl
dmZuOworICAgIH0gcGh5c2ZuOworICAgIC8qCisgICAgICogT3B0aW9uYWwgcGFyYW1ldGVycyBh
cnJheS4KKyAgICAgKiBGaXJzdCBlbGVtZW50IChbMF0pIGlzIFBYTSBkb21haW4gYXNzb2NpYXRl
ZCB3aXRoIHRoZSBkZXZpY2UgKGlmCisgICAgICogWEVOX1BDSV9ERVZfUFhNIGlzIHNldCkKKyAg
ICAgKi8KKyNpZiBkZWZpbmVkKF9fU1REQ19WRVJTSU9OX18pICYmIF9fU1REQ19WRVJTSU9OX18g
Pj0gMTk5OTAxTAorICAgIHVpbnQzMl90IG9wdGFycltdOworI2VsaWYgZGVmaW5lZChfX0dOVUNf
XykKKyAgICB1aW50MzJfdCBvcHRhcnJbMF07CisjZW5kaWYKK307Cit0eXBlZGVmIHN0cnVjdCBw
aHlzZGV2X3BjaV9kZXZpY2VfYWRkIHBoeXNkZXZfcGNpX2RldmljZV9hZGRfdDsKK0RFRklORV9Y
RU5fR1VFU1RfSEFORExFKHBoeXNkZXZfcGNpX2RldmljZV9hZGRfdCk7CisKKyNkZWZpbmUgUEhZ
U0RFVk9QX3BjaV9kZXZpY2VfcmVtb3ZlICAgICAyNgorI2RlZmluZSBQSFlTREVWT1BfcmVzdG9y
ZV9tc2lfZXh0ICAgICAgIDI3CisvKgorICogRG9tMCBzaG91bGQgdXNlIHRoZXNlIHR3byB0byBh
bm5vdW5jZSBNTUlPIHJlc291cmNlcyBhc3NpZ25lZCB0bworICogTVNJLVggY2FwYWJsZSBkZXZp
Y2VzIHdvbid0IChwcmVwYXJlKSBvciBtYXkgKHJlbGVhc2UpIGNoYW5nZS4KKyAqLworI2RlZmlu
ZSBQSFlTREVWT1BfcHJlcGFyZV9tc2l4ICAgICAgICAgIDMwCisjZGVmaW5lIFBIWVNERVZPUF9y
ZWxlYXNlX21zaXggICAgICAgICAgMzEKK3N0cnVjdCBwaHlzZGV2X3BjaV9kZXZpY2UgeworICAg
IC8qIElOICovCisgICAgdWludDE2X3Qgc2VnOworICAgIHVpbnQ4X3QgYnVzOworICAgIHVpbnQ4
X3QgZGV2Zm47Cit9OwordHlwZWRlZiBzdHJ1Y3QgcGh5c2Rldl9wY2lfZGV2aWNlIHBoeXNkZXZf
cGNpX2RldmljZV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUocGh5c2Rldl9wY2lfZGV2aWNl
X3QpOworCisjZGVmaW5lIFBIWVNERVZPUF9EQkdQX1JFU0VUX1BSRVBBUkUgICAgMQorI2RlZmlu
ZSBQSFlTREVWT1BfREJHUF9SRVNFVF9ET05FICAgICAgIDIKKworI2RlZmluZSBQSFlTREVWT1Bf
REJHUF9CVVNfVU5LTk9XTiAgICAgIDAKKyNkZWZpbmUgUEhZU0RFVk9QX0RCR1BfQlVTX1BDSSAg
ICAgICAgICAxCisKKyNkZWZpbmUgUEhZU0RFVk9QX2RiZ3Bfb3AgICAgICAgICAgICAgICAyOQor
c3RydWN0IHBoeXNkZXZfZGJncF9vcCB7CisgICAgLyogSU4gKi8KKyAgICB1aW50OF90IG9wOwor
ICAgIHVpbnQ4X3QgYnVzOworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHBoeXNkZXZfcGNp
X2RldmljZSBwY2k7CisgICAgfSB1OworfTsKK3R5cGVkZWYgc3RydWN0IHBoeXNkZXZfZGJncF9v
cCBwaHlzZGV2X2RiZ3Bfb3BfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHBoeXNkZXZfZGJn
cF9vcF90KTsKKworLyoKKyAqIE5vdGlmeSB0aGF0IHNvbWUgUElSUS1ib3VuZCBldmVudCBjaGFu
bmVscyBoYXZlIGJlZW4gdW5tYXNrZWQuCisgKiAqKiBUaGlzIGNvbW1hbmQgaXMgb2Jzb2xldGUg
c2luY2UgaW50ZXJmYWNlIHZlcnNpb24gMHgwMDAzMDIwMiBhbmQgaXMgKioKKyAqICoqIHVuc3Vw
cG9ydGVkIGJ5IG5ld2VyIHZlcnNpb25zIG9mIFhlbi4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqKgorICovCisjZGVmaW5lIFBIWVNERVZPUF9JUlFfVU5NQVNLX05PVElGWSAgICAgIDQK
KworI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPCAweDAwMDQwNjAwCisvKgorICogVGhl
c2UgYWxsLWNhcGl0YWxzIHBoeXNkZXYgb3BlcmF0aW9uIG5hbWVzIGFyZSBzdXBlcmNlZGVkIGJ5
IHRoZSBuZXcgbmFtZXMKKyAqIChkZWZpbmVkIGFib3ZlKSBzaW5jZSBpbnRlcmZhY2UgdmVyc2lv
biAweDAwMDMwMjAyLiBUaGUgZ3VhcmQgYWJvdmUgd2FzCisgKiBhZGRlZCBwb3N0LTQuNSBvbmx5
IHRob3VnaCBhbmQgaGVuY2Ugc2hvdWxkbid0IGNoZWNrIGZvciAweDAwMDMwMjAyLgorICovCisj
ZGVmaW5lIFBIWVNERVZPUF9JUlFfU1RBVFVTX1FVRVJZICAgICAgIFBIWVNERVZPUF9pcnFfc3Rh
dHVzX3F1ZXJ5CisjZGVmaW5lIFBIWVNERVZPUF9TRVRfSU9QTCAgICAgICAgICAgICAgIFBIWVNE
RVZPUF9zZXRfaW9wbAorI2RlZmluZSBQSFlTREVWT1BfU0VUX0lPQklUTUFQICAgICAgICAgICBQ
SFlTREVWT1Bfc2V0X2lvYml0bWFwCisjZGVmaW5lIFBIWVNERVZPUF9BUElDX1JFQUQgICAgICAg
ICAgICAgIFBIWVNERVZPUF9hcGljX3JlYWQKKyNkZWZpbmUgUEhZU0RFVk9QX0FQSUNfV1JJVEUg
ICAgICAgICAgICAgUEhZU0RFVk9QX2FwaWNfd3JpdGUKKyNkZWZpbmUgUEhZU0RFVk9QX0FTU0lH
Tl9WRUNUT1IgICAgICAgICAgUEhZU0RFVk9QX2FsbG9jX2lycV92ZWN0b3IKKyNkZWZpbmUgUEhZ
U0RFVk9QX0ZSRUVfVkVDVE9SICAgICAgICAgICAgUEhZU0RFVk9QX2ZyZWVfaXJxX3ZlY3Rvcgor
I2RlZmluZSBQSFlTREVWT1BfSVJRX05FRURTX1VOTUFTS19OT1RJRlkgWEVOSVJRU1RBVF9uZWVk
c19lb2kKKyNkZWZpbmUgUEhZU0RFVk9QX0lSUV9TSEFSRUQgICAgICAgICAgICAgWEVOSVJRU1RB
VF9zaGFyZWQKKyNlbmRpZgorCisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAw
NDAyMDAKKyNkZWZpbmUgUEhZU0RFVk9QX3BpcnFfZW9pX2dtZm4gUEhZU0RFVk9QX3BpcnFfZW9p
X2dtZm5fdjEKKyNlbHNlCisjZGVmaW5lIFBIWVNERVZPUF9waXJxX2VvaV9nbWZuIFBIWVNERVZP
UF9waXJxX2VvaV9nbWZuX3YyCisjZW5kaWYKKworI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19QSFlT
REVWX0hfXyAqLworCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1m
aWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAor
ICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1
ZGUveGVuL3hzbS9wbGF0Zm9ybS5oIGIvaW5jbHVkZS94ZW4veHNtL3BsYXRmb3JtLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRkYmMzZgotLS0gL2Rldi9udWxsCisrKyBi
L2luY2x1ZGUveGVuL3hzbS9wbGF0Zm9ybS5oCkBAIC0wLDAgKzEsNjYzIEBACisvKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqCisgKiBwbGF0Zm9ybS5oCisgKiAKKyAqIEhhcmR3YXJlIHBsYXRmb3JtIG9w
ZXJhdGlvbnMuIEludGVuZGVkIGZvciB1c2UgYnkgZG9tYWluLTAga2VybmVsLgorICogCisgKiBQ
ZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNv
biBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRv
Y3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhlIFNv
ZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24g
dGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0
cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2Fy
ZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBmdXJu
aXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoK
KyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl
IHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRp
b25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFT
IElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElF
RCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5G
UklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hU
IEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJX
SVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBT
T0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUu
CisgKgorICogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDYsIEsgRnJhc2VyCisgKi8KKworI2lmbmRl
ZiBfX1hFTl9QVUJMSUNfUExBVEZPUk1fSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19QTEFURk9S
TV9IX18KKworI2luY2x1ZGUgInhlbi5oIgorCisjZGVmaW5lIFhFTlBGX0lOVEVSRkFDRV9WRVJT
SU9OIDB4MDMwMDAwMDEKKworLyoKKyAqIFNldCBjbG9jayBzdWNoIHRoYXQgaXQgd291bGQgcmVh
ZCA8c2Vjcyxuc2Vjcz4gYWZ0ZXIgMDA6MDA6MDAgVVRDLAorICogMSBKYW51YXJ5LCAxOTcwIGlm
IHRoZSBjdXJyZW50IHN5c3RlbSB0aW1lIHdhcyA8c3lzdGVtX3RpbWU+LgorICovCisjZGVmaW5l
IFhFTlBGX3NldHRpbWUzMiAgICAgICAgICAgMTcKK3N0cnVjdCB4ZW5wZl9zZXR0aW1lMzIgewor
ICAgIC8qIElOIHZhcmlhYmxlcy4gKi8KKyAgICB1aW50MzJfdCBzZWNzOworICAgIHVpbnQzMl90
IG5zZWNzOworICAgIHVpbnQ2NF90IHN5c3RlbV90aW1lOworfTsKKyNkZWZpbmUgWEVOUEZfc2V0
dGltZTY0ICAgICAgICAgICA2Mgorc3RydWN0IHhlbnBmX3NldHRpbWU2NCB7CisgICAgLyogSU4g
dmFyaWFibGVzLiAqLworICAgIHVpbnQ2NF90IHNlY3M7CisgICAgdWludDMyX3QgbnNlY3M7Cisg
ICAgdWludDMyX3QgbWJ6OworICAgIHVpbnQ2NF90IHN5c3RlbV90aW1lOworfTsKKyNpZiBfX1hF
Tl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDA0MDYwMAorI2RlZmluZSBYRU5QRl9zZXR0aW1l
IFhFTlBGX3NldHRpbWUzMgorI2RlZmluZSB4ZW5wZl9zZXR0aW1lIHhlbnBmX3NldHRpbWUzMgor
I2Vsc2UKKyNkZWZpbmUgWEVOUEZfc2V0dGltZSBYRU5QRl9zZXR0aW1lNjQKKyNkZWZpbmUgeGVu
cGZfc2V0dGltZSB4ZW5wZl9zZXR0aW1lNjQKKyNlbmRpZgordHlwZWRlZiBzdHJ1Y3QgeGVucGZf
c2V0dGltZSB4ZW5wZl9zZXR0aW1lX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5wZl9z
ZXR0aW1lX3QpOworCisvKgorICogUmVxdWVzdCBtZW1vcnkgcmFuZ2UgKEBtZm4sIEBtZm4rQG5y
X21mbnMtMSkgdG8gaGF2ZSB0eXBlIEB0eXBlLgorICogT24geDg2LCBAdHlwZSBpcyBhbiBhcmNo
aXRlY3R1cmUtZGVmaW5lZCBNVFJSIG1lbW9yeSB0eXBlLgorICogT24gc3VjY2VzcywgcmV0dXJu
cyB0aGUgTVRSUiB0aGF0IHdhcyB1c2VkIChAcmVnKSBhbmQgYSBoYW5kbGUgdGhhdCBjYW4KKyAq
IGJlIHBhc3NlZCB0byBYRU5QRl9ERUxfTUVNVFlQRSB0byBhY2N1cmF0ZWx5IHRlYXIgZG93biB0
aGUgbmV3IHNldHRpbmcuCisgKiAoeDg2LXNwZWNpZmljKS4KKyAqLworI2RlZmluZSBYRU5QRl9h
ZGRfbWVtdHlwZSAgICAgICAgIDMxCitzdHJ1Y3QgeGVucGZfYWRkX21lbXR5cGUgeworICAgIC8q
IElOIHZhcmlhYmxlcy4gKi8KKyAgICB4ZW5fcGZuX3QgbWZuOworICAgIHVpbnQ2NF90IG5yX21m
bnM7CisgICAgdWludDMyX3QgdHlwZTsKKyAgICAvKiBPVVQgdmFyaWFibGVzLiAqLworICAgIHVp
bnQzMl90IGhhbmRsZTsKKyAgICB1aW50MzJfdCByZWc7Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVu
cGZfYWRkX21lbXR5cGUgeGVucGZfYWRkX21lbXR5cGVfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFO
RExFKHhlbnBmX2FkZF9tZW10eXBlX3QpOworCisvKgorICogVGVhciBkb3duIGFuIGV4aXN0aW5n
IG1lbW9yeS1yYW5nZSB0eXBlLiBJZiBAaGFuZGxlIGlzIHJlbWVtYmVyZWQgdGhlbiBpdAorICog
c2hvdWxkIGJlIHBhc3NlZCBpbiB0byBhY2N1cmF0ZWx5IHRlYXIgZG93biB0aGUgY29ycmVjdCBz
ZXR0aW5nIChpbiBjYXNlCisgKiBvZiBvdmVybGFwcGluZyBtZW1vcnkgcmVnaW9ucyB3aXRoIGRp
ZmZlcmluZyB0eXBlcykuIElmIGl0IGlzIG5vdCBrbm93bgorICogdGhlbiBAaGFuZGxlIHNob3Vs
ZCBiZSBzZXQgdG8gemVyby4gSW4gYWxsIGNhc2VzIEByZWcgbXVzdCBiZSBzZXQuCisgKiAoeDg2
LXNwZWNpZmljKS4KKyAqLworI2RlZmluZSBYRU5QRl9kZWxfbWVtdHlwZSAgICAgICAgIDMyCitz
dHJ1Y3QgeGVucGZfZGVsX21lbXR5cGUgeworICAgIC8qIElOIHZhcmlhYmxlcy4gKi8KKyAgICB1
aW50MzJfdCBoYW5kbGU7CisgICAgdWludDMyX3QgcmVnOworfTsKK3R5cGVkZWYgc3RydWN0IHhl
bnBmX2RlbF9tZW10eXBlIHhlbnBmX2RlbF9tZW10eXBlX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hB
TkRMRSh4ZW5wZl9kZWxfbWVtdHlwZV90KTsKKworLyogUmVhZCBjdXJyZW50IHR5cGUgb2YgYW4g
TVRSUiAoeDg2LXNwZWNpZmljKS4gKi8KKyNkZWZpbmUgWEVOUEZfcmVhZF9tZW10eXBlICAgICAg
ICAzMworc3RydWN0IHhlbnBmX3JlYWRfbWVtdHlwZSB7CisgICAgLyogSU4gdmFyaWFibGVzLiAq
LworICAgIHVpbnQzMl90IHJlZzsKKyAgICAvKiBPVVQgdmFyaWFibGVzLiAqLworICAgIHhlbl9w
Zm5fdCBtZm47CisgICAgdWludDY0X3QgbnJfbWZuczsKKyAgICB1aW50MzJfdCB0eXBlOworfTsK
K3R5cGVkZWYgc3RydWN0IHhlbnBmX3JlYWRfbWVtdHlwZSB4ZW5wZl9yZWFkX21lbXR5cGVfdDsK
K0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbnBmX3JlYWRfbWVtdHlwZV90KTsKKworI2RlZmlu
ZSBYRU5QRl9taWNyb2NvZGVfdXBkYXRlICAgIDM1CitzdHJ1Y3QgeGVucGZfbWljcm9jb2RlX3Vw
ZGF0ZSB7CisgICAgLyogSU4gdmFyaWFibGVzLiAqLworICAgIFhFTl9HVUVTVF9IQU5ETEUoY29u
c3Rfdm9pZCkgZGF0YTsvKiBQb2ludGVyIHRvIG1pY3JvY29kZSBkYXRhICovCisgICAgdWludDMy
X3QgbGVuZ3RoOyAgICAgICAgICAgICAgICAgIC8qIExlbmd0aCBvZiBtaWNyb2NvZGUgZGF0YS4g
Ki8KK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5wZl9taWNyb2NvZGVfdXBkYXRlIHhlbnBmX21pY3Jv
Y29kZV91cGRhdGVfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbnBmX21pY3JvY29kZV91
cGRhdGVfdCk7CisKKyNkZWZpbmUgWEVOUEZfcGxhdGZvcm1fcXVpcmsgICAgICAzOQorI2RlZmlu
ZSBRVUlSS19OT0lSUUJBTEFOQ0lORyAgICAgIDEgLyogRG8gbm90IHJlc3RyaWN0IElPLUFQSUMg
UlRFIHRhcmdldHMgKi8KKyNkZWZpbmUgUVVJUktfSU9BUElDX0JBRF9SRUdTRUwgICAyIC8qIElP
LUFQSUMgUkVHU0VMIGZvcmdldHMgaXRzIHZhbHVlICAgICovCisjZGVmaW5lIFFVSVJLX0lPQVBJ
Q19HT09EX1JFR1NFTCAgMyAvKiBJTy1BUElDIFJFR1NFTCBiZWhhdmVzIHByb3Blcmx5ICAgICAq
Lworc3RydWN0IHhlbnBmX3BsYXRmb3JtX3F1aXJrIHsKKyAgICAvKiBJTiB2YXJpYWJsZXMuICov
CisgICAgdWludDMyX3QgcXVpcmtfaWQ7Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVucGZfcGxhdGZv
cm1fcXVpcmsgeGVucGZfcGxhdGZvcm1fcXVpcmtfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExF
KHhlbnBmX3BsYXRmb3JtX3F1aXJrX3QpOworCisjZGVmaW5lIFhFTlBGX2VmaV9ydW50aW1lX2Nh
bGwgICAgNDkKKyNkZWZpbmUgWEVOX0VGSV9nZXRfdGltZSAgICAgICAgICAgICAgICAgICAgICAx
CisjZGVmaW5lIFhFTl9FRklfc2V0X3RpbWUgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmlu
ZSBYRU5fRUZJX2dldF93YWtldXBfdGltZSAgICAgICAgICAgICAgIDMKKyNkZWZpbmUgWEVOX0VG
SV9zZXRfd2FrZXVwX3RpbWUgICAgICAgICAgICAgICA0CisjZGVmaW5lIFhFTl9FRklfZ2V0X25l
eHRfaGlnaF9tb25vdG9uaWNfY291bnQgNQorI2RlZmluZSBYRU5fRUZJX2dldF92YXJpYWJsZSAg
ICAgICAgICAgICAgICAgIDYKKyNkZWZpbmUgWEVOX0VGSV9zZXRfdmFyaWFibGUgICAgICAgICAg
ICAgICAgICA3CisjZGVmaW5lIFhFTl9FRklfZ2V0X25leHRfdmFyaWFibGVfbmFtZSAgICAgICAg
OAorI2RlZmluZSBYRU5fRUZJX3F1ZXJ5X3ZhcmlhYmxlX2luZm8gICAgICAgICAgIDkKKyNkZWZp
bmUgWEVOX0VGSV9xdWVyeV9jYXBzdWxlX2NhcGFiaWxpdGllcyAgIDEwCisjZGVmaW5lIFhFTl9F
RklfdXBkYXRlX2NhcHN1bGUgICAgICAgICAgICAgICAxMQorCitzdHJ1Y3QgeGVucGZfZWZpX3Rp
bWUgeworICAgIHVpbnQxNl90IHllYXI7CisgICAgdWludDhfdCBtb250aDsKKyAgICB1aW50OF90
IGRheTsKKyAgICB1aW50OF90IGhvdXI7CisgICAgdWludDhfdCBtaW47CisgICAgdWludDhfdCBz
ZWM7CisgICAgdWludDMyX3QgbnM7CisgICAgaW50MTZfdCB0ejsKKyAgICB1aW50OF90IGRheWxp
Z2h0OworfTsKKworc3RydWN0IHhlbnBmX2VmaV9ndWlkIHsKKyAgICB1aW50MzJfdCBkYXRhMTsK
KyAgICB1aW50MTZfdCBkYXRhMjsKKyAgICB1aW50MTZfdCBkYXRhMzsKKyAgICB1aW50OF90IGRh
dGE0WzhdOworfTsKKworc3RydWN0IHhlbnBmX2VmaV9ydW50aW1lX2NhbGwgeworICAgIHVpbnQz
Ml90IGZ1bmN0aW9uOworICAgIC8qCisgICAgICogVGhpcyBmaWVsZCBpcyBnZW5lcmFsbHkgdXNl
ZCBmb3IgcGVyIHN1Yi1mdW5jdGlvbiBmbGFncyAoZGVmaW5lZAorICAgICAqIGJlbG93KSwgZXhj
ZXB0IGZvciB0aGUgWEVOX0VGSV9nZXRfbmV4dF9oaWdoX21vbm90b25pY19jb3VudCBjYXNlLAor
ICAgICAqIHdoZXJlIGl0IGhvbGRzIHRoZSBzaW5nbGUgcmV0dXJuZWQgdmFsdWUuCisgICAgICov
CisgICAgdWludDMyX3QgbWlzYzsKKyAgICB4ZW5fdWxvbmdfdCBzdGF0dXM7CisgICAgdW5pb24g
eworI2RlZmluZSBYRU5fRUZJX0dFVF9USU1FX1NFVF9DTEVBUlNfTlMgMHgwMDAwMDAwMQorICAg
ICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgc3RydWN0IHhlbnBmX2VmaV90aW1lIHRpbWU7Cisg
ICAgICAgICAgICB1aW50MzJfdCByZXNvbHV0aW9uOworICAgICAgICAgICAgdWludDMyX3QgYWNj
dXJhY3k7CisgICAgICAgIH0gZ2V0X3RpbWU7CisKKyAgICAgICAgc3RydWN0IHhlbnBmX2VmaV90
aW1lIHNldF90aW1lOworCisjZGVmaW5lIFhFTl9FRklfR0VUX1dBS0VVUF9USU1FX0VOQUJMRUQg
MHgwMDAwMDAwMQorI2RlZmluZSBYRU5fRUZJX0dFVF9XQUtFVVBfVElNRV9QRU5ESU5HIDB4MDAw
MDAwMDIKKyAgICAgICAgc3RydWN0IHhlbnBmX2VmaV90aW1lIGdldF93YWtldXBfdGltZTsKKwor
I2RlZmluZSBYRU5fRUZJX1NFVF9XQUtFVVBfVElNRV9FTkFCTEUgICAgICAweDAwMDAwMDAxCisj
ZGVmaW5lIFhFTl9FRklfU0VUX1dBS0VVUF9USU1FX0VOQUJMRV9PTkxZIDB4MDAwMDAwMDIKKyAg
ICAgICAgc3RydWN0IHhlbnBmX2VmaV90aW1lIHNldF93YWtldXBfdGltZTsKKworI2RlZmluZSBY
RU5fRUZJX1ZBUklBQkxFX05PTl9WT0xBVElMRSAgICAgICAweDAwMDAwMDAxCisjZGVmaW5lIFhF
Tl9FRklfVkFSSUFCTEVfQk9PVFNFUlZJQ0VfQUNDRVNTIDB4MDAwMDAwMDIKKyNkZWZpbmUgWEVO
X0VGSV9WQVJJQUJMRV9SVU5USU1FX0FDQ0VTUyAgICAgMHgwMDAwMDAwNAorICAgICAgICBzdHJ1
Y3QgeworICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRSh2b2lkKSBuYW1lOyAgLyogVUNTLTIv
VVRGLTE2IHN0cmluZyAqLworICAgICAgICAgICAgeGVuX3Vsb25nX3Qgc2l6ZTsKKyAgICAgICAg
ICAgIFhFTl9HVUVTVF9IQU5ETEUodm9pZCkgZGF0YTsKKyAgICAgICAgICAgIHN0cnVjdCB4ZW5w
Zl9lZmlfZ3VpZCB2ZW5kb3JfZ3VpZDsKKyAgICAgICAgfSBnZXRfdmFyaWFibGUsIHNldF92YXJp
YWJsZTsKKworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgeGVuX3Vsb25nX3Qgc2l6ZTsK
KyAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEUodm9pZCkgbmFtZTsgIC8qIFVDUy0yL1VURi0x
NiBzdHJpbmcgKi8KKyAgICAgICAgICAgIHN0cnVjdCB4ZW5wZl9lZmlfZ3VpZCB2ZW5kb3JfZ3Vp
ZDsKKyAgICAgICAgfSBnZXRfbmV4dF92YXJpYWJsZV9uYW1lOworCisjZGVmaW5lIFhFTl9FRklf
VkFSSU5GT19CT09UX1NOQVBTSE9UICAgICAgIDB4MDAwMDAwMDEKKyAgICAgICAgc3RydWN0IHsK
KyAgICAgICAgICAgIHVpbnQzMl90IGF0dHI7CisgICAgICAgICAgICB1aW50NjRfdCBtYXhfc3Rv
cmVfc2l6ZTsKKyAgICAgICAgICAgIHVpbnQ2NF90IHJlbWFpbl9zdG9yZV9zaXplOworICAgICAg
ICAgICAgdWludDY0X3QgbWF4X3NpemU7CisgICAgICAgIH0gcXVlcnlfdmFyaWFibGVfaW5mbzsK
KworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRSh2b2lkKSBj
YXBzdWxlX2hlYWRlcl9hcnJheTsKKyAgICAgICAgICAgIHhlbl91bG9uZ190IGNhcHN1bGVfY291
bnQ7CisgICAgICAgICAgICB1aW50NjRfdCBtYXhfY2Fwc3VsZV9zaXplOworICAgICAgICAgICAg
dWludDMyX3QgcmVzZXRfdHlwZTsKKyAgICAgICAgfSBxdWVyeV9jYXBzdWxlX2NhcGFiaWxpdGll
czsKKworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRSh2b2lk
KSBjYXBzdWxlX2hlYWRlcl9hcnJheTsKKyAgICAgICAgICAgIHhlbl91bG9uZ190IGNhcHN1bGVf
Y291bnQ7CisgICAgICAgICAgICB1aW50NjRfdCBzZ19saXN0OyAvKiBtYWNoaW5lIGFkZHJlc3Mg
Ki8KKyAgICAgICAgfSB1cGRhdGVfY2Fwc3VsZTsKKyAgICB9IHU7Cit9OwordHlwZWRlZiBzdHJ1
Y3QgeGVucGZfZWZpX3J1bnRpbWVfY2FsbCB4ZW5wZl9lZmlfcnVudGltZV9jYWxsX3Q7CitERUZJ
TkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5wZl9lZmlfcnVudGltZV9jYWxsX3QpOworCisjZGVmaW5l
IFhFTlBGX2Zpcm13YXJlX2luZm8gICAgICAgNTAKKyNkZWZpbmUgWEVOX0ZXX0RJU0tfSU5GTyAg
ICAgICAgICAxIC8qIGZyb20gaW50IDEzIEFIPTA4LzQxLzQ4ICovCisjZGVmaW5lIFhFTl9GV19E
SVNLX01CUl9TSUdOQVRVUkUgMiAvKiBmcm9tIE1CUiBvZmZzZXQgMHgxYjggKi8KKyNkZWZpbmUg
WEVOX0ZXX1ZCRUREQ19JTkZPICAgICAgICAzIC8qIGZyb20gaW50IDEwIEFYPTRmMTUgKi8KKyNk
ZWZpbmUgWEVOX0ZXX0VGSV9JTkZPICAgICAgICAgICA0IC8qIGZyb20gRUZJICovCisjZGVmaW5l
ICBYRU5fRldfRUZJX1ZFUlNJT04gICAgICAgIDAKKyNkZWZpbmUgIFhFTl9GV19FRklfQ09ORklH
X1RBQkxFICAgMQorI2RlZmluZSAgWEVOX0ZXX0VGSV9WRU5ET1IgICAgICAgICAyCisjZGVmaW5l
ICBYRU5fRldfRUZJX01FTV9JTkZPICAgICAgIDMKKyNkZWZpbmUgIFhFTl9GV19FRklfUlRfVkVS
U0lPTiAgICAgNAorI2RlZmluZSAgWEVOX0ZXX0VGSV9QQ0lfUk9NICAgICAgICA1CisjZGVmaW5l
ICBYRU5fRldfRUZJX0FQUExFX1BST1BFUlRJRVMgNgorI2RlZmluZSBYRU5fRldfS0JEX1NISUZU
X0ZMQUdTICAgIDUKK3N0cnVjdCB4ZW5wZl9maXJtd2FyZV9pbmZvIHsKKyAgICAvKiBJTiB2YXJp
YWJsZXMuICovCisgICAgdWludDMyX3QgdHlwZTsKKyAgICB1aW50MzJfdCBpbmRleDsKKyAgICAv
KiBPVVQgdmFyaWFibGVzLiAqLworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHsKKyAgICAg
ICAgICAgIC8qIEludDEzLCBGbjQ4OiBDaGVjayBFeHRlbnNpb25zIFByZXNlbnQuICovCisgICAg
ICAgICAgICB1aW50OF90IGRldmljZTsgICAgICAgICAgICAgICAgICAgLyogJWRsOiBiaW9zIGRl
dmljZSBudW1iZXIgKi8KKyAgICAgICAgICAgIHVpbnQ4X3QgdmVyc2lvbjsgICAgICAgICAgICAg
ICAgICAvKiAlYWg6IG1ham9yIHZlcnNpb24gICAgICAqLworICAgICAgICAgICAgdWludDE2X3Qg
aW50ZXJmYWNlX3N1cHBvcnQ7ICAgICAgIC8qICVjeDogc3VwcG9ydCBiaXRtYXAgICAgICovCisg
ICAgICAgICAgICAvKiBJbnQxMywgRm4wODogTGVnYWN5IEdldCBEZXZpY2UgUGFyYW1ldGVycy4g
Ki8KKyAgICAgICAgICAgIHVpbnQxNl90IGxlZ2FjeV9tYXhfY3lsaW5kZXI7ICAgICAvKiAlY2xb
Nzo2XTolY2g6IG1heCBjeWwgIyAqLworICAgICAgICAgICAgdWludDhfdCBsZWdhY3lfbWF4X2hl
YWQ7ICAgICAgICAgIC8qICVkaDogbWF4IGhlYWQgIyAgICAgICAgICovCisgICAgICAgICAgICB1
aW50OF90IGxlZ2FjeV9zZWN0b3JzX3Blcl90cmFjazsgLyogJWNsWzU6MF06IG1heCBzZWN0b3Ig
IyAgKi8KKyAgICAgICAgICAgIC8qIEludDEzLCBGbjQxOiBHZXQgRGV2aWNlIFBhcmFtZXRlcnMg
KGFzIGZpbGxlZCBpbnRvICVkczolZXNpKS4gKi8KKyAgICAgICAgICAgIC8qIE5CLiBGaXJzdCB1
aW50MTZfdCBvZiBidWZmZXIgbXVzdCBiZSBzZXQgdG8gYnVmZmVyIHNpemUuICAgICAgKi8KKyAg
ICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEUodm9pZCkgZWRkX3BhcmFtczsKKyAgICAgICAgfSBk
aXNrX2luZm87IC8qIFhFTl9GV19ESVNLX0lORk8gKi8KKyAgICAgICAgc3RydWN0IHsKKyAgICAg
ICAgICAgIHVpbnQ4X3QgZGV2aWNlOyAgICAgICAgICAgICAgICAgICAvKiBiaW9zIGRldmljZSBu
dW1iZXIgICovCisgICAgICAgICAgICB1aW50MzJfdCBtYnJfc2lnbmF0dXJlOyAgICAgICAgICAg
Lyogb2Zmc2V0IDB4MWI4IGluIG1iciAqLworICAgICAgICB9IGRpc2tfbWJyX3NpZ25hdHVyZTsg
LyogWEVOX0ZXX0RJU0tfTUJSX1NJR05BVFVSRSAqLworICAgICAgICBzdHJ1Y3QgeworICAgICAg
ICAgICAgLyogSW50MTAsIEFYPTRGMTU6IEdldCBFRElEIGluZm8uICovCisgICAgICAgICAgICB1
aW50OF90IGNhcGFiaWxpdGllczsKKyAgICAgICAgICAgIHVpbnQ4X3QgZWRpZF90cmFuc2Zlcl90
aW1lOworICAgICAgICAgICAgLyogbXVzdCByZWZlciB0byAxMjgtYnl0ZSBidWZmZXIgKi8KKyAg
ICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEUodWludDgpIGVkaWQ7CisgICAgICAgIH0gdmJlZGRj
X2luZm87IC8qIFhFTl9GV19WQkVERENfSU5GTyAqLworICAgICAgICB1bmlvbiB4ZW5wZl9lZmlf
aW5mbyB7CisgICAgICAgICAgICB1aW50MzJfdCB2ZXJzaW9uOworICAgICAgICAgICAgc3RydWN0
IHsKKyAgICAgICAgICAgICAgICB1aW50NjRfdCBhZGRyOyAgICAgICAgICAgICAgICAvKiBFRklf
Q09ORklHVVJBVElPTl9UQUJMRSAqLworICAgICAgICAgICAgICAgIHVpbnQzMl90IG5lbnQ7Cisg
ICAgICAgICAgICB9IGNmZzsKKyAgICAgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICAgICAg
dWludDMyX3QgcmV2aXNpb247CisgICAgICAgICAgICAgICAgdWludDMyX3QgYnVmc3o7ICAgICAg
ICAgICAgICAgLyogaW5wdXQsIGluIGJ5dGVzICovCisgICAgICAgICAgICAgICAgWEVOX0dVRVNU
X0hBTkRMRSh2b2lkKSBuYW1lOyAgLyogVUNTLTIvVVRGLTE2IHN0cmluZyAqLworICAgICAgICAg
ICAgfSB2ZW5kb3I7CisgICAgICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgICAgIHVpbnQ2
NF90IGFkZHI7CisgICAgICAgICAgICAgICAgdWludDY0X3Qgc2l6ZTsKKyAgICAgICAgICAgICAg
ICB1aW50NjRfdCBhdHRyOworICAgICAgICAgICAgICAgIHVpbnQzMl90IHR5cGU7CisgICAgICAg
ICAgICB9IG1lbTsKKyAgICAgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICAgICAgLyogSU4g
dmFyaWFibGVzICovCisgICAgICAgICAgICAgICAgdWludDE2X3Qgc2VnbWVudDsKKyAgICAgICAg
ICAgICAgICB1aW50OF90IGJ1czsKKyAgICAgICAgICAgICAgICB1aW50OF90IGRldmZuOworICAg
ICAgICAgICAgICAgIHVpbnQxNl90IHZlbmRvcjsKKyAgICAgICAgICAgICAgICB1aW50MTZfdCBk
ZXZpZDsKKyAgICAgICAgICAgICAgICAvKiBPVVQgdmFyaWFibGVzICovCisgICAgICAgICAgICAg
ICAgdWludDY0X3QgYWRkcmVzczsKKyAgICAgICAgICAgICAgICB4ZW5fdWxvbmdfdCBzaXplOwor
ICAgICAgICAgICAgfSBwY2lfcm9tOworICAgICAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAg
ICAgICAvKiBPVVQgdmFyaWFibGVzICovCisgICAgICAgICAgICAgICAgdWludDY0X3QgYWRkcmVz
czsKKyAgICAgICAgICAgICAgICB4ZW5fdWxvbmdfdCBzaXplOworICAgICAgICAgICAgfSBhcHBs
ZV9wcm9wZXJ0aWVzOworICAgICAgICB9IGVmaV9pbmZvOyAvKiBYRU5fRldfRUZJX0lORk8gKi8K
KworICAgICAgICAvKiBJbnQxNiwgRm4wMjogR2V0IGtleWJvYXJkIHNoaWZ0IGZsYWdzLiAqLwor
ICAgICAgICB1aW50OF90IGtiZF9zaGlmdF9mbGFnczsgLyogWEVOX0ZXX0tCRF9TSElGVF9GTEFH
UyAqLworICAgIH0gdTsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5wZl9maXJtd2FyZV9pbmZvIHhl
bnBmX2Zpcm13YXJlX2luZm9fdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbnBmX2Zpcm13
YXJlX2luZm9fdCk7CisKKyNkZWZpbmUgWEVOUEZfZW50ZXJfYWNwaV9zbGVlcCAgICA1MQorc3Ry
dWN0IHhlbnBmX2VudGVyX2FjcGlfc2xlZXAgeworICAgIC8qIElOIHZhcmlhYmxlcyAqLworI2lm
IF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPCAweDAwMDQwMzAwCisgICAgdWludDE2X3QgcG0x
YV9jbnRfdmFsOyAgICAgIC8qIFBNMWEgY29udHJvbCB2YWx1ZS4gKi8KKyAgICB1aW50MTZfdCBw
bTFiX2NudF92YWw7ICAgICAgLyogUE0xYiBjb250cm9sIHZhbHVlLiAqLworI2Vsc2UKKyAgICB1
aW50MTZfdCB2YWxfYTsgICAgICAgICAgICAgLyogUE0xYSBjb250cm9sIC8gc2xlZXAgdHlwZSBB
LiAqLworICAgIHVpbnQxNl90IHZhbF9iOyAgICAgICAgICAgICAvKiBQTTFiIGNvbnRyb2wgLyBz
bGVlcCB0eXBlIEIuICovCisjZW5kaWYKKyAgICB1aW50MzJfdCBzbGVlcF9zdGF0ZTsgICAgICAg
LyogV2hpY2ggc3RhdGUgdG8gZW50ZXIgKFNuKS4gKi8KKyNkZWZpbmUgWEVOUEZfQUNQSV9TTEVF
UF9FWFRFTkRFRCAweDAwMDAwMDAxCisgICAgdWludDMyX3QgZmxhZ3M7ICAgICAgICAgICAgIC8q
IFhFTlBGX0FDUElfU0xFRVBfKi4gKi8KK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5wZl9lbnRlcl9h
Y3BpX3NsZWVwIHhlbnBmX2VudGVyX2FjcGlfc2xlZXBfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFO
RExFKHhlbnBmX2VudGVyX2FjcGlfc2xlZXBfdCk7CisKKyNkZWZpbmUgWEVOUEZfY2hhbmdlX2Zy
ZXEgICAgICAgICA1Mgorc3RydWN0IHhlbnBmX2NoYW5nZV9mcmVxIHsKKyAgICAvKiBJTiB2YXJp
YWJsZXMgKi8KKyAgICB1aW50MzJfdCBmbGFnczsgLyogTXVzdCBiZSB6ZXJvLiAqLworICAgIHVp
bnQzMl90IGNwdTsgICAvKiBQaHlzaWNhbCBjcHUuICovCisgICAgdWludDY0X3QgZnJlcTsgIC8q
IE5ldyBmcmVxdWVuY3kgKEh6KS4gKi8KK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5wZl9jaGFuZ2Vf
ZnJlcSB4ZW5wZl9jaGFuZ2VfZnJlcV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVucGZf
Y2hhbmdlX2ZyZXFfdCk7CisKKy8qCisgKiBHZXQgaWRsZSB0aW1lcyAobmFub3NlY29uZHMgc2lu
Y2UgYm9vdCkgZm9yIHBoeXNpY2FsIENQVXMgc3BlY2lmaWVkIGluIHRoZQorICogQGNwdW1hcF9i
aXRtYXAgd2l0aCByYW5nZSBbMC4uQGNwdW1hcF9ucl9jcHVzLTFdLiBUaGUgQGlkbGV0aW1lIGFy
cmF5IGlzCisgKiBpbmRleGVkIGJ5IENQVSBudW1iZXI7IG9ubHkgZW50cmllcyB3aXRoIHRoZSBj
b3JyZXNwb25kaW5nIEBjcHVtYXBfYml0bWFwCisgKiBiaXQgc2V0IGFyZSB3cml0dGVuIHRvLiBP
biByZXR1cm4sIEBjcHVtYXBfYml0bWFwIGlzIG1vZGlmaWVkIHNvIHRoYXQgYW55CisgKiBub24t
ZXhpc3RlbnQgQ1BVcyBhcmUgY2xlYXJlZC4gU3VjaCBDUFVzIGhhdmUgdGhlaXIgQGlkbGV0aW1l
IGFycmF5IGVudHJ5CisgKiBjbGVhcmVkLgorICovCisjZGVmaW5lIFhFTlBGX2dldGlkbGV0aW1l
ICAgICAgICAgNTMKK3N0cnVjdCB4ZW5wZl9nZXRpZGxldGltZSB7CisgICAgLyogSU4vT1VUIHZh
cmlhYmxlcyAqLworICAgIC8qIElOOiBDUFVzIHRvIGludGVycm9nYXRlOyBPVVQ6IHN1YnNldCBv
ZiBJTiB3aGljaCBhcmUgcHJlc2VudCAqLworICAgIFhFTl9HVUVTVF9IQU5ETEUodWludDgpIGNw
dW1hcF9iaXRtYXA7CisgICAgLyogSU4gdmFyaWFibGVzICovCisgICAgLyogU2l6ZSBvZiBjcHVt
YXAgYml0bWFwLiAqLworICAgIHVpbnQzMl90IGNwdW1hcF9ucl9jcHVzOworICAgIC8qIE11c3Qg
YmUgaW5kZXhhYmxlIGZvciBldmVyeSBjcHUgaW4gY3B1bWFwX2JpdG1hcC4gKi8KKyAgICBYRU5f
R1VFU1RfSEFORExFKHVpbnQ2NCkgaWRsZXRpbWU7CisgICAgLyogT1VUIHZhcmlhYmxlcyAqLwor
ICAgIC8qIFN5c3RlbSB0aW1lIHdoZW4gdGhlIGlkbGV0aW1lIHNuYXBzaG90cyB3ZXJlIHRha2Vu
LiAqLworICAgIHVpbnQ2NF90IG5vdzsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5wZl9nZXRpZGxl
dGltZSB4ZW5wZl9nZXRpZGxldGltZV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVucGZf
Z2V0aWRsZXRpbWVfdCk7CisKKyNkZWZpbmUgWEVOUEZfc2V0X3Byb2Nlc3Nvcl9wbWluZm8gICAg
ICA1NAorCisvKiBhYmlsaXR5IGJpdHMgKi8KKyNkZWZpbmUgWEVOX1BST0NFU1NPUl9QTV9DWAkx
CisjZGVmaW5lIFhFTl9QUk9DRVNTT1JfUE1fUFgJMgorI2RlZmluZSBYRU5fUFJPQ0VTU09SX1BN
X1RYCTQKKworLyogY21kIHR5cGUgKi8KKyNkZWZpbmUgWEVOX1BNX0NYICAgMAorI2RlZmluZSBY
RU5fUE1fUFggICAxCisjZGVmaW5lIFhFTl9QTV9UWCAgIDIKKyNkZWZpbmUgWEVOX1BNX1BEQyAg
MworCisvKiBQeCBzdWIgaW5mbyB0eXBlICovCisjZGVmaW5lIFhFTl9QWF9QQ1QgICAxCisjZGVm
aW5lIFhFTl9QWF9QU1MgICAyCisjZGVmaW5lIFhFTl9QWF9QUEMgICA0CisjZGVmaW5lIFhFTl9Q
WF9QU0QgICA4CisKK3N0cnVjdCB4ZW5fcG93ZXJfcmVnaXN0ZXIgeworICAgIHVpbnQzMl90ICAg
ICBzcGFjZV9pZDsKKyAgICB1aW50MzJfdCAgICAgYml0X3dpZHRoOworICAgIHVpbnQzMl90ICAg
ICBiaXRfb2Zmc2V0OworICAgIHVpbnQzMl90ICAgICBhY2Nlc3Nfc2l6ZTsKKyAgICB1aW50NjRf
dCAgICAgYWRkcmVzczsKK307CisKK3N0cnVjdCB4ZW5fcHJvY2Vzc29yX2NzZCB7CisgICAgdWlu
dDMyX3QgICAgZG9tYWluOyAgICAgIC8qIGRvbWFpbiBudW1iZXIgb2Ygb25lIGRlcGVuZGVudCBn
cm91cCAqLworICAgIHVpbnQzMl90ICAgIGNvb3JkX3R5cGU7ICAvKiBjb29yZGluYXRpb24gdHlw
ZSAqLworICAgIHVpbnQzMl90ICAgIG51bTsgICAgICAgICAvKiBudW1iZXIgb2YgcHJvY2Vzc29y
cyBpbiBzYW1lIGRvbWFpbiAqLworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9wcm9jZXNzb3JfY3Nk
IHhlbl9wcm9jZXNzb3JfY3NkX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fcHJvY2Vz
c29yX2NzZF90KTsKKworc3RydWN0IHhlbl9wcm9jZXNzb3JfY3ggeworICAgIHN0cnVjdCB4ZW5f
cG93ZXJfcmVnaXN0ZXIgIHJlZzsgLyogR0FTIGZvciBDeCB0cmlnZ2VyIHJlZ2lzdGVyICovCisg
ICAgdWludDhfdCAgICAgdHlwZTsgICAgIC8qIGNzdGF0ZSB2YWx1ZSwgYzA6IDAsIGMxOiAxLCAu
Li4gKi8KKyAgICB1aW50MzJfdCAgICBsYXRlbmN5OyAgLyogd29yc3QgbGF0ZW5jeSAobXMpIHRv
IGVudGVyL2V4aXQgdGhpcyBjc3RhdGUgKi8KKyAgICB1aW50MzJfdCAgICBwb3dlcjsgICAgLyog
YXZlcmFnZSBwb3dlciBjb25zdW1wdGlvbihtVykgKi8KKyAgICB1aW50MzJfdCAgICBkcGNudDsg
ICAgLyogbnVtYmVyIG9mIGRlcGVuZGVuY3kgZW50cmllcyAqLworICAgIFhFTl9HVUVTVF9IQU5E
TEUoeGVuX3Byb2Nlc3Nvcl9jc2RfdCkgZHA7IC8qIE5VTEwgaWYgbm8gZGVwZW5kZW5jeSAqLwor
fTsKK3R5cGVkZWYgc3RydWN0IHhlbl9wcm9jZXNzb3JfY3ggeGVuX3Byb2Nlc3Nvcl9jeF90Owor
REVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3Byb2Nlc3Nvcl9jeF90KTsKKworc3RydWN0IHhl
bl9wcm9jZXNzb3JfZmxhZ3MgeworICAgIHVpbnQzMl90IGJtX2NvbnRyb2w6MTsKKyAgICB1aW50
MzJfdCBibV9jaGVjazoxOworICAgIHVpbnQzMl90IGhhc19jc3Q6MTsKKyAgICB1aW50MzJfdCBw
b3dlcl9zZXR1cF9kb25lOjE7CisgICAgdWludDMyX3QgYm1fcmxkX3NldDoxOworfTsKKworc3Ry
dWN0IHhlbl9wcm9jZXNzb3JfcG93ZXIgeworICAgIHVpbnQzMl90IGNvdW50OyAgLyogbnVtYmVy
IG9mIEMgc3RhdGUgZW50cmllcyBpbiBhcnJheSBiZWxvdyAqLworICAgIHN0cnVjdCB4ZW5fcHJv
Y2Vzc29yX2ZsYWdzIGZsYWdzOyAgLyogZ2xvYmFsIGZsYWdzIG9mIHRoaXMgcHJvY2Vzc29yICov
CisgICAgWEVOX0dVRVNUX0hBTkRMRSh4ZW5fcHJvY2Vzc29yX2N4X3QpIHN0YXRlczsgLyogc3Vw
cG9ydGVkIGMgc3RhdGVzICovCit9OworCitzdHJ1Y3QgeGVuX3BjdF9yZWdpc3RlciB7CisgICAg
dWludDhfdCAgZGVzY3JpcHRvcjsKKyAgICB1aW50MTZfdCBsZW5ndGg7CisgICAgdWludDhfdCAg
c3BhY2VfaWQ7CisgICAgdWludDhfdCAgYml0X3dpZHRoOworICAgIHVpbnQ4X3QgIGJpdF9vZmZz
ZXQ7CisgICAgdWludDhfdCAgcmVzZXJ2ZWQ7CisgICAgdWludDY0X3QgYWRkcmVzczsKK307CisK
K3N0cnVjdCB4ZW5fcHJvY2Vzc29yX3B4IHsKKyAgICB1aW50NjRfdCBjb3JlX2ZyZXF1ZW5jeTsg
LyogbWVnYWhlcnR6ICovCisgICAgdWludDY0X3QgcG93ZXI7ICAgICAgLyogbWlsbGlXYXR0cyAq
LworICAgIHVpbnQ2NF90IHRyYW5zaXRpb25fbGF0ZW5jeTsgLyogbWljcm9zZWNvbmRzICovCisg
ICAgdWludDY0X3QgYnVzX21hc3Rlcl9sYXRlbmN5OyAvKiBtaWNyb3NlY29uZHMgKi8KKyAgICB1
aW50NjRfdCBjb250cm9sOyAgICAgICAgLyogY29udHJvbCB2YWx1ZSAqLworICAgIHVpbnQ2NF90
IHN0YXR1czsgICAgIC8qIHN1Y2Nlc3MgaW5kaWNhdG9yICovCit9OwordHlwZWRlZiBzdHJ1Y3Qg
eGVuX3Byb2Nlc3Nvcl9weCB4ZW5fcHJvY2Vzc29yX3B4X3Q7CitERUZJTkVfWEVOX0dVRVNUX0hB
TkRMRSh4ZW5fcHJvY2Vzc29yX3B4X3QpOworCitzdHJ1Y3QgeGVuX3BzZF9wYWNrYWdlIHsKKyAg
ICB1aW50NjRfdCBudW1fZW50cmllczsKKyAgICB1aW50NjRfdCByZXZpc2lvbjsKKyAgICB1aW50
NjRfdCBkb21haW47CisgICAgdWludDY0X3QgY29vcmRfdHlwZTsKKyAgICB1aW50NjRfdCBudW1f
cHJvY2Vzc29yczsKK307CisKK3N0cnVjdCB4ZW5fcHJvY2Vzc29yX3BlcmZvcm1hbmNlIHsKKyAg
ICB1aW50MzJfdCBmbGFnczsgICAgIC8qIGZsYWcgZm9yIFB4IHN1YiBpbmZvIHR5cGUgKi8KKyAg
ICB1aW50MzJfdCBwbGF0Zm9ybV9saW1pdDsgIC8qIFBsYXRmb3JtIGxpbWl0YXRpb24gb24gZnJl
cSB1c2FnZSAqLworICAgIHN0cnVjdCB4ZW5fcGN0X3JlZ2lzdGVyIGNvbnRyb2xfcmVnaXN0ZXI7
CisgICAgc3RydWN0IHhlbl9wY3RfcmVnaXN0ZXIgc3RhdHVzX3JlZ2lzdGVyOworICAgIHVpbnQz
Ml90IHN0YXRlX2NvdW50OyAgICAgLyogdG90YWwgYXZhaWxhYmxlIHBlcmZvcm1hbmNlIHN0YXRl
cyAqLworICAgIFhFTl9HVUVTVF9IQU5ETEUoeGVuX3Byb2Nlc3Nvcl9weF90KSBzdGF0ZXM7Cisg
ICAgc3RydWN0IHhlbl9wc2RfcGFja2FnZSBkb21haW5faW5mbzsKKyAgICB1aW50MzJfdCBzaGFy
ZWRfdHlwZTsgICAgIC8qIGNvb3JkaW5hdGlvbiB0eXBlIG9mIHRoaXMgcHJvY2Vzc29yICovCit9
OwordHlwZWRlZiBzdHJ1Y3QgeGVuX3Byb2Nlc3Nvcl9wZXJmb3JtYW5jZSB4ZW5fcHJvY2Vzc29y
X3BlcmZvcm1hbmNlX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fcHJvY2Vzc29yX3Bl
cmZvcm1hbmNlX3QpOworCitzdHJ1Y3QgeGVucGZfc2V0X3Byb2Nlc3Nvcl9wbWluZm8geworICAg
IC8qIElOIHZhcmlhYmxlcyAqLworICAgIHVpbnQzMl90IGlkOyAgICAvKiBBQ1BJIENQVSBJRCAq
LworICAgIHVpbnQzMl90IHR5cGU7ICAvKiB7WEVOX1BNX0NYLCBYRU5fUE1fUFh9ICovCisgICAg
dW5pb24geworICAgICAgICBzdHJ1Y3QgeGVuX3Byb2Nlc3Nvcl9wb3dlciAgICAgICAgICBwb3dl
cjsvKiBDeDogX0NTVC9fQ1NEICovCisgICAgICAgIHN0cnVjdCB4ZW5fcHJvY2Vzc29yX3BlcmZv
cm1hbmNlICAgIHBlcmY7IC8qIFB4OiBfUFBDL19QQ1QvX1BTUy9fUFNEICovCisgICAgICAgIFhF
Tl9HVUVTVF9IQU5ETEUodWludDMyKSAgICAgICAgICAgIHBkYzsgIC8qIF9QREMgKi8KKyAgICB9
IHU7Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVucGZfc2V0X3Byb2Nlc3Nvcl9wbWluZm8geGVucGZf
c2V0X3Byb2Nlc3Nvcl9wbWluZm9fdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbnBmX3Nl
dF9wcm9jZXNzb3JfcG1pbmZvX3QpOworCisjZGVmaW5lIFhFTlBGX2dldF9jcHVpbmZvIDU1Citz
dHJ1Y3QgeGVucGZfcGNwdWluZm8geworICAgIC8qIElOICovCisgICAgdWludDMyX3QgeGVuX2Nw
dWlkOworICAgIC8qIE9VVCAqLworICAgIC8qIFRoZSBtYXhpdW0gY3B1X2lkIHRoYXQgaXMgcHJl
c2VudCAqLworICAgIHVpbnQzMl90IG1heF9wcmVzZW50OworI2RlZmluZSBYRU5fUENQVV9GTEFH
U19PTkxJTkUgICAxCisgICAgLyogQ29ycmVwb25kaW5nIHhlbl9jcHVpZCBpcyBub3QgcHJlc2Vu
dCovCisjZGVmaW5lIFhFTl9QQ1BVX0ZMQUdTX0lOVkFMSUQgIDIKKyAgICB1aW50MzJfdCBmbGFn
czsKKyAgICB1aW50MzJfdCBhcGljX2lkOworICAgIHVpbnQzMl90IGFjcGlfaWQ7Cit9OwordHlw
ZWRlZiBzdHJ1Y3QgeGVucGZfcGNwdWluZm8geGVucGZfcGNwdWluZm9fdDsKK0RFRklORV9YRU5f
R1VFU1RfSEFORExFKHhlbnBmX3BjcHVpbmZvX3QpOworCisjZGVmaW5lIFhFTlBGX2dldF9jcHVf
dmVyc2lvbiA0OAorc3RydWN0IHhlbnBmX3BjcHVfdmVyc2lvbiB7CisgICAgLyogSU4gKi8KKyAg
ICB1aW50MzJfdCB4ZW5fY3B1aWQ7CisgICAgLyogT1VUICovCisgICAgLyogVGhlIG1heGl1bSBj
cHVfaWQgdGhhdCBpcyBwcmVzZW50ICovCisgICAgdWludDMyX3QgbWF4X3ByZXNlbnQ7CisgICAg
Y2hhciB2ZW5kb3JfaWRbMTJdOworICAgIHVpbnQzMl90IGZhbWlseTsKKyAgICB1aW50MzJfdCBt
b2RlbDsKKyAgICB1aW50MzJfdCBzdGVwcGluZzsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5wZl9w
Y3B1X3ZlcnNpb24geGVucGZfcGNwdV92ZXJzaW9uX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRM
RSh4ZW5wZl9wY3B1X3ZlcnNpb25fdCk7CisKKyNkZWZpbmUgWEVOUEZfY3B1X29ubGluZSAgICA1
NgorI2RlZmluZSBYRU5QRl9jcHVfb2ZmbGluZSAgIDU3CitzdHJ1Y3QgeGVucGZfY3B1X29sCit7
CisgICAgdWludDMyX3QgY3B1aWQ7Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVucGZfY3B1X29sIHhl
bnBmX2NwdV9vbF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVucGZfY3B1X29sX3QpOwor
CisjZGVmaW5lIFhFTlBGX2NwdV9ob3RhZGQgICAgNTgKK3N0cnVjdCB4ZW5wZl9jcHVfaG90YWRk
Cit7CisJdWludDMyX3QgYXBpY19pZDsKKwl1aW50MzJfdCBhY3BpX2lkOworCXVpbnQzMl90IHB4
bTsKK307CisKKyNkZWZpbmUgWEVOUEZfbWVtX2hvdGFkZCAgICA1OQorc3RydWN0IHhlbnBmX21l
bV9ob3RhZGQKK3sKKyAgICB1aW50NjRfdCBzcGZuOworICAgIHVpbnQ2NF90IGVwZm47CisgICAg
dWludDMyX3QgcHhtOworICAgIHVpbnQzMl90IGZsYWdzOworfTsKKworI2RlZmluZSBYRU5QRl9j
b3JlX3BhcmtpbmcgIDYwCisKKyNkZWZpbmUgWEVOX0NPUkVfUEFSS0lOR19TRVQgMQorI2RlZmlu
ZSBYRU5fQ09SRV9QQVJLSU5HX0dFVCAyCitzdHJ1Y3QgeGVucGZfY29yZV9wYXJraW5nIHsKKyAg
ICAvKiBJTiB2YXJpYWJsZXMgKi8KKyAgICB1aW50MzJfdCB0eXBlOworICAgIC8qIElOIHZhcmlh
YmxlczogIHNldCBjcHUgbnVtcyBleHBlY3RlZCB0byBiZSBpZGxlZCAqLworICAgIC8qIE9VVCB2
YXJpYWJsZXM6IGdldCBjcHUgbnVtcyBhY3R1YWxseSBiZSBpZGxlZCAqLworICAgIHVpbnQzMl90
IGlkbGVfbnVtczsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5wZl9jb3JlX3BhcmtpbmcgeGVucGZf
Y29yZV9wYXJraW5nX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5wZl9jb3JlX3Bhcmtp
bmdfdCk7CisKKy8qCisgKiBBY2Nlc3MgZ2VuZXJpYyBwbGF0Zm9ybSByZXNvdXJjZXMoZS5nLiwg
YWNjZXNzaW5nIE1TUiwgcG9ydCBJL08sIGV0YykKKyAqIGluIHVuaWZpZWQgd2F5LiBCYXRjaCBy
ZXNvdXJjZSBvcGVyYXRpb25zIGluIG9uZSBjYWxsIGFyZSBzdXBwb3J0ZWQgYW5kCisgKiB0aGV5
IGFyZSBhbHdheXMgbm9uLXByZWVtcHRpYmxlIGFuZCBleGVjdXRlZCBpbiB0aGVpciBvcmlnaW5h
bCBvcmRlci4KKyAqIFRoZSBiYXRjaCBpdHNlbGYgcmV0dXJucyBhIG5lZ2F0aXZlIGludGVnZXIg
Zm9yIGdlbmVyYWwgZXJyb3JzLCBvciBhCisgKiBub24tbmVnYXRpdmUgaW50ZWdlciBmb3IgdGhl
IG51bWJlciBvZiBzdWNjZXNzZnVsIG9wZXJhdGlvbnMuIEZvciB0aGUgbGF0dGVyCisgKiBjYXNl
LCB0aGUgQHJldCBpbiB0aGUgZmFpbGVkIGVudHJ5IChpZiBhbnkpIGluZGljYXRlcyB0aGUgZXhh
Y3QgZXJyb3IuCisgKi8KKyNkZWZpbmUgWEVOUEZfcmVzb3VyY2Vfb3AgICA2MQorCisjZGVmaW5l
IFhFTl9SRVNPVVJDRV9PUF9NU1JfUkVBRCAgMAorI2RlZmluZSBYRU5fUkVTT1VSQ0VfT1BfTVNS
X1dSSVRFIDEKKworLyoKKyAqIFNwZWNpYWxseSBoYW5kbGVkIE1TUnM6CisgKiAtIE1TUl9JQTMy
X1RTQworICogUkVBRDogUmV0dXJucyB0aGUgc2NhbGVkIHN5c3RlbSB0aW1lKG5zKSBpbnN0ZWFk
IG9mIHJhdyB0aW1lc3RhbXAuIEluCisgKiAgICAgICBtdWx0aXBsZSBlbnRyeSBjYXNlLCBpZiBv
dGhlciBNU1IgcmVhZCBpcyBmb2xsb3dlZCBieSBhIE1TUl9JQTMyX1RTQworICogICAgICAgcmVh
ZCwgdGhlbiBib3RoIHJlYWRzIGFyZSBndWFyYW50ZWVkIHRvIGJlIHBlcmZvcm1lZCBhdG9taWNh
bGx5ICh3aXRoCisgKiAgICAgICBJUlEgZGlzYWJsZWQpLiBUaGUgcmV0dXJuIHRpbWUgaW5kaWNh
dGVzIHRoZSBwb2ludCBvZiByZWFkaW5nIHRoYXQgTVNSLgorICogV1JJVEU6IE5vdCBzdXBwb3J0
ZWQuCisgKi8KKworc3RydWN0IHhlbnBmX3Jlc291cmNlX2VudHJ5IHsKKyAgICB1bmlvbiB7Cisg
ICAgICAgIHVpbnQzMl90IGNtZDsgICAvKiBJTjogWEVOX1JFU09VUkNFX09QXyogKi8KKyAgICAg
ICAgaW50MzJfdCAgcmV0OyAgIC8qIE9VVDogcmV0dXJuIHZhbHVlIGZvciBmYWlsZWQgZW50cnkg
Ki8KKyAgICB9IHU7CisgICAgdWludDMyX3QgcnN2ZDsgICAgICAvKiBJTjogcGFkZGluZyBhbmQg
bXVzdCBiZSB6ZXJvICovCisgICAgdWludDY0X3QgaWR4OyAgICAgICAvKiBJTjogcmVzb3VyY2Ug
YWRkcmVzcyB0byBhY2Nlc3MgKi8KKyAgICB1aW50NjRfdCB2YWw7ICAgICAgIC8qIElOL09VVDog
cmVzb3VyY2UgdmFsdWUgdG8gc2V0L2dldCAqLworfTsKK3R5cGVkZWYgc3RydWN0IHhlbnBmX3Jl
c291cmNlX2VudHJ5IHhlbnBmX3Jlc291cmNlX2VudHJ5X3Q7CitERUZJTkVfWEVOX0dVRVNUX0hB
TkRMRSh4ZW5wZl9yZXNvdXJjZV9lbnRyeV90KTsKKworc3RydWN0IHhlbnBmX3Jlc291cmNlX29w
IHsKKyAgICB1aW50MzJfdCBucl9lbnRyaWVzOyAgICAvKiBudW1iZXIgb2YgcmVzb3VyY2UgZW50
cnkgKi8KKyAgICB1aW50MzJfdCBjcHU7ICAgICAgICAgICAvKiB3aGljaCBjcHUgdG8gcnVuICov
CisgICAgWEVOX0dVRVNUX0hBTkRMRSh4ZW5wZl9yZXNvdXJjZV9lbnRyeV90KSBlbnRyaWVzOwor
fTsKK3R5cGVkZWYgc3RydWN0IHhlbnBmX3Jlc291cmNlX29wIHhlbnBmX3Jlc291cmNlX29wX3Q7
CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5wZl9yZXNvdXJjZV9vcF90KTsKKworI2RlZmlu
ZSBYRU5QRl9nZXRfc3ltYm9sICAgNjMKK3N0cnVjdCB4ZW5wZl9zeW1kYXRhIHsKKyAgICAvKiBJ
Ti9PVVQgdmFyaWFibGVzICovCisgICAgdWludDMyX3QgbmFtZWxlbjsgLyogSU46ICBzaXplIG9m
IG5hbWUgYnVmZmVyICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAg
ICAgIC8qIE9VVDogc3RybGVuKG5hbWUpIG9mIGh5cGVydmlzb3Igc3ltYm9sIChtYXkgYmUgKi8K
KyAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgIGxhcmdlciB0aGFuIHdoYXQncyBiZWVuIGNv
cGllZCB0byBndWVzdCkgICovCisgICAgdWludDMyX3Qgc3ltbnVtOyAgLyogSU46ICBTeW1ib2wg
dG8gcmVhZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAg
ICAgIC8qIE9VVDogTmV4dCBhdmFpbGFibGUgc3ltYm9sLiBJZiBzYW1lIGFzIElOIHRoZW4gKi8K
KyAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgIHdlIHJlYWNoZWQgdGhlIGVuZCAgICAgICAg
ICAgICAgICAgICAgICAgICovCisKKyAgICAvKiBPVVQgdmFyaWFibGVzICovCisgICAgWEVOX0dV
RVNUX0hBTkRMRShjaGFyKSBuYW1lOworICAgIHVpbnQ2NF90IGFkZHJlc3M7CisgICAgY2hhciB0
eXBlOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbnBmX3N5bWRhdGEgeGVucGZfc3ltZGF0YV90Owor
REVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVucGZfc3ltZGF0YV90KTsKKworLyoKKyAqIGAgZW51
bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl9wbGF0Zm9ybV9vcChjb25zdCBzdHJ1Y3Qg
eGVuX3BsYXRmb3JtX29wKik7CisgKi8KK3N0cnVjdCB4ZW5fcGxhdGZvcm1fb3AgeworICAgIHVp
bnQzMl90IGNtZDsKKyAgICB1aW50MzJfdCBpbnRlcmZhY2VfdmVyc2lvbjsgLyogWEVOUEZfSU5U
RVJGQUNFX1ZFUlNJT04gKi8KKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCB4ZW5wZl9zZXR0
aW1lICAgICAgICAgICBzZXR0aW1lOworICAgICAgICBzdHJ1Y3QgeGVucGZfc2V0dGltZTMyICAg
ICAgICAgc2V0dGltZTMyOworICAgICAgICBzdHJ1Y3QgeGVucGZfc2V0dGltZTY0ICAgICAgICAg
c2V0dGltZTY0OworICAgICAgICBzdHJ1Y3QgeGVucGZfYWRkX21lbXR5cGUgICAgICAgYWRkX21l
bXR5cGU7CisgICAgICAgIHN0cnVjdCB4ZW5wZl9kZWxfbWVtdHlwZSAgICAgICBkZWxfbWVtdHlw
ZTsKKyAgICAgICAgc3RydWN0IHhlbnBmX3JlYWRfbWVtdHlwZSAgICAgIHJlYWRfbWVtdHlwZTsK
KyAgICAgICAgc3RydWN0IHhlbnBmX21pY3JvY29kZV91cGRhdGUgIG1pY3JvY29kZTsKKyAgICAg
ICAgc3RydWN0IHhlbnBmX3BsYXRmb3JtX3F1aXJrICAgIHBsYXRmb3JtX3F1aXJrOworICAgICAg
ICBzdHJ1Y3QgeGVucGZfZWZpX3J1bnRpbWVfY2FsbCAgZWZpX3J1bnRpbWVfY2FsbDsKKyAgICAg
ICAgc3RydWN0IHhlbnBmX2Zpcm13YXJlX2luZm8gICAgIGZpcm13YXJlX2luZm87CisgICAgICAg
IHN0cnVjdCB4ZW5wZl9lbnRlcl9hY3BpX3NsZWVwICBlbnRlcl9hY3BpX3NsZWVwOworICAgICAg
ICBzdHJ1Y3QgeGVucGZfY2hhbmdlX2ZyZXEgICAgICAgY2hhbmdlX2ZyZXE7CisgICAgICAgIHN0
cnVjdCB4ZW5wZl9nZXRpZGxldGltZSAgICAgICBnZXRpZGxldGltZTsKKyAgICAgICAgc3RydWN0
IHhlbnBmX3NldF9wcm9jZXNzb3JfcG1pbmZvIHNldF9wbWluZm87CisgICAgICAgIHN0cnVjdCB4
ZW5wZl9wY3B1aW5mbyAgICAgICAgICBwY3B1X2luZm87CisgICAgICAgIHN0cnVjdCB4ZW5wZl9w
Y3B1X3ZlcnNpb24gICAgICBwY3B1X3ZlcnNpb247CisgICAgICAgIHN0cnVjdCB4ZW5wZl9jcHVf
b2wgICAgICAgICAgICBjcHVfb2w7CisgICAgICAgIHN0cnVjdCB4ZW5wZl9jcHVfaG90YWRkICAg
ICAgICBjcHVfYWRkOworICAgICAgICBzdHJ1Y3QgeGVucGZfbWVtX2hvdGFkZCAgICAgICAgbWVt
X2FkZDsKKyAgICAgICAgc3RydWN0IHhlbnBmX2NvcmVfcGFya2luZyAgICAgIGNvcmVfcGFya2lu
ZzsKKyAgICAgICAgc3RydWN0IHhlbnBmX3Jlc291cmNlX29wICAgICAgIHJlc291cmNlX29wOwor
ICAgICAgICBzdHJ1Y3QgeGVucGZfc3ltZGF0YSAgICAgICAgICAgc3ltZGF0YTsKKyAgICAgICAg
dWludDhfdCAgICAgICAgICAgICAgICAgICAgICAgIHBhZFsxMjhdOworICAgIH0gdTsKK307Cit0
eXBlZGVmIHN0cnVjdCB4ZW5fcGxhdGZvcm1fb3AgeGVuX3BsYXRmb3JtX29wX3Q7CitERUZJTkVf
WEVOX0dVRVNUX0hBTkRMRSh4ZW5fcGxhdGZvcm1fb3BfdCk7CisKKyNlbmRpZiAvKiBfX1hFTl9Q
VUJMSUNfUExBVEZPUk1fSF9fICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2Rl
OiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFi
LXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0t
Z2l0IGEvaW5jbHVkZS94ZW4veHNtL3BtdS5oIGIvaW5jbHVkZS94ZW4veHNtL3BtdS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlMTMxMmMKLS0tIC9kZXYvbnVsbAorKysg
Yi9pbmNsdWRlL3hlbi94c20vcG11LmgKQEAgLTAsMCArMSwxNDMgQEAKKy8qCisgKiBQZXJtaXNz
aW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRh
aW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50
YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJl
IHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisg
KiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRl
LCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5k
IHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQg
dG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRo
ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxs
IGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9m
IHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwg
V0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5D
TFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VN
RU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERF
UlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBB
UklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FS
RSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgor
ICogQ29weXJpZ2h0IChjKSAyMDE1IE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfUE1VX0hfXworI2Rl
ZmluZSBfX1hFTl9QVUJMSUNfUE1VX0hfXworCisjaW5jbHVkZSAieGVuLmgiCisjaWYgZGVmaW5l
ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQorI2luY2x1ZGUgImFyY2gteDg2L3Bt
dS5oIgorI2VsaWYgZGVmaW5lZCAoX19hcm1fXykgfHwgZGVmaW5lZCAoX19hYXJjaDY0X18pCisj
aW5jbHVkZSAiYXJjaC1hcm0uaCIKKyNlbHNlCisjZXJyb3IgIlVuc3VwcG9ydGVkIGFyY2hpdGVj
dHVyZSIKKyNlbmRpZgorCisjZGVmaW5lIFhFTlBNVV9WRVJfTUFKICAgIDAKKyNkZWZpbmUgWEVO
UE1VX1ZFUl9NSU4gICAgMQorCisvKgorICogYCBlbnVtIG5lZ19lcnJub3ZhbAorICogYCBIWVBF
UlZJU09SX3hlbnBtdV9vcChlbnVtIHhlbnBtdV9vcCBjbWQsIHN0cnVjdCB4ZW5wbXVfcGFyYW1z
ICphcmdzKTsKKyAqCisgKiBAY21kICA9PSBYRU5QTVVfKiAoUE1VIG9wZXJhdGlvbikKKyAqIEBh
cmdzID09IHN0cnVjdCB4ZW5wbXVfcGFyYW1zCisgKi8KKy8qIGAgZW51bSB4ZW5wbXVfb3AgeyAq
LworI2RlZmluZSBYRU5QTVVfbW9kZV9nZXQgICAgICAgIDAgLyogQWxzbyB1c2VkIGZvciBnZXR0
aW5nIFBNVSB2ZXJzaW9uICovCisjZGVmaW5lIFhFTlBNVV9tb2RlX3NldCAgICAgICAgMQorI2Rl
ZmluZSBYRU5QTVVfZmVhdHVyZV9nZXQgICAgIDIKKyNkZWZpbmUgWEVOUE1VX2ZlYXR1cmVfc2V0
ICAgICAzCisjZGVmaW5lIFhFTlBNVV9pbml0ICAgICAgICAgICAgNAorI2RlZmluZSBYRU5QTVVf
ZmluaXNoICAgICAgICAgIDUKKyNkZWZpbmUgWEVOUE1VX2x2dHBjX3NldCAgICAgICA2CisjZGVm
aW5lIFhFTlBNVV9mbHVzaCAgICAgICAgICAgNyAvKiBXcml0ZSBjYWNoZWQgTVNSIHZhbHVlcyB0
byBIVyAgICAgKi8KKy8qIGAgfSAqLworCisvKiBQYXJhbWV0ZXJzIHN0cnVjdHVyZSBmb3IgSFlQ
RVJWSVNPUl94ZW5wbXVfb3AgY2FsbCAqLworc3RydWN0IHhlbl9wbXVfcGFyYW1zIHsKKyAgICAv
KiBJTi9PVVQgcGFyYW1ldGVycyAqLworICAgIHN0cnVjdCB7CisgICAgICAgIHVpbnQzMl90IG1h
ajsKKyAgICAgICAgdWludDMyX3QgbWluOworICAgIH0gdmVyc2lvbjsKKyAgICB1aW50NjRfdCB2
YWw7CisKKyAgICAvKiBJTiBwYXJhbWV0ZXJzICovCisgICAgdWludDMyX3QgdmNwdTsKKyAgICB1
aW50MzJfdCBwYWQ7Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX3BtdV9wYXJhbXMgeGVuX3BtdV9w
YXJhbXNfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9wbXVfcGFyYW1zX3QpOworCisv
KiBQTVUgbW9kZXM6CisgKiAtIFhFTlBNVV9NT0RFX09GRjogICBObyBQTVUgdmlydHVhbGl6YXRp
b24KKyAqIC0gWEVOUE1VX01PREVfU0VMRjogIEd1ZXN0cyBjYW4gcHJvZmlsZSB0aGVtc2VsdmVz
CisgKiAtIFhFTlBNVV9NT0RFX0hWOiAgICBHdWVzdHMgY2FuIHByb2ZpbGUgdGhlbXNlbHZlcywg
ZG9tMCBwcm9maWxlcworICogICAgICAgICAgICAgICAgICAgICAgaXRzZWxmIGFuZCBYZW4KKyAq
IC0gWEVOUE1VX01PREVfQUxMOiAgIE9ubHkgZG9tMCBoYXMgYWNjZXNzIHRvIFZQTVUgYW5kIGl0
IHByb2ZpbGVzCisgKiAgICAgICAgICAgICAgICAgICAgICBldmVyeW9uZTogaXRzZWxmLCB0aGUg
aHlwZXJ2aXNvciBhbmQgdGhlIGd1ZXN0cy4KKyAqLworI2RlZmluZSBYRU5QTVVfTU9ERV9PRkYg
ICAgICAgICAgIDAKKyNkZWZpbmUgWEVOUE1VX01PREVfU0VMRiAgICAgICAgICAoMTw8MCkKKyNk
ZWZpbmUgWEVOUE1VX01PREVfSFYgICAgICAgICAgICAoMTw8MSkKKyNkZWZpbmUgWEVOUE1VX01P
REVfQUxMICAgICAgICAgICAoMTw8MikKKworLyoKKyAqIFBNVSBmZWF0dXJlczoKKyAqIC0gWEVO
UE1VX0ZFQVRVUkVfSU5URUxfQlRTOiAgSW50ZWwgQlRTIHN1cHBvcnQgKGlnbm9yZWQgb24gQU1E
KQorICogLSBYRU5QTVVfRkVBVFVSRV9JUENfT05MWTogICBSZXN0cmljdCBQTUNzIHRvIHRoZSBt
b3N0IG1pbmltdW0gc2V0IHBvc3NpYmxlLgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBJbnN0cnVjdGlvbnMsIGN5Y2xlcywgYW5kIHJlZiBjeWNsZXMuIENhbiBiZQorICogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1c2VkIHRvIGNhbGN1bGF0ZSBpbnN0cnVjdGlvbnMtcGVy
LWN5Y2xlIChJUEMpCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZ25vcmVkIG9u
IEFNRCkuCisgKiAtIFhFTlBNVV9GRUFUVVJFX0FSQ0hfT05MWTogIFJlc3RyaWN0IFBNQ3MgdG8g
dGhlIEludGVsIFByZS1EZWZpbmVkCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFy
Y2hpdGVjdHVyYWwgUGVyZm9ybWFuY2UgRXZlbnRzIGV4cG9zZWQgYnkKKyAqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY3B1aWQgYW5kIGxpc3RlZCBpbiB0aGUgSW50ZWwgZGV2ZWxvcGVy
J3MgbWFudWFsCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZ25vcmVkIG9uIEFN
RCkuCisgKi8KKyNkZWZpbmUgWEVOUE1VX0ZFQVRVUkVfSU5URUxfQlRTICAoMTw8MCkKKyNkZWZp
bmUgWEVOUE1VX0ZFQVRVUkVfSVBDX09OTFkgICAoMTw8MSkKKyNkZWZpbmUgWEVOUE1VX0ZFQVRV
UkVfQVJDSF9PTkxZICAoMTw8MikKKworLyoKKyAqIFNoYXJlZCBQTVUgZGF0YSBiZXR3ZWVuIGh5
cGVydmlzb3IgYW5kIFBWKEgpIGRvbWFpbnMuCisgKgorICogVGhlIGh5cGVydmlzb3IgZmlsbHMg
b3V0IHRoaXMgc3RydWN0dXJlIGR1cmluZyBQTVUgaW50ZXJydXB0IGFuZCBzZW5kcyBhbgorICog
aW50ZXJydXB0IHRvIGFwcHJvcHJpYXRlIFZDUFUuCisgKiBBcmNoaXRlY3R1cmUtaW5kZXBlbmRl
bnQgZmllbGRzIG9mIHhlbl9wbXVfZGF0YSBhcmUgV08gZm9yIHRoZSBoeXBlcnZpc29yCisgKiBh
bmQgUk8gZm9yIHRoZSBndWVzdCBidXQgc29tZSBmaWVsZHMgaW4geGVuX3BtdV9hcmNoIGNhbiBi
ZSB3cml0YWJsZQorICogYnkgYm90aCB0aGUgaHlwZXJ2aXNvciBhbmQgdGhlIGd1ZXN0IChzZWUg
YXJjaC0kYXJjaC9wbXUuaCkuCisgKi8KK3N0cnVjdCB4ZW5fcG11X2RhdGEgeworICAgIC8qIElu
dGVycnVwdGVkIFZDUFUgKi8KKyAgICB1aW50MzJfdCB2Y3B1X2lkOworCisgICAgLyoKKyAgICAg
KiBQaHlzaWNhbCBwcm9jZXNzb3Igb24gd2hpY2ggdGhlIGludGVycnVwdCBvY2N1cnJlZC4gT24g
bm9uLXByaXZpbGVnZWQKKyAgICAgKiBndWVzdHMgc2V0IHRvIHZjcHVfaWQ7CisgICAgICovCisg
ICAgdWludDMyX3QgcGNwdV9pZDsKKworICAgIC8qCisgICAgICogRG9tYWluIHRoYXQgd2FzIGlu
dGVycnVwdGVkLiBPbiBub24tcHJpdmlsZWdlZCBndWVzdHMgc2V0IHRvIERPTUlEX1NFTEYuCisg
ICAgICogT24gcHJpdmlsZWdlZCBndWVzdHMgY2FuIGJlIERPTUlEX1NFTEYsIERPTUlEX1hFTiwg
b3IsIHdoZW4gaW4KKyAgICAgKiBYRU5QTVVfTU9ERV9BTEwgbW9kZSwgZG9tYWluIElEIG9mIGFu
b3RoZXIgZG9tYWluLgorICAgICAqLworICAgIGRvbWlkX3QgIGRvbWFpbl9pZDsKKworICAgIHVp
bnQ4X3QgcGFkWzZdOworCisgICAgLyogQXJjaGl0ZWN0dXJlLXNwZWNpZmljIGluZm9ybWF0aW9u
ICovCisgICAgc3RydWN0IHhlbl9wbXVfYXJjaCBwbXU7Cit9OworCisjZW5kaWYgLyogX19YRU5f
UFVCTElDX1BNVV9IX18gKi8KKworLyoKKyAqIExvY2FsIHZhcmlhYmxlczoKKyAqIG1vZGU6IEMK
KyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKKyAqIGMtYmFzaWMtb2Zmc2V0OiA0CisgKiB0YWItd2lk
dGg6IDQKKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorICogRW5kOgorICovCmRpZmYgLS1naXQg
YS9pbmNsdWRlL3hlbi94c20vc2NoZWQuaCBiL2luY2x1ZGUveGVuL3hzbS9zY2hlZC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxMWJkODcKLS0tIC9kZXYvbnVsbAorKysg
Yi9pbmNsdWRlL3hlbi94c20vc2NoZWQuaApAQCAtMCwwICsxLDIwMiBAQAorLyoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgorICogc2NoZWQuaAorICoKKyAqIFNjaGVkdWxlciBzdGF0ZSBpbnRlcmFjdGlv
bnMKKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwg
dG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBh
c3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRl
YWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0
IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw
dWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9m
IHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJl
IGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p
c3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0
YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMg
UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP
UgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMg
T1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1Ig
T1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRP
UlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElP
TiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBU
SEUgU09GVFdBUkUuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA1LCBLZWlyIEZyYXNlciA8a2Vp
ckB4ZW5zb3VyY2UuY29tPgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElDX1NDSEVEX0hfXwor
I2RlZmluZSBfX1hFTl9QVUJMSUNfU0NIRURfSF9fCisKKyNpbmNsdWRlICJldmVudF9jaGFubmVs
LmgiCisKKy8qCisgKiBgaW5jb250ZW50cyAxNTAgc2NoZWQgR3Vlc3QgU2NoZWR1bGVyIE9wZXJh
dGlvbnMKKyAqCisgKiBUaGUgU0NIRURPUCBpbnRlcmZhY2UgcHJvdmlkZXMgbWVjaGFuaXNtcyBm
b3IgYSBndWVzdCB0byBpbnRlcmFjdAorICogd2l0aCB0aGUgc2NoZWR1bGVyLCBpbmNsdWRpbmcg
eWllbGQsIGJsb2NraW5nIGFuZCBzaHV0dGluZyBpdHNlbGYKKyAqIGRvd24uCisgKi8KKworLyoK
KyAqIFRoZSBwcm90b3R5cGUgZm9yIHRoaXMgaHlwZXJjYWxsIGlzOgorICogYCBsb25nIEhZUEVS
VklTT1Jfc2NoZWRfb3AoZW51bSBzY2hlZF9vcCBjbWQsIHZvaWQgKmFyZywgLi4uKQorICoKKyAq
IEBjbWQgPT0gU0NIRURPUF8/Pz8gKHNjaGVkdWxlciBvcGVyYXRpb24pLgorICogQGFyZyA9PSBP
cGVyYXRpb24tc3BlY2lmaWMgZXh0cmEgYXJndW1lbnQocyksIGFzIGRlc2NyaWJlZCBiZWxvdy4K
KyAqIC4uLiAgPT0gQWRkaXRpb25hbCBPcGVyYXRpb24tc3BlY2lmaWMgZXh0cmEgYXJndW1lbnRz
LCBkZXNjcmliZWQgYmVsb3cuCisgKgorICogVmVyc2lvbnMgb2YgWGVuIHByaW9yIHRvIDMuMC4y
IHByb3ZpZGVkIG9ubHkgdGhlIGZvbGxvd2luZyBsZWdhY3kgdmVyc2lvbgorICogb2YgdGhpcyBo
eXBlcmNhbGwsIHN1cHBvcnRpbmcgb25seSB0aGUgY29tbWFuZHMgeWllbGQsIGJsb2NrIGFuZCBz
aHV0ZG93bjoKKyAqICBsb25nIHNjaGVkX29wKGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQor
ICogQGNtZCA9PSBTQ0hFRE9QXz8/PyAoc2NoZWR1bGVyIG9wZXJhdGlvbikuCisgKiBAYXJnID09
IDAgICAgICAgICAgICAgICAoU0NIRURPUF95aWVsZCBhbmQgU0NIRURPUF9ibG9jaykKKyAqICAg
ICAgPT0gU0hVVERPV05fKiBjb2RlIChTQ0hFRE9QX3NodXRkb3duKQorICoKKyAqIFRoaXMgbGVn
YWN5IHZlcnNpb24gaXMgYXZhaWxhYmxlIHRvIG5ldyBndWVzdHMgYXM6CisgKiBgIGxvbmcgSFlQ
RVJWSVNPUl9zY2hlZF9vcF9jb21wYXQoZW51bSBzY2hlZF9vcCBjbWQsIHVuc2lnbmVkIGxvbmcg
YXJnKQorICovCisKKy8qIGAgZW51bSBzY2hlZF9vcCB7IC8vIFNDSEVET1BfKiA9PiBzdHJ1Y3Qg
c2NoZWRfKiAqLworLyoKKyAqIFZvbHVudGFyaWx5IHlpZWxkIHRoZSBDUFUuCisgKiBAYXJnID09
IE5VTEwuCisgKi8KKyNkZWZpbmUgU0NIRURPUF95aWVsZCAgICAgICAwCisKKy8qCisgKiBCbG9j
ayBleGVjdXRpb24gb2YgdGhpcyBWQ1BVIHVudGlsIGFuIGV2ZW50IGlzIHJlY2VpdmVkIGZvciBw
cm9jZXNzaW5nLgorICogSWYgY2FsbGVkIHdpdGggZXZlbnQgdXBjYWxscyBtYXNrZWQsIHRoaXMg
b3BlcmF0aW9uIHdpbGwgYXRvbWljYWxseQorICogcmVlbmFibGUgZXZlbnQgZGVsaXZlcnkgYW5k
IGNoZWNrIGZvciBwZW5kaW5nIGV2ZW50cyBiZWZvcmUgYmxvY2tpbmcgdGhlCisgKiBWQ1BVLiBU
aGlzIGF2b2lkcyBhICJ3YWtldXAgd2FpdGluZyIgcmFjZS4KKyAqIEBhcmcgPT0gTlVMTC4KKyAq
LworI2RlZmluZSBTQ0hFRE9QX2Jsb2NrICAgICAgIDEKKworLyoKKyAqIEhhbHQgZXhlY3V0aW9u
IG9mIHRoaXMgZG9tYWluIChhbGwgVkNQVXMpIGFuZCBub3RpZnkgdGhlIHN5c3RlbSBjb250cm9s
bGVyLgorICogQGFyZyA9PSBwb2ludGVyIHRvIHNjaGVkX3NodXRkb3duX3Qgc3RydWN0dXJlLgor
ICoKKyAqIElmIHRoZSBzY2hlZF9zaHV0ZG93bl90IHJlYXNvbiBpcyBTSFVURE9XTl9zdXNwZW5k
IHRoZW4KKyAqIHg4NiBQViBndWVzdHMgbXVzdCBhbHNvIHNldCBSRFggKEVEWCBmb3IgMzItYml0
IGd1ZXN0cykgdG8gdGhlIE1GTgorICogb2YgdGhlIGd1ZXN0J3Mgc3RhcnQgaW5mbyBwYWdlLiAg
UkRYL0VEWCBpcyB0aGUgdGhpcmQgaHlwZXJjYWxsCisgKiBhcmd1bWVudC4KKyAqCisgKiBJbiBh
ZGRpdGlvbiwgd2hpY2ggcmVhc29uIGlzIFNIVVRET1dOX3N1c3BlbmQgdGhpcyBoeXBlcmNhbGwK
KyAqIHJldHVybnMgMSBpZiBzdXNwZW5kIHdhcyBjYW5jZWxsZWQgb3IgdGhlIGRvbWFpbiB3YXMg
bWVyZWx5CisgKiBjaGVja3BvaW50ZWQsIGFuZCAwIGlmIGl0IGlzIHJlc3VtaW5nIGluIGEgbmV3
IGRvbWFpbi4KKyAqLworI2RlZmluZSBTQ0hFRE9QX3NodXRkb3duICAgIDIKKworLyoKKyAqIFBv
bGwgYSBzZXQgb2YgZXZlbnQtY2hhbm5lbCBwb3J0cy4gUmV0dXJuIHdoZW4gb25lIG9yIG1vcmUg
YXJlIHBlbmRpbmcuIEFuCisgKiBvcHRpb25hbCB0aW1lb3V0IG1heSBiZSBzcGVjaWZpZWQuCisg
KiBAYXJnID09IHBvaW50ZXIgdG8gc2NoZWRfcG9sbF90IHN0cnVjdHVyZS4KKyAqLworI2RlZmlu
ZSBTQ0hFRE9QX3BvbGwgICAgICAgIDMKKworLyoKKyAqIERlY2xhcmUgYSBzaHV0ZG93biBmb3Ig
YW5vdGhlciBkb21haW4uIFRoZSBtYWluIHVzZSBvZiB0aGlzIGZ1bmN0aW9uIGlzCisgKiBpbiBp
bnRlcnByZXRpbmcgc2h1dGRvd24gcmVxdWVzdHMgYW5kIHJlYXNvbnMgZm9yIGZ1bGx5LXZpcnR1
YWxpemVkCisgKiBkb21haW5zLiAgQSBwYXJhLXZpcnR1YWxpemVkIGRvbWFpbiBtYXkgdXNlIFND
SEVET1Bfc2h1dGRvd24gZGlyZWN0bHkuCisgKiBAYXJnID09IHBvaW50ZXIgdG8gc2NoZWRfcmVt
b3RlX3NodXRkb3duX3Qgc3RydWN0dXJlLgorICovCisjZGVmaW5lIFNDSEVET1BfcmVtb3RlX3No
dXRkb3duICAgICAgICA0CisKKy8qCisgKiBMYXRjaCBhIHNodXRkb3duIGNvZGUsIHNvIHRoYXQg
d2hlbiB0aGUgZG9tYWluIGxhdGVyIHNodXRzIGRvd24gaXQKKyAqIHJlcG9ydHMgdGhpcyBjb2Rl
IHRvIHRoZSBjb250cm9sIHRvb2xzLgorICogQGFyZyA9PSBzY2hlZF9zaHV0ZG93bl90LCBhcyBm
b3IgU0NIRURPUF9zaHV0ZG93bi4KKyAqLworI2RlZmluZSBTQ0hFRE9QX3NodXRkb3duX2NvZGUg
NQorCisvKgorICogU2V0dXAsIHBva2UgYW5kIGRlc3Ryb3kgYSBkb21haW4gd2F0Y2hkb2cgdGlt
ZXIuCisgKiBAYXJnID09IHBvaW50ZXIgdG8gc2NoZWRfd2F0Y2hkb2dfdCBzdHJ1Y3R1cmUuCisg
KiBXaXRoIGlkID09IDAsIHNldHVwIGEgZG9tYWluIHdhdGNoZG9nIHRpbWVyIHRvIGNhdXNlIGRv
bWFpbiBzaHV0ZG93bgorICogICAgICAgICAgICAgICBhZnRlciB0aW1lb3V0LCByZXR1cm5zIHdh
dGNoZG9nIGlkLgorICogV2l0aCBpZCAhPSAwIGFuZCB0aW1lb3V0ID09IDAsIGRlc3Ryb3kgZG9t
YWluIHdhdGNoZG9nIHRpbWVyLgorICogV2l0aCBpZCAhPSAwIGFuZCB0aW1lb3V0ICE9IDAsIHBv
a2Ugd2F0Y2hkb2cgdGltZXIgYW5kIHNldCBuZXcgdGltZW91dC4KKyAqLworI2RlZmluZSBTQ0hF
RE9QX3dhdGNoZG9nICAgIDYKKworLyoKKyAqIE92ZXJyaWRlIHRoZSBjdXJyZW50IHZjcHUgYWZm
aW5pdHkgYnkgcGlubmluZyBpdCB0byBvbmUgcGh5c2ljYWwgY3B1IG9yCisgKiB1bmRvIHRoaXMg
b3ZlcnJpZGUgcmVzdG9yaW5nIHRoZSBwcmV2aW91cyBhZmZpbml0eS4KKyAqIEBhcmcgPT0gcG9p
bnRlciB0byBzY2hlZF9waW5fb3ZlcnJpZGVfdCBzdHJ1Y3R1cmUuCisgKgorICogQSBuZWdhdGl2
ZSBwY3B1IHZhbHVlIHdpbGwgdW5kbyBhIHByZXZpb3VzIHBpbiBvdmVycmlkZSBhbmQgcmVzdG9y
ZSB0aGUKKyAqIHByZXZpb3VzIGNwdSBhZmZpbml0eS4KKyAqIFRoaXMgY2FsbCBpcyBhbGxvd2Vk
IGZvciB0aGUgaGFyZHdhcmUgZG9tYWluIG9ubHkgYW5kIHJlcXVpcmVzIHRoZSBjcHUKKyAqIHRv
IGJlIHBhcnQgb2YgdGhlIGRvbWFpbidzIGNwdXBvb2wuCisgKi8KKyNkZWZpbmUgU0NIRURPUF9w
aW5fb3ZlcnJpZGUgNworLyogYCB9ICovCisKK3N0cnVjdCBzY2hlZF9zaHV0ZG93biB7CisgICAg
dW5zaWduZWQgaW50IHJlYXNvbjsgLyogU0hVVERPV05fKiA9PiBlbnVtIHNjaGVkX3NodXRkb3du
X3JlYXNvbiAqLworfTsKK3R5cGVkZWYgc3RydWN0IHNjaGVkX3NodXRkb3duIHNjaGVkX3NodXRk
b3duX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShzY2hlZF9zaHV0ZG93bl90KTsKKworc3Ry
dWN0IHNjaGVkX3BvbGwgeworICAgIFhFTl9HVUVTVF9IQU5ETEUoZXZ0Y2huX3BvcnRfdCkgcG9y
dHM7CisgICAgdW5zaWduZWQgaW50IG5yX3BvcnRzOworICAgIHVpbnQ2NF90IHRpbWVvdXQ7Cit9
OwordHlwZWRlZiBzdHJ1Y3Qgc2NoZWRfcG9sbCBzY2hlZF9wb2xsX3Q7CitERUZJTkVfWEVOX0dV
RVNUX0hBTkRMRShzY2hlZF9wb2xsX3QpOworCitzdHJ1Y3Qgc2NoZWRfcmVtb3RlX3NodXRkb3du
IHsKKyAgICBkb21pZF90IGRvbWFpbl9pZDsgICAgICAgICAvKiBSZW1vdGUgZG9tYWluIElEICov
CisgICAgdW5zaWduZWQgaW50IHJlYXNvbjsgICAgICAgLyogU0hVVERPV05fKiA9PiBlbnVtIHNj
aGVkX3NodXRkb3duX3JlYXNvbiAqLworfTsKK3R5cGVkZWYgc3RydWN0IHNjaGVkX3JlbW90ZV9z
aHV0ZG93biBzY2hlZF9yZW1vdGVfc2h1dGRvd25fdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExF
KHNjaGVkX3JlbW90ZV9zaHV0ZG93bl90KTsKKworc3RydWN0IHNjaGVkX3dhdGNoZG9nIHsKKyAg
ICB1aW50MzJfdCBpZDsgICAgICAgICAgICAgICAgLyogd2F0Y2hkb2cgSUQgKi8KKyAgICB1aW50
MzJfdCB0aW1lb3V0OyAgICAgICAgICAgLyogdGltZW91dCAqLworfTsKK3R5cGVkZWYgc3RydWN0
IHNjaGVkX3dhdGNoZG9nIHNjaGVkX3dhdGNoZG9nX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRM
RShzY2hlZF93YXRjaGRvZ190KTsKKworc3RydWN0IHNjaGVkX3Bpbl9vdmVycmlkZSB7CisgICAg
aW50MzJfdCBwY3B1OworfTsKK3R5cGVkZWYgc3RydWN0IHNjaGVkX3Bpbl9vdmVycmlkZSBzY2hl
ZF9waW5fb3ZlcnJpZGVfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHNjaGVkX3Bpbl9vdmVy
cmlkZV90KTsKKworLyoKKyAqIFJlYXNvbiBjb2RlcyBmb3IgU0NIRURPUF9zaHV0ZG93bi4gVGhl
c2UgbWF5IGJlIGludGVycHJldGVkIGJ5IGNvbnRyb2wKKyAqIHNvZnR3YXJlIHRvIGRldGVybWlu
ZSB0aGUgYXBwcm9wcmlhdGUgYWN0aW9uLiBGb3IgdGhlIG1vc3QgcGFydCwgWGVuIGRvZXMKKyAq
IG5vdCBjYXJlIGFib3V0IHRoZSBzaHV0ZG93biBjb2RlLgorICovCisvKiBgIGVudW0gc2NoZWRf
c2h1dGRvd25fcmVhc29uIHsgKi8KKyNkZWZpbmUgU0hVVERPV05fcG93ZXJvZmYgICAwICAvKiBE
b21haW4gZXhpdGVkIG5vcm1hbGx5LiBDbGVhbiB1cCBhbmQga2lsbC4gKi8KKyNkZWZpbmUgU0hV
VERPV05fcmVib290ICAgICAxICAvKiBDbGVhbiB1cCwga2lsbCwgYW5kIHRoZW4gcmVzdGFydC4g
ICAgICAgICAgKi8KKyNkZWZpbmUgU0hVVERPV05fc3VzcGVuZCAgICAyICAvKiBDbGVhbiB1cCwg
c2F2ZSBzdXNwZW5kIGluZm8sIGtpbGwuICAgICAgICAgKi8KKyNkZWZpbmUgU0hVVERPV05fY3Jh
c2ggICAgICAzICAvKiBUZWxsIGNvbnRyb2xsZXIgd2UndmUgY3Jhc2hlZC4gICAgICAgICAgICAg
Ki8KKyNkZWZpbmUgU0hVVERPV05fd2F0Y2hkb2cgICA0ICAvKiBSZXN0YXJ0IGJlY2F1c2Ugd2F0
Y2hkb2cgdGltZSBleHBpcmVkLiAgICAgKi8KKworLyoKKyAqIERvbWFpbiBhc2tlZCB0byBwZXJm
b3JtICdzb2Z0IHJlc2V0JyBmb3IgaXQuIFRoZSBleHBlY3RlZCBiZWhhdmlvciBpcyB0bworICog
cmVzZXQgaW50ZXJuYWwgWGVuIHN0YXRlIGZvciB0aGUgZG9tYWluIHJldHVybmluZyBpdCB0byB0
aGUgcG9pbnQgd2hlcmUgaXQKKyAqIHdhcyBjcmVhdGVkIGJ1dCBsZWF2aW5nIHRoZSBkb21haW4n
cyBtZW1vcnkgY29udGVudHMgYW5kIHZDUFUgY29udGV4dHMKKyAqIGludGFjdC4gVGhpcyB3aWxs
IGFsbG93IHRoZSBkb21haW4gdG8gc3RhcnQgb3ZlciBhbmQgc2V0IHVwIGFsbCBYZW4gc3BlY2lm
aWMKKyAqIGludGVyZmFjZXMgYWdhaW4uCisgKi8KKyNkZWZpbmUgU0hVVERPV05fc29mdF9yZXNl
dCA1CisjZGVmaW5lIFNIVVRET1dOX01BWCAgICAgICAgNSAgLyogTWF4aW11bSB2YWxpZCBzaHV0
ZG93biByZWFzb24uICAgICAgICAgICAgICovCisvKiBgIH0gKi8KKworI2VuZGlmIC8qIF9fWEVO
X1BVQkxJQ19TQ0hFRF9IX18gKi8KKworLyoKKyAqIExvY2FsIHZhcmlhYmxlczoKKyAqIG1vZGU6
IEMKKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKKyAqIGMtYmFzaWMtb2Zmc2V0OiA0CisgKiB0YWIt
d2lkdGg6IDQKKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorICogRW5kOgorICovCmRpZmYgLS1n
aXQgYS9pbmNsdWRlL3hlbi94c20vc3lzY3RsLmggYi9pbmNsdWRlL3hlbi94c20vc3lzY3RsLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjE0MGYxYQotLS0gL2Rldi9udWxs
CisrKyBiL2luY2x1ZGUveGVuL3hzbS9zeXNjdGwuaApAQCAtMCwwICsxLDExMjIgQEAKKy8qKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKKyAqIHN5c2N0bC5oCisgKiAKKyAqIFN5c3RlbSBtYW5hZ2VtZW50
IG9wZXJhdGlvbnMuIEZvciB1c2UgYnkgbm9kZSBjb250cm9sIHN0YWNrLgorICogCisgKiBQZXJt
aXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBv
YnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3Vt
ZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3
YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhl
CisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmli
dXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwg
YW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBmdXJuaXNo
ZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAq
IFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNo
YWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25z
IG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElT
IiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwg
SU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO
R0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhP
TERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNF
LCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZU
V0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisg
KgorICogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDYsIEsgRnJhc2VyCisgKi8KKworI2lmbmRlZiBf
X1hFTl9QVUJMSUNfU1lTQ1RMX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfU1lTQ1RMX0hfXwor
CisjaWYgIWRlZmluZWQoX19YRU5fXykgJiYgIWRlZmluZWQoX19YRU5fVE9PTFNfXykKKyNlcnJv
ciAic3lzY3RsIG9wZXJhdGlvbnMgYXJlIGludGVuZGVkIGZvciB1c2UgYnkgbm9kZSBjb250cm9s
IHRvb2xzIG9ubHkiCisjZW5kaWYKKworI2luY2x1ZGUgInhlbi5oIgorI2luY2x1ZGUgImRvbWN0
bC5oIgorI2luY2x1ZGUgInBoeXNkZXYuaCIKKyNpbmNsdWRlICJ0bWVtLmgiCisKKyNkZWZpbmUg
WEVOX1NZU0NUTF9JTlRFUkZBQ0VfVkVSU0lPTiAweDAwMDAwMDEwCisKKy8qCisgKiBSZWFkIGNv
bnNvbGUgY29udGVudCBmcm9tIFhlbiBidWZmZXIgcmluZy4KKyAqLworLyogWEVOX1NZU0NUTF9y
ZWFkY29uc29sZSAqLworc3RydWN0IHhlbl9zeXNjdGxfcmVhZGNvbnNvbGUgeworICAgIC8qIElO
OiBOb24temVybyAtPiBjbGVhciBhZnRlciByZWFkaW5nLiAqLworICAgIHVpbnQ4X3QgY2xlYXI7
CisgICAgLyogSU46IE5vbi16ZXJvIC0+IHN0YXJ0IGluZGV4IHNwZWNpZmllZCBieSBAaW5kZXgg
ZmllbGQuICovCisgICAgdWludDhfdCBpbmNyZW1lbnRhbDsKKyAgICB1aW50OF90IHBhZDAsIHBh
ZDE7CisgICAgLyoKKyAgICAgKiBJTjogIFN0YXJ0IGluZGV4IGZvciBjb25zdW1pbmcgZnJvbSBy
aW5nIGJ1ZmZlciAoaWYgQGluY3JlbWVudGFsKTsKKyAgICAgKiBPVVQ6IEVuZCBpbmRleCBhZnRl
ciBjb25zdW1pbmcgZnJvbSByaW5nIGJ1ZmZlci4KKyAgICAgKi8KKyAgICB1aW50MzJfdCBpbmRl
eDsgCisgICAgLyogSU46IFZpcnR1YWwgYWRkcmVzcyB0byB3cml0ZSBjb25zb2xlIGRhdGEuICov
CisgICAgWEVOX0dVRVNUX0hBTkRMRV82NChjaGFyKSBidWZmZXI7CisgICAgLyogSU46IFNpemUg
b2YgYnVmZmVyOyBPVVQ6IEJ5dGVzIHdyaXR0ZW4gdG8gYnVmZmVyLiAqLworICAgIHVpbnQzMl90
IGNvdW50OworfTsKKworLyogR2V0IHRyYWNlIGJ1ZmZlcnMgbWFjaGluZSBiYXNlIGFkZHJlc3Mg
Ki8KKy8qIFhFTl9TWVNDVExfdGJ1Zl9vcCAqLworc3RydWN0IHhlbl9zeXNjdGxfdGJ1Zl9vcCB7
CisgICAgLyogSU4gdmFyaWFibGVzICovCisjZGVmaW5lIFhFTl9TWVNDVExfVEJVRk9QX2dldF9p
bmZvICAgICAwCisjZGVmaW5lIFhFTl9TWVNDVExfVEJVRk9QX3NldF9jcHVfbWFzayAxCisjZGVm
aW5lIFhFTl9TWVNDVExfVEJVRk9QX3NldF9ldnRfbWFzayAyCisjZGVmaW5lIFhFTl9TWVNDVExf
VEJVRk9QX3NldF9zaXplICAgICAzCisjZGVmaW5lIFhFTl9TWVNDVExfVEJVRk9QX2VuYWJsZSAg
ICAgICA0CisjZGVmaW5lIFhFTl9TWVNDVExfVEJVRk9QX2Rpc2FibGUgICAgICA1CisgICAgdWlu
dDMyX3QgY21kOworICAgIC8qIElOL09VVCB2YXJpYWJsZXMgKi8KKyAgICBzdHJ1Y3QgeGVuY3Rs
X2JpdG1hcCBjcHVfbWFzazsKKyAgICB1aW50MzJfdCAgICAgICAgICAgICBldnRfbWFzazsKKyAg
ICAvKiBPVVQgdmFyaWFibGVzICovCisgICAgdWludDY0X2FsaWduZWRfdCBidWZmZXJfbWZuOwor
ICAgIHVpbnQzMl90IHNpemU7ICAvKiBBbHNvIGFuIElOIHZhcmlhYmxlISAqLworfTsKKworLyoK
KyAqIEdldCBwaHlzaWNhbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgaG9zdCBtYWNoaW5lCisgKi8K
Ky8qIFhFTl9TWVNDVExfcGh5c2luZm8gKi8KKyAvKiAoeDg2KSBUaGUgcGxhdGZvcm0gc3VwcG9y
dHMgSFZNIGd1ZXN0cy4gKi8KKyNkZWZpbmUgX1hFTl9TWVNDVExfUEhZU0NBUF9odm0gICAgICAg
ICAgMAorI2RlZmluZSBYRU5fU1lTQ1RMX1BIWVNDQVBfaHZtICAgICAgICAgICAoMXU8PF9YRU5f
U1lTQ1RMX1BIWVNDQVBfaHZtKQorIC8qICh4ODYpIFRoZSBwbGF0Zm9ybSBzdXBwb3J0cyBIVk0t
Z3Vlc3QgZGlyZWN0IGFjY2VzcyB0byBJL08gZGV2aWNlcy4gKi8KKyNkZWZpbmUgX1hFTl9TWVND
VExfUEhZU0NBUF9odm1fZGlyZWN0aW8gMQorI2RlZmluZSBYRU5fU1lTQ1RMX1BIWVNDQVBfaHZt
X2RpcmVjdGlvICAoMXU8PF9YRU5fU1lTQ1RMX1BIWVNDQVBfaHZtX2RpcmVjdGlvKQorc3RydWN0
IHhlbl9zeXNjdGxfcGh5c2luZm8geworICAgIHVpbnQzMl90IHRocmVhZHNfcGVyX2NvcmU7Cisg
ICAgdWludDMyX3QgY29yZXNfcGVyX3NvY2tldDsKKyAgICB1aW50MzJfdCBucl9jcHVzOyAgICAg
LyogIyBDUFVzIGN1cnJlbnRseSBvbmxpbmUgKi8KKyAgICB1aW50MzJfdCBtYXhfY3B1X2lkOyAg
LyogTGFyZ2VzdCBwb3NzaWJsZSBDUFUgSUQgb24gdGhpcyBob3N0ICovCisgICAgdWludDMyX3Qg
bnJfbm9kZXM7ICAgIC8qICMgbm9kZXMgY3VycmVudGx5IG9ubGluZSAqLworICAgIHVpbnQzMl90
IG1heF9ub2RlX2lkOyAvKiBMYXJnZXN0IHBvc3NpYmxlIG5vZGUgSUQgb24gdGhpcyBob3N0ICov
CisgICAgdWludDMyX3QgY3B1X2toejsKKyAgICB1aW50MzJfdCBjYXBhYmlsaXRpZXM7LyogWEVO
X1NZU0NUTF9QSFlTQ0FQXz8/PyAqLworICAgIHVpbnQ2NF9hbGlnbmVkX3QgdG90YWxfcGFnZXM7
CisgICAgdWludDY0X2FsaWduZWRfdCBmcmVlX3BhZ2VzOworICAgIHVpbnQ2NF9hbGlnbmVkX3Qg
c2NydWJfcGFnZXM7CisgICAgdWludDY0X2FsaWduZWRfdCBvdXRzdGFuZGluZ19wYWdlczsKKyAg
ICB1aW50NjRfYWxpZ25lZF90IG1heF9tZm47IC8qIExhcmdlc3QgcG9zc2libGUgTUZOIG9uIHRo
aXMgaG9zdCAqLworICAgIHVpbnQzMl90IGh3X2NhcFs4XTsKK307CisKKy8qCisgKiBHZXQgdGhl
IElEIG9mIHRoZSBjdXJyZW50IHNjaGVkdWxlci4KKyAqLworLyogWEVOX1NZU0NUTF9zY2hlZF9p
ZCAqLworc3RydWN0IHhlbl9zeXNjdGxfc2NoZWRfaWQgeworICAgIC8qIE9VVCB2YXJpYWJsZSAq
LworICAgIHVpbnQzMl90IHNjaGVkX2lkOworfTsKKworLyogSW50ZXJmYWNlIGZvciBjb250cm9s
bGluZyBYZW4gc29mdHdhcmUgcGVyZm9ybWFuY2UgY291bnRlcnMuICovCisvKiBYRU5fU1lTQ1RM
X3BlcmZjX29wICovCisvKiBTdWItb3BlcmF0aW9uczogKi8KKyNkZWZpbmUgWEVOX1NZU0NUTF9Q
RVJGQ09QX3Jlc2V0IDEgICAvKiBSZXNldCBhbGwgY291bnRlcnMgdG8gemVyby4gKi8KKyNkZWZp
bmUgWEVOX1NZU0NUTF9QRVJGQ09QX3F1ZXJ5IDIgICAvKiBHZXQgcGVyZmN0ciBpbmZvcm1hdGlv
bi4gKi8KK3N0cnVjdCB4ZW5fc3lzY3RsX3BlcmZjX2Rlc2MgeworICAgIGNoYXIgICAgICAgICBu
YW1lWzgwXTsgICAgICAgICAgICAgLyogbmFtZSBvZiBwZXJmIGNvdW50ZXIgKi8KKyAgICB1aW50
MzJfdCAgICAgbnJfdmFsczsgICAgICAgICAgICAgIC8qIG51bWJlciBvZiB2YWx1ZXMgZm9yIHRo
aXMgY291bnRlciAqLworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfcGVyZmNfZGVzYyB4
ZW5fc3lzY3RsX3BlcmZjX2Rlc2NfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNj
dGxfcGVyZmNfZGVzY190KTsKK3R5cGVkZWYgdWludDMyX3QgeGVuX3N5c2N0bF9wZXJmY192YWxf
dDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNjdGxfcGVyZmNfdmFsX3QpOworCitz
dHJ1Y3QgeGVuX3N5c2N0bF9wZXJmY19vcCB7CisgICAgLyogSU4gdmFyaWFibGVzLiAqLworICAg
IHVpbnQzMl90ICAgICAgIGNtZDsgICAgICAgICAgICAgICAgLyogIFhFTl9TWVNDVExfUEVSRkNP
UF8/Pz8gKi8KKyAgICAvKiBPVVQgdmFyaWFibGVzLiAqLworICAgIHVpbnQzMl90ICAgICAgIG5y
X2NvdW50ZXJzOyAgICAgICAvKiAgbnVtYmVyIG9mIGNvdW50ZXJzIGRlc2NyaXB0aW9uICAqLwor
ICAgIHVpbnQzMl90ICAgICAgIG5yX3ZhbHM7ICAgICAgICAgICAvKiAgbnVtYmVyIG9mIHZhbHVl
cyAgKi8KKyAgICAvKiBjb3VudGVyIGluZm9ybWF0aW9uIChvciBOVUxMKSAqLworICAgIFhFTl9H
VUVTVF9IQU5ETEVfNjQoeGVuX3N5c2N0bF9wZXJmY19kZXNjX3QpIGRlc2M7CisgICAgLyogY291
bnRlciB2YWx1ZXMgKG9yIE5VTEwpICovCisgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh4ZW5fc3lz
Y3RsX3BlcmZjX3ZhbF90KSB2YWw7Cit9OworCisvKiBYRU5fU1lTQ1RMX2dldGRvbWFpbmluZm9s
aXN0ICovCitzdHJ1Y3QgeGVuX3N5c2N0bF9nZXRkb21haW5pbmZvbGlzdCB7CisgICAgLyogSU4g
dmFyaWFibGVzLiAqLworICAgIGRvbWlkX3QgICAgICAgICAgICAgICBmaXJzdF9kb21haW47Cisg
ICAgdWludDMyX3QgICAgICAgICAgICAgIG1heF9kb21haW5zOworICAgIFhFTl9HVUVTVF9IQU5E
TEVfNjQoeGVuX2RvbWN0bF9nZXRkb21haW5pbmZvX3QpIGJ1ZmZlcjsKKyAgICAvKiBPVVQgdmFy
aWFibGVzLiAqLworICAgIHVpbnQzMl90ICAgICAgICAgICAgICBudW1fZG9tYWluczsKK307CisK
Ky8qIEluamVjdCBkZWJ1ZyBrZXlzIGludG8gWGVuLiAqLworLyogWEVOX1NZU0NUTF9kZWJ1Z19r
ZXlzICovCitzdHJ1Y3QgeGVuX3N5c2N0bF9kZWJ1Z19rZXlzIHsKKyAgICAvKiBJTiB2YXJpYWJs
ZXMuICovCisgICAgWEVOX0dVRVNUX0hBTkRMRV82NChjaGFyKSBrZXlzOworICAgIHVpbnQzMl90
IG5yX2tleXM7Cit9OworCisvKiBHZXQgcGh5c2ljYWwgQ1BVIGluZm9ybWF0aW9uLiAqLworLyog
WEVOX1NZU0NUTF9nZXRjcHVpbmZvICovCitzdHJ1Y3QgeGVuX3N5c2N0bF9jcHVpbmZvIHsKKyAg
ICB1aW50NjRfYWxpZ25lZF90IGlkbGV0aW1lOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9zeXNj
dGxfY3B1aW5mbyB4ZW5fc3lzY3RsX2NwdWluZm9fdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExF
KHhlbl9zeXNjdGxfY3B1aW5mb190KTsgCitzdHJ1Y3QgeGVuX3N5c2N0bF9nZXRjcHVpbmZvIHsK
KyAgICAvKiBJTiB2YXJpYWJsZXMuICovCisgICAgdWludDMyX3QgbWF4X2NwdXM7CisgICAgWEVO
X0dVRVNUX0hBTkRMRV82NCh4ZW5fc3lzY3RsX2NwdWluZm9fdCkgaW5mbzsKKyAgICAvKiBPVVQg
dmFyaWFibGVzLiAqLworICAgIHVpbnQzMl90IG5yX2NwdXM7Cit9OyAKKworLyogWEVOX1NZU0NU
TF9hdmFpbGhlYXAgKi8KK3N0cnVjdCB4ZW5fc3lzY3RsX2F2YWlsaGVhcCB7CisgICAgLyogSU4g
dmFyaWFibGVzLiAqLworICAgIHVpbnQzMl90IG1pbl9iaXR3aWR0aDsgIC8qIFNtYWxsZXN0IGFk
ZHJlc3Mgd2lkdGggKHplcm8gaWYgZG9uJ3QgY2FyZSkuICovCisgICAgdWludDMyX3QgbWF4X2Jp
dHdpZHRoOyAgLyogTGFyZ2VzdCBhZGRyZXNzIHdpZHRoICh6ZXJvIGlmIGRvbid0IGNhcmUpLiAq
LworICAgIGludDMyX3QgIG5vZGU7ICAgICAgICAgIC8qIE5VTUEgbm9kZSBvZiBpbnRlcmVzdCAo
LTEgZm9yIGFsbCBub2RlcykuICovCisgICAgLyogT1VUIHZhcmlhYmxlcy4gKi8KKyAgICB1aW50
NjRfYWxpZ25lZF90IGF2YWlsX2J5dGVzOy8qIEJ5dGVzIGF2YWlsYWJsZSBpbiB0aGUgc3BlY2lm
aWVkIHJlZ2lvbi4gKi8KK307CisKKy8qIFhFTl9TWVNDVExfZ2V0X3Btc3RhdCAqLworc3RydWN0
IHBtX3B4X3ZhbCB7CisgICAgdWludDY0X2FsaWduZWRfdCBmcmVxOyAgICAgICAgLyogUHggY29y
ZSBmcmVxdWVuY3kgKi8KKyAgICB1aW50NjRfYWxpZ25lZF90IHJlc2lkZW5jeTsgICAvKiBQeCBy
ZXNpZGVuY3kgdGltZSAqLworICAgIHVpbnQ2NF9hbGlnbmVkX3QgY291bnQ7ICAgICAgIC8qIFB4
IHRyYW5zaXRpb24gY291bnQgKi8KK307Cit0eXBlZGVmIHN0cnVjdCBwbV9weF92YWwgcG1fcHhf
dmFsX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShwbV9weF92YWxfdCk7CisKK3N0cnVjdCBw
bV9weF9zdGF0IHsKKyAgICB1aW50OF90IHRvdGFsOyAgICAgICAgLyogdG90YWwgUHggc3RhdGVz
ICovCisgICAgdWludDhfdCB1c2FibGU7ICAgICAgIC8qIHVzYWJsZSBQeCBzdGF0ZXMgKi8KKyAg
ICB1aW50OF90IGxhc3Q7ICAgICAgICAgLyogbGFzdCBQeCBzdGF0ZSAqLworICAgIHVpbnQ4X3Qg
Y3VyOyAgICAgICAgICAvKiBjdXJyZW50IFB4IHN0YXRlICovCisgICAgWEVOX0dVRVNUX0hBTkRM
RV82NCh1aW50NjQpIHRyYW5zX3B0OyAgIC8qIFB4IHRyYW5zaXRpb24gdGFibGUgKi8KKyAgICBY
RU5fR1VFU1RfSEFORExFXzY0KHBtX3B4X3ZhbF90KSBwdDsKK307CisKK3N0cnVjdCBwbV9jeF9z
dGF0IHsKKyAgICB1aW50MzJfdCBucjsgICAgLyogZW50cnkgbnIgaW4gdHJpZ2dlcnMgJiByZXNp
ZGVuY2llcywgaW5jbHVkaW5nIEMwICovCisgICAgdWludDMyX3QgbGFzdDsgIC8qIGxhc3QgQ3gg
c3RhdGUgKi8KKyAgICB1aW50NjRfYWxpZ25lZF90IGlkbGVfdGltZTsgICAgICAgICAgICAgICAg
IC8qIGlkbGUgdGltZSBmcm9tIGJvb3QgKi8KKyAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQ2
NCkgdHJpZ2dlcnM7ICAgIC8qIEN4IHRyaWdnZXIgY291bnRzICovCisgICAgWEVOX0dVRVNUX0hB
TkRMRV82NCh1aW50NjQpIHJlc2lkZW5jaWVzOyAvKiBDeCByZXNpZGVuY2llcyAqLworICAgIHVp
bnQzMl90IG5yX3BjOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZW50cnkgbnIgaW4gcGNb
XSAqLworICAgIHVpbnQzMl90IG5yX2NjOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZW50
cnkgbnIgaW4gY2NbXSAqLworICAgIC8qCisgICAgICogVGhlc2UgdHdvIGFycmF5cyBtYXkgKGFu
ZCBnZW5lcmFsbHkgd2lsbCkgaGF2ZSB1bnVzZWQgc2xvdHM7IHNsb3RzIG5vdAorICAgICAqIGhh
dmluZyBhIGNvcnJlc3BvbmRpbmcgaGFyZHdhcmUgcmVnaXN0ZXIgd2lsbCBub3QgYmUgd3JpdHRl
biBieSB0aGUKKyAgICAgKiBoeXBlcnZpc29yLiBJdCBpcyB0aGVyZWZvcmUgdXAgdG8gdGhlIGNh
bGxlciB0byBwdXQgYSBzdWl0YWJsZSBzZW50aW5lbAorICAgICAqIGludG8gYWxsIHNsb3RzIGJl
Zm9yZSBpbnZva2luZyB0aGUgZnVuY3Rpb24uCisgICAgICogSW5kZXhpbmcgaXMgMS1iaWFzZWQg
KFBDMS9DQzEgYmVpbmcgYXQgaW5kZXggMCkuCisgICAgICovCisgICAgWEVOX0dVRVNUX0hBTkRM
RV82NCh1aW50NjQpIHBjOworICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQodWludDY0KSBjYzsKK307
CisKK3N0cnVjdCB4ZW5fc3lzY3RsX2dldF9wbXN0YXQgeworI2RlZmluZSBQTVNUQVRfQ0FURUdP
UllfTUFTSyAweGYwCisjZGVmaW5lIFBNU1RBVF9QWCAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUg
UE1TVEFUX0NYICAgICAgICAgICAgMHgyMAorI2RlZmluZSBQTVNUQVRfZ2V0X21heF9weCAgICAo
UE1TVEFUX1BYIHwgMHgxKQorI2RlZmluZSBQTVNUQVRfZ2V0X3B4c3RhdCAgICAoUE1TVEFUX1BY
IHwgMHgyKQorI2RlZmluZSBQTVNUQVRfcmVzZXRfcHhzdGF0ICAoUE1TVEFUX1BYIHwgMHgzKQor
I2RlZmluZSBQTVNUQVRfZ2V0X21heF9jeCAgICAoUE1TVEFUX0NYIHwgMHgxKQorI2RlZmluZSBQ
TVNUQVRfZ2V0X2N4c3RhdCAgICAoUE1TVEFUX0NYIHwgMHgyKQorI2RlZmluZSBQTVNUQVRfcmVz
ZXRfY3hzdGF0ICAoUE1TVEFUX0NYIHwgMHgzKQorICAgIHVpbnQzMl90IHR5cGU7CisgICAgdWlu
dDMyX3QgY3B1aWQ7CisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3QgcG1fcHhfc3RhdCBnZXRw
eDsKKyAgICAgICAgc3RydWN0IHBtX2N4X3N0YXQgZ2V0Y3g7CisgICAgICAgIC8qIG90aGVyIHN0
cnVjdCBmb3IgdHgsIGV0YyAqLworICAgIH0gdTsKK307CisKKy8qIFhFTl9TWVNDVExfY3B1X2hv
dHBsdWcgKi8KK3N0cnVjdCB4ZW5fc3lzY3RsX2NwdV9ob3RwbHVnIHsKKyAgICAvKiBJTiB2YXJp
YWJsZXMgKi8KKyAgICB1aW50MzJfdCBjcHU7ICAgLyogUGh5c2ljYWwgY3B1LiAqLworI2RlZmlu
ZSBYRU5fU1lTQ1RMX0NQVV9IT1RQTFVHX09OTElORSAgMAorI2RlZmluZSBYRU5fU1lTQ1RMX0NQ
VV9IT1RQTFVHX09GRkxJTkUgMQorICAgIHVpbnQzMl90IG9wOyAgICAvKiBob3RwbHVnIG9wY29k
ZSAqLworfTsKKworLyoKKyAqIEdldC9zZXQgeGVuIHBvd2VyIG1hbmFnZW1lbnQsIGluY2x1ZGUg
CisgKiAxLiBjcHVmcmVxIGdvdmVybm9ycyBhbmQgcmVsYXRlZCBwYXJhbWV0ZXJzCisgKi8KKy8q
IFhFTl9TWVNDVExfcG1fb3AgKi8KK3N0cnVjdCB4ZW5fdXNlcnNwYWNlIHsKKyAgICB1aW50MzJf
dCBzY2FsaW5nX3NldHNwZWVkOworfTsKKworc3RydWN0IHhlbl9vbmRlbWFuZCB7CisgICAgdWlu
dDMyX3Qgc2FtcGxpbmdfcmF0ZV9tYXg7CisgICAgdWludDMyX3Qgc2FtcGxpbmdfcmF0ZV9taW47
CisKKyAgICB1aW50MzJfdCBzYW1wbGluZ19yYXRlOworICAgIHVpbnQzMl90IHVwX3RocmVzaG9s
ZDsKK307CisKKy8qIAorICogY3B1ZnJlcSBwYXJhIG5hbWUgb2YgdGhpcyBzdHJ1Y3R1cmUgbmFt
ZWQgCisgKiBzYW1lIGFzIHN5c2ZzIGZpbGUgbmFtZSBvZiBuYXRpdmUgbGludXgKKyAqLworI2Rl
ZmluZSBDUFVGUkVRX05BTUVfTEVOIDE2CitzdHJ1Y3QgeGVuX2dldF9jcHVmcmVxX3BhcmEgewor
ICAgIC8qIElOL09VVCB2YXJpYWJsZSAqLworICAgIHVpbnQzMl90IGNwdV9udW07CisgICAgdWlu
dDMyX3QgZnJlcV9udW07CisgICAgdWludDMyX3QgZ292X251bTsKKworICAgIC8qIGZvciBhbGwg
Z292ZXJub3JzICovCisgICAgLyogT1VUIHZhcmlhYmxlICovCisgICAgWEVOX0dVRVNUX0hBTkRM
RV82NCh1aW50MzIpIGFmZmVjdGVkX2NwdXM7CisgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh1aW50
MzIpIHNjYWxpbmdfYXZhaWxhYmxlX2ZyZXF1ZW5jaWVzOworICAgIFhFTl9HVUVTVF9IQU5ETEVf
NjQoY2hhcikgICBzY2FsaW5nX2F2YWlsYWJsZV9nb3Zlcm5vcnM7CisgICAgY2hhciBzY2FsaW5n
X2RyaXZlcltDUFVGUkVRX05BTUVfTEVOXTsKKworICAgIHVpbnQzMl90IGNwdWluZm9fY3VyX2Zy
ZXE7CisgICAgdWludDMyX3QgY3B1aW5mb19tYXhfZnJlcTsKKyAgICB1aW50MzJfdCBjcHVpbmZv
X21pbl9mcmVxOworICAgIHVpbnQzMl90IHNjYWxpbmdfY3VyX2ZyZXE7CisKKyAgICBjaGFyIHNj
YWxpbmdfZ292ZXJub3JbQ1BVRlJFUV9OQU1FX0xFTl07CisgICAgdWludDMyX3Qgc2NhbGluZ19t
YXhfZnJlcTsKKyAgICB1aW50MzJfdCBzY2FsaW5nX21pbl9mcmVxOworCisgICAgLyogZm9yIHNw
ZWNpZmljIGdvdmVybm9yICovCisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3QgIHhlbl91c2Vy
c3BhY2UgdXNlcnNwYWNlOworICAgICAgICBzdHJ1Y3QgIHhlbl9vbmRlbWFuZCBvbmRlbWFuZDsK
KyAgICB9IHU7CisKKyAgICBpbnQzMl90IHR1cmJvX2VuYWJsZWQ7Cit9OworCitzdHJ1Y3QgeGVu
X3NldF9jcHVmcmVxX2dvdiB7CisgICAgY2hhciBzY2FsaW5nX2dvdmVybm9yW0NQVUZSRVFfTkFN
RV9MRU5dOworfTsKKworc3RydWN0IHhlbl9zZXRfY3B1ZnJlcV9wYXJhIHsKKyAgICAjZGVmaW5l
IFNDQUxJTkdfTUFYX0ZSRVEgICAgICAgICAgIDEKKyAgICAjZGVmaW5lIFNDQUxJTkdfTUlOX0ZS
RVEgICAgICAgICAgIDIKKyAgICAjZGVmaW5lIFNDQUxJTkdfU0VUU1BFRUQgICAgICAgICAgIDMK
KyAgICAjZGVmaW5lIFNBTVBMSU5HX1JBVEUgICAgICAgICAgICAgIDQKKyAgICAjZGVmaW5lIFVQ
X1RIUkVTSE9MRCAgICAgICAgICAgICAgIDUKKworICAgIHVpbnQzMl90IGN0cmxfdHlwZTsKKyAg
ICB1aW50MzJfdCBjdHJsX3ZhbHVlOworfTsKKworc3RydWN0IHhlbl9zeXNjdGxfcG1fb3Agewor
ICAgICNkZWZpbmUgUE1fUEFSQV9DQVRFR09SWV9NQVNLICAgICAgMHhmMAorICAgICNkZWZpbmUg
Q1BVRlJFUV9QQVJBICAgICAgICAgICAgICAgMHgxMAorCisgICAgLyogY3B1ZnJlcSBjb21tYW5k
IHR5cGUgKi8KKyAgICAjZGVmaW5lIEdFVF9DUFVGUkVRX1BBUkEgICAgICAgICAgIChDUFVGUkVR
X1BBUkEgfCAweDAxKQorICAgICNkZWZpbmUgU0VUX0NQVUZSRVFfR09WICAgICAgICAgICAgKENQ
VUZSRVFfUEFSQSB8IDB4MDIpCisgICAgI2RlZmluZSBTRVRfQ1BVRlJFUV9QQVJBICAgICAgICAg
ICAoQ1BVRlJFUV9QQVJBIHwgMHgwMykKKyAgICAjZGVmaW5lIEdFVF9DUFVGUkVRX0FWR0ZSRVEg
ICAgICAgIChDUFVGUkVRX1BBUkEgfCAweDA0KQorCisgICAgLyogc2V0L3Jlc2V0IHNjaGVkdWxl
ciBwb3dlciBzYXZpbmcgb3B0aW9uICovCisgICAgI2RlZmluZSBYRU5fU1lTQ1RMX3BtX29wX3Nl
dF9zY2hlZF9vcHRfc210ICAgIDB4MjEKKworICAgIC8qIGNwdWlkbGUgbWF4X2NzdGF0ZSBhY2Nl
c3MgY29tbWFuZCAqLworICAgICNkZWZpbmUgWEVOX1NZU0NUTF9wbV9vcF9nZXRfbWF4X2NzdGF0
ZSAgICAgICAweDIyCisgICAgI2RlZmluZSBYRU5fU1lTQ1RMX3BtX29wX3NldF9tYXhfY3N0YXRl
ICAgICAgIDB4MjMKKworICAgIC8qIHNldCBzY2hlZHVsZXIgbWlncmF0aW9uIGNvc3QgdmFsdWUg
Ki8KKyAgICAjZGVmaW5lIFhFTl9TWVNDVExfcG1fb3Bfc2V0X3ZjcHVfbWlncmF0aW9uX2RlbGF5
ICAgMHgyNAorICAgICNkZWZpbmUgWEVOX1NZU0NUTF9wbV9vcF9nZXRfdmNwdV9taWdyYXRpb25f
ZGVsYXkgICAweDI1CisKKyAgICAvKiBlbmFibGUvZGlzYWJsZSB0dXJibyBtb2RlIHdoZW4gaW4g
ZGJzIGdvdmVybm9yICovCisgICAgI2RlZmluZSBYRU5fU1lTQ1RMX3BtX29wX2VuYWJsZV90dXJi
byAgICAgICAgICAgICAgIDB4MjYKKyAgICAjZGVmaW5lIFhFTl9TWVNDVExfcG1fb3BfZGlzYWJs
ZV90dXJibyAgICAgICAgICAgICAgMHgyNworCisgICAgdWludDMyX3QgY21kOworICAgIHVpbnQz
Ml90IGNwdWlkOworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHhlbl9nZXRfY3B1ZnJlcV9w
YXJhIGdldF9wYXJhOworICAgICAgICBzdHJ1Y3QgeGVuX3NldF9jcHVmcmVxX2dvdiAgc2V0X2dv
djsKKyAgICAgICAgc3RydWN0IHhlbl9zZXRfY3B1ZnJlcV9wYXJhIHNldF9wYXJhOworICAgICAg
ICB1aW50NjRfYWxpZ25lZF90IGdldF9hdmdmcmVxOworICAgICAgICB1aW50MzJfdCAgICAgICAg
ICAgICAgICAgICAgc2V0X3NjaGVkX29wdF9zbXQ7CisgICAgICAgIHVpbnQzMl90ICAgICAgICAg
ICAgICAgICAgICBnZXRfbWF4X2NzdGF0ZTsKKyAgICAgICAgdWludDMyX3QgICAgICAgICAgICAg
ICAgICAgIHNldF9tYXhfY3N0YXRlOworICAgICAgICB1aW50MzJfdCAgICAgICAgICAgICAgICAg
ICAgZ2V0X3ZjcHVfbWlncmF0aW9uX2RlbGF5OworICAgICAgICB1aW50MzJfdCAgICAgICAgICAg
ICAgICAgICAgc2V0X3ZjcHVfbWlncmF0aW9uX2RlbGF5OworICAgIH0gdTsKK307CisKKy8qIFhF
Tl9TWVNDVExfcGFnZV9vZmZsaW5lX29wICovCitzdHJ1Y3QgeGVuX3N5c2N0bF9wYWdlX29mZmxp
bmVfb3AgeworICAgIC8qIElOOiByYW5nZSBvZiBwYWdlIHRvIGJlIG9mZmxpbmVkICovCisjZGVm
aW5lIHN5c2N0bF9wYWdlX29mZmxpbmUgICAgIDEKKyNkZWZpbmUgc3lzY3RsX3BhZ2Vfb25saW5l
ICAgICAgMgorI2RlZmluZSBzeXNjdGxfcXVlcnlfcGFnZV9vZmZsaW5lICAzCisgICAgdWludDMy
X3QgY21kOworICAgIHVpbnQzMl90IHN0YXJ0OworICAgIHVpbnQzMl90IGVuZDsKKyAgICAvKiBP
VVQ6IHJlc3VsdCBvZiBwYWdlIG9mZmxpbmUgcmVxdWVzdCAqLworICAgIC8qCisgICAgICogYml0
IDB+MTU6IHJlc3VsdCBmbGFncworICAgICAqIGJpdCAxNn4zMTogb3duZXIKKyAgICAgKi8KKyAg
ICBYRU5fR1VFU1RfSEFORExFKHVpbnQzMikgc3RhdHVzOworfTsKKworI2RlZmluZSBQR19PRkZM
SU5FX1NUQVRVU19NQVNLICAgICgweEZGVUwpCisKKy8qIFRoZSByZXN1bHQgaXMgaW52YWxpZCwg
aS5lLiBIViBkb2VzIG5vdCBoYW5kbGUgaXQgKi8KKyNkZWZpbmUgUEdfT0ZGTElORV9JTlZBTElE
ICAgKDB4MVVMIDw8IDApCisKKyNkZWZpbmUgUEdfT0ZGTElORV9PRkZMSU5FRCAgKDB4MVVMIDw8
IDEpCisjZGVmaW5lIFBHX09GRkxJTkVfUEVORElORyAgICgweDFVTCA8PCAyKQorI2RlZmluZSBQ
R19PRkZMSU5FX0ZBSUxFRCAgICAoMHgxVUwgPDwgMykKKyNkZWZpbmUgUEdfT0ZGTElORV9BR0FJ
TiAgICAgKDB4MVVMIDw8IDQpCisKKyNkZWZpbmUgUEdfT05MSU5FX0ZBSUxFRCAgICAgUEdfT0ZG
TElORV9GQUlMRUQKKyNkZWZpbmUgUEdfT05MSU5FX09OTElORUQgICAgUEdfT0ZGTElORV9PRkZM
SU5FRAorCisjZGVmaW5lIFBHX09GRkxJTkVfU1RBVFVTX09GRkxJTkVEICAgICAgICAgICAgICAo
MHgxVUwgPDwgMSkKKyNkZWZpbmUgUEdfT0ZGTElORV9TVEFUVVNfT05MSU5FICAgICAgICAgICAg
ICAgICgweDFVTCA8PCAyKQorI2RlZmluZSBQR19PRkZMSU5FX1NUQVRVU19PRkZMSU5FX1BFTkRJ
TkcgICAgICAgKDB4MVVMIDw8IDMpCisjZGVmaW5lIFBHX09GRkxJTkVfU1RBVFVTX0JST0tFTiAg
ICAgICAgICAgICAgICAoMHgxVUwgPDwgNCkKKworI2RlZmluZSBQR19PRkZMSU5FX01JU0NfTUFT
SyAgICAoMHhGRlVMIDw8IDQpCisKKy8qIHZhbGlkIHdoZW4gUEdfT0ZGTElORV9GQUlMRUQgb3Ig
UEdfT0ZGTElORV9QRU5ESU5HICovCisjZGVmaW5lIFBHX09GRkxJTkVfWEVOUEFHRSAgICgweDFV
TCA8PCA4KQorI2RlZmluZSBQR19PRkZMSU5FX0RPTTBQQUdFICAoMHgxVUwgPDwgOSkKKyNkZWZp
bmUgUEdfT0ZGTElORV9BTk9OWU1PVVMgKDB4MVVMIDw8IDEwKQorI2RlZmluZSBQR19PRkZMSU5F
X05PVF9DT05WX1JBTSAgICgweDFVTCA8PCAxMSkKKyNkZWZpbmUgUEdfT0ZGTElORV9PV05FRCAg
ICAgKDB4MVVMIDw8IDEyKQorCisjZGVmaW5lIFBHX09GRkxJTkVfQlJPS0VOICAgICgweDFVTCA8
PCAxMykKKyNkZWZpbmUgUEdfT05MSU5FX0JST0tFTiAgICAgUEdfT0ZGTElORV9CUk9LRU4KKwor
I2RlZmluZSBQR19PRkZMSU5FX09XTkVSX1NISUZUIDE2CisKKy8qIFhFTl9TWVNDVExfbG9ja3By
b2Zfb3AgKi8KKy8qIFN1Yi1vcGVyYXRpb25zOiAqLworI2RlZmluZSBYRU5fU1lTQ1RMX0xPQ0tQ
Uk9GX3Jlc2V0IDEgICAvKiBSZXNldCBhbGwgcHJvZmlsZSBkYXRhIHRvIHplcm8uICovCisjZGVm
aW5lIFhFTl9TWVNDVExfTE9DS1BST0ZfcXVlcnkgMiAgIC8qIEdldCBsb2NrIHByb2ZpbGUgaW5m
b3JtYXRpb24uICovCisvKiBSZWNvcmQtdHlwZTogKi8KKyNkZWZpbmUgTE9DS1BST0ZfVFlQRV9H
TE9CQUwgICAgICAwICAgLyogZ2xvYmFsIGxvY2ssIGlkeCBtZWFuaW5nbGVzcyAqLworI2RlZmlu
ZSBMT0NLUFJPRl9UWVBFX1BFUkRPTSAgICAgIDEgICAvKiBwZXItZG9tYWluIGxvY2ssIGlkeCBp
cyBkb21pZCAqLworI2RlZmluZSBMT0NLUFJPRl9UWVBFX04gICAgICAgICAgIDIgICAvKiBudW1i
ZXIgb2YgdHlwZXMgKi8KK3N0cnVjdCB4ZW5fc3lzY3RsX2xvY2twcm9mX2RhdGEgeworICAgIGNo
YXIgICAgIG5hbWVbNDBdOyAgICAgLyogbG9jayBuYW1lIChtYXkgaW5jbHVkZSB1cCB0byAyICVk
IHNwZWNpZmllcnMpICovCisgICAgaW50MzJfdCAgdHlwZTsgICAgICAgICAvKiBMT0NLUFJPRl9U
WVBFXz8/PyAqLworICAgIGludDMyX3QgIGlkeDsgICAgICAgICAgLyogaW5kZXggKGUuZy4gZG9t
YWluIGlkKSAqLworICAgIHVpbnQ2NF9hbGlnbmVkX3QgbG9ja19jbnQ7ICAgICAvKiAjIG9mIGxv
Y2tpbmcgc3VjY2VlZGVkICovCisgICAgdWludDY0X2FsaWduZWRfdCBibG9ja19jbnQ7ICAgIC8q
ICMgb2Ygd2FpdCBmb3IgbG9jayAqLworICAgIHVpbnQ2NF9hbGlnbmVkX3QgbG9ja190aW1lOyAg
ICAvKiBuc2VjcyBsb2NrIGhlbGQgKi8KKyAgICB1aW50NjRfYWxpZ25lZF90IGJsb2NrX3RpbWU7
ICAgLyogbnNlY3Mgd2FpdGVkIGZvciBsb2NrICovCit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX3N5
c2N0bF9sb2NrcHJvZl9kYXRhIHhlbl9zeXNjdGxfbG9ja3Byb2ZfZGF0YV90OworREVGSU5FX1hF
Tl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9sb2NrcHJvZl9kYXRhX3QpOworc3RydWN0IHhlbl9z
eXNjdGxfbG9ja3Byb2Zfb3AgeworICAgIC8qIElOIHZhcmlhYmxlcy4gKi8KKyAgICB1aW50MzJf
dCAgICAgICBjbWQ7ICAgICAgICAgICAgICAgLyogWEVOX1NZU0NUTF9MT0NLUFJPRl8/Pz8gKi8K
KyAgICB1aW50MzJfdCAgICAgICBtYXhfZWxlbTsgICAgICAgICAgLyogc2l6ZSBvZiBvdXRwdXQg
YnVmZmVyICovCisgICAgLyogT1VUIHZhcmlhYmxlcyAocXVlcnkgb25seSkuICovCisgICAgdWlu
dDMyX3QgICAgICAgbnJfZWxlbTsgICAgICAgICAgIC8qIG51bWJlciBvZiBlbGVtZW50cyBhdmFp
bGFibGUgKi8KKyAgICB1aW50NjRfYWxpZ25lZF90IHRpbWU7ICAgICAgICAgICAgLyogbnNlY3Mg
b2YgcHJvZmlsZSBtZWFzdXJlbWVudCAqLworICAgIC8qIHByb2ZpbGUgaW5mb3JtYXRpb24gKG9y
IE5VTEwpICovCisgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh4ZW5fc3lzY3RsX2xvY2twcm9mX2Rh
dGFfdCkgZGF0YTsKK307CisKKy8qIFhFTl9TWVNDVExfY3B1dG9wb2luZm8gKi8KKyNkZWZpbmUg
WEVOX0lOVkFMSURfQ09SRV9JRCAgICAgKH4wVSkKKyNkZWZpbmUgWEVOX0lOVkFMSURfU09DS0VU
X0lEICAgKH4wVSkKKyNkZWZpbmUgWEVOX0lOVkFMSURfTk9ERV9JRCAgICAgKH4wVSkKKworc3Ry
dWN0IHhlbl9zeXNjdGxfY3B1dG9wbyB7CisgICAgdWludDMyX3QgY29yZTsKKyAgICB1aW50MzJf
dCBzb2NrZXQ7CisgICAgdWludDMyX3Qgbm9kZTsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5fc3lz
Y3RsX2NwdXRvcG8geGVuX3N5c2N0bF9jcHV0b3BvX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRM
RSh4ZW5fc3lzY3RsX2NwdXRvcG9fdCk7CisKKy8qCisgKiBJTjoKKyAqICAtIGEgTlVMTCAnY3B1
dG9wbycgaGFuZGxlIGlzIGEgcmVxdWVzdCBmb3IgbWF4aW11biAnbnVtX2NwdXMnLgorICogIC0g
b3RoZXJ3aXNlIGl0J3MgdGhlIG51bWJlciBvZiBlbnRyaWVzIGluICdjcHV0b3BvJworICoKKyAq
IE9VVDoKKyAqICAtIElmICdudW1fY3B1cycgaXMgbGVzcyB0aGFuIHRoZSBudW1iZXIgWGVuIHdh
bnRzIHRvIHdyaXRlIGJ1dCB0aGUgaGFuZGxlCisgKiAgICBoYW5kbGUgaXMgbm90IGEgTlVMTCBv
bmUsIHBhcnRpYWwgZGF0YSBnZXRzIHJldHVybmVkIGFuZCAnbnVtX2NwdXMnIGdldHMKKyAqICAg
IHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUgaW50ZW5kZWQgbnVtYmVyLgorICogIC0gT3RoZXJ3aXNl
LCAnbnVtX2NwdXMnIHNoYWxsIGluZGljYXRlIHRoZSBudW1iZXIgb2YgZW50cmllcyB3cml0dGVu
LCB3aGljaAorICogICAgbWF5IGJlIGxlc3MgdGhhbiB0aGUgaW5wdXQgdmFsdWUuCisgKi8KK3N0
cnVjdCB4ZW5fc3lzY3RsX2NwdXRvcG9pbmZvIHsKKyAgICB1aW50MzJfdCBudW1fY3B1czsKKyAg
ICBYRU5fR1VFU1RfSEFORExFXzY0KHhlbl9zeXNjdGxfY3B1dG9wb190KSBjcHV0b3BvOworfTsK
KworLyogWEVOX1NZU0NUTF9udW1haW5mbyAqLworI2RlZmluZSBYRU5fSU5WQUxJRF9NRU1fU1og
ICAgICh+MFUpCisjZGVmaW5lIFhFTl9JTlZBTElEX05PREVfRElTVCAgKH4wVSkKKworc3RydWN0
IHhlbl9zeXNjdGxfbWVtaW5mbyB7CisgICAgdWludDY0X3QgbWVtc2l6ZTsKKyAgICB1aW50NjRf
dCBtZW1mcmVlOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfbWVtaW5mbyB4ZW5fc3lz
Y3RsX21lbWluZm9fdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNjdGxfbWVtaW5m
b190KTsKKworLyoKKyAqIElOOgorICogIC0gQm90aCAnbWVtaW5mbycgYW5kICdkaXN0YW5jZScg
aGFuZGxlcyBiZWluZyBudWxsIGlzIGEgcmVxdWVzdAorICogICAgZm9yIG1heGltdW0gdmFsdWUg
b2YgJ251bV9ub2RlcycuCisgKiAgLSBPdGhlcndpc2UgaXQncyB0aGUgbnVtYmVyIG9mIGVudHJp
ZXMgaW4gJ21lbWluZm8nIGFuZCBzcXVhcmUgcm9vdAorICogICAgb2YgbnVtYmVyIG9mIGVudHJp
ZXMgaW4gJ2Rpc3RhbmNlJyAod2hlbiBjb3JyZXNwb25kaW5nIGhhbmRsZSBpcworICogICAgbm9u
LW51bGwpCisgKgorICogT1VUOgorICogIC0gSWYgJ251bV9ub2RlcycgaXMgbGVzcyB0aGFuIHRo
ZSBudW1iZXIgWGVuIHdhbnRzIHRvIHdyaXRlIGJ1dCBlaXRoZXIKKyAqICAgIGhhbmRsZSBpcyBu
b3QgYSBOVUxMIG9uZSwgcGFydGlhbCBkYXRhIGdldHMgcmV0dXJuZWQgYW5kICdudW1fbm9kZXMn
CisgKiAgICBnZXRzIHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUgaW50ZW5kZWQgbnVtYmVyLgorICog
IC0gT3RoZXJ3aXNlLCAnbnVtX25vZGVzJyBzaGFsbCBpbmRpY2F0ZSB0aGUgbnVtYmVyIG9mIGVu
dHJpZXMgd3JpdHRlbiwgd2hpY2gKKyAqICAgIG1heSBiZSBsZXNzIHRoYW4gdGhlIGlucHV0IHZh
bHVlLgorICovCisKK3N0cnVjdCB4ZW5fc3lzY3RsX251bWFpbmZvIHsKKyAgICB1aW50MzJfdCBu
dW1fbm9kZXM7CisKKyAgICBYRU5fR1VFU1RfSEFORExFXzY0KHhlbl9zeXNjdGxfbWVtaW5mb190
KSBtZW1pbmZvOworCisgICAgLyoKKyAgICAgKiBEaXN0YW5jZSBiZXR3ZWVuIG5vZGVzICdpJyBh
bmQgJ2onIGlzIHN0b3JlZCBpbiBpbmRleCAnaSpOICsgaicsCisgICAgICogd2hlcmUgTiBpcyB0
aGUgbnVtYmVyIG9mIG5vZGVzIHRoYXQgd2lsbCBiZSByZXR1cm5lZCBpbiAnbnVtX25vZGVzJwor
ICAgICAqIChpLmUuIG5vdCAnbnVtX25vZGVzJyBwcm92aWRlZCBieSB0aGUgY2FsbGVyKQorICAg
ICAqLworICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQodWludDMyKSBkaXN0YW5jZTsKK307CisKKy8q
IFhFTl9TWVNDVExfY3B1cG9vbF9vcCAqLworI2RlZmluZSBYRU5fU1lTQ1RMX0NQVVBPT0xfT1Bf
Q1JFQVRFICAgICAgICAgICAgICAgIDEgIC8qIEMgKi8KKyNkZWZpbmUgWEVOX1NZU0NUTF9DUFVQ
T09MX09QX0RFU1RST1kgICAgICAgICAgICAgICAyICAvKiBEICovCisjZGVmaW5lIFhFTl9TWVND
VExfQ1BVUE9PTF9PUF9JTkZPICAgICAgICAgICAgICAgICAgMyAgLyogSSAqLworI2RlZmluZSBY
RU5fU1lTQ1RMX0NQVVBPT0xfT1BfQUREQ1BVICAgICAgICAgICAgICAgIDQgIC8qIEEgKi8KKyNk
ZWZpbmUgWEVOX1NZU0NUTF9DUFVQT09MX09QX1JNQ1BVICAgICAgICAgICAgICAgICA1ICAvKiBS
ICovCisjZGVmaW5lIFhFTl9TWVNDVExfQ1BVUE9PTF9PUF9NT1ZFRE9NQUlOICAgICAgICAgICAg
NiAgLyogTSAqLworI2RlZmluZSBYRU5fU1lTQ1RMX0NQVVBPT0xfT1BfRlJFRUlORk8gICAgICAg
ICAgICAgIDcgIC8qIEYgKi8KKyNkZWZpbmUgWEVOX1NZU0NUTF9DUFVQT09MX1BBUl9BTlkgICAg
IDB4RkZGRkZGRkYKK3N0cnVjdCB4ZW5fc3lzY3RsX2NwdXBvb2xfb3AgeworICAgIHVpbnQzMl90
IG9wOyAgICAgICAgICAvKiBJTiAqLworICAgIHVpbnQzMl90IGNwdXBvb2xfaWQ7ICAvKiBJTjog
Q0RJQVJNIE9VVDogQ0kgKi8KKyAgICB1aW50MzJfdCBzY2hlZF9pZDsgICAgLyogSU46IEMgICAg
ICBPVVQ6IEkgICovCisgICAgdWludDMyX3QgZG9taWQ7ICAgICAgIC8qIElOOiBNICAgICAgICAg
ICAgICAqLworICAgIHVpbnQzMl90IGNwdTsgICAgICAgICAvKiBJTjogQVIgICAgICAgICAgICAg
Ki8KKyAgICB1aW50MzJfdCBuX2RvbTsgICAgICAgLyogICAgICAgICAgICBPVVQ6IEkgICovCisg
ICAgc3RydWN0IHhlbmN0bF9iaXRtYXAgY3B1bWFwOyAvKiAgICAgT1VUOiBJRiAqLworfTsKKwor
LyoKKyAqIEVycm9yIHJldHVybiB2YWx1ZXMgb2YgY3B1cG9vbCBvcGVyYXRpb25zOgorICoKKyAq
IC1FQUREUklOVVNFOgorICogIFhFTl9TWVNDVExfQ1BVUE9PTF9PUF9STUNQVTogQSB2Y3B1IGlz
IHRlbXBvcmFyaWx5IHBpbm5lZCB0byB0aGUgY3B1CisgKiAgICB3aGljaCBpcyB0byBiZSByZW1v
dmVkIGZyb20gYSBjcHVwb29sLgorICogLUVBRERSTk9UQVZBSUw6CisgKiAgWEVOX1NZU0NUTF9D
UFVQT09MX09QX0FERENQVSwgWEVOX1NZU0NUTF9DUFVQT09MX09QX1JNQ1BVOiBBIHByZXZpb3Vz
CisgKiAgICByZXF1ZXN0IHRvIHJlbW92ZSBhIGNwdSBmcm9tIGEgY3B1cG9vbCB3YXMgdGVybWlu
YXRlZCB3aXRoIC1FQUdBSU4KKyAqICAgIGFuZCBoYXMgbm90IGJlZW4gcmV0cmllZCB1c2luZyB0
aGUgc2FtZSBwYXJhbWV0ZXJzLgorICogLUVBR0FJTjoKKyAqICBYRU5fU1lTQ1RMX0NQVVBPT0xf
T1BfUk1DUFU6IFRoZSBjcHUgY2FuJ3QgYmUgcmVtb3ZlZCBmcm9tIHRoZSBjcHVwb29sCisgKiAg
ICBhcyBpdCBpcyBhY3RpdmUgaW4gdGhlIGh5cGVydmlzb3IuIEEgcmV0cnkgd2lsbCBzdWNjZWVk
IHNvb24uCisgKiAtRUJVU1k6CisgKiAgWEVOX1NZU0NUTF9DUFVQT09MX09QX0RFU1RST1ksIFhF
Tl9TWVNDVExfQ1BVUE9PTF9PUF9STUNQVTogQSBjcHVwb29sCisgKiAgICBjYW4ndCBiZSBkZXN0
cm95ZWQgb3IgdGhlIGxhc3QgY3B1IGNhbid0IGJlIHJlbW92ZWQgYXMgdGhlcmUgaXMgc3RpbGwK
KyAqICAgIGEgcnVubmluZyBkb21haW4gaW4gdGhhdCBjcHVwb29sLgorICogLUVFWElTVDoKKyAq
ICBYRU5fU1lTQ1RMX0NQVVBPT0xfT1BfQ1JFQVRFOiBBIGNwdXBvb2xfaWQgd2FzIHNwZWNpZmll
ZCBhbmQgaXMgYWxyZWFkeQorICogICAgZXhpc3RpbmcuCisgKiAtRUlOVkFMOgorICogIFhFTl9T
WVNDVExfQ1BVUE9PTF9PUF9BRERDUFUsIFhFTl9TWVNDVExfQ1BVUE9PTF9PUF9STUNQVTogQW4g
aWxsZWdhbAorICogICAgY3B1IHdhcyBzcGVjaWZpZWQgKGNwdSBkb2VzIG5vdCBleGlzdCkuCisg
KiAgWEVOX1NZU0NUTF9DUFVQT09MX09QX01PVkVET01BSU46IEFuIGlsbGVnYWwgZG9tYWluIHdh
cyBzcGVjaWZpZWQKKyAqICAgIChkb21haW4gaWQgaWxsZWdhbCBvciBub3Qgc3VpdGFibGUgZm9y
IG9wZXJhdGlvbikuCisgKiAtRU5PREVWOgorICogIFhFTl9TWVNDVExfQ1BVUE9PTF9PUF9BRERD
UFUsIFhFTl9TWVNDVExfQ1BVUE9PTF9PUF9STUNQVTogVGhlIHNwZWNpZmllZAorICogICAgY3B1
IGlzIGVpdGhlciBub3QgZnJlZSAoYWRkKSBvciBub3QgbWVtYmVyIG9mIHRoZSBzcGVjaWZpZWQg
Y3B1cG9vbAorICogICAgKHJlbW92ZSkuCisgKiAtRU5PRU5UOgorICogIGFsbDogVGhlIGNwdXBv
b2wgd2l0aCB0aGUgc3BlY2lmaWVkIGNwdXBvb2xfaWQgZG9lc24ndCBleGlzdC4KKyAqCisgKiBT
b21lIGNvbW1vbiBlcnJvciByZXR1cm4gdmFsdWVzIGxpa2UgLUVOT01FTSBhbmQgLUVGQVVMVCBh
cmUgcG9zc2libGUgZm9yCisgKiBhbGwgdGhlIG9wZXJhdGlvbnMuCisgKi8KKworI2RlZmluZSBB
UklOQzY1M19NQVhfRE9NQUlOU19QRVJfU0NIRURVTEUgICA2NAorLyoKKyAqIFRoaXMgc3RydWN0
dXJlIGlzIHVzZWQgdG8gcGFzcyBhIG5ldyBBUklOQzY1MyBzY2hlZHVsZSBmcm9tIGEKKyAqIHBy
aXZpbGVnZWQgZG9tYWluIChpZSBkb20wKSB0byBYZW4uCisgKi8KK3N0cnVjdCB4ZW5fc3lzY3Rs
X2FyaW5jNjUzX3NjaGVkdWxlIHsKKyAgICAvKiBtYWpvcl9mcmFtZSBob2xkcyB0aGUgdGltZSBm
b3IgdGhlIG5ldyBzY2hlZHVsZSdzIG1ham9yIGZyYW1lCisgICAgICogaW4gbmFub3NlY29uZHMu
ICovCisgICAgdWludDY0X2FsaWduZWRfdCAgICAgbWFqb3JfZnJhbWU7CisgICAgLyogbnVtX3Nj
aGVkX2VudHJpZXMgaG9sZHMgaG93IG1hbnkgb2YgdGhlIGVudHJpZXMgaW4gdGhlCisgICAgICog
c2NoZWRfZW50cmllc1tdIGFycmF5IGFyZSB2YWxpZC4gKi8KKyAgICB1aW50OF90ICAgICBudW1f
c2NoZWRfZW50cmllczsKKyAgICAvKiBUaGUgc2NoZWRfZW50cmllcyBhcnJheSBob2xkcyB0aGUg
YWN0dWFsIHNjaGVkdWxlIGVudHJpZXMuICovCisgICAgc3RydWN0IHsKKyAgICAgICAgLyogZG9t
X2hhbmRsZSBtdXN0IG1hdGNoIGEgZG9tYWluJ3MgVVVJRCAqLworICAgICAgICB4ZW5fZG9tYWlu
X2hhbmRsZV90IGRvbV9oYW5kbGU7CisgICAgICAgIC8qIElmIGEgZG9tYWluIGhhcyBtdWx0aXBs
ZSBWQ1BVcywgdmNwdV9pZCBzcGVjaWZpZXMgd2hpY2ggb25lCisgICAgICAgICAqIHRoaXMgc2No
ZWR1bGUgZW50cnkgYXBwbGllcyB0by4gSXQgc2hvdWxkIGJlIHNldCB0byAwIGlmCisgICAgICAg
ICAqIHRoZXJlIGlzIG9ubHkgb25lIFZDUFUgZm9yIHRoZSBkb21haW4uICovCisgICAgICAgIHVu
c2lnbmVkIGludCB2Y3B1X2lkOworICAgICAgICAvKiBydW50aW1lIHNwZWNpZmllcyB0aGUgYW1v
dW50IG9mIHRpbWUgdGhhdCBzaG91bGQgYmUgYWxsb2NhdGVkCisgICAgICAgICAqIHRvIHRoaXMg
VkNQVSBwZXIgbWFqb3IgZnJhbWUuIEl0IGlzIHNwZWNpZmllZCBpbiBuYW5vc2Vjb25kcyAqLwor
ICAgICAgICB1aW50NjRfYWxpZ25lZF90IHJ1bnRpbWU7CisgICAgfSBzY2hlZF9lbnRyaWVzW0FS
SU5DNjUzX01BWF9ET01BSU5TX1BFUl9TQ0hFRFVMRV07Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVu
X3N5c2N0bF9hcmluYzY1M19zY2hlZHVsZSB4ZW5fc3lzY3RsX2FyaW5jNjUzX3NjaGVkdWxlX3Q7
CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX2FyaW5jNjUzX3NjaGVkdWxlX3Qp
OworCisvKgorICogVmFsaWQgcmFuZ2UgZm9yIGNvbnRleHQgc3dpdGNoIHJhdGUgbGltaXQgKGlu
IG1pY3Jvc2Vjb25kcykuCisgKiBBcHBsaWNhYmxlIHRvIENyZWRpdCBhbmQgQ3JlZGl0MiBzY2hl
ZHVsZXJzLgorICovCisjZGVmaW5lIFhFTl9TWVNDVExfU0NIRURfUkFURUxJTUlUX01BWCA1MDAw
MDAKKyNkZWZpbmUgWEVOX1NZU0NUTF9TQ0hFRF9SQVRFTElNSVRfTUlOIDEwMAorCitzdHJ1Y3Qg
eGVuX3N5c2N0bF9jcmVkaXRfc2NoZWR1bGUgeworICAgIC8qIExlbmd0aCBvZiB0aW1lc2xpY2Ug
aW4gbWlsbGlzZWNvbmRzICovCisjZGVmaW5lIFhFTl9TWVNDVExfQ1NDSEVEX1RTTElDRV9NQVgg
MTAwMAorI2RlZmluZSBYRU5fU1lTQ1RMX0NTQ0hFRF9UU0xJQ0VfTUlOIDEKKyAgICB1bnNpZ25l
ZCB0c2xpY2VfbXM7CisgICAgdW5zaWduZWQgcmF0ZWxpbWl0X3VzOworfTsKKworc3RydWN0IHhl
bl9zeXNjdGxfY3JlZGl0Ml9zY2hlZHVsZSB7CisgICAgdW5zaWduZWQgcmF0ZWxpbWl0X3VzOwor
fTsKKworLyogWEVOX1NZU0NUTF9zY2hlZHVsZXJfb3AgKi8KKy8qIFNldCBvciBnZXQgaW5mbz8g
Ki8KKyNkZWZpbmUgWEVOX1NZU0NUTF9TQ0hFRE9QX3B1dGluZm8gMAorI2RlZmluZSBYRU5fU1lT
Q1RMX1NDSEVET1BfZ2V0aW5mbyAxCitzdHJ1Y3QgeGVuX3N5c2N0bF9zY2hlZHVsZXJfb3Agewor
ICAgIHVpbnQzMl90IGNwdXBvb2xfaWQ7IC8qIENwdXBvb2wgd2hvc2Ugc2NoZWR1bGVyIGlzIHRv
IGJlIHRhcmdldHRlZC4gKi8KKyAgICB1aW50MzJfdCBzY2hlZF9pZDsgICAvKiBYRU5fU0NIRURV
TEVSXyogKGRvbWN0bC5oKSAqLworICAgIHVpbnQzMl90IGNtZDsgICAgICAgIC8qIFhFTl9TWVND
VExfU0NIRURPUF8qICovCisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9z
Y2hlZF9hcmluYzY1MyB7CisgICAgICAgICAgICBYRU5fR1VFU1RfSEFORExFXzY0KHhlbl9zeXNj
dGxfYXJpbmM2NTNfc2NoZWR1bGVfdCkgc2NoZWR1bGU7CisgICAgICAgIH0gc2NoZWRfYXJpbmM2
NTM7CisgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX2NyZWRpdF9zY2hlZHVsZSBzY2hlZF9jcmVk
aXQ7CisgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX2NyZWRpdDJfc2NoZWR1bGUgc2NoZWRfY3Jl
ZGl0MjsKKyAgICB9IHU7Cit9OworCisvKgorICogT3V0cHV0IGZvcm1hdCBvZiBnY292IGRhdGE6
CisgKgorICogWEVOX0dDT1ZfRk9STUFUX01BR0lDIFhFTl9HQ09WX1JFQ09SRCAuLi4gWEVOX0dD
T1ZfUkVDT1JECisgKgorICogVGhhdCBpcywgb25lIG1hZ2ljIG51bWJlciBmb2xsb3dlZCBieSAw
IG9yIG1vcmUgcmVjb3JkLgorICoKKyAqIFRoZSBtYWdpYyBudW1iZXIgaXMgc3RvcmVkIGFzIGFu
IHVpbnQzMl90IGZpZWxkLgorICoKKyAqIFRoZSByZWNvcmQgaXMgcGFja2VkIGFuZCB2YXJpYWJs
ZSBpbiBsZW5ndGguIEl0IGhhcyB0aGUgZm9ybToKKyAqCisgKiAgZmlsZW5hbWU6IGEgTlVMTCB0
ZXJtaW5hdGVkIHBhdGggbmFtZSBleHRyYWN0ZWQgZnJvbSBnY292LCB1c2VkIHRvCisgKiAgICAg
ICAgICAgIGNyZWF0ZSB0aGUgbmFtZSBvZiBnY2RhIGZpbGUuCisgKiAgc2l6ZTogICAgIGEgdWlu
dDMyX3QgZmllbGQgaW5kaWNhdGluZyB0aGUgc2l6ZSBvZiB0aGUgcGF5bG9hZCwgdGhlCisgKiAg
ICAgICAgICAgIHVuaXQgaXMgYnl0ZS4KKyAqICBwYXlsb2FkOiAgdGhlIGFjdHVhbCBwYXlsb2Fk
LCBsZW5ndGggaXMgYHNpemUnIGJ5dGVzLgorICoKKyAqIFVzZXJzcGFjZSB0b29sIHdpbGwgc3Bs
aXQgdGhlIHJlY29yZCB0byBkaWZmZXJlbnQgZmlsZXMuCisgKi8KKworI2RlZmluZSBYRU5fR0NP
Vl9GT1JNQVRfTUFHSUMgICAgMHg1ODQzNGY1NiAvKiBYQ09WICovCisKKyNkZWZpbmUgWEVOX1NZ
U0NUTF9HQ09WX2dldF9zaXplIDAgLyogR2V0IHRvdGFsIHNpemUgb2Ygb3V0cHV0IGRhdGEgKi8K
KyNkZWZpbmUgWEVOX1NZU0NUTF9HQ09WX3JlYWQgICAgIDEgLyogUmVhZCBvdXRwdXQgZGF0YSAq
LworI2RlZmluZSBYRU5fU1lTQ1RMX0dDT1ZfcmVzZXQgICAgMiAvKiBSZXNldCBhbGwgY291bnRl
cnMgKi8KKworc3RydWN0IHhlbl9zeXNjdGxfZ2Nvdl9vcCB7CisgICAgdWludDMyX3QgY21kOwor
ICAgIHVpbnQzMl90IHNpemU7IC8qIElOL09VVDogc2l6ZSBvZiB0aGUgYnVmZmVyICAqLworICAg
IFhFTl9HVUVTVF9IQU5ETEVfNjQoY2hhcikgYnVmZmVyOyAvKiBPVVQgKi8KK307CisKKyNkZWZp
bmUgWEVOX1NZU0NUTF9QU1JfQ01UX2dldF90b3RhbF9ybWlkICAgICAgICAgICAgMAorI2RlZmlu
ZSBYRU5fU1lTQ1RMX1BTUl9DTVRfZ2V0X2wzX3Vwc2NhbGluZ19mYWN0b3IgICAxCisvKiBUaGUg
TDMgY2FjaGUgc2l6ZSBpcyByZXR1cm5lZCBpbiBLQiB1bml0ICovCisjZGVmaW5lIFhFTl9TWVND
VExfUFNSX0NNVF9nZXRfbDNfY2FjaGVfc2l6ZSAgICAgICAgIDIKKyNkZWZpbmUgWEVOX1NZU0NU
TF9QU1JfQ01UX2VuYWJsZWQgICAgICAgICAgICAgICAgICAgMworI2RlZmluZSBYRU5fU1lTQ1RM
X1BTUl9DTVRfZ2V0X2wzX2V2ZW50X21hc2sgICAgICAgICA0CitzdHJ1Y3QgeGVuX3N5c2N0bF9w
c3JfY210X29wIHsKKyAgICB1aW50MzJfdCBjbWQ7ICAgICAgIC8qIElOOiBYRU5fU1lTQ1RMX1BT
Ul9DTVRfKiAqLworICAgIHVpbnQzMl90IGZsYWdzOyAgICAgLyogcGFkZGluZyB2YXJpYWJsZSwg
bWF5IGJlIGV4dGVuZGVkIGZvciBmdXR1cmUgdXNlICovCisgICAgdW5pb24geworICAgICAgICB1
aW50NjRfdCBkYXRhOyAgLyogT1VUICovCisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1
aW50MzJfdCBjcHU7ICAgLyogSU4gKi8KKyAgICAgICAgICAgIHVpbnQzMl90IHJzdmQ7CisgICAg
ICAgIH0gbDNfY2FjaGU7CisgICAgfSB1OworfTsKKworLyogWEVOX1NZU0NUTF9wY2l0b3BvaW5m
byAqLworI2RlZmluZSBYRU5fSU5WQUxJRF9ERVYgKFhFTl9JTlZBTElEX05PREVfSUQgLSAxKQor
c3RydWN0IHhlbl9zeXNjdGxfcGNpdG9wb2luZm8geworICAgIC8qCisgICAgICogSU46IE51bWJl
ciBvZiBlbGVtZW50cyBpbiAncGNpdG9wbycgYW5kICdub2RlcycgYXJyYXlzLgorICAgICAqIE9V
VDogTnVtYmVyIG9mIHByb2Nlc3NlZCBlbGVtZW50cyBvZiB0aG9zZSBhcnJheXMuCisgICAgICov
CisgICAgdWludDMyX3QgbnVtX2RldnM7CisKKyAgICAvKiBJTjogbGlzdCBvZiBkZXZpY2VzIGZv
ciB3aGljaCBub2RlIElEcyBhcmUgcmVxdWVzdGVkLiAqLworICAgIFhFTl9HVUVTVF9IQU5ETEVf
NjQocGh5c2Rldl9wY2lfZGV2aWNlX3QpIGRldnM7CisKKyAgICAvKgorICAgICAqIE9VVDogbm9k
ZSBpZGVudGlmaWVyIGZvciBlYWNoIGRldmljZS4KKyAgICAgKiBJZiBpbmZvcm1hdGlvbiBmb3Ig
YSBwYXJ0aWN1bGFyIGRldmljZSBpcyBub3QgYXZhaWxhYmxlIHRoZW4KKyAgICAgKiBjb3JyZXNw
b25kaW5nIGVudHJ5IHdpbGwgYmUgc2V0IHRvIFhFTl9JTlZBTElEX05PREVfSUQuIElmCisgICAg
ICogZGV2aWNlIGlzIG5vdCBrbm93biB0byB0aGUgaHlwZXJ2aXNvciB0aGVuIFhFTl9JTlZBTElE
X0RFVgorICAgICAqIHdpbGwgYmUgcHJvdmlkZWQuCisgICAgICovCisgICAgWEVOX0dVRVNUX0hB
TkRMRV82NCh1aW50MzIpIG5vZGVzOworfTsKKworI2RlZmluZSBYRU5fU1lTQ1RMX1BTUl9DQVRf
Z2V0X2wzX2luZm8gICAgICAgICAgICAgICAwCisjZGVmaW5lIFhFTl9TWVNDVExfUFNSX0NBVF9n
ZXRfbDJfaW5mbyAgICAgICAgICAgICAgIDEKK3N0cnVjdCB4ZW5fc3lzY3RsX3Bzcl9jYXRfb3Ag
eworICAgIHVpbnQzMl90IGNtZDsgICAgICAgLyogSU46IFhFTl9TWVNDVExfUFNSX0NBVF8qICov
CisgICAgdWludDMyX3QgdGFyZ2V0OyAgICAvKiBJTiAqLworICAgIHVuaW9uIHsKKyAgICAgICAg
c3RydWN0IHsKKyAgICAgICAgICAgIHVpbnQzMl90IGNibV9sZW47ICAgLyogT1VUOiBDQk0gbGVu
Z3RoICovCisgICAgICAgICAgICB1aW50MzJfdCBjb3NfbWF4OyAgIC8qIE9VVDogTWF4aW11bSBD
T1MgKi8KKyNkZWZpbmUgWEVOX1NZU0NUTF9QU1JfQ0FUX0wzX0NEUCAgICAgICAoMXUgPDwgMCkK
KyAgICAgICAgICAgIHVpbnQzMl90IGZsYWdzOyAgICAgLyogT1VUOiBDQVQgZmxhZ3MgKi8KKyAg
ICAgICAgfSBjYXRfaW5mbzsKKyAgICB9IHU7Cit9OworCisjZGVmaW5lIFhFTl9TWVNDVExfVE1F
TV9PUF9BTExfQ0xJRU5UUyAweEZGRkZVCisKKyNkZWZpbmUgWEVOX1NZU0NUTF9UTUVNX09QX1RI
QVcgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBYRU5fU1lTQ1RMX1RNRU1fT1BfRlJFRVpF
ICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIFhFTl9TWVNDVExfVE1FTV9PUF9GTFVTSCAgICAg
ICAgICAgICAgICAgIDIKKyNkZWZpbmUgWEVOX1NZU0NUTF9UTUVNX09QX0RFU1RST1kgICAgICAg
ICAgICAgICAgMworI2RlZmluZSBYRU5fU1lTQ1RMX1RNRU1fT1BfTElTVCAgICAgICAgICAgICAg
ICAgICA0CisjZGVmaW5lIFhFTl9TWVNDVExfVE1FTV9PUF9HRVRfQ0xJRU5UX0lORk8gICAgICAg
IDUKKyNkZWZpbmUgWEVOX1NZU0NUTF9UTUVNX09QX1NFVF9DTElFTlRfSU5GTyAgICAgICAgNgor
I2RlZmluZSBYRU5fU1lTQ1RMX1RNRU1fT1BfR0VUX1BPT0xTICAgICAgICAgICAgICA3CisjZGVm
aW5lIFhFTl9TWVNDVExfVE1FTV9PUF9RVUVSWV9GUkVFQUJMRV9NQiAgICAgIDgKKyNkZWZpbmUg
WEVOX1NZU0NUTF9UTUVNX09QX1NFVF9QT09MUyAgICAgICAgICAgICAgOQorI2RlZmluZSBYRU5f
U1lTQ1RMX1RNRU1fT1BfU0FWRV9CRUdJTiAgICAgICAgICAgICAxMAorI2RlZmluZSBYRU5fU1lT
Q1RMX1RNRU1fT1BfU0VUX0FVVEggICAgICAgICAgICAgICAxMQorI2RlZmluZSBYRU5fU1lTQ1RM
X1RNRU1fT1BfU0FWRV9HRVRfTkVYVF9QQUdFICAgICAxOQorI2RlZmluZSBYRU5fU1lTQ1RMX1RN
RU1fT1BfU0FWRV9HRVRfTkVYVF9JTlYgICAgICAyMAorI2RlZmluZSBYRU5fU1lTQ1RMX1RNRU1f
T1BfU0FWRV9FTkQgICAgICAgICAgICAgICAyMQorI2RlZmluZSBYRU5fU1lTQ1RMX1RNRU1fT1Bf
UkVTVE9SRV9CRUdJTiAgICAgICAgICAzMAorI2RlZmluZSBYRU5fU1lTQ1RMX1RNRU1fT1BfUkVT
VE9SRV9QVVRfUEFHRSAgICAgICAzMgorI2RlZmluZSBYRU5fU1lTQ1RMX1RNRU1fT1BfUkVTVE9S
RV9GTFVTSF9QQUdFICAgICAzMworCisvKgorICogWEVOX1NZU0NUTF9UTUVNX09QX1NBVkVfR0VU
X05FWFRfW1BBR0V8SU5WXSBvdmVycmlkZSB0aGUgJ2J1ZicgaW4KKyAqIHhlbl9zeXNjdGxfdG1l
bV9vcCB3aXRoIHRoaXMgc3RydWN0dXJlIC0gc29tZXRpbWVzIHdpdGggYW4gZXh0cmEKKyAqIHBh
Z2UgdGFja2xlZCBvbi4KKyAqLworc3RydWN0IHRtZW1faGFuZGxlIHsKKyAgICB1aW50MzJfdCBw
b29sX2lkOworICAgIHVpbnQzMl90IGluZGV4OworICAgIHhlbl90bWVtX29pZF90IG9pZDsKK307
CisKKy8qCisgKiBYRU5fU1lTQ1RMX1RNRU1fT1BfW0dFVCxTQVZFXV9DTElFTlQgdXNlcyB0aGUg
J2NsaWVudCcgaW4KKyAqIHhlbl90bWVtX29wIHdpdGggdGhpcyBzdHJ1Y3R1cmUsIHdoaWNoIGlz
IG1vc3RseSB1c2VkIGR1cmluZyBtaWdyYXRpb24uCisgKi8KK3N0cnVjdCB4ZW5fdG1lbV9jbGll
bnQgeworICAgIHVpbnQzMl90IHZlcnNpb247ICAgLyogSWYgbWlzbWF0Y2hlZCB3ZSB3aWxsIGdl
dCBYRU5fRU9QTk9UU1VQUC4gKi8KKyAgICB1aW50MzJfdCBtYXhwb29sczsgIC8qIElmIGdyZWF0
ZXIgdGhhbiB3aGF0IGh5cGVydmlzb3Igc3VwcG9ydHMsIHdpbGwgZ2V0CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICBYRU5fRVJBTkdFLiAqLworICAgIHVpbnQzMl90IG5yX3Bvb2xzOyAgLyog
Q3VycmVudCBhbW91bnQgb2YgcG9vbHMuIElnbm9yZWQgb24gU0VUKi8KKyAgICB1bmlvbiB7ICAg
ICAgICAgICAgIC8qIFNlZSBUTUVNX0NMSUVOVF9bQ09NUFJFU1MsRlJPWkVOXSAqLworICAgICAg
ICB1aW50MzJfdCByYXc7CisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1aW50OF90IGZy
b3plbjoxLAorICAgICAgICAgICAgICAgICAgICBjb21wcmVzczoxLAorICAgICAgICAgICAgICAg
ICAgICBtaWdyYXRpbmc6MTsKKyAgICAgICAgfSB1OworICAgIH0gZmxhZ3M7CisgICAgdWludDMy
X3Qgd2VpZ2h0OworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl90bWVtX2NsaWVudCB4ZW5fdG1lbV9j
bGllbnRfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl90bWVtX2NsaWVudF90KTsKKwor
LyoKKyAqIFhFTl9TWVNDVExfVE1FTV9PUF9bR0VUfFNFVF1fUE9PTFMgb3IgWEVOX1NZU0NUTF9U
TUVNX09QX1NFVF9BVVRICisgKiB1c2VzIHRoZSAncG9vbCcgYXJyYXkgaW4gKiB4ZW5fc3lzY3Rs
X3RtZW1fb3Agd2l0aCB0aGlzIHN0cnVjdHVyZS4KKyAqIFRoZSBYRU5fU1lTQ1RMX1RNRU1fT1Bf
R0VUX1BPT0xTIGh5cGVyY2FsbCB3aWxsCisgKiByZXR1cm4gdGhlIG51bWJlciBvZiBlbnRyaWVz
IGluICdwb29sJyBvciBhIG5lZ2F0aXZlIHZhbHVlCisgKiBpZiBhbiBlcnJvciB3YXMgZW5jb3Vu
dGVyZWQuCisgKiBUaGUgWEVOX1NZU0NUTF9UTUVNX09QX1NFVF9bQVVUSHxQT09MU10gd2lsbCBy
ZXR1cm4gdGhlIG51bWJlciBvZgorICogZW50cmllcyBpbiAncG9vbCcgcHJvY2Vzc2VkIG9yIGEg
bmVnYXRpdmUgdmFsdWUgaWYgYW4gZXJyb3IKKyAqIHdhcyBlbmNvdW50ZXJlZC4KKyAqLworc3Ry
dWN0IHhlbl90bWVtX3Bvb2xfaW5mbyB7CisgICAgdW5pb24geworICAgICAgICB1aW50MzJfdCBy
YXc7CisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1aW50MzJfdCBwZXJzaXN0OjEsICAg
IC8qIFNlZSBUTUVNX1BPT0xfUEVSU0lTVC4gKi8KKyAgICAgICAgICAgICAgICAgICAgIHNoYXJl
ZDoxLCAgICAgLyogU2VlIFRNRU1fUE9PTF9TSEFSRUQuICovCisgICAgICAgICAgICAgICAgICAg
ICBhdXRoOjEsICAgICAgIC8qIFNlZSBUTUVNX1BPT0xfQVVUSC4gKi8KKyAgICAgICAgICAgICAg
ICAgICAgIHJzdjE6MSwKKyAgICAgICAgICAgICAgICAgICAgIHBhZ2ViaXRzOjgsICAgLyogVE1F
TV9QT09MX1BBR0VTSVpFX1tTSElGVCxNQVNLXS4gKi8KKyAgICAgICAgICAgICAgICAgICAgIHJz
djI6MTIsCisgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOjg7ICAgIC8qIFRNRU1fUE9PTF9W
RVJTSU9OX1tTSElGVCxNQVNLXS4gKi8KKyAgICAgICAgfSB1OworICAgIH0gZmxhZ3M7CisgICAg
dWludDMyX3QgaWQ7ICAgICAgICAgICAgICAgICAgLyogTGVzcyB0aGFuIHRtZW1fY2xpZW50Lm1h
eHBvb2xzLiAqLworICAgIHVpbnQ2NF90IG5fcGFnZXM7ICAgICAgICAgICAgIC8qIFplcm8gb24g
WEVOX1NZU0NUTF9UTUVNX09QX1NFVF9bQVVUSHxQT09MU10uICovCisgICAgdWludDY0X2FsaWdu
ZWRfdCB1dWlkWzJdOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl90bWVtX3Bvb2xfaW5mbyB4ZW5f
dG1lbV9wb29sX2luZm9fdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl90bWVtX3Bvb2xf
aW5mb190KTsKKworc3RydWN0IHhlbl9zeXNjdGxfdG1lbV9vcCB7CisgICAgdWludDMyX3QgY21k
OyAgICAgICAvKiBJTjogWEVOX1NZU0NUTF9UTUVNX09QXyogLiAqLworICAgIGludDMyX3QgcG9v
bF9pZDsgICAgLyogSU46IDAgYnkgZGVmYXVsdCB1bmxlc3MgX1NBVkVfKiwgUkVTVE9SRV8qIC4q
LworICAgIHVpbnQzMl90IGNsaV9pZDsgICAgLyogSU46IGNsaWVudCBpZCwgMCBmb3IgWEVOX1NZ
U0NUTF9UTUVNX1FVRVJZX0ZSRUVBQkxFX01CCisgICAgICAgICAgICAgICAgICAgICAgICAgICBm
b3IgYWxsIG90aGVycyBjYW4gYmUgdGhlIGRvbWFpbiBpZCBvcgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgWEVOX1NZU0NUTF9UTUVNX09QX0FMTF9DTElFTlRTIGZvciBhbGwuICovCisgICAg
dWludDMyX3QgbGVuOyAgICAgICAvKiBJTjogbGVuZ3RoIG9mICdidWYnLiBJZiBub3QgYXBwbGlj
YWJsZSB0byB1c2UgMC4gKi8KKyAgICB1aW50MzJfdCBhcmc7ICAgICAgIC8qIElOOiBJZiBub3Qg
YXBwbGljYWJsZSB0byBjb21tYW5kIHVzZSAwLiAqLworICAgIHVpbnQzMl90IHBhZDsgICAgICAg
LyogUGFkZGluZyBzbyBzdHJ1Y3R1cmUgaXMgdGhlIHNhbWUgdW5kZXIgMzIgYW5kIDY0LiAqLwor
ICAgIHhlbl90bWVtX29pZF90IG9pZDsgLyogSU46IElmIG5vdCBhcHBsaWNhYmxlIHRvIGNvbW1h
bmQgdXNlIDBzLiAqLworICAgIHVuaW9uIHsKKyAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV82NChj
aGFyKSBidWY7IC8qIElOL09VVDogQnVmZmVyIHRvIHNhdmUvcmVzdG9yZSAqLworICAgICAgICBY
RU5fR1VFU1RfSEFORExFXzY0KHhlbl90bWVtX2NsaWVudF90KSBjbGllbnQ7IC8qIElOL09VVCBm
b3IgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8qICBYRU5fU1lTQ1RMX1RNRU1fT1BfW0dF
VCxTQVZFXV9DTElFTlQuICovCisgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQoeGVuX3RtZW1f
cG9vbF9pbmZvX3QpIHBvb2w7IC8qIE9VVCBmb3IgKi8KKyAgICAgICAgICAgICAgICAgICAgICAg
IC8qIFhFTl9TWVNDVExfVE1FTV9PUF9HRVRfUE9PTFMuIE11c3QgaGF2ZSAnbGVuJyAqLworICAg
ICAgICAgICAgICAgICAgICAgICAgLyogb2YgdGhlbS4gKi8KKyAgICB9IHU7Cit9OworCisvKgor
ICogWEVOX1NZU0NUTF9nZXRfY3B1X2xldmVsbGluZ19jYXBzICh4ODYgc3BlY2lmaWMpCisgKgor
ICogUmV0dXJuIGhhcmR3YXJlIGNhcGFiaWxpdGllcyBjb25jZXJuaW5nIG1hc2tpbmcgb3IgZmF1
bHRpbmcgb2YgdGhlIGNwdWlkCisgKiBpbnN0cnVjdGlvbiBmb3IgUFYgZ3Vlc3RzLgorICovCitz
dHJ1Y3QgeGVuX3N5c2N0bF9jcHVfbGV2ZWxsaW5nX2NhcHMgeworI2RlZmluZSBYRU5fU1lTQ1RM
X0NQVV9MRVZFTENBUF9mYXVsdGluZyAgICAoMXVsIDw8ICAwKSAvKiBDUFVJRCBmYXVsdGluZyAg
ICAqLworI2RlZmluZSBYRU5fU1lTQ1RMX0NQVV9MRVZFTENBUF9lY3ggICAgICAgICAoMXVsIDw8
ICAxKSAvKiAweDAwMDAwMDAxLmVjeCAgICAqLworI2RlZmluZSBYRU5fU1lTQ1RMX0NQVV9MRVZF
TENBUF9lZHggICAgICAgICAoMXVsIDw8ICAyKSAvKiAweDAwMDAwMDAxLmVkeCAgICAqLworI2Rl
ZmluZSBYRU5fU1lTQ1RMX0NQVV9MRVZFTENBUF9leHRkX2VjeCAgICAoMXVsIDw8ICAzKSAvKiAw
eDgwMDAwMDAxLmVjeCAgICAqLworI2RlZmluZSBYRU5fU1lTQ1RMX0NQVV9MRVZFTENBUF9leHRk
X2VkeCAgICAoMXVsIDw8ICA0KSAvKiAweDgwMDAwMDAxLmVkeCAgICAqLworI2RlZmluZSBYRU5f
U1lTQ1RMX0NQVV9MRVZFTENBUF94c2F2ZV9lYXggICAoMXVsIDw8ICA1KSAvKiAweDAwMDAwMDBE
OjEuZWF4ICAqLworI2RlZmluZSBYRU5fU1lTQ1RMX0NQVV9MRVZFTENBUF90aGVybWFsX2VjeCAo
MXVsIDw8ICA2KSAvKiAweDAwMDAwMDA2LmVjeCAgICAqLworI2RlZmluZSBYRU5fU1lTQ1RMX0NQ
VV9MRVZFTENBUF9sN3MwX2VheCAgICAoMXVsIDw8ICA3KSAvKiAweDAwMDAwMDA3OjAuZWF4ICAq
LworI2RlZmluZSBYRU5fU1lTQ1RMX0NQVV9MRVZFTENBUF9sN3MwX2VieCAgICAoMXVsIDw8ICA4
KSAvKiAweDAwMDAwMDA3OjAuZWJ4ICAqLworICAgIHVpbnQzMl90IGNhcHM7Cit9OworCisvKgor
ICogWEVOX1NZU0NUTF9nZXRfY3B1X2ZlYXR1cmVzZXQgKHg4NiBzcGVjaWZpYykKKyAqCisgKiBS
ZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgZmVhdHVyZXNldHMgYXZhaWxhYmxlIG9uIHRoaXMgaG9z
dC4KKyAqICAtICBSYXc6IFRoZSByZWFsIGNwdWlkIHZhbHVlcy4KKyAqICAtIEhvc3Q6IFRoZSB2
YWx1ZXMgWGVuIGlzIHVzaW5nLCAoYWZ0ZXIgY29tbWFuZCBsaW5lIG92ZXJyaWRlcywgZXRjKS4K
KyAqICAtICAgUFY6IE1heGltdW0gc2V0IG9mIGZlYXR1cmVzIHdoaWNoIGNhbiBiZSBnaXZlbiB0
byBhIFBWIGd1ZXN0LgorICogIC0gIEhWTTogTWF4aW11bSBzZXQgb2YgZmVhdHVyZXMgd2hpY2gg
Y2FuIGJlIGdpdmVuIHRvIGEgSFZNIGd1ZXN0LgorICovCitzdHJ1Y3QgeGVuX3N5c2N0bF9jcHVf
ZmVhdHVyZXNldCB7CisjZGVmaW5lIFhFTl9TWVNDVExfY3B1X2ZlYXR1cmVzZXRfcmF3ICAgICAg
MAorI2RlZmluZSBYRU5fU1lTQ1RMX2NwdV9mZWF0dXJlc2V0X2hvc3QgICAgIDEKKyNkZWZpbmUg
WEVOX1NZU0NUTF9jcHVfZmVhdHVyZXNldF9wdiAgICAgICAyCisjZGVmaW5lIFhFTl9TWVNDVExf
Y3B1X2ZlYXR1cmVzZXRfaHZtICAgICAgMworICAgIHVpbnQzMl90IGluZGV4OyAgICAgICAvKiBJ
TjogV2hpY2ggZmVhdHVyZXNldCB0byBxdWVyeT8gKi8KKyAgICB1aW50MzJfdCBucl9mZWF0dXJl
czsgLyogSU4vT1VUOiBOdW1iZXIgb2YgZW50cmllcyBpbi93cml0dGVuIHRvCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqICdmZWF0dXJlcycsIG9yIHRoZSBtYXhpbXVtIG51bWJlciBvZiBm
ZWF0dXJlcyBpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgZ3Vlc3QgaGFuZGxl
IGlzIE5VTEwuICBOQi4gQWxsIGZlYXR1cmVzZXRzCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqIGNvbWUgZnJvbSB0aGUgc2FtZSBudW1iZXJzcGFjZSwgc28gaGF2ZSB0aGUgc2FtZQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKiBtYXhpbXVtIGxlbmd0aC4gKi8KKyAgICBYRU5fR1VF
U1RfSEFORExFXzY0KHVpbnQzMikgZmVhdHVyZXM7IC8qIE9VVDogKi8KK307CisKKy8qCisgKiBY
RU5fU1lTQ1RMX0xJVkVQQVRDSF9vcAorICoKKyAqIFJlZmVyIHRvIHRoZSBkb2NzL3Vuc3RhYmxl
L21pc2MvbGl2ZXBhdGNoLm1hcmtkb3duCisgKiBmb3IgdGhlIGRlc2lnbiBkZXRhaWxzIG9mIHRo
aXMgaHlwZXJjYWxsLgorICoKKyAqIFRoZXJlIGFyZSBmb3VyIHN1Yi1vcHM6CisgKiAgWEVOX1NZ
U0NUTF9MSVZFUEFUQ0hfVVBMT0FEICgwKQorICogIFhFTl9TWVNDVExfTElWRVBBVENIX0dFVCAo
MSkKKyAqICBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9MSVNUICgyKQorICogIFhFTl9TWVNDVExfTElW
RVBBVENIX0FDVElPTiAoMykKKyAqCisgKiBUaGUgbm9ybWFsIHNlcXVlbmNlIG9mIHN1Yi1vcHMg
aXMgdG86CisgKiAgMSkgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfVVBMT0FEIHRvIHVwbG9hZCB0aGUg
cGF5bG9hZC4gSWYgZXJyb3JzIFNUT1AuCisgKiAgMikgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfR0VU
IHRvIGNoZWNrIHRoZSBgLT5yY2AuIElmIC1YRU5fRUFHQUlOIHNwaW4uCisgKiAgICAgSWYgemVy
byBnbyB0byBuZXh0IHN0ZXAuCisgKiAgMykgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfQUNUSU9OIHdp
dGggTElWRVBBVENIX0FDVElPTl9BUFBMWSB0byBhcHBseSB0aGUgcGF0Y2guCisgKiAgNCkgWEVO
X1NZU0NUTF9MSVZFUEFUQ0hfR0VUIHRvIGNoZWNrIHRoZSBgLT5yY2AuIElmIGluIC1YRU5fRUFH
QUlOIHNwaW4uCisgKiAgICAgSWYgemVybyBleGl0IHdpdGggc3VjY2Vzcy4KKyAqLworCisjZGVm
aW5lIExJVkVQQVRDSF9QQVlMT0FEX1ZFUlNJT04gMQorLyoKKyAqIC5saXZlcGF0Y2guZnVuY3Mg
c3RydWN0dXJlIGxheW91dCBkZWZpbmVkIGluIHRoZSBgUGF5bG9hZCBmb3JtYXRgCisgKiBzZWN0
aW9uIGluIHRoZSBMaXZlIFBhdGNoIGRlc2lnbiBkb2N1bWVudC4KKyAqCisgKiBXZSBndWFyZCB0
aGlzIHdpdGggX19YRU5fXyBhcyB0b29sc3RhY2tzIFNIT1VMRCBub3QgdXNlIGl0LgorICovCisj
aWZkZWYgX19YRU5fXworc3RydWN0IGxpdmVwYXRjaF9mdW5jIHsKKyAgICBjb25zdCBjaGFyICpu
YW1lOyAgICAgICAvKiBOYW1lIG9mIGZ1bmN0aW9uIHRvIGJlIHBhdGNoZWQuICovCisgICAgdm9p
ZCAqbmV3X2FkZHI7CisgICAgdm9pZCAqb2xkX2FkZHI7CisgICAgdWludDMyX3QgbmV3X3NpemU7
CisgICAgdWludDMyX3Qgb2xkX3NpemU7CisgICAgdWludDhfdCB2ZXJzaW9uOyAgICAgICAgLyog
TVVTVCBiZSBMSVZFUEFUQ0hfUEFZTE9BRF9WRVJTSU9OLiAqLworICAgIHVpbnQ4X3Qgb3BhcXVl
WzMxXTsKK307Cit0eXBlZGVmIHN0cnVjdCBsaXZlcGF0Y2hfZnVuYyBsaXZlcGF0Y2hfZnVuY190
OworI2VuZGlmCisKKy8qCisgKiBTdHJ1Y3R1cmUgZGVzY3JpYmluZyBhbiBFTEYgcGF5bG9hZC4g
VW5pcXVlbHkgaWRlbnRpZmllcyB0aGUKKyAqIHBheWxvYWQuIFNob3VsZCBiZSBodW1hbiByZWFk
YWJsZS4KKyAqIFJlY29tbWVuZGVkIGxlbmd0aCBpcyB1cHRvIFhFTl9MSVZFUEFUQ0hfTkFNRV9T
SVpFLgorICogSW5jbHVkZXMgdGhlIE5VTCB0ZXJtaW5hdG9yLgorICovCisjZGVmaW5lIFhFTl9M
SVZFUEFUQ0hfTkFNRV9TSVpFIDEyOAorc3RydWN0IHhlbl9saXZlcGF0Y2hfbmFtZSB7CisgICAg
WEVOX0dVRVNUX0hBTkRMRV82NChjaGFyKSBuYW1lOyAgICAgICAgIC8qIElOOiBwb2ludGVyIHRv
IG5hbWUuICovCisgICAgdWludDE2X3Qgc2l6ZTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8q
IElOOiBzaXplIG9mIG5hbWUuIE1heSBiZSB1cHRvCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFLiAqLworICAgIHVp
bnQxNl90IHBhZFszXTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBJTjogTVVTVCBiZSB6ZXJv
LiAqLworfTsKKworLyoKKyAqIFVwbG9hZCBhIHBheWxvYWQgdG8gdGhlIGh5cGVydmlzb3IuIFRo
ZSBwYXlsb2FkIGlzIHZlcmlmaWVkCisgKiBhZ2FpbnN0IGJhc2ljIGNoZWNrcyBhbmQgaWYgdGhl
cmUgYXJlIGFueSBpc3N1ZXMgdGhlIHByb3BlciByZXR1cm4gY29kZQorICogd2lsbCBiZSByZXR1
cm5lZC4gVGhlIHBheWxvYWQgaXMgbm90IGFwcGxpZWQgYXQgdGhpcyB0aW1lIC0gdGhhdCBpcwor
ICogY29udHJvbGxlZCBieSBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9BQ1RJT04uCisgKgorICogVGhl
IHJldHVybiB2YWx1ZSBpcyB6ZXJvIGlmIHRoZSBwYXlsb2FkIHdhcyBzdWNjZXNmdWxseSB1cGxv
YWRlZC4KKyAqIE90aGVyd2lzZSBhbiBFWFggcmV0dXJuIHZhbHVlIGlzIHByb3ZpZGVkLiBEdXBs
aWNhdGUgYG5hbWVgIGFyZSBub3QKKyAqIHN1cHBvcnRlZC4KKyAqCisgKiBUaGUgcGF5bG9hZCBh
dCB0aGlzIHBvaW50IGlzIHZlcmlmaWVkIGFnYWluc3QgYmFzaWMgY2hlY2tzLgorICoKKyAqIFRo
ZSBgcGF5bG9hZGAgaXMgdGhlIEVMRiBwYXlsb2FkIGFzIG1lbnRpb25lZCBpbiB0aGUgYFBheWxv
YWQgZm9ybWF0YAorICogc2VjdGlvbiBpbiB0aGUgTGl2ZSBQYXRjaCBkZXNpZ24gZG9jdW1lbnQu
CisgKi8KKyNkZWZpbmUgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfVVBMT0FEIDAKK3N0cnVjdCB4ZW5f
c3lzY3RsX2xpdmVwYXRjaF91cGxvYWQgeworICAgIHN0cnVjdCB4ZW5fbGl2ZXBhdGNoX25hbWUg
bmFtZTsgICAgICAgICAvKiBJTiwgbmFtZSBvZiB0aGUgcGF0Y2guICovCisgICAgdWludDY0X3Qg
c2l6ZTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOLCBzaXplIG9mIHRoZSBFTEYgZmls
ZS4gKi8KKyAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQ4KSBwYXlsb2FkOyAgICAgLyogSU4s
IHRoZSBFTEYgZmlsZS4gKi8KK307CisKKy8qCisgKiBSZXRyaWV2ZSBhbiBzdGF0dXMgb2YgYW4g
c3BlY2lmaWMgcGF5bG9hZC4KKyAqCisgKiBVcG9uIGNvbXBsZXRpb24gdGhlIGBzdHJ1Y3QgeGVu
X2xpdmVwYXRjaF9zdGF0dXNgIGlzIHVwZGF0ZWQuCisgKgorICogVGhlIHJldHVybiB2YWx1ZSBp
cyB6ZXJvIG9uIHN1Y2Nlc3MgYW5kIFhFTl9FWFggb24gZmFpbHVyZS4gVGhpcyBvcGVyYXRpb24K
KyAqIGlzIHN5bmNocm9ub3VzIGFuZCBkb2VzIG5vdCByZXF1aXJlIHByZWVtcHRpb24uCisgKi8K
KyNkZWZpbmUgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfR0VUIDEKKworc3RydWN0IHhlbl9saXZlcGF0
Y2hfc3RhdHVzIHsKKyNkZWZpbmUgTElWRVBBVENIX1NUQVRFX0NIRUNLRUQgICAgICAxCisjZGVm
aW5lIExJVkVQQVRDSF9TVEFURV9BUFBMSUVEICAgICAgMgorICAgIHVpbnQzMl90IHN0YXRlOyAg
ICAgICAgICAgICAgICAvKiBPVVQ6IExJVkVQQVRDSF9TVEFURV8qLiAqLworICAgIGludDMyX3Qg
cmM7ICAgICAgICAgICAgICAgICAgICAvKiBPVVQ6IDAgaWYgbm8gZXJyb3IsIG90aGVyd2lzZSAt
WEVOX0VYWC4gKi8KK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5fbGl2ZXBhdGNoX3N0YXR1cyB4ZW5f
bGl2ZXBhdGNoX3N0YXR1c190OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2xpdmVwYXRj
aF9zdGF0dXNfdCk7CisKK3N0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9nZXQgeworICAgIHN0
cnVjdCB4ZW5fbGl2ZXBhdGNoX25hbWUgbmFtZTsgICAgICAgICAvKiBJTiwgbmFtZSBvZiB0aGUg
cGF5bG9hZC4gKi8KKyAgICBzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9zdGF0dXMgc3RhdHVzOyAgICAg
LyogSU4vT1VULCBzdGF0ZSBvZiBpdC4gKi8KK307CisKKy8qCisgKiBSZXRyaWV2ZSBhbiBhcnJh
eSBvZiBhYmJyZXZpYXRlZCBzdGF0dXMgYW5kIG5hbWVzIG9mIHBheWxvYWRzIHRoYXQgYXJlCisg
KiBsb2FkZWQgaW4gdGhlIGh5cGVydmlzb3IuCisgKgorICogSWYgdGhlIGh5cGVyY2FsbCByZXR1
cm5zIGFuIHBvc2l0aXZlIG51bWJlciwgaXQgaXMgdGhlIG51bWJlciAodXAgdG8gYG5yYCkKKyAq
IG9mIHRoZSBwYXlsb2FkcyByZXR1cm5lZCwgYWxvbmcgd2l0aCBgbnJgIHVwZGF0ZWQgd2l0aCB0
aGUgbnVtYmVyIG9mIHJlbWFpbmluZworICogcGF5bG9hZHMsIGB2ZXJzaW9uYCB1cGRhdGVkIChp
dCBtYXkgYmUgdGhlIHNhbWUgYWNyb3NzIGh5cGVyY2FsbHMuIElmIGl0CisgKiB2YXJpZXMgdGhl
IGRhdGEgaXMgc3RhbGUgYW5kIGZ1cnRoZXIgY2FsbHMgY291bGQgZmFpbCkuIFRoZSBgc3RhdHVz
YCwKKyAqIGBuYW1lYCwgYW5kIGBsZW5gJyBhcmUgdXBkYXRlZCBhdCB0aGVpciBkZXNpZ25lZCBp
bmRleCB2YWx1ZSAoYGlkeGApIHdpdGgKKyAqIHRoZSByZXR1cm5lZCB2YWx1ZSBvZiBkYXRhLgor
ICoKKyAqIElmIHRoZSBoeXBlcmNhbGwgcmV0dXJucyBFMkJJRyB0aGUgYG5yYCBpcyB0b28gYmln
IGFuZCBzaG91bGQgYmUKKyAqIGxvd2VyZWQuIFRoZSB1cHBlciBsaW1pdCBvZiBgbnJgIGlzIGxl
ZnQgdG8gdGhlIGltcGxlbWVudGlvbi4KKyAqCisgKiBOb3RlIHRoYXQgZHVlIHRvIHRoZSBhc3lu
Y2hyb25vdXMgbmF0dXJlIG9mIGh5cGVyY2FsbHMgdGhlIGRvbWFpbiBtaWdodCBoYXZlCisgKiBh
ZGRlZCBvciByZW1vdmVkIHRoZSBudW1iZXIgb2YgcGF5bG9hZHMgbWFraW5nIHRoaXMgaW5mb3Jt
YXRpb24gc3RhbGUuIEl0IGlzCisgKiB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIHRvb2xzdGFj
ayB0byB1c2UgdGhlIGB2ZXJzaW9uYCBmaWVsZCB0byBjaGVjaworICogYmV0d2VlbiBlYWNoIGlu
dm9jYXRpb24uIGlmIHRoZSB2ZXJzaW9uIGRpZmZlcnMgaXQgc2hvdWxkIGRpc2NhcmQgdGhlIHN0
YWxlCisgKiBkYXRhIGFuZCBzdGFydCBmcm9tIHNjcmF0Y2guIEl0IGlzIE9LIGZvciB0aGUgdG9v
bHN0YWNrIHRvIHVzZSB0aGUgbmV3CisgKiBgdmVyc2lvbmAgZmllbGQuCisgKi8KKyNkZWZpbmUg
WEVOX1NZU0NUTF9MSVZFUEFUQ0hfTElTVCAyCitzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hf
bGlzdCB7CisgICAgdWludDMyX3QgdmVyc2lvbjsgICAgICAgICAgICAgICAgICAgICAgIC8qIE9V
VDogSHlwZXJ2aXNvciBzdGFtcHMgdmFsdWUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIElmIHZhcmllcyBiZXR3ZWVuIGNhbGxzLCB3ZSBhcmUKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogZ2V0dGluZyBzdGFsZSBk
YXRhLiAqLworICAgIHVpbnQzMl90IGlkeDsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJ
TjogSW5kZXggaW50byBoeXBlcnZpc29yIGxpc3QuICovCisgICAgdWludDMyX3QgbnI7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBIb3cgbWFueSBzdGF0dXMsIG5hbWUsIGFuZCBs
ZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxk
IGZpbGwgb3V0LiBDYW4gYmUgemVybyB0byBnZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYW1vdW50IG9mIHBheWxvYWRzIGFuZCB2ZXJzaW9uLgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPVVQ6IEhvdyBtYW55
IHBheWxvYWRzIGxlZnQuICovCisgICAgdWludDMyX3QgcGFkOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8qIElOOiBNdXN0IGJlIHplcm8uICovCisgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh4
ZW5fbGl2ZXBhdGNoX3N0YXR1c190KSBzdGF0dXM7ICAvKiBPVVQuIE11c3QgaGF2ZSBlbm91Z2gK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BhY2UgYWxs
b2NhdGUgZm9yIG5yIG9mIHRoZW0uICovCisgICAgWEVOX0dVRVNUX0hBTkRMRV82NChjaGFyKSBu
YW1lOyAgICAgICAgIC8qIE9VVDogQXJyYXkgb2YgbmFtZXMuIEVhY2ggbWVtYmVyCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1VU1QgWEVOX0xJVkVQQVRD
SF9OQU1FX1NJWkUgaW4gc2l6ZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTXVzdCBoYXZlIG5yIG9mIHRoZW0uICovCisgICAgWEVOX0dVRVNUX0hBTkRM
RV82NCh1aW50MzIpIGxlbjsgICAgICAgIC8qIE9VVDogQXJyYXkgb2YgbGVuZ3RocyBvZiBuYW1l
J3MuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE11c3Qg
aGF2ZSBuciBvZiB0aGVtLiAqLworfTsKKworLyoKKyAqIFBlcmZvcm0gYW4gb3BlcmF0aW9uIG9u
IHRoZSBwYXlsb2FkIHN0cnVjdHVyZSByZWZlcmVuY2VkIGJ5IHRoZSBgbmFtZWAgZmllbGQuCisg
KiBUaGUgb3BlcmF0aW9uIHJlcXVlc3QgaXMgYXN5bmNocm9ub3VzIGFuZCB0aGUgc3RhdHVzIHNo
b3VsZCBiZSByZXRyaWV2ZWQKKyAqIGJ5IHVzaW5nIGVpdGhlciBYRU5fU1lTQ1RMX0xJVkVQQVRD
SF9HRVQgb3IgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfTElTVCBoeXBlcmNhbGwuCisgKi8KKyNkZWZp
bmUgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfQUNUSU9OIDMKK3N0cnVjdCB4ZW5fc3lzY3RsX2xpdmVw
YXRjaF9hY3Rpb24geworICAgIHN0cnVjdCB4ZW5fbGl2ZXBhdGNoX25hbWUgbmFtZTsgICAgICAg
ICAvKiBJTiwgbmFtZSBvZiB0aGUgcGF0Y2guICovCisjZGVmaW5lIExJVkVQQVRDSF9BQ1RJT05f
VU5MT0FEICAgICAgIDEKKyNkZWZpbmUgTElWRVBBVENIX0FDVElPTl9SRVZFUlQgICAgICAgMgor
I2RlZmluZSBMSVZFUEFUQ0hfQUNUSU9OX0FQUExZICAgICAgICAzCisjZGVmaW5lIExJVkVQQVRD
SF9BQ1RJT05fUkVQTEFDRSAgICAgIDQKKyAgICB1aW50MzJfdCBjbWQ7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLyogSU46IExJVkVQQVRDSF9BQ1RJT05fKi4gKi8KKyAgICB1aW50MzJfdCB0
aW1lb3V0OyAgICAgICAgICAgICAgICAgICAgICAgLyogSU46IElmIHplcm8gdGhlbiB1c2VzICov
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGh5cGVydmlz
b3IgZGVmYXVsdC4gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLyogT3IgdXBwZXIgYm91bmQgb2YgdGltZSAobnMpICovCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZvciBvcGVyYXRpb24gdG8gdGFrZS4gKi8KK307
CisKK3N0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9vcCB7CisgICAgdWludDMyX3QgY21kOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBYRU5fU1lTQ1RMX0xJVkVQQVRDSF8qLiAq
LworICAgIHVpbnQzMl90IHBhZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJTjogQWx3
YXlzIHplcm8uICovCisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9saXZl
cGF0Y2hfdXBsb2FkIHVwbG9hZDsKKyAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNo
X2xpc3QgbGlzdDsKKyAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2dldCBnZXQ7
CisgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9hY3Rpb24gYWN0aW9uOworICAg
IH0gdTsKK307CisKKy8qCisgKiBYRU5fU1lTQ1RMX3NldF9wYXJhbWV0ZXIKKyAqCisgKiBDaGFu
Z2UgaHlwZXJ2aXNvciBwYXJhbWV0ZXJzIGF0IHJ1bnRpbWUuCisgKiBUaGUgaW5wdXQgc3RyaW5n
IGlzIHBhcnNlZCBzaW1pbGFyIHRvIHRoZSBib290IHBhcmFtZXRlcnMuCisgKiBQYXJhbWV0ZXJz
IGFyZSBhIHNpbmdsZSBzdHJpbmcgdGVybWluYXRlZCBieSBhIE5VTCBieXRlIG9mIG1heC4gc2l6
ZQorICogY2hhcmFjdGVycy4gTXVsdGlwbGUgc2V0dGluZ3MgY2FuIGJlIHNwZWNpZmllZCBieSBz
ZXBhcmF0aW5nIHRoZW0KKyAqIHdpdGggYmxhbmtzLgorICovCisKK3N0cnVjdCB4ZW5fc3lzY3Rs
X3NldF9wYXJhbWV0ZXIgeworICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQoY2hhcikgcGFyYW1zOyAg
ICAgICAvKiBJTjogcG9pbnRlciB0byBwYXJhbWV0ZXJzLiAqLworICAgIHVpbnQxNl90IHNpemU7
ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJTjogc2l6ZSBvZiBwYXJhbWV0ZXJzLiAqLwor
ICAgIHVpbnQxNl90IHBhZFszXTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBJTjogTVVTVCBi
ZSB6ZXJvLiAqLworfTsKKworc3RydWN0IHhlbl9zeXNjdGwgeworICAgIHVpbnQzMl90IGNtZDsK
KyNkZWZpbmUgWEVOX1NZU0NUTF9yZWFkY29uc29sZSAgICAgICAgICAgICAgICAgICAgMQorI2Rl
ZmluZSBYRU5fU1lTQ1RMX3RidWZfb3AgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5l
IFhFTl9TWVNDVExfcGh5c2luZm8gICAgICAgICAgICAgICAgICAgICAgIDMKKyNkZWZpbmUgWEVO
X1NZU0NUTF9zY2hlZF9pZCAgICAgICAgICAgICAgICAgICAgICAgNAorI2RlZmluZSBYRU5fU1lT
Q1RMX3BlcmZjX29wICAgICAgICAgICAgICAgICAgICAgICA1CisjZGVmaW5lIFhFTl9TWVNDVExf
Z2V0ZG9tYWluaW5mb2xpc3QgICAgICAgICAgICAgIDYKKyNkZWZpbmUgWEVOX1NZU0NUTF9kZWJ1
Z19rZXlzICAgICAgICAgICAgICAgICAgICAgNworI2RlZmluZSBYRU5fU1lTQ1RMX2dldGNwdWlu
Zm8gICAgICAgICAgICAgICAgICAgICA4CisjZGVmaW5lIFhFTl9TWVNDVExfYXZhaWxoZWFwICAg
ICAgICAgICAgICAgICAgICAgIDkKKyNkZWZpbmUgWEVOX1NZU0NUTF9nZXRfcG1zdGF0ICAgICAg
ICAgICAgICAgICAgICAxMAorI2RlZmluZSBYRU5fU1lTQ1RMX2NwdV9ob3RwbHVnICAgICAgICAg
ICAgICAgICAgIDExCisjZGVmaW5lIFhFTl9TWVNDVExfcG1fb3AgICAgICAgICAgICAgICAgICAg
ICAgICAgMTIKKyNkZWZpbmUgWEVOX1NZU0NUTF9wYWdlX29mZmxpbmVfb3AgICAgICAgICAgICAg
ICAxNAorI2RlZmluZSBYRU5fU1lTQ1RMX2xvY2twcm9mX29wICAgICAgICAgICAgICAgICAgIDE1
CisjZGVmaW5lIFhFTl9TWVNDVExfY3B1dG9wb2luZm8gICAgICAgICAgICAgICAgICAgMTYKKyNk
ZWZpbmUgWEVOX1NZU0NUTF9udW1haW5mbyAgICAgICAgICAgICAgICAgICAgICAxNworI2RlZmlu
ZSBYRU5fU1lTQ1RMX2NwdXBvb2xfb3AgICAgICAgICAgICAgICAgICAgIDE4CisjZGVmaW5lIFhF
Tl9TWVNDVExfc2NoZWR1bGVyX29wICAgICAgICAgICAgICAgICAgMTkKKyNkZWZpbmUgWEVOX1NZ
U0NUTF9nY292X29wICAgICAgICAgICAgICAgICAgICAgICAyMAorI2RlZmluZSBYRU5fU1lTQ1RM
X3Bzcl9jbXRfb3AgICAgICAgICAgICAgICAgICAgIDIxCisjZGVmaW5lIFhFTl9TWVNDVExfcGNp
dG9wb2luZm8gICAgICAgICAgICAgICAgICAgMjIKKyNkZWZpbmUgWEVOX1NZU0NUTF9wc3JfY2F0
X29wICAgICAgICAgICAgICAgICAgICAyMworI2RlZmluZSBYRU5fU1lTQ1RMX3RtZW1fb3AgICAg
ICAgICAgICAgICAgICAgICAgIDI0CisjZGVmaW5lIFhFTl9TWVNDVExfZ2V0X2NwdV9sZXZlbGxp
bmdfY2FwcyAgICAgICAgMjUKKyNkZWZpbmUgWEVOX1NZU0NUTF9nZXRfY3B1X2ZlYXR1cmVzZXQg
ICAgICAgICAgICAyNgorI2RlZmluZSBYRU5fU1lTQ1RMX2xpdmVwYXRjaF9vcCAgICAgICAgICAg
ICAgICAgIDI3CisjZGVmaW5lIFhFTl9TWVNDVExfc2V0X3BhcmFtZXRlciAgICAgICAgICAgICAg
ICAgMjgKKyAgICB1aW50MzJfdCBpbnRlcmZhY2VfdmVyc2lvbjsgLyogWEVOX1NZU0NUTF9JTlRF
UkZBQ0VfVkVSU0lPTiAqLworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxf
cmVhZGNvbnNvbGUgICAgICAgcmVhZGNvbnNvbGU7CisgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3Rs
X3RidWZfb3AgICAgICAgICAgIHRidWZfb3A7CisgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX3Bo
eXNpbmZvICAgICAgICAgIHBoeXNpbmZvOworICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9jcHV0
b3BvaW5mbyAgICAgICBjcHV0b3BvaW5mbzsKKyAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfcGNp
dG9wb2luZm8gICAgICAgcGNpdG9wb2luZm87CisgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX251
bWFpbmZvICAgICAgICAgIG51bWFpbmZvOworICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9zY2hl
ZF9pZCAgICAgICAgICBzY2hlZF9pZDsKKyAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfcGVyZmNf
b3AgICAgICAgICAgcGVyZmNfb3A7CisgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX2dldGRvbWFp
bmluZm9saXN0IGdldGRvbWFpbmluZm9saXN0OworICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9k
ZWJ1Z19rZXlzICAgICAgICBkZWJ1Z19rZXlzOworICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9n
ZXRjcHVpbmZvICAgICAgICBnZXRjcHVpbmZvOworICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9h
dmFpbGhlYXAgICAgICAgICBhdmFpbGhlYXA7CisgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX2dl
dF9wbXN0YXQgICAgICAgIGdldF9wbXN0YXQ7CisgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX2Nw
dV9ob3RwbHVnICAgICAgIGNwdV9ob3RwbHVnOworICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9w
bV9vcCAgICAgICAgICAgICBwbV9vcDsKKyAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfcGFnZV9v
ZmZsaW5lX29wICAgcGFnZV9vZmZsaW5lOworICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9sb2Nr
cHJvZl9vcCAgICAgICBsb2NrcHJvZl9vcDsKKyAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfY3B1
cG9vbF9vcCAgICAgICAgY3B1cG9vbF9vcDsKKyAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfc2No
ZWR1bGVyX29wICAgICAgc2NoZWR1bGVyX29wOworICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9n
Y292X29wICAgICAgICAgICBnY292X29wOworICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9wc3Jf
Y210X29wICAgICAgICBwc3JfY210X29wOworICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9wc3Jf
Y2F0X29wICAgICAgICBwc3JfY2F0X29wOworICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF90bWVt
X29wICAgICAgICAgICB0bWVtX29wOworICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9jcHVfbGV2
ZWxsaW5nX2NhcHMgY3B1X2xldmVsbGluZ19jYXBzOworICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0
bF9jcHVfZmVhdHVyZXNldCAgICBjcHVfZmVhdHVyZXNldDsKKyAgICAgICAgc3RydWN0IHhlbl9z
eXNjdGxfbGl2ZXBhdGNoX29wICAgICAgbGl2ZXBhdGNoOworICAgICAgICBzdHJ1Y3QgeGVuX3N5
c2N0bF9zZXRfcGFyYW1ldGVyICAgICBzZXRfcGFyYW1ldGVyOworICAgICAgICB1aW50OF90ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRbMTI4XTsKKyAgICB9IHU7Cit9OwordHlwZWRl
ZiBzdHJ1Y3QgeGVuX3N5c2N0bCB4ZW5fc3lzY3RsX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRM
RSh4ZW5fc3lzY3RsX3QpOworCisjZW5kaWYgLyogX19YRU5fUFVCTElDX1NZU0NUTF9IX18gKi8K
KworLyoKKyAqIExvY2FsIHZhcmlhYmxlczoKKyAqIG1vZGU6IEMKKyAqIGMtZmlsZS1zdHlsZTog
IkJTRCIKKyAqIGMtYmFzaWMtb2Zmc2V0OiA0CisgKiB0YWItd2lkdGg6IDQKKyAqIGluZGVudC10
YWJzLW1vZGU6IG5pbAorICogRW5kOgorICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi94c20v
dG1lbS5oIGIvaW5jbHVkZS94ZW4veHNtL3RtZW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5hYTBhYWZhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94ZW4veHNtL3Rt
ZW0uaApAQCAtMCwwICsxLDEyNCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogdG1lbS5o
CisgKiAKKyAqIEd1ZXN0IE9TIGludGVyZmFjZSB0byBYZW4gVHJhbnNjZW5kZW50IE1lbW9yeS4K
KyAqIAorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv
IGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNz
b2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFs
IGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBs
aW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVi
bGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0
aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBp
cworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNz
aW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFu
dGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBS
T1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IK
KyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9S
IENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9U
SEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JU
IE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04g
V0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhF
IFNPRlRXQVJFLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAwNCwgSyBBIEZyYXNlcgorICovCisK
KyNpZm5kZWYgX19YRU5fUFVCTElDX1RNRU1fSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19UTUVN
X0hfXworCisjaW5jbHVkZSAieGVuLmgiCisKKy8qIHZlcnNpb24gb2YgQUJJICovCisjZGVmaW5l
IFRNRU1fU1BFQ19WRVJTSU9OICAgICAgICAgIDEKKworLyogQ29tbWFuZHMgdG8gSFlQRVJWSVNP
Ul90bWVtX29wKCkgKi8KKyNpZmRlZiBfX1hFTl9fCisjZGVmaW5lIFRNRU1fQ09OVFJPTCAgICAg
ICAgICAgICAgIDAgLyogTm93IGNhbGxlZCBYRU5fU1lTQ1RMX3RtZW1fb3AgKi8KKyNlbHNlCisj
dW5kZWYgVE1FTV9DT05UUk9MCisjZW5kaWYKKyNkZWZpbmUgVE1FTV9ORVdfUE9PTCAgICAgICAg
ICAgICAgMQorI2RlZmluZSBUTUVNX0RFU1RST1lfUE9PTCAgICAgICAgICAyCisjZGVmaW5lIFRN
RU1fUFVUX1BBR0UgICAgICAgICAgICAgIDQKKyNkZWZpbmUgVE1FTV9HRVRfUEFHRSAgICAgICAg
ICAgICAgNQorI2RlZmluZSBUTUVNX0ZMVVNIX1BBR0UgICAgICAgICAgICA2CisjZGVmaW5lIFRN
RU1fRkxVU0hfT0JKRUNUICAgICAgICAgIDcKKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9f
IDwgMHgwMDA0MDQwMAorI2RlZmluZSBUTUVNX05FV19QQUdFICAgICAgICAgICAgICAzCisjZGVm
aW5lIFRNRU1fUkVBRCAgICAgICAgICAgICAgICAgIDgKKyNkZWZpbmUgVE1FTV9XUklURSAgICAg
ICAgICAgICAgICAgOQorI2RlZmluZSBUTUVNX1hDSEcgICAgICAgICAgICAgICAgIDEwCisjZW5k
aWYKKworLyogUHJpdmlsZWdlZCBjb21tYW5kcyBub3cgY2FsbGVkIHZpYSBYRU5fU1lTQ1RMX3Rt
ZW1fb3AuICovCisjZGVmaW5lIFRNRU1fQVVUSCAgICAgICAgICAgICAgICAgMTAxIC8qIGFzIFhF
Tl9TWVNDVExfVE1FTV9PUF9TRVRfQVVUSC4gKi8KKyNkZWZpbmUgVE1FTV9SRVNUT1JFX05FVyAg
ICAgICAgICAxMDIgLyogYXMgWEVOX1NZU0NUTF9UTUVNX09QX1NFVF9QT09MLiAqLworCisvKiBC
aXRzIGZvciBIWVBFUlZJU09SX3RtZW1fb3AoVE1FTV9ORVdfUE9PTCkgKi8KKyNkZWZpbmUgVE1F
TV9QT09MX1BFUlNJU1QgICAgICAgICAgMQorI2RlZmluZSBUTUVNX1BPT0xfU0hBUkVEICAgICAg
ICAgICAyCisjZGVmaW5lIFRNRU1fUE9PTF9QUkVDT01QUkVTU0VEICAgIDQKKyNkZWZpbmUgVE1F
TV9QT09MX1BBR0VTSVpFX1NISUZUICAgNAorI2RlZmluZSBUTUVNX1BPT0xfUEFHRVNJWkVfTUFT
SyAgMHhmCisjZGVmaW5lIFRNRU1fUE9PTF9WRVJTSU9OX1NISUZUICAgMjQKKyNkZWZpbmUgVE1F
TV9QT09MX1ZFUlNJT05fTUFTSyAgMHhmZgorI2RlZmluZSBUTUVNX1BPT0xfUkVTRVJWRURfQklU
UyAgMHgwMGZmZmYwMAorCisvKiBCaXRzIGZvciBjbGllbnQgZmxhZ3MgKHNhdmUvcmVzdG9yZSkg
Ki8KKyNkZWZpbmUgVE1FTV9DTElFTlRfQ09NUFJFU1MgICAgICAgMQorI2RlZmluZSBUTUVNX0NM
SUVOVF9GUk9aRU4gICAgICAgICAyCisKKy8qIFNwZWNpYWwgZXJybm8gdmFsdWVzICovCisjZGVm
aW5lIEVGUk9aRU4gICAgICAgICAgICAgICAgIDEwMDAKKyNkZWZpbmUgRUVNUFRZICAgICAgICAg
ICAgICAgICAgMTAwMQorCitzdHJ1Y3QgeGVuX3RtZW1fb2lkIHsKKyAgICB1aW50NjRfdCBvaWRb
M107Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX3RtZW1fb2lkIHhlbl90bWVtX29pZF90OworREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3RtZW1fb2lkX3QpOworCisjaWZuZGVmIF9fQVNTRU1C
TFlfXworI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPCAweDAwMDQwNDAwCit0eXBlZGVm
IHhlbl9wZm5fdCB0bWVtX2NsaV9tZm5fdDsKKyNlbmRpZgordHlwZWRlZiBYRU5fR1VFU1RfSEFO
RExFKGNoYXIpIHRtZW1fY2xpX3ZhX3Q7CitzdHJ1Y3QgdG1lbV9vcCB7CisgICAgdWludDMyX3Qg
Y21kOworICAgIGludDMyX3QgcG9vbF9pZDsKKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCB7
CisgICAgICAgICAgICB1aW50NjRfdCB1dWlkWzJdOworICAgICAgICAgICAgdWludDMyX3QgZmxh
Z3M7CisgICAgICAgICAgICB1aW50MzJfdCBhcmcxOworICAgICAgICB9IGNyZWF0OyAvKiBmb3Ig
Y21kID09IFRNRU1fTkVXX1BPT0wuICovCisgICAgICAgIHN0cnVjdCB7CisjaWYgX19YRU5fSU5U
RVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAwNDA2MDAKKyAgICAgICAgICAgIHVpbnQ2NF90IG9pZFsz
XTsKKyNlbHNlCisgICAgICAgICAgICB4ZW5fdG1lbV9vaWRfdCBvaWQ7CisjZW5kaWYKKyAgICAg
ICAgICAgIHVpbnQzMl90IGluZGV4OworICAgICAgICAgICAgdWludDMyX3QgdG1lbV9vZmZzZXQ7
CisgICAgICAgICAgICB1aW50MzJfdCBwZm5fb2Zmc2V0OworICAgICAgICAgICAgdWludDMyX3Qg
bGVuOworICAgICAgICAgICAgeGVuX3Bmbl90IGNtZm47IC8qIGNsaWVudCBtYWNoaW5lIHBhZ2Ug
ZnJhbWUgKi8KKyAgICAgICAgfSBnZW47IC8qIGZvciBhbGwgb3RoZXIgY21kICgiZ2VuZXJpYyIp
ICovCisgICAgfSB1OworfTsKK3R5cGVkZWYgc3RydWN0IHRtZW1fb3AgdG1lbV9vcF90OworREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUodG1lbV9vcF90KTsKKyNlbmRpZgorCisjZW5kaWYgLyogX19Y
RU5fUFVCTElDX1RNRU1fSF9fICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2Rl
OiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFi
LXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0t
Z2l0IGEvaW5jbHVkZS94ZW4veHNtL3RyYWNlLmggYi9pbmNsdWRlL3hlbi94c20vdHJhY2UuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNzQ2YmZmCi0tLSAvZGV2L251bGwK
KysrIGIvaW5jbHVkZS94ZW4veHNtL3RyYWNlLmgKQEAgLTAsMCArMSwzMzkgQEAKKy8qKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKKyAqIGluY2x1ZGUvcHVibGljL3RyYWNlLmgKKyAqIAorICogUGVybWlz
c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0
YWluaW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVu
dGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0d2Fy
ZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQor
ICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0
ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFu
ZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVk
IHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBU
aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFs
bCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBv
ZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIs
IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElO
Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdF
TUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xE
RVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwg
QVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdB
UkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoK
KyAqIE1hcmsgV2lsbGlhbXNvbiwgKEMpIDIwMDQgSW50ZWwgUmVzZWFyY2ggQ2FtYnJpZGdlCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDUgQmluIFJlbgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElD
X1RSQUNFX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfVFJBQ0VfSF9fCisKKyNkZWZpbmUgVFJB
Q0VfRVhUUkFfTUFYICAgIDcKKyNkZWZpbmUgVFJBQ0VfRVhUUkFfU0hJRlQgMjgKKworLyogVHJh
Y2UgY2xhc3NlcyAqLworI2RlZmluZSBUUkNfQ0xTX1NISUZUIDE2CisjZGVmaW5lIFRSQ19HRU4g
ICAgICAweDAwMDFmMDAwICAgIC8qIEdlbmVyYWwgdHJhY2UgICAgICAgICAgICAqLworI2RlZmlu
ZSBUUkNfU0NIRUQgICAgMHgwMDAyZjAwMCAgICAvKiBYZW4gU2NoZWR1bGVyIHRyYWNlICAgICAg
Ki8KKyNkZWZpbmUgVFJDX0RPTTBPUCAgIDB4MDAwNGYwMDAgICAgLyogWGVuIERPTTAgb3BlcmF0
aW9uIHRyYWNlICovCisjZGVmaW5lIFRSQ19IVk0gICAgICAweDAwMDhmMDAwICAgIC8qIFhlbiBI
Vk0gdHJhY2UgICAgICAgICAgICAqLworI2RlZmluZSBUUkNfTUVNICAgICAgMHgwMDEwZjAwMCAg
ICAvKiBYZW4gbWVtb3J5IHRyYWNlICAgICAgICAgKi8KKyNkZWZpbmUgVFJDX1BWICAgICAgIDB4
MDAyMGYwMDAgICAgLyogWGVuIFBWIHRyYWNlcyAgICAgICAgICAgICovCisjZGVmaW5lIFRSQ19T
SEFET1cgICAweDAwNDBmMDAwICAgIC8qIFhlbiBzaGFkb3cgdHJhY2luZyAgICAgICAqLworI2Rl
ZmluZSBUUkNfSFcgICAgICAgMHgwMDgwZjAwMCAgICAvKiBYZW4gaGFyZHdhcmUtcmVsYXRlZCB0
cmFjZXMgKi8KKyNkZWZpbmUgVFJDX0dVRVNUICAgIDB4MDgwMGYwMDAgICAgLyogR3Vlc3QtZ2Vu
ZXJhdGVkIHRyYWNlcyAgICovCisjZGVmaW5lIFRSQ19BTEwgICAgICAweDBmZmZmMDAwCisjZGVm
aW5lIFRSQ19IRF9UT19FVkVOVCh4KSAoKHgpJjB4MGZmZmZmZmYpCisjZGVmaW5lIFRSQ19IRF9D
WUNMRV9GTEFHICgxVUw8PDMxKQorI2RlZmluZSBUUkNfSERfSU5DTFVERVNfQ1lDTEVfQ09VTlQo
eCkgKCAhISggKHgpICYgVFJDX0hEX0NZQ0xFX0ZMQUcgKSApCisjZGVmaW5lIFRSQ19IRF9FWFRS
QSh4KSAgICAoKCh4KT4+VFJBQ0VfRVhUUkFfU0hJRlQpJlRSQUNFX0VYVFJBX01BWCkKKworLyog
VHJhY2Ugc3ViY2xhc3NlcyAqLworI2RlZmluZSBUUkNfU1VCQ0xTX1NISUZUIDEyCisKKy8qIHRy
YWNlIHN1YmNsYXNzZXMgZm9yIFNWTSAqLworI2RlZmluZSBUUkNfSFZNX0VOVFJZRVhJVCAgIDB4
MDAwODEwMDAgICAvKiBWTUVOVFJZIGFuZCAjVk1FWElUICAgICAgICovCisjZGVmaW5lIFRSQ19I
Vk1fSEFORExFUiAgICAgMHgwMDA4MjAwMCAgIC8qIHZhcmlvdXMgSFZNIGhhbmRsZXJzICAgICAg
Ki8KKyNkZWZpbmUgVFJDX0hWTV9FTVVMICAgICAgICAweDAwMDg0MDAwICAgLyogZW11bGF0ZWQg
ZGV2aWNlcyAqLworCisjZGVmaW5lIFRSQ19TQ0hFRF9NSU4gICAgICAgMHgwMDAyMTAwMCAgIC8q
IEp1c3QgcnVuc3RhdGUgY2hhbmdlcyAqLworI2RlZmluZSBUUkNfU0NIRURfQ0xBU1MgICAgIDB4
MDAwMjIwMDAgICAvKiBTY2hlZHVsZXItc3BlY2lmaWMgICAgKi8KKyNkZWZpbmUgVFJDX1NDSEVE
X1ZFUkJPU0UgICAweDAwMDI4MDAwICAgLyogTW9yZSBpbmNsdXNpdmUgc2NoZWR1bGluZyAqLwor
CisvKgorICogVGhlIGhpZ2hlc3QgMyBiaXRzIG9mIHRoZSBsYXN0IDEyIGJpdHMgb2YgVFJDX1ND
SEVEX0NMQVNTIGFib3ZlIGFyZQorICogcmVzZXJ2ZWQgZm9yIGVuY29kaW5nIHdoYXQgc2NoZWR1
bGVyIHByb2R1Y2VkIHRoZSBpbmZvcm1hdGlvbi4gVGhlCisgKiBhY3R1YWwgZXZlbnQgaXMgZW5j
b2RlZCBpbiB0aGUgbGFzdCA5IGJpdHMuCisgKgorICogVGhpcyBtZWFucyB3ZSBoYXZlIDggc2No
ZWR1bGluZyBJRHMgYXZhaWxhYmxlICh3aGljaCBtZWFucyBhdCBtb3N0IDgKKyAqIHNjaGVkdWxl
cnMgZ2VuZXJhdGluZyBldmVudHMpIGFuZCwgaW4gZWFjaCBzY2hlZHVsZXIsIHVwIHRvIDUxMgor
ICogZGlmZmVyZW50IGV2ZW50cy4KKyAqLworI2RlZmluZSBUUkNfU0NIRURfSURfQklUUyAzCisj
ZGVmaW5lIFRSQ19TQ0hFRF9JRF9TSElGVCAoVFJDX1NVQkNMU19TSElGVCAtIFRSQ19TQ0hFRF9J
RF9CSVRTKQorI2RlZmluZSBUUkNfU0NIRURfSURfTUFTSyAoKCgxVUw8PFRSQ19TQ0hFRF9JRF9C
SVRTKSAtIDEpIDw8IFRSQ19TQ0hFRF9JRF9TSElGVCkKKyNkZWZpbmUgVFJDX1NDSEVEX0VWVF9N
QVNLICh+KFRSQ19TQ0hFRF9JRF9NQVNLKSkKKworLyogUGVyLXNjaGVkdWxlciBJRHMsIHRvIGlk
ZW50aWZ5IHNjaGVkdWxlciBzcGVjaWZpYyBldmVudHMgKi8KKyNkZWZpbmUgVFJDX1NDSEVEX0NT
Q0hFRCAgIDAKKyNkZWZpbmUgVFJDX1NDSEVEX0NTQ0hFRDIgIDEKKy8qICNkZWZpbmUgWEVOX1ND
SEVEVUxFUl9TRURGIDIgKFJlbW92ZWQpICovCisjZGVmaW5lIFRSQ19TQ0hFRF9BUklOQzY1MyAz
CisjZGVmaW5lIFRSQ19TQ0hFRF9SVERTICAgICA0CisjZGVmaW5lIFRSQ19TQ0hFRF9TTlVMTCAg
ICA1CisKKy8qIFBlci1zY2hlZHVsZXIgdHJhY2luZyAqLworI2RlZmluZSBUUkNfU0NIRURfQ0xB
U1NfRVZUKF9jLCBfZSkgXAorICAoICggVFJDX1NDSEVEX0NMQVNTIHwgXAorICAgICAgKChUUkNf
U0NIRURfIyNfYyA8PCBUUkNfU0NIRURfSURfU0hJRlQpICYgVFJDX1NDSEVEX0lEX01BU0spICkg
KyBcCisgICAgKF9lICYgVFJDX1NDSEVEX0VWVF9NQVNLKSApCisKKy8qIFRyYWNlIGNsYXNzZXMg
Zm9yIERPTTAgb3BlcmF0aW9ucyAqLworI2RlZmluZSBUUkNfRE9NMF9ET01PUFMgICAgIDB4MDAw
NDEwMDAgICAvKiBEb21haW5zIG1hbmlwdWxhdGlvbnMgKi8KKworLyogVHJhY2UgY2xhc3NlcyBm
b3IgSGFyZHdhcmUgKi8KKyNkZWZpbmUgVFJDX0hXX1BNICAgICAgICAgICAweDAwODAxMDAwICAg
LyogUG93ZXIgbWFuYWdlbWVudCB0cmFjZXMgKi8KKyNkZWZpbmUgVFJDX0hXX0lSUSAgICAgICAg
ICAweDAwODAyMDAwICAgLyogVHJhY2VzIHJlbGF0aW5nIHRvIHRoZSBoYW5kbGluZyBvZiBJUlFz
ICovCisKKy8qIFRyYWNlIGV2ZW50cyBwZXIgY2xhc3MgKi8KKyNkZWZpbmUgVFJDX0xPU1RfUkVD
T1JEUyAgICAgICAgKFRSQ19HRU4gKyAxKQorI2RlZmluZSBUUkNfVFJBQ0VfV1JBUF9CVUZGRVIg
IChUUkNfR0VOICsgMikKKyNkZWZpbmUgVFJDX1RSQUNFX0NQVV9DSEFOR0UgICAgKFRSQ19HRU4g
KyAzKQorCisjZGVmaW5lIFRSQ19TQ0hFRF9SVU5TVEFURV9DSEFOR0UgICAoVFJDX1NDSEVEX01J
TiArIDEpCisjZGVmaW5lIFRSQ19TQ0hFRF9DT05USU5VRV9SVU5OSU5HICAoVFJDX1NDSEVEX01J
TiArIDIpCisjZGVmaW5lIFRSQ19TQ0hFRF9ET01fQUREICAgICAgICAoVFJDX1NDSEVEX1ZFUkJP
U0UgKyAgMSkKKyNkZWZpbmUgVFJDX1NDSEVEX0RPTV9SRU0gICAgICAgIChUUkNfU0NIRURfVkVS
Qk9TRSArICAyKQorI2RlZmluZSBUUkNfU0NIRURfU0xFRVAgICAgICAgICAgKFRSQ19TQ0hFRF9W
RVJCT1NFICsgIDMpCisjZGVmaW5lIFRSQ19TQ0hFRF9XQUtFICAgICAgICAgICAoVFJDX1NDSEVE
X1ZFUkJPU0UgKyAgNCkKKyNkZWZpbmUgVFJDX1NDSEVEX1lJRUxEICAgICAgICAgIChUUkNfU0NI
RURfVkVSQk9TRSArICA1KQorI2RlZmluZSBUUkNfU0NIRURfQkxPQ0sgICAgICAgICAgKFRSQ19T
Q0hFRF9WRVJCT1NFICsgIDYpCisjZGVmaW5lIFRSQ19TQ0hFRF9TSFVURE9XTiAgICAgICAoVFJD
X1NDSEVEX1ZFUkJPU0UgKyAgNykKKyNkZWZpbmUgVFJDX1NDSEVEX0NUTCAgICAgICAgICAgIChU
UkNfU0NIRURfVkVSQk9TRSArICA4KQorI2RlZmluZSBUUkNfU0NIRURfQURKRE9NICAgICAgICAg
KFRSQ19TQ0hFRF9WRVJCT1NFICsgIDkpCisjZGVmaW5lIFRSQ19TQ0hFRF9TV0lUQ0ggICAgICAg
ICAoVFJDX1NDSEVEX1ZFUkJPU0UgKyAxMCkKKyNkZWZpbmUgVFJDX1NDSEVEX1NfVElNRVJfRk4g
ICAgIChUUkNfU0NIRURfVkVSQk9TRSArIDExKQorI2RlZmluZSBUUkNfU0NIRURfVF9USU1FUl9G
TiAgICAgKFRSQ19TQ0hFRF9WRVJCT1NFICsgMTIpCisjZGVmaW5lIFRSQ19TQ0hFRF9ET01fVElN
RVJfRk4gICAoVFJDX1NDSEVEX1ZFUkJPU0UgKyAxMykKKyNkZWZpbmUgVFJDX1NDSEVEX1NXSVRD
SF9JTkZQUkVWIChUUkNfU0NIRURfVkVSQk9TRSArIDE0KQorI2RlZmluZSBUUkNfU0NIRURfU1dJ
VENIX0lORk5FWFQgKFRSQ19TQ0hFRF9WRVJCT1NFICsgMTUpCisjZGVmaW5lIFRSQ19TQ0hFRF9T
SFVURE9XTl9DT0RFICAoVFJDX1NDSEVEX1ZFUkJPU0UgKyAxNikKKyNkZWZpbmUgVFJDX1NDSEVE
X1NXSVRDSF9JTkZDT05UIChUUkNfU0NIRURfVkVSQk9TRSArIDE3KQorCisjZGVmaW5lIFRSQ19E
T00wX0RPTV9BREQgICAgICAgICAoVFJDX0RPTTBfRE9NT1BTICsgMSkKKyNkZWZpbmUgVFJDX0RP
TTBfRE9NX1JFTSAgICAgICAgIChUUkNfRE9NMF9ET01PUFMgKyAyKQorCisjZGVmaW5lIFRSQ19N
RU1fUEFHRV9HUkFOVF9NQVAgICAgICAoVFJDX01FTSArIDEpCisjZGVmaW5lIFRSQ19NRU1fUEFH
RV9HUkFOVF9VTk1BUCAgICAoVFJDX01FTSArIDIpCisjZGVmaW5lIFRSQ19NRU1fUEFHRV9HUkFO
VF9UUkFOU0ZFUiAoVFJDX01FTSArIDMpCisjZGVmaW5lIFRSQ19NRU1fU0VUX1AyTV9FTlRSWSAg
ICAgICAoVFJDX01FTSArIDQpCisjZGVmaW5lIFRSQ19NRU1fREVDUkVBU0VfUkVTRVJWQVRJT04g
KFRSQ19NRU0gKyA1KQorI2RlZmluZSBUUkNfTUVNX1BPRF9QT1BVTEFURSAgICAgICAgKFRSQ19N
RU0gKyAxNikKKyNkZWZpbmUgVFJDX01FTV9QT0RfWkVST19SRUNMQUlNICAgIChUUkNfTUVNICsg
MTcpCisjZGVmaW5lIFRSQ19NRU1fUE9EX1NVUEVSUEFHRV9TUExJTlRFUiAoVFJDX01FTSArIDE4
KQorCisjZGVmaW5lIFRSQ19QVl9FTlRSWSAgIDB4MDAyMDEwMDAgLyogSHlwZXJ2aXNvciBlbnRy
eSBwb2ludHMgZm9yIFBWIGd1ZXN0cy4gKi8KKyNkZWZpbmUgVFJDX1BWX1NVQkNBTEwgMHgwMDIw
MjAwMCAvKiBTdWItY2FsbCBpbiBhIG11bHRpY2FsbCBoeXBlcmNhbGwgKi8KKworI2RlZmluZSBU
UkNfUFZfSFlQRVJDQUxMICAgICAgICAgICAgIChUUkNfUFZfRU5UUlkgKyAgMSkKKyNkZWZpbmUg
VFJDX1BWX1RSQVAgICAgICAgICAgICAgICAgICAoVFJDX1BWX0VOVFJZICsgIDMpCisjZGVmaW5l
IFRSQ19QVl9QQUdFX0ZBVUxUICAgICAgICAgICAgKFRSQ19QVl9FTlRSWSArICA0KQorI2RlZmlu
ZSBUUkNfUFZfRk9SQ0VEX0lOVkFMSURfT1AgICAgIChUUkNfUFZfRU5UUlkgKyAgNSkKKyNkZWZp
bmUgVFJDX1BWX0VNVUxBVEVfUFJJVk9QICAgICAgICAoVFJDX1BWX0VOVFJZICsgIDYpCisjZGVm
aW5lIFRSQ19QVl9FTVVMQVRFXzRHQiAgICAgICAgICAgKFRSQ19QVl9FTlRSWSArICA3KQorI2Rl
ZmluZSBUUkNfUFZfTUFUSF9TVEFURV9SRVNUT1JFICAgIChUUkNfUFZfRU5UUlkgKyAgOCkKKyNk
ZWZpbmUgVFJDX1BWX1BBR0lOR19GSVhVUCAgICAgICAgICAoVFJDX1BWX0VOVFJZICsgIDkpCisj
ZGVmaW5lIFRSQ19QVl9HRFRfTERUX01BUFBJTkdfRkFVTFQgKFRSQ19QVl9FTlRSWSArIDEwKQor
I2RlZmluZSBUUkNfUFZfUFRXUl9FTVVMQVRJT04gICAgICAgIChUUkNfUFZfRU5UUlkgKyAxMSkK
KyNkZWZpbmUgVFJDX1BWX1BUV1JfRU1VTEFUSU9OX1BBRSAgICAoVFJDX1BWX0VOVFJZICsgMTIp
CisjZGVmaW5lIFRSQ19QVl9IWVBFUkNBTExfVjIgICAgICAgICAgKFRSQ19QVl9FTlRSWSArIDEz
KQorI2RlZmluZSBUUkNfUFZfSFlQRVJDQUxMX1NVQkNBTEwgICAgIChUUkNfUFZfU1VCQ0FMTCAr
IDE0KQorCisvKgorICogVFJDX1BWX0hZUEVSQ0FMTF9WMiBmb3JtYXQKKyAqCisgKiBPbmx5IHNv
bWUgb2YgdGhlIGh5cGVyY2FsbCBhcmd1bWVudCBhcmUgcmVjb3JkZWQuIEJpdCBmaWVsZHMgQTAg
dG8KKyAqIEE1IGluIHRoZSBmaXJzdCBleHRyYSB3b3JkIGFyZSBzZXQgaWYgdGhlIGFyZ3VtZW50
IGlzIHByZXNlbnQgYW5kCisgKiB0aGUgYXJndW1lbnRzIHRoZW1zZWx2ZXMgYXJlIHBhY2tlZCBz
ZXF1ZW50aWFsbHkgaW4gdGhlIGZvbGxvd2luZworICogd29yZHMuCisgKgorICogVGhlIFRSQ182
NF9GTEFHIGJpdCBpcyBub3Qgc2V0IGZvciB0aGVzZSBldmVudHMgKGV2ZW4gaWYgdGhlcmUgYXJl
CisgKiA2NC1iaXQgYXJndW1lbnRzIGluIHRoZSByZWNvcmQpLgorICoKKyAqIFdvcmQKKyAqIDAg
ICAgYml0IDMxIDMwfDI5IDI4fDI3IDI2fDI1IDI0fDIzIDIyfDIxIDIwfDE5IC4uLiAwCisgKiAg
ICAgICAgICBBNSAgIHxBNCAgIHxBMyAgIHxBMiAgIHxBMSAgIHxBMCAgIHxIeXBlcmNhbGwgb3AK
KyAqIDEgICAgRmlyc3QgMzIgYml0IChvciBsb3cgd29yZCBvZiBmaXJzdCA2NCBiaXQpIGFyZyBp
biByZWNvcmQKKyAqIDIgICAgU2Vjb25kIDMyIGJpdCAob3IgaGlnaCB3b3JkIG9mIGZpcnN0IDY0
IGJpdCkgYXJnIGluIHJlY29yZAorICogLi4uCisgKgorICogQTAtQTUgYml0ZmllbGQgdmFsdWVz
OgorICoKKyAqICAgMDBiICBBcmd1bWVudCBub3QgcHJlc2VudAorICogICAwMWIgIDMyLWJpdCBh
cmd1bWVudCBwcmVzZW50CisgKiAgIDEwYiAgNjQtYml0IGFyZ3VtZW50IHByZXNlbnQKKyAqICAg
MTFiICBSZXNlcnZlZAorICovCisjZGVmaW5lIFRSQ19QVl9IWVBFUkNBTExfVjJfQVJHXzMyKGkp
ICgweDEgPDwgKDIwICsgMiooaSkpKQorI2RlZmluZSBUUkNfUFZfSFlQRVJDQUxMX1YyX0FSR182
NChpKSAoMHgyIDw8ICgyMCArIDIqKGkpKSkKKyNkZWZpbmUgVFJDX1BWX0hZUEVSQ0FMTF9WMl9B
UkdfTUFTSyAgKDB4ZmZmMDAwMDApCisKKyNkZWZpbmUgVFJDX1NIQURPV19OT1RfU0hBRE9XICAg
ICAgICAgICAgICAgICAoVFJDX1NIQURPVyArICAxKQorI2RlZmluZSBUUkNfU0hBRE9XX0ZBU1Rf
UFJPUEFHQVRFICAgICAgICAgICAgIChUUkNfU0hBRE9XICsgIDIpCisjZGVmaW5lIFRSQ19TSEFE
T1dfRkFTVF9NTUlPICAgICAgICAgICAgICAgICAgKFRSQ19TSEFET1cgKyAgMykKKyNkZWZpbmUg
VFJDX1NIQURPV19GQUxTRV9GQVNUX1BBVEggICAgICAgICAgICAoVFJDX1NIQURPVyArICA0KQor
I2RlZmluZSBUUkNfU0hBRE9XX01NSU8gICAgICAgICAgICAgICAgICAgICAgIChUUkNfU0hBRE9X
ICsgIDUpCisjZGVmaW5lIFRSQ19TSEFET1dfRklYVVAgICAgICAgICAgICAgICAgICAgICAgKFRS
Q19TSEFET1cgKyAgNikKKyNkZWZpbmUgVFJDX1NIQURPV19ET01GX0RZSU5HICAgICAgICAgICAg
ICAgICAoVFJDX1NIQURPVyArICA3KQorI2RlZmluZSBUUkNfU0hBRE9XX0VNVUxBVEUgICAgICAg
ICAgICAgICAgICAgIChUUkNfU0hBRE9XICsgIDgpCisjZGVmaW5lIFRSQ19TSEFET1dfRU1VTEFU
RV9VTlNIQURPV19VU0VSICAgICAgKFRSQ19TSEFET1cgKyAgOSkKKyNkZWZpbmUgVFJDX1NIQURP
V19FTVVMQVRFX1VOU0hBRE9XX0VWVElOSiAgICAoVFJDX1NIQURPVyArIDEwKQorI2RlZmluZSBU
UkNfU0hBRE9XX0VNVUxBVEVfVU5TSEFET1dfVU5IQU5ETEVEIChUUkNfU0hBRE9XICsgMTEpCisj
ZGVmaW5lIFRSQ19TSEFET1dfV1JNQVBfQkYgICAgICAgICAgICAgICAgICAgKFRSQ19TSEFET1cg
KyAxMikKKyNkZWZpbmUgVFJDX1NIQURPV19QUkVBTExPQ19VTlBJTiAgICAgICAgICAgICAoVFJD
X1NIQURPVyArIDEzKQorI2RlZmluZSBUUkNfU0hBRE9XX1JFU1lOQ19GVUxMICAgICAgICAgICAg
ICAgIChUUkNfU0hBRE9XICsgMTQpCisjZGVmaW5lIFRSQ19TSEFET1dfUkVTWU5DX09OTFkgICAg
ICAgICAgICAgICAgKFRSQ19TSEFET1cgKyAxNSkKKworLyogdHJhY2UgZXZlbnRzIHBlciBzdWJj
bGFzcyAqLworI2RlZmluZSBUUkNfSFZNX05FU1RFREZMQUcgICAgICAoMHg0MDApCisjZGVmaW5l
IFRSQ19IVk1fVk1FTlRSWSAgICAgICAgIChUUkNfSFZNX0VOVFJZRVhJVCArIDB4MDEpCisjZGVm
aW5lIFRSQ19IVk1fVk1FWElUICAgICAgICAgIChUUkNfSFZNX0VOVFJZRVhJVCArIDB4MDIpCisj
ZGVmaW5lIFRSQ19IVk1fVk1FWElUNjQgICAgICAgIChUUkNfSFZNX0VOVFJZRVhJVCArIFRSQ182
NF9GTEFHICsgMHgwMikKKyNkZWZpbmUgVFJDX0hWTV9QRl9YRU4gICAgICAgICAgKFRSQ19IVk1f
SEFORExFUiArIDB4MDEpCisjZGVmaW5lIFRSQ19IVk1fUEZfWEVONjQgICAgICAgIChUUkNfSFZN
X0hBTkRMRVIgKyBUUkNfNjRfRkxBRyArIDB4MDEpCisjZGVmaW5lIFRSQ19IVk1fUEZfSU5KRUNU
ICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDAyKQorI2RlZmluZSBUUkNfSFZNX1BGX0lOSkVD
VDY0ICAgICAoVFJDX0hWTV9IQU5ETEVSICsgVFJDXzY0X0ZMQUcgKyAweDAyKQorI2RlZmluZSBU
UkNfSFZNX0lOSl9FWEMgICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgwMykKKyNkZWZpbmUg
VFJDX0hWTV9JTkpfVklSUSAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MDQpCisjZGVmaW5l
IFRSQ19IVk1fUkVJTkpfVklSUSAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDA1KQorI2RlZmlu
ZSBUUkNfSFZNX0lPX1JFQUQgICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgwNikKKyNkZWZp
bmUgVFJDX0hWTV9JT19XUklURSAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MDcpCisjZGVm
aW5lIFRSQ19IVk1fQ1JfUkVBRCAgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDA4KQorI2Rl
ZmluZSBUUkNfSFZNX0NSX1JFQUQ2NCAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgVFJDXzY0X0ZM
QUcgKyAweDA4KQorI2RlZmluZSBUUkNfSFZNX0NSX1dSSVRFICAgICAgICAoVFJDX0hWTV9IQU5E
TEVSICsgMHgwOSkKKyNkZWZpbmUgVFJDX0hWTV9DUl9XUklURTY0ICAgICAgKFRSQ19IVk1fSEFO
RExFUiArIFRSQ182NF9GTEFHICsgMHgwOSkKKyNkZWZpbmUgVFJDX0hWTV9EUl9SRUFEICAgICAg
ICAgKFRSQ19IVk1fSEFORExFUiArIDB4MEEpCisjZGVmaW5lIFRSQ19IVk1fRFJfV1JJVEUgICAg
ICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDBCKQorI2RlZmluZSBUUkNfSFZNX01TUl9SRUFEICAg
ICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgwQykKKyNkZWZpbmUgVFJDX0hWTV9NU1JfV1JJVEUg
ICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MEQpCisjZGVmaW5lIFRSQ19IVk1fQ1BVSUQgICAg
ICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDBFKQorI2RlZmluZSBUUkNfSFZNX0lOVFIgICAg
ICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgwRikKKyNkZWZpbmUgVFJDX0hWTV9OTUkgICAg
ICAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MTApCisjZGVmaW5lIFRSQ19IVk1fU01JICAg
ICAgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDExKQorI2RlZmluZSBUUkNfSFZNX1ZNTUNB
TEwgICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgxMikKKyNkZWZpbmUgVFJDX0hWTV9ITFQg
ICAgICAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MTMpCisjZGVmaW5lIFRSQ19IVk1fSU5W
TFBHICAgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDE0KQorI2RlZmluZSBUUkNfSFZNX0lO
VkxQRzY0ICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgVFJDXzY0X0ZMQUcgKyAweDE0KQorI2Rl
ZmluZSBUUkNfSFZNX01DRSAgICAgICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgxNSkKKyNk
ZWZpbmUgVFJDX0hWTV9JT1BPUlRfUkVBRCAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MTYpCisj
ZGVmaW5lIFRSQ19IVk1fSU9NRU1fUkVBRCAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDE3KQor
I2RlZmluZSBUUkNfSFZNX0NMVFMgICAgICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgxOCkK
KyNkZWZpbmUgVFJDX0hWTV9MTVNXICAgICAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MTkp
CisjZGVmaW5lIFRSQ19IVk1fTE1TVzY0ICAgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyBUUkNf
NjRfRkxBRyArIDB4MTkpCisjZGVmaW5lIFRSQ19IVk1fUkRUU0MgICAgICAgICAgIChUUkNfSFZN
X0hBTkRMRVIgKyAweDFhKQorI2RlZmluZSBUUkNfSFZNX0lOVFJfV0lORE9XICAgICAoVFJDX0hW
TV9IQU5ETEVSICsgMHgyMCkKKyNkZWZpbmUgVFJDX0hWTV9OUEYgICAgICAgICAgICAgKFRSQ19I
Vk1fSEFORExFUiArIDB4MjEpCisjZGVmaW5lIFRSQ19IVk1fUkVBTE1PREVfRU1VTEFURSAoVFJD
X0hWTV9IQU5ETEVSICsgMHgyMikKKyNkZWZpbmUgVFJDX0hWTV9UUkFQICAgICAgICAgICAgIChU
UkNfSFZNX0hBTkRMRVIgKyAweDIzKQorI2RlZmluZSBUUkNfSFZNX1RSQVBfREVCVUcgICAgICAg
KFRSQ19IVk1fSEFORExFUiArIDB4MjQpCisjZGVmaW5lIFRSQ19IVk1fVkxBUElDICAgICAgICAg
ICAoVFJDX0hWTV9IQU5ETEVSICsgMHgyNSkKKworI2RlZmluZSBUUkNfSFZNX0lPUE9SVF9XUklU
RSAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgyMTYpCisjZGVmaW5lIFRSQ19IVk1fSU9NRU1fV1JJ
VEUgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDIxNykKKworLyogVHJhY2UgZXZlbnRzIGZvciBl
bXVsYXRlZCBkZXZpY2VzICovCisjZGVmaW5lIFRSQ19IVk1fRU1VTF9IUEVUX1NUQVJUX1RJTUVS
ICAoVFJDX0hWTV9FTVVMICsgMHgxKQorI2RlZmluZSBUUkNfSFZNX0VNVUxfUElUX1NUQVJUX1RJ
TUVSICAgKFRSQ19IVk1fRU1VTCArIDB4MikKKyNkZWZpbmUgVFJDX0hWTV9FTVVMX1JUQ19TVEFS
VF9USU1FUiAgIChUUkNfSFZNX0VNVUwgKyAweDMpCisjZGVmaW5lIFRSQ19IVk1fRU1VTF9MQVBJ
Q19TVEFSVF9USU1FUiAoVFJDX0hWTV9FTVVMICsgMHg0KQorI2RlZmluZSBUUkNfSFZNX0VNVUxf
SFBFVF9TVE9QX1RJTUVSICAgKFRSQ19IVk1fRU1VTCArIDB4NSkKKyNkZWZpbmUgVFJDX0hWTV9F
TVVMX1BJVF9TVE9QX1RJTUVSICAgIChUUkNfSFZNX0VNVUwgKyAweDYpCisjZGVmaW5lIFRSQ19I
Vk1fRU1VTF9SVENfU1RPUF9USU1FUiAgICAoVFJDX0hWTV9FTVVMICsgMHg3KQorI2RlZmluZSBU
UkNfSFZNX0VNVUxfTEFQSUNfU1RPUF9USU1FUiAgKFRSQ19IVk1fRU1VTCArIDB4OCkKKyNkZWZp
bmUgVFJDX0hWTV9FTVVMX1BJVF9USU1FUl9DQiAgICAgIChUUkNfSFZNX0VNVUwgKyAweDkpCisj
ZGVmaW5lIFRSQ19IVk1fRU1VTF9MQVBJQ19USU1FUl9DQiAgICAoVFJDX0hWTV9FTVVMICsgMHhB
KQorI2RlZmluZSBUUkNfSFZNX0VNVUxfUElDX0lOVF9PVVRQVVQgICAgKFRSQ19IVk1fRU1VTCAr
IDB4QikKKyNkZWZpbmUgVFJDX0hWTV9FTVVMX1BJQ19LSUNLICAgICAgICAgIChUUkNfSFZNX0VN
VUwgKyAweEMpCisjZGVmaW5lIFRSQ19IVk1fRU1VTF9QSUNfSU5UQUNLICAgICAgICAoVFJDX0hW
TV9FTVVMICsgMHhEKQorI2RlZmluZSBUUkNfSFZNX0VNVUxfUElDX1BPU0VER0UgICAgICAgKFRS
Q19IVk1fRU1VTCArIDB4RSkKKyNkZWZpbmUgVFJDX0hWTV9FTVVMX1BJQ19ORUdFREdFICAgICAg
IChUUkNfSFZNX0VNVUwgKyAweEYpCisjZGVmaW5lIFRSQ19IVk1fRU1VTF9QSUNfUEVORF9JUlFf
Q0FMTCAoVFJDX0hWTV9FTVVMICsgMHgxMCkKKyNkZWZpbmUgVFJDX0hWTV9FTVVMX0xBUElDX1BJ
Q19JTlRSICAgIChUUkNfSFZNX0VNVUwgKyAweDExKQorCisvKiB0cmFjZSBldmVudHMgZm9yIHBl
ciBjbGFzcyAqLworI2RlZmluZSBUUkNfUE1fRlJFUV9DSEFOR0UgICAgICAoVFJDX0hXX1BNICsg
MHgwMSkKKyNkZWZpbmUgVFJDX1BNX0lETEVfRU5UUlkgICAgICAgKFRSQ19IV19QTSArIDB4MDIp
CisjZGVmaW5lIFRSQ19QTV9JRExFX0VYSVQgICAgICAgIChUUkNfSFdfUE0gKyAweDAzKQorCisv
KiBUcmFjZSBldmVudHMgZm9yIElSUXMgKi8KKyNkZWZpbmUgVFJDX0hXX0lSUV9NT1ZFX0NMRUFO
VVBfREVMQVkgKFRSQ19IV19JUlEgKyAweDEpCisjZGVmaW5lIFRSQ19IV19JUlFfTU9WRV9DTEVB
TlVQICAgICAgIChUUkNfSFdfSVJRICsgMHgyKQorI2RlZmluZSBUUkNfSFdfSVJRX0JJTkRfVkVD
VE9SICAgICAgICAoVFJDX0hXX0lSUSArIDB4MykKKyNkZWZpbmUgVFJDX0hXX0lSUV9DTEVBUl9W
RUNUT1IgICAgICAgKFRSQ19IV19JUlEgKyAweDQpCisjZGVmaW5lIFRSQ19IV19JUlFfTU9WRV9G
SU5JU0ggICAgICAgIChUUkNfSFdfSVJRICsgMHg1KQorI2RlZmluZSBUUkNfSFdfSVJRX0FTU0lH
Tl9WRUNUT1IgICAgICAoVFJDX0hXX0lSUSArIDB4NikKKyNkZWZpbmUgVFJDX0hXX0lSUV9VTk1B
UFBFRF9WRUNUT1IgICAgKFRSQ19IV19JUlEgKyAweDcpCisjZGVmaW5lIFRSQ19IV19JUlFfSEFO
RExFRCAgICAgICAgICAgIChUUkNfSFdfSVJRICsgMHg4KQorCisvKgorICogRXZlbnQgRmxhZ3MK
KyAqCisgKiBTb21lIGV2ZW50cyAoZS5nLCBUUkNfUFZfVFJBUCBhbmQgVFJDX0hWTV9JT01FTV9S
RUFEKSBoYXZlIG11bHRpcGxlCisgKiByZWNvcmQgZm9ybWF0cy4gIFRoZXNlIGV2ZW50IGZsYWdz
IGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlCisgKiBkaWZmZXJlbnQgZm9ybWF0cy4KKyAqLworI2Rl
ZmluZSBUUkNfNjRfRkxBRyAweDEwMCAvKiBBZGRyZXNzZXMgYXJlIDY0IGJpdHMgKGluc3RlYWQg
b2YgMzIgYml0cykgKi8KKworLyogVGhpcyBzdHJ1Y3R1cmUgcmVwcmVzZW50cyBhIHNpbmdsZSB0
cmFjZSBidWZmZXIgcmVjb3JkLiAqLworc3RydWN0IHRfcmVjIHsKKyAgICB1aW50MzJfdCBldmVu
dDoyODsKKyAgICB1aW50MzJfdCBleHRyYV91MzI6MzsgICAgICAgICAvKiAjIGVudHJpZXMgaW4g
dHJhaWxpbmcgZXh0cmFfdTMyW10gYXJyYXkgKi8KKyAgICB1aW50MzJfdCBjeWNsZXNfaW5jbHVk
ZWQ6MTsgICAvKiB1LmN5Y2xlcyBvciB1Lm5vX2N5Y2xlcz8gKi8KKyAgICB1bmlvbiB7CisgICAg
ICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1aW50MzJfdCBjeWNsZXNfbG8sIGN5Y2xlc19oaTsg
LyogY3ljbGUgY291bnRlciB0aW1lc3RhbXAgKi8KKyAgICAgICAgICAgIHVpbnQzMl90IGV4dHJh
X3UzMls3XTsgICAgICAgICAvKiBldmVudCBkYXRhIGl0ZW1zICovCisgICAgICAgIH0gY3ljbGVz
OworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgdWludDMyX3QgZXh0cmFfdTMyWzddOyAg
ICAgICAgIC8qIGV2ZW50IGRhdGEgaXRlbXMgKi8KKyAgICAgICAgfSBub2N5Y2xlczsKKyAgICB9
IHU7Cit9OworCisvKgorICogVGhpcyBzdHJ1Y3R1cmUgY29udGFpbnMgdGhlIG1ldGFkYXRhIGZv
ciBhIHNpbmdsZSB0cmFjZSBidWZmZXIuICBUaGUgaGVhZAorICogZmllbGQsIGluZGV4ZXMgaW50
byBhbiBhcnJheSBvZiBzdHJ1Y3QgdF9yZWMncy4KKyAqLworc3RydWN0IHRfYnVmIHsKKyAgICAv
KiBBc3N1bWUgdGhlIGRhdGEgYnVmZmVyIHNpemUgaXMgWC4gIFggaXMgZ2VuZXJhbGx5IG5vdCBh
IHBvd2VyIG9mIDIuCisgICAgICogQ09OUyBhbmQgUFJPRCBhcmUgaW5jcmVtZW50ZWQgbW9kdWxv
ICgyKlgpOgorICAgICAqICAgICAwIDw9IGNvbnMgPCAyKlgKKyAgICAgKiAgICAgMCA8PSBwcm9k
IDwgMipYCisgICAgICogVGhpcyBpcyBkb25lIGJlY2F1c2UgYWRkaXRpb24gbW9kdWxvIFggYnJl
YWtzIGF0IDJeMzIgd2hlbiBYIGlzIG5vdCBhCisgICAgICogcG93ZXIgb2YgMjoKKyAgICAgKiAg
ICAgKCgoMl4zMiAtIDEpICUgWCkgKyAxKSAlIFggIT0gKDJeMzIpICUgWAorICAgICAqLworICAg
IHVpbnQzMl90IGNvbnM7ICAgLyogT2Zmc2V0IG9mIG5leHQgaXRlbSB0byBiZSBjb25zdW1lZCBi
eSBjb250cm9sIHRvb2xzLiAqLworICAgIHVpbnQzMl90IHByb2Q7ICAgLyogT2Zmc2V0IG9mIG5l
eHQgaXRlbSB0byBiZSBwcm9kdWNlZCBieSBYZW4uICAgICAgICAgICAqLworICAgIC8qICBSZWNv
cmRzIGZvbGxvdyBpbW1lZGlhdGVseSBhZnRlciB0aGUgbWV0YS1kYXRhIGhlYWRlci4gICAgKi8K
K307CisKKy8qIFN0cnVjdHVyZSB1c2VkIHRvIHBhc3MgTUZOcyB0byB0aGUgdHJhY2UgYnVmZmVy
cyBiYWNrIHRvIHRyYWNlIGNvbnN1bWVycy4KKyAqIE9mZnNldCBpcyBhbiBvZmZzZXQgaW50byB0
aGUgbWFwcGVkIHN0cnVjdHVyZSB3aGVyZSB0aGUgbWZuIGxpc3Qgd2lsbCBiZSBoZWxkLgorICog
TUZOcyB3aWxsIGJlIGF0ICgodW5zaWduZWQgbG9uZyAqKSh0X2luZm8pKSsodF9pbmZvLT5jcHVf
b2Zmc2V0W2NwdV0pLgorICovCitzdHJ1Y3QgdF9pbmZvIHsKKyAgICB1aW50MTZfdCB0YnVmX3Np
emU7IC8qIFNpemUgaW4gcGFnZXMgb2YgZWFjaCB0cmFjZSBidWZmZXIgKi8KKyAgICB1aW50MTZf
dCBtZm5fb2Zmc2V0W107ICAvKiBPZmZzZXQgd2l0aGluIHRfaW5mbyBzdHJ1Y3R1cmUgb2YgdGhl
IHBhZ2UgbGlzdCBwZXIgY3B1ICovCisgICAgLyogTUZOIGxpc3RzIGltbWVkaWF0ZWx5IGFmdGVy
IHRoZSBoZWFkZXIgKi8KK307CisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfVFJBQ0VfSF9fICov
CisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6
ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBpbmRlbnQt
dGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4veHNt
L3ZjcHUuaCBiL2luY2x1ZGUveGVuL3hzbS92Y3B1LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uOGE5ZTMwZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL3hzbS92
Y3B1LmgKQEAgLTAsMCArMSwyNDggQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIHZjcHUu
aAorICogCisgKiBWQ1BVIGluaXRpYWxpc2F0aW9uLCBxdWVyeSwgYW5kIGhvdHBsdWcuCisgKiAK
KyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg
cGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0
ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0
aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRh
dGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs
IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNv
ZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAq
IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6
CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu
b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg
cG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURF
RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJ
TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBO
T05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZ
UklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgor
ICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBP
VEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEgg
VEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZU
V0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDUsIEtlaXIgRnJhc2VyIDxrZWlyQHhlbnNv
dXJjZS5jb20+CisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfVkNQVV9IX18KKyNkZWZpbmUg
X19YRU5fUFVCTElDX1ZDUFVfSF9fCisKKyNpbmNsdWRlICJ4ZW4uaCIKKworLyoKKyAqIFByb3Rv
dHlwZSBmb3IgdGhpcyBoeXBlcmNhbGwgaXM6CisgKiAgbG9uZyB2Y3B1X29wKGludCBjbWQsIHVu
c2lnbmVkIGludCB2Y3B1aWQsIHZvaWQgKmV4dHJhX2FyZ3MpCisgKiBAY21kICAgICAgICA9PSBW
Q1BVT1BfPz8/IChWQ1BVIG9wZXJhdGlvbikuCisgKiBAdmNwdWlkICAgICA9PSBWQ1BVIHRvIG9w
ZXJhdGUgb24uCisgKiBAZXh0cmFfYXJncyA9PSBPcGVyYXRpb24tc3BlY2lmaWMgZXh0cmEgYXJn
dW1lbnRzIChOVUxMIGlmIG5vbmUpLgorICovCisKKy8qCisgKiBJbml0aWFsaXNlIGEgVkNQVS4g
RWFjaCBWQ1BVIGNhbiBiZSBpbml0aWFsaXNlZCBvbmx5IG9uY2UuIEEgCisgKiBuZXdseS1pbml0
aWFsaXNlZCBWQ1BVIHdpbGwgbm90IHJ1biB1bnRpbCBpdCBpcyBicm91Z2h0IHVwIGJ5IFZDUFVP
UF91cC4KKyAqIAorICogQGV4dHJhX2FyZyA9PSBGb3IgUFYgb3IgQVJNIGd1ZXN0cyB0aGlzIGlz
IGEgcG9pbnRlciB0byBhIHZjcHVfZ3Vlc3RfY29udGV4dAorICogICAgICAgICAgICAgICBzdHJ1
Y3R1cmUgY29udGFpbmluZyB0aGUgaW5pdGlhbCBzdGF0ZSBmb3IgdGhlIFZDUFUuIEZvciB4ODYK
KyAqICAgICAgICAgICAgICAgSFZNIGJhc2VkIGd1ZXN0cyB0aGlzIGlzIGEgcG9pbnRlciB0byBh
IHZjcHVfaHZtX2NvbnRleHQKKyAqICAgICAgICAgICAgICAgc3RydWN0dXJlLgorICovCisjZGVm
aW5lIFZDUFVPUF9pbml0aWFsaXNlICAgICAgICAgICAgMAorCisvKgorICogQnJpbmcgdXAgYSBW
Q1BVLiBUaGlzIG1ha2VzIHRoZSBWQ1BVIHJ1bm5hYmxlLiBUaGlzIG9wZXJhdGlvbiB3aWxsIGZh
aWwKKyAqIGlmIHRoZSBWQ1BVIGhhcyBub3QgYmVlbiBpbml0aWFsaXNlZCAoVkNQVU9QX2luaXRp
YWxpc2UpLgorICovCisjZGVmaW5lIFZDUFVPUF91cCAgICAgICAgICAgICAgICAgICAgMQorCisv
KgorICogQnJpbmcgZG93biBhIFZDUFUgKGkuZS4sIG1ha2UgaXQgbm9uLXJ1bm5hYmxlKS4KKyAq
IFRoZXJlIGFyZSBhIGZldyBjYXZlYXRzIHRoYXQgY2FsbGVycyBzaG91bGQgb2JzZXJ2ZToKKyAq
ICAxLiBUaGlzIG9wZXJhdGlvbiBtYXkgcmV0dXJuLCBhbmQgVkNQVV9pc191cCBtYXkgcmV0dXJu
IGZhbHNlLCBiZWZvcmUgdGhlCisgKiAgICAgVkNQVSBzdG9wcyBydW5uaW5nIChpLmUuLCB0aGUg
Y29tbWFuZCBpcyBhc3luY2hyb25vdXMpLiBJdCBpcyBhIGdvb2QKKyAqICAgICBpZGVhIHRvIGVu
c3VyZSB0aGF0IHRoZSBWQ1BVIGhhcyBlbnRlcmVkIGEgbm9uLWNyaXRpY2FsIGxvb3AgYmVmb3Jl
CisgKiAgICAgYnJpbmdpbmcgaXQgZG93bi4gQWx0ZXJuYXRpdmVseSwgdGhpcyBvcGVyYXRpb24g
aXMgZ3VhcmFudGVlZAorICogICAgIHN5bmNocm9ub3VzIGlmIGludm9rZWQgYnkgdGhlIFZDUFUg
aXRzZWxmLgorICogIDIuIEFmdGVyIGEgVkNQVSBpcyBpbml0aWFsaXNlZCwgdGhlcmUgaXMgY3Vy
cmVudGx5IG5vIHdheSB0byBkcm9wIGFsbCBpdHMKKyAqICAgICByZWZlcmVuY2VzIHRvIGRvbWFp
biBtZW1vcnkuIEV2ZW4gYSBWQ1BVIHRoYXQgaXMgZG93biBzdGlsbCBob2xkcworICogICAgIG1l
bW9yeSByZWZlcmVuY2VzIHZpYSBpdHMgcGFnZXRhYmxlIGJhc2UgcG9pbnRlciBhbmQgR0RULiBJ
dCBpcyBnb29kCisgKiAgICAgcHJhY3Rpc2UgdG8gbW92ZSBhIFZDUFUgb250byBhbiAnaWRsZScg
b3IgZGVmYXVsdCBwYWdlIHRhYmxlLCBMRFQgYW5kCisgKiAgICAgR0RUIGJlZm9yZSBicmluZ2lu
ZyBpdCBkb3duLgorICovCisjZGVmaW5lIFZDUFVPUF9kb3duICAgICAgICAgICAgICAgICAgMgor
CisvKiBSZXR1cm5zIDEgaWYgdGhlIGdpdmVuIFZDUFUgaXMgdXAuICovCisjZGVmaW5lIFZDUFVP
UF9pc191cCAgICAgICAgICAgICAgICAgMworCisvKgorICogUmV0dXJuIGluZm9ybWF0aW9uIGFi
b3V0IHRoZSBzdGF0ZSBhbmQgcnVubmluZyB0aW1lIG9mIGEgVkNQVS4KKyAqIEBleHRyYV9hcmcg
PT0gcG9pbnRlciB0byB2Y3B1X3J1bnN0YXRlX2luZm8gc3RydWN0dXJlLgorICovCisjZGVmaW5l
IFZDUFVPUF9nZXRfcnVuc3RhdGVfaW5mbyAgICAgNAorc3RydWN0IHZjcHVfcnVuc3RhdGVfaW5m
byB7CisgICAgLyogVkNQVSdzIGN1cnJlbnQgc3RhdGUgKFJVTlNUQVRFXyopLiAqLworICAgIGlu
dCAgICAgIHN0YXRlOworICAgIC8qIFdoZW4gd2FzIGN1cnJlbnQgc3RhdGUgZW50ZXJlZCAoc3lz
dGVtIHRpbWUsIG5zKT8gKi8KKyAgICB1aW50NjRfdCBzdGF0ZV9lbnRyeV90aW1lOworICAgIC8q
CisgICAgICogVXBkYXRlIGluZGljYXRvciBzZXQgaW4gc3RhdGVfZW50cnlfdGltZToKKyAgICAg
KiBXaGVuIGFjdGl2YXRlZCB2aWEgVk1BU1NUX1RZUEVfcnVuc3RhdGVfdXBkYXRlX2ZsYWcsIHNl
dCBkdXJpbmcKKyAgICAgKiB1cGRhdGVzIGluIGd1ZXN0IG1lbW9yeSBtYXBwZWQgY29weSBvZiB2
Y3B1X3J1bnN0YXRlX2luZm8uCisgICAgICovCisjZGVmaW5lIFhFTl9SVU5TVEFURV9VUERBVEUg
ICAgICAgICAgKHhlbl9ta191bGxvbmcoMSkgPDwgNjMpCisgICAgLyoKKyAgICAgKiBUaW1lIHNw
ZW50IGluIGVhY2ggUlVOU1RBVEVfKiAobnMpLiBUaGUgc3VtIG9mIHRoZXNlIHRpbWVzIGlzCisg
ICAgICogZ3VhcmFudGVlZCBub3QgdG8gZHJpZnQgZnJvbSBzeXN0ZW0gdGltZS4KKyAgICAgKi8K
KyAgICB1aW50NjRfdCB0aW1lWzRdOworfTsKK3R5cGVkZWYgc3RydWN0IHZjcHVfcnVuc3RhdGVf
aW5mbyB2Y3B1X3J1bnN0YXRlX2luZm9fdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHZjcHVf
cnVuc3RhdGVfaW5mb190KTsKKworLyogVkNQVSBpcyBjdXJyZW50bHkgcnVubmluZyBvbiBhIHBo
eXNpY2FsIENQVS4gKi8KKyNkZWZpbmUgUlVOU1RBVEVfcnVubmluZyAgMAorCisvKiBWQ1BVIGlz
IHJ1bm5hYmxlLCBidXQgbm90IGN1cnJlbnRseSBzY2hlZHVsZWQgb24gYW55IHBoeXNpY2FsIENQ
VS4gKi8KKyNkZWZpbmUgUlVOU1RBVEVfcnVubmFibGUgMQorCisvKiBWQ1BVIGlzIGJsb2NrZWQg
KGEuay5hLiBpZGxlKS4gSXQgaXMgdGhlcmVmb3JlIG5vdCBydW5uYWJsZS4gKi8KKyNkZWZpbmUg
UlVOU1RBVEVfYmxvY2tlZCAgMgorCisvKgorICogVkNQVSBpcyBub3QgcnVubmFibGUsIGJ1dCBp
dCBpcyBub3QgYmxvY2tlZC4KKyAqIFRoaXMgaXMgYSAnY2F0Y2ggYWxsJyBzdGF0ZSBmb3IgdGhp
bmdzIGxpa2UgaG90cGx1ZyBhbmQgcGF1c2VzIGJ5IHRoZQorICogc3lzdGVtIGFkbWluaXN0cmF0
b3IgKG9yIGZvciBjcml0aWNhbCBzZWN0aW9ucyBpbiB0aGUgaHlwZXJ2aXNvcikuCisgKiBSVU5T
VEFURV9ibG9ja2VkIGRvbWluYXRlcyB0aGlzIHN0YXRlIChpdCBpcyB0aGUgcHJlZmVycmVkIHN0
YXRlKS4KKyAqLworI2RlZmluZSBSVU5TVEFURV9vZmZsaW5lICAzCisKKy8qCisgKiBSZWdpc3Rl
ciBhIHNoYXJlZCBtZW1vcnkgYXJlYSBmcm9tIHdoaWNoIHRoZSBndWVzdCBtYXkgb2J0YWluIGl0
cyBvd24KKyAqIHJ1bnN0YXRlIGluZm9ybWF0aW9uIHdpdGhvdXQgbmVlZGluZyB0byBleGVjdXRl
IGEgaHlwZXJjYWxsLgorICogTm90ZXM6CisgKiAgMS4gVGhlIHJlZ2lzdGVyZWQgYWRkcmVzcyBt
YXkgYmUgdmlydHVhbCBvciBwaHlzaWNhbCBvciBndWVzdCBoYW5kbGUsCisgKiAgICAgZGVwZW5k
aW5nIG9uIHRoZSBwbGF0Zm9ybS4gVmlydHVhbCBhZGRyZXNzIG9yIGd1ZXN0IGhhbmRsZSBzaG91
bGQgYmUKKyAqICAgICByZWdpc3RlcmVkIG9uIHg4NiBzeXN0ZW1zLgorICogIDIuIE9ubHkgb25l
IHNoYXJlZCBhcmVhIG1heSBiZSByZWdpc3RlcmVkIHBlciBWQ1BVLiBUaGUgc2hhcmVkIGFyZWEg
aXMKKyAqICAgICB1cGRhdGVkIGJ5IHRoZSBoeXBlcnZpc29yIGVhY2ggdGltZSB0aGUgVkNQVSBp
cyBzY2hlZHVsZWQuIFRodXMKKyAqICAgICBydW5zdGF0ZS5zdGF0ZSB3aWxsIGFsd2F5cyBiZSBS
VU5TVEFURV9ydW5uaW5nIGFuZAorICogICAgIHJ1bnN0YXRlLnN0YXRlX2VudHJ5X3RpbWUgd2ls
bCBpbmRpY2F0ZSB0aGUgc3lzdGVtIHRpbWUgYXQgd2hpY2ggdGhlCisgKiAgICAgVkNQVSB3YXMg
bGFzdCBzY2hlZHVsZWQgdG8gcnVuLgorICogQGV4dHJhX2FyZyA9PSBwb2ludGVyIHRvIHZjcHVf
cmVnaXN0ZXJfcnVuc3RhdGVfbWVtb3J5X2FyZWEgc3RydWN0dXJlLgorICovCisjZGVmaW5lIFZD
UFVPUF9yZWdpc3Rlcl9ydW5zdGF0ZV9tZW1vcnlfYXJlYSA1CitzdHJ1Y3QgdmNwdV9yZWdpc3Rl
cl9ydW5zdGF0ZV9tZW1vcnlfYXJlYSB7CisgICAgdW5pb24geworICAgICAgICBYRU5fR1VFU1Rf
SEFORExFKHZjcHVfcnVuc3RhdGVfaW5mb190KSBoOworICAgICAgICBzdHJ1Y3QgdmNwdV9ydW5z
dGF0ZV9pbmZvICp2OworICAgICAgICB1aW50NjRfdCBwOworICAgIH0gYWRkcjsKK307Cit0eXBl
ZGVmIHN0cnVjdCB2Y3B1X3JlZ2lzdGVyX3J1bnN0YXRlX21lbW9yeV9hcmVhIHZjcHVfcmVnaXN0
ZXJfcnVuc3RhdGVfbWVtb3J5X2FyZWFfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHZjcHVf
cmVnaXN0ZXJfcnVuc3RhdGVfbWVtb3J5X2FyZWFfdCk7CisKKy8qCisgKiBTZXQgb3Igc3RvcCBh
IFZDUFUncyBwZXJpb2RpYyB0aW1lci4gRXZlcnkgVkNQVSBoYXMgb25lIHBlcmlvZGljIHRpbWVy
CisgKiB3aGljaCBjYW4gYmUgc2V0IHZpYSB0aGVzZSBjb21tYW5kcy4gUGVyaW9kcyBzbWFsbGVy
IHRoYW4gb25lIG1pbGxpc2Vjb25kCisgKiBtYXkgbm90IGJlIHN1cHBvcnRlZC4KKyAqLworI2Rl
ZmluZSBWQ1BVT1Bfc2V0X3BlcmlvZGljX3RpbWVyICAgIDYgLyogYXJnID09IHZjcHVfc2V0X3Bl
cmlvZGljX3RpbWVyX3QgKi8KKyNkZWZpbmUgVkNQVU9QX3N0b3BfcGVyaW9kaWNfdGltZXIgICA3
IC8qIGFyZyA9PSBOVUxMICovCitzdHJ1Y3QgdmNwdV9zZXRfcGVyaW9kaWNfdGltZXIgeworICAg
IHVpbnQ2NF90IHBlcmlvZF9uczsKK307Cit0eXBlZGVmIHN0cnVjdCB2Y3B1X3NldF9wZXJpb2Rp
Y190aW1lciB2Y3B1X3NldF9wZXJpb2RpY190aW1lcl90OworREVGSU5FX1hFTl9HVUVTVF9IQU5E
TEUodmNwdV9zZXRfcGVyaW9kaWNfdGltZXJfdCk7CisKKy8qCisgKiBTZXQgb3Igc3RvcCBhIFZD
UFUncyBzaW5nbGUtc2hvdCB0aW1lci4gRXZlcnkgVkNQVSBoYXMgb25lIHNpbmdsZS1zaG90Cisg
KiB0aW1lciB3aGljaCBjYW4gYmUgc2V0IHZpYSB0aGVzZSBjb21tYW5kcy4KKyAqLworI2RlZmlu
ZSBWQ1BVT1Bfc2V0X3NpbmdsZXNob3RfdGltZXIgIDggLyogYXJnID09IHZjcHVfc2V0X3Npbmds
ZXNob3RfdGltZXJfdCAqLworI2RlZmluZSBWQ1BVT1Bfc3RvcF9zaW5nbGVzaG90X3RpbWVyIDkg
LyogYXJnID09IE5VTEwgKi8KK3N0cnVjdCB2Y3B1X3NldF9zaW5nbGVzaG90X3RpbWVyIHsKKyAg
ICB1aW50NjRfdCB0aW1lb3V0X2Fic19uczsgICAvKiBBYnNvbHV0ZSBzeXN0ZW0gdGltZSB2YWx1
ZSBpbiBuYW5vc2Vjb25kcy4gKi8KKyAgICB1aW50MzJfdCBmbGFnczsgICAgICAgICAgICAvKiBW
Q1BVX1NTSE9UVE1SXz8/PyAqLworfTsKK3R5cGVkZWYgc3RydWN0IHZjcHVfc2V0X3NpbmdsZXNo
b3RfdGltZXIgdmNwdV9zZXRfc2luZ2xlc2hvdF90aW1lcl90OworREVGSU5FX1hFTl9HVUVTVF9I
QU5ETEUodmNwdV9zZXRfc2luZ2xlc2hvdF90aW1lcl90KTsKKworLyogRmxhZ3MgdG8gVkNQVU9Q
X3NldF9zaW5nbGVzaG90X3RpbWVyLiAqLworIC8qIFJlcXVpcmUgdGhlIHRpbWVvdXQgdG8gYmUg
aW4gdGhlIGZ1dHVyZSAocmV0dXJuIC1FVElNRSBpZiBpdCdzIHBhc3NlZCkuICovCisjZGVmaW5l
IF9WQ1BVX1NTSE9UVE1SX2Z1dHVyZSAoMCkKKyNkZWZpbmUgVkNQVV9TU0hPVFRNUl9mdXR1cmUg
ICgxVSA8PCBfVkNQVV9TU0hPVFRNUl9mdXR1cmUpCisKKy8qIAorICogUmVnaXN0ZXIgYSBtZW1v
cnkgbG9jYXRpb24gaW4gdGhlIGd1ZXN0IGFkZHJlc3Mgc3BhY2UgZm9yIHRoZQorICogdmNwdV9p
bmZvIHN0cnVjdHVyZS4gIFRoaXMgYWxsb3dzIHRoZSBndWVzdCB0byBwbGFjZSB0aGUgdmNwdV9p
bmZvCisgKiBzdHJ1Y3R1cmUgaW4gYSBjb252ZW5pZW50IHBsYWNlLCBzdWNoIGFzIGluIGEgcGVy
LWNwdSBkYXRhIGFyZWEuCisgKiBUaGUgcG9pbnRlciBuZWVkIG5vdCBiZSBwYWdlIGFsaWduZWQs
IGJ1dCB0aGUgc3RydWN0dXJlIG11c3Qgbm90CisgKiBjcm9zcyBhIHBhZ2UgYm91bmRhcnkuCisg
KgorICogVGhpcyBtYXkgYmUgY2FsbGVkIG9ubHkgb25jZSBwZXIgdmNwdS4KKyAqLworI2RlZmlu
ZSBWQ1BVT1BfcmVnaXN0ZXJfdmNwdV9pbmZvICAgMTAgIC8qIGFyZyA9PSB2Y3B1X3JlZ2lzdGVy
X3ZjcHVfaW5mb190ICovCitzdHJ1Y3QgdmNwdV9yZWdpc3Rlcl92Y3B1X2luZm8geworICAgIHVp
bnQ2NF90IG1mbjsgICAgLyogbWZuIG9mIHBhZ2UgdG8gcGxhY2UgdmNwdV9pbmZvICovCisgICAg
dWludDMyX3Qgb2Zmc2V0OyAvKiBvZmZzZXQgd2l0aGluIHBhZ2UgKi8KKyAgICB1aW50MzJfdCBy
c3ZkOyAgIC8qIHVudXNlZCAqLworfTsKK3R5cGVkZWYgc3RydWN0IHZjcHVfcmVnaXN0ZXJfdmNw
dV9pbmZvIHZjcHVfcmVnaXN0ZXJfdmNwdV9pbmZvX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRM
RSh2Y3B1X3JlZ2lzdGVyX3ZjcHVfaW5mb190KTsKKworLyogU2VuZCBhbiBOTUkgdG8gdGhlIHNw
ZWNpZmllZCBWQ1BVLiBAZXh0cmFfYXJnID09IE5VTEwuICovCisjZGVmaW5lIFZDUFVPUF9zZW5k
X25taSAgICAgICAgICAgICAxMQorCisvKiAKKyAqIEdldCB0aGUgcGh5c2ljYWwgSUQgaW5mb3Jt
YXRpb24gZm9yIGEgcGlubmVkIHZjcHUncyB1bmRlcmx5aW5nIHBoeXNpY2FsCisgKiBwcm9jZXNz
b3IuICBUaGUgcGh5c2ljYWwgSUQgaW5mb3JtbWF0aW9uIGlzIGFyY2hpdGVjdHVyZS1zcGVjaWZp
Yy4KKyAqIE9uIHg4NjogaWRbMzE6MF09YXBpY19pZCwgaWRbNjM6MzJdPWFjcGlfaWQuCisgKiBU
aGlzIGNvbW1hbmQgcmV0dXJucyAtRUlOVkFMIGlmIGl0IGlzIG5vdCBhIHZhbGlkIG9wZXJhdGlv
biBmb3IgdGhpcyBWQ1BVLgorICovCisjZGVmaW5lIFZDUFVPUF9nZXRfcGh5c2lkICAgICAgICAg
ICAxMiAvKiBhcmcgPT0gdmNwdV9nZXRfcGh5c2lkX3QgKi8KK3N0cnVjdCB2Y3B1X2dldF9waHlz
aWQgeworICAgIHVpbnQ2NF90IHBoeXNfaWQ7Cit9OwordHlwZWRlZiBzdHJ1Y3QgdmNwdV9nZXRf
cGh5c2lkIHZjcHVfZ2V0X3BoeXNpZF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUodmNwdV9n
ZXRfcGh5c2lkX3QpOworI2RlZmluZSB4ZW5fdmNwdV9waHlzaWRfdG9feDg2X2FwaWNpZChwaHlz
aWQpICgodWludDMyX3QpKHBoeXNpZCkpCisjZGVmaW5lIHhlbl92Y3B1X3BoeXNpZF90b194ODZf
YWNwaWlkKHBoeXNpZCkgKCh1aW50MzJfdCkoKHBoeXNpZCkgPj4gMzIpKQorCisvKiAKKyAqIFJl
Z2lzdGVyIGEgbWVtb3J5IGxvY2F0aW9uIHRvIGdldCBhIHNlY29uZGFyeSBjb3B5IG9mIHRoZSB2
Y3B1IHRpbWUKKyAqIHBhcmFtZXRlcnMuICBUaGUgbWFzdGVyIGNvcHkgc3RpbGwgZXhpc3RzIGFz
IHBhcnQgb2YgdGhlIHZjcHUgc2hhcmVkCisgKiBtZW1vcnkgYXJlYSwgYW5kIHRoaXMgc2Vjb25k
YXJ5IGNvcHkgaXMgdXBkYXRlZCB3aGVuZXZlciB0aGUgbWFzdGVyIGNvcHkKKyAqIGlzIHVwZGF0
ZWQgKGFuZCB1c2luZyB0aGUgc2FtZSB2ZXJzaW9uaW5nIHNjaGVtZSBmb3Igc3luY2hyb25pc2F0
aW9uKS4KKyAqCisgKiBUaGUgaW50ZW50IGlzIHRoYXQgdGhpcyBjb3B5IG1heSBiZSBtYXBwZWQg
KFJPKSBpbnRvIHVzZXJzcGFjZSBzbworICogdGhhdCB1c2VybW9kZSBjYW4gY29tcHV0ZSBzeXN0
ZW0gdGltZSB1c2luZyB0aGUgdGltZSBpbmZvIGFuZCB0aGUKKyAqIHRzYy4gIFVzZXJtb2RlIHdp
bGwgc2VlIGFuIGFycmF5IG9mIHZjcHVfdGltZV9pbmZvIHN0cnVjdHVyZXMsIG9uZQorICogZm9y
IGVhY2ggdmNwdSwgYW5kIGNob29zZSB0aGUgcmlnaHQgb25lIGJ5IGFuIGV4aXN0aW5nIG1lY2hh
bmlzbQorICogd2hpY2ggYWxsb3dzIGl0IHRvIGdldCB0aGUgY3VycmVudCB2Y3B1IG51bWJlciAo
c3VjaCBhcyB2aWEgYQorICogc2VnbWVudCBsaW1pdCkuICBJdCBjYW4gdGhlbiBhcHBseSB0aGUg
bm9ybWFsIGFsZ29yaXRobSB0byBjb21wdXRlCisgKiBzeXN0ZW0gdGltZSBmcm9tIHRoZSB0c2Mu
CisgKgorICogQGV4dHJhX2FyZyA9PSBwb2ludGVyIHRvIHZjcHVfcmVnaXN0ZXJfdGltZV9pbmZv
X21lbW9yeV9hcmVhIHN0cnVjdHVyZS4KKyAqLworI2RlZmluZSBWQ1BVT1BfcmVnaXN0ZXJfdmNw
dV90aW1lX21lbW9yeV9hcmVhICAgMTMKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHZjcHVfdGlt
ZV9pbmZvX3QpOworc3RydWN0IHZjcHVfcmVnaXN0ZXJfdGltZV9tZW1vcnlfYXJlYSB7CisgICAg
dW5pb24geworICAgICAgICBYRU5fR1VFU1RfSEFORExFKHZjcHVfdGltZV9pbmZvX3QpIGg7Cisg
ICAgICAgIHN0cnVjdCB2Y3B1X3RpbWVfaW5mbyAqdjsKKyAgICAgICAgdWludDY0X3QgcDsKKyAg
ICB9IGFkZHI7Cit9OwordHlwZWRlZiBzdHJ1Y3QgdmNwdV9yZWdpc3Rlcl90aW1lX21lbW9yeV9h
cmVhIHZjcHVfcmVnaXN0ZXJfdGltZV9tZW1vcnlfYXJlYV90OworREVGSU5FX1hFTl9HVUVTVF9I
QU5ETEUodmNwdV9yZWdpc3Rlcl90aW1lX21lbW9yeV9hcmVhX3QpOworCisjZW5kaWYgLyogX19Y
RU5fUFVCTElDX1ZDUFVfSF9fICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2Rl
OiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFi
LXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0t
Z2l0IGEvaW5jbHVkZS94ZW4veHNtL3ZlcnNpb24uaCBiL2luY2x1ZGUveGVuL3hzbS92ZXJzaW9u
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2I4NDU2NQotLS0gL2Rldi9u
dWxsCisrKyBiL2luY2x1ZGUveGVuL3hzbS92ZXJzaW9uLmgKQEAgLTAsMCArMSwxMTYgQEAKKy8q
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyAqIHZlcnNpb24uaAorICogCisgKiBYZW4gdmVyc2lvbiwg
dHlwZSwgYW5kIGNvbXBpbGUgaW5mb3JtYXRpb24uCisgKiAKKyAqIFBlcm1pc3Npb24gaXMgaGVy
ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNv
cHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxl
cyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCBy
ZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0
byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vu
c2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0
IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywg
c3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNv
cHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVk
ZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3
YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdB
UlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVU
IE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFC
TEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVS
IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAq
IEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBV
U0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmln
aHQgKGMpIDIwMDUsIE5ndXllbiBBbmggUXV5bmggPGFxdXluaEBnbWFpbC5jb20+CisgKiBDb3B5
cmlnaHQgKGMpIDIwMDUsIEtlaXIgRnJhc2VyIDxrZWlyQHhlbnNvdXJjZS5jb20+CisgKi8KKwor
I2lmbmRlZiBfX1hFTl9QVUJMSUNfVkVSU0lPTl9IX18KKyNkZWZpbmUgX19YRU5fUFVCTElDX1ZF
UlNJT05fSF9fCisKKyNpbmNsdWRlICJ4ZW4uaCIKKworLyogTkIuIEFsbCBvcHMgcmV0dXJuIHpl
cm8gb24gc3VjY2VzcywgZXhjZXB0IFhFTlZFUl97dmVyc2lvbixwYWdlc2l6ZX0KKyAqIFhFTlZF
Ul97dmVyc2lvbixwYWdlc2l6ZSxidWlsZF9pZH0gKi8KKworLyogYXJnID09IE5VTEw7IHJldHVy
bnMgbWFqb3I6bWlub3IgKDE2OjE2KS4gKi8KKyNkZWZpbmUgWEVOVkVSX3ZlcnNpb24gICAgICAw
CisKKy8qIGFyZyA9PSB4ZW5fZXh0cmF2ZXJzaW9uX3QuICovCisjZGVmaW5lIFhFTlZFUl9leHRy
YXZlcnNpb24gMQordHlwZWRlZiBjaGFyIHhlbl9leHRyYXZlcnNpb25fdFsxNl07CisjZGVmaW5l
IFhFTl9FWFRSQVZFUlNJT05fTEVOIChzaXplb2YoeGVuX2V4dHJhdmVyc2lvbl90KSkKKworLyog
YXJnID09IHhlbl9jb21waWxlX2luZm9fdC4gKi8KKyNkZWZpbmUgWEVOVkVSX2NvbXBpbGVfaW5m
byAyCitzdHJ1Y3QgeGVuX2NvbXBpbGVfaW5mbyB7CisgICAgY2hhciBjb21waWxlcls2NF07Cisg
ICAgY2hhciBjb21waWxlX2J5WzE2XTsKKyAgICBjaGFyIGNvbXBpbGVfZG9tYWluWzMyXTsKKyAg
ICBjaGFyIGNvbXBpbGVfZGF0ZVszMl07Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2NvbXBpbGVf
aW5mbyB4ZW5fY29tcGlsZV9pbmZvX3Q7CisKKyNkZWZpbmUgWEVOVkVSX2NhcGFiaWxpdGllcyAz
Cit0eXBlZGVmIGNoYXIgeGVuX2NhcGFiaWxpdGllc19pbmZvX3RbMTAyNF07CisjZGVmaW5lIFhF
Tl9DQVBBQklMSVRJRVNfSU5GT19MRU4gKHNpemVvZih4ZW5fY2FwYWJpbGl0aWVzX2luZm9fdCkp
CisKKyNkZWZpbmUgWEVOVkVSX2NoYW5nZXNldCA0Cit0eXBlZGVmIGNoYXIgeGVuX2NoYW5nZXNl
dF9pbmZvX3RbNjRdOworI2RlZmluZSBYRU5fQ0hBTkdFU0VUX0lORk9fTEVOIChzaXplb2YoeGVu
X2NoYW5nZXNldF9pbmZvX3QpKQorCisjZGVmaW5lIFhFTlZFUl9wbGF0Zm9ybV9wYXJhbWV0ZXJz
IDUKK3N0cnVjdCB4ZW5fcGxhdGZvcm1fcGFyYW1ldGVycyB7CisgICAgeGVuX3Vsb25nX3Qgdmly
dF9zdGFydDsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5fcGxhdGZvcm1fcGFyYW1ldGVycyB4ZW5f
cGxhdGZvcm1fcGFyYW1ldGVyc190OworCisjZGVmaW5lIFhFTlZFUl9nZXRfZmVhdHVyZXMgNgor
c3RydWN0IHhlbl9mZWF0dXJlX2luZm8geworICAgIHVuc2lnbmVkIGludCBzdWJtYXBfaWR4OyAg
ICAvKiBJTjogd2hpY2ggMzItYml0IHN1Ym1hcCB0byByZXR1cm4gKi8KKyAgICB1aW50MzJfdCAg
ICAgc3VibWFwOyAgICAgICAgLyogT1VUOiAzMi1iaXQgc3VibWFwICovCit9OwordHlwZWRlZiBz
dHJ1Y3QgeGVuX2ZlYXR1cmVfaW5mbyB4ZW5fZmVhdHVyZV9pbmZvX3Q7CisKKy8qIERlY2xhcmVz
IHRoZSBmZWF0dXJlcyByZXBvcnRlZCBieSBYRU5WRVJfZ2V0X2ZlYXR1cmVzLiAqLworI2luY2x1
ZGUgImZlYXR1cmVzLmgiCisKKy8qIGFyZyA9PSBOVUxMOyByZXR1cm5zIGhvc3QgbWVtb3J5IHBh
Z2Ugc2l6ZS4gKi8KKyNkZWZpbmUgWEVOVkVSX3BhZ2VzaXplIDcKKworLyogYXJnID09IHhlbl9k
b21haW5faGFuZGxlX3QuCisgKgorICogVGhlIHRvb2xzdGFjayBmaWxscyBpdCBvdXQgZm9yIGd1
ZXN0IGNvbnN1bXB0aW9uLiBJdCBpcyBpbnRlbmRlZCB0byBob2xkCisgKiB0aGUgVVVJRCBvZiB0
aGUgZ3Vlc3QuCisgKi8KKyNkZWZpbmUgWEVOVkVSX2d1ZXN0X2hhbmRsZSA4CisKKyNkZWZpbmUg
WEVOVkVSX2NvbW1hbmRsaW5lIDkKK3R5cGVkZWYgY2hhciB4ZW5fY29tbWFuZGxpbmVfdFsxMDI0
XTsKKworLyoKKyAqIFJldHVybiB2YWx1ZSBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4s
IG9yIFhFTl9FeHggb24gZXJyb3IuCisgKiBDYWxsaW5nIHdpdGggZW1wdHkgcGFyYW1ldGVyIHJl
dHVybnMgdGhlIHNpemUgb2YgYnVpbGRfaWQuCisgKi8KKyNkZWZpbmUgWEVOVkVSX2J1aWxkX2lk
IDEwCitzdHJ1Y3QgeGVuX2J1aWxkX2lkIHsKKyAgICAgICAgdWludDMyX3QgICAgICAgIGxlbjsg
LyogSU46IHNpemUgb2YgYnVmW10uICovCisjaWYgZGVmaW5lZChfX1NURENfVkVSU0lPTl9fKSAm
JiBfX1NURENfVkVSU0lPTl9fID49IDE5OTkwMUwKKyAgICAgICAgdW5zaWduZWQgY2hhciAgIGJ1
ZltdOworI2VsaWYgZGVmaW5lZChfX0dOVUNfXykKKyAgICAgICAgdW5zaWduZWQgY2hhciAgIGJ1
ZlsxXTsgLyogT1VUOiBWYXJpYWJsZSBsZW5ndGggYnVmZmVyIHdpdGggYnVpbGRfaWQuICovCisj
ZW5kaWYKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5fYnVpbGRfaWQgeGVuX2J1aWxkX2lkX3Q7CisK
KyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfVkVSU0lPTl9IX18gKi8KKworLyoKKyAqIExvY2FsIHZh
cmlhYmxlczoKKyAqIG1vZGU6IEMKKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKKyAqIGMtYmFzaWMt
b2Zmc2V0OiA0CisgKiB0YWItd2lkdGg6IDQKKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorICog
RW5kOgorICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi94c20vdm1fZXZlbnQuaCBiL2luY2x1
ZGUveGVuL3hzbS92bV9ldmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmI1MzFmNzEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi94c20vdm1fZXZlbnQuaApA
QCAtMCwwICsxLDM3OCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogdm1fZXZlbnQuaAor
ICoKKyAqIE1lbW9yeSBldmVudCBjb21tb24gc3RydWN0dXJlcy4KKyAqCisgKiBDb3B5cmlnaHQg
KGMpIDIwMDkgYnkgQ2l0cml4IFN5c3RlbXMsIEluYy4gKFBhdHJpY2sgQ29scCkKKyAqCisgKiBQ
ZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNv
biBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRv
Y3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhlIFNv
ZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24g
dGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0
cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2Fy
ZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBmdXJu
aXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoK
KyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl
IHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRp
b25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFT
IElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElF
RCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5G
UklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hU
IEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJX
SVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBT
T0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUu
CisgKi8KKworI2lmbmRlZiBfWEVOX1BVQkxJQ19WTV9FVkVOVF9ICisjZGVmaW5lIF9YRU5fUFVC
TElDX1ZNX0VWRU5UX0gKKworI2luY2x1ZGUgInhlbi5oIgorCisjZGVmaW5lIFZNX0VWRU5UX0lO
VEVSRkFDRV9WRVJTSU9OIDB4MDAwMDAwMDIKKworI2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVm
aW5lZChfX1hFTl9UT09MU19fKQorCisjaW5jbHVkZSAiaW8vcmluZy5oIgorCisvKgorICogTWVt
b3J5IGV2ZW50IGZsYWdzCisgKi8KKworLyoKKyAqIFZDUFVfUEFVU0VEIGluIGEgcmVxdWVzdCBz
aWduYWxzIHRoYXQgdGhlIHZDUFUgdHJpZ2dlcmluZyB0aGUgZXZlbnQgaGFzIGJlZW4KKyAqICBw
YXVzZWQKKyAqIFZDUFVfUEFVU0VEIGluIGEgcmVzcG9uc2Ugc2lnbmFscyB0byB1bnBhdXNlIHRo
ZSB2Q1BVCisgKi8KKyNkZWZpbmUgVk1fRVZFTlRfRkxBR19WQ1BVX1BBVVNFRCAgICAgICAgKDEg
PDwgMCkKKy8qIEZsYWdzIHRvIGFpZCBkZWJ1Z2dpbmcgdm1fZXZlbnQgKi8KKyNkZWZpbmUgVk1f
RVZFTlRfRkxBR19GT1JFSUdOICAgICAgICAgICAgKDEgPDwgMSkKKy8qCisgKiBUaGUgZm9sbG93
aW5nIGZsYWdzIGNhbiBiZSBzZXQgaW4gcmVzcG9uc2UgdG8gYSBtZW1fYWNjZXNzIGV2ZW50Lgor
ICoKKyAqIEVtdWxhdGUgdGhlIGZhdWx0LWNhdXNpbmcgaW5zdHJ1Y3Rpb24gKGlmIHNldCBpbiB0
aGUgZXZlbnQgcmVzcG9uc2UgZmxhZ3MpLgorICogVGhpcyB3aWxsIGFsbG93IHRoZSBndWVzdCB0
byBjb250aW51ZSBleGVjdXRpb24gd2l0aG91dCBsaWZ0aW5nIHRoZSBwYWdlCisgKiBhY2Nlc3Mg
cmVzdHJpY3Rpb25zLgorICovCisjZGVmaW5lIFZNX0VWRU5UX0ZMQUdfRU1VTEFURSAgICAgICAg
ICAgICgxIDw8IDIpCisvKgorICogU2FtZSBhcyBWTV9FVkVOVF9GTEFHX0VNVUxBVEUsIGJ1dCB3
aXRoIHdyaXRlIG9wZXJhdGlvbnMgb3Igb3BlcmF0aW9ucworICogcG90ZW50aWFsbHkgaGF2aW5n
IHNpZGUgZWZmZWN0cyAobGlrZSBtZW1vcnkgbWFwcGVkIG9yIHBvcnQgSS9PKSBkaXNhYmxlZC4K
KyAqLworI2RlZmluZSBWTV9FVkVOVF9GTEFHX0VNVUxBVEVfTk9XUklURSAgICAoMSA8PCAzKQor
LyoKKyAqIFRvZ2dsZSBzaW5nbGVzdGVwcGluZyBvbiB2bV9ldmVudCByZXNwb25zZS4KKyAqIFJl
cXVpcmVzIHRoZSB2Q1BVIHRvIGJlIHBhdXNlZCBhbHJlYWR5IChzeW5jaHJvbm91cyBldmVudHMg
b25seSkuCisgKi8KKyNkZWZpbmUgVk1fRVZFTlRfRkxBR19UT0dHTEVfU0lOR0xFU1RFUCAgKDEg
PDwgNCkKKy8qCisgKiBEYXRhIGlzIGJlaW5nIHNlbnQgYmFjayB0byB0aGUgaHlwZXJ2aXNvciBp
biB0aGUgZXZlbnQgcmVzcG9uc2UsIHRvIGJlCisgKiByZXR1cm5lZCBieSB0aGUgcmVhZCBmdW5j
dGlvbiB3aGVuIGVtdWxhdGluZyBhbiBpbnN0cnVjdGlvbi4KKyAqIFRoaXMgZmxhZyBpcyBvbmx5
IHVzZWZ1bCB3aGVuIGNvbWJpbmVkIHdpdGggVk1fRVZFTlRfRkxBR19FTVVMQVRFCisgKiBhbmQg
dGFrZXMgcHJlY2VkZW5jZSBpZiBjb21iaW5lZCB3aXRoIFZNX0VWRU5UX0ZMQUdfRU1VTEFURV9O
T1dSSVRFCisgKiAoaS5lLiBpZiBib3RoIFZNX0VWRU5UX0ZMQUdfRU1VTEFURV9OT1dSSVRFIGFu
ZAorICogVk1fRVZFTlRfRkxBR19TRVRfRU1VTF9SRUFEX0RBVEEgYXJlIHNldCwgb25seSB0aGUg
bGF0dGVyIHdpbGwgYmUgaG9ub3JlZCkuCisgKi8KKyNkZWZpbmUgVk1fRVZFTlRfRkxBR19TRVRf
RU1VTF9SRUFEX0RBVEEgKDEgPDwgNSkKKy8qCisgKiBEZW55IGNvbXBsZXRpb24gb2YgdGhlIG9w
ZXJhdGlvbiB0aGF0IHRyaWdnZXJlZCB0aGUgZXZlbnQuCisgKiBDdXJyZW50bHkgb25seSB1c2Vm
dWwgZm9yIE1TUiBhbmQgY29udHJvbC1yZWdpc3RlciB3cml0ZSBldmVudHMuCisgKiBSZXF1aXJl
cyB0aGUgdkNQVSB0byBiZSBwYXVzZWQgYWxyZWFkeSAoc3luY2hyb25vdXMgZXZlbnRzIG9ubHkp
LgorICovCisjZGVmaW5lIFZNX0VWRU5UX0ZMQUdfREVOWSAgICAgICAgICAgICAgICgxIDw8IDYp
CisvKgorICogVGhpcyBmbGFnIGNhbiBiZSBzZXQgaW4gYSByZXF1ZXN0IG9yIGEgcmVzcG9uc2UK
KyAqCisgKiBPbiBhIHJlcXVlc3QsIGluZGljYXRlcyB0aGF0IHRoZSBldmVudCBvY2N1cnJlZCBp
biB0aGUgYWx0ZXJuYXRlIHAybQorICogc3BlY2lmaWVkIGJ5IHRoZSBhbHRwMm1faWR4IHJlcXVl
c3QgZmllbGQuCisgKgorICogT24gYSByZXNwb25zZSwgaW5kaWNhdGVzIHRoYXQgdGhlIFZDUFUg
c2hvdWxkIHJlc3VtZSBpbiB0aGUgYWx0ZXJuYXRlIHAybQorICogc3BlY2lmaWVkIGJ5IHRoZSBh
bHRwMm1faWR4IHJlc3BvbnNlIGZpZWxkIGlmIHBvc3NpYmxlLgorICovCisjZGVmaW5lIFZNX0VW
RU5UX0ZMQUdfQUxURVJOQVRFX1AyTSAgICAgICgxIDw8IDcpCisvKgorICogU2V0IHRoZSB2Q1BV
IHJlZ2lzdGVycyB0byB0aGUgdmFsdWVzIGluIHRoZSAgdm1fZXZlbnQgcmVzcG9uc2UuCisgKiBB
dCB0aGUgbW9tZW50IHg4Ni1vbmx5LCBhcHBsaWVzIHRvIEVBWC1FRFgsIEVTUCwgRUJQLCBFU0ks
IEVESSwgUjgtUjE1LAorICogRUZMQUdTLCBhbmQgRUlQLgorICogUmVxdWlyZXMgdGhlIHZDUFUg
dG8gYmUgcGF1c2VkIGFscmVhZHkgKHN5bmNocm9ub3VzIGV2ZW50cyBvbmx5KS4KKyAqLworI2Rl
ZmluZSBWTV9FVkVOVF9GTEFHX1NFVF9SRUdJU1RFUlMgICAgICAoMSA8PCA4KQorLyoKKyAqIElu
c3RydWN0aW9uIGNhY2hlIGlzIGJlaW5nIHNlbnQgYmFjayB0byB0aGUgaHlwZXJ2aXNvciBpbiB0
aGUgZXZlbnQgcmVzcG9uc2UKKyAqIHRvIGJlIHVzZWQgYnkgdGhlIGVtdWxhdG9yLiBUaGlzIGZs
YWcgaXMgb25seSB1c2VmdWwgd2hlbiBjb21iaW5lZCB3aXRoCisgKiBWTV9FVkVOVF9GTEFHX0VN
VUxBVEUgYW5kIGRvZXMgbm90IHRha2UgcHJlc2VkZW5jZSBpZiBjb21iaW5lZCB3aXRoCisgKiBW
TV9FVkVOVF9GTEFHX0VNVUxBVEVfTk9XUklURSBvciBWTV9FVkVOVF9GTEFHX1NFVF9FTVVMX1JF
QURfREFUQSwgKGkuZS4KKyAqIGlmIGFueSBvZiB0aG9zZSBmbGFncyBhcmUgc2V0LCBvbmx5IHRo
b3NlIHdpbGwgYmUgaG9ub3JlZCkuCisgKi8KKyNkZWZpbmUgVk1fRVZFTlRfRkxBR19TRVRfRU1V
TF9JTlNOX0RBVEEgKDEgPDwgOSkKKy8qCisgKiBIYXZlIGEgb25lLXNob3QgVk1fRVZFTlRfUkVB
U09OX0lOVEVSUlVQVCBldmVudCBzZW50IGZvciB0aGUgZmlyc3QKKyAqIGludGVycnVwdCBwZW5k
aW5nIGFmdGVyIHJlc3VtaW5nIHRoZSBWQ1BVLgorICovCisjZGVmaW5lIFZNX0VWRU5UX0ZMQUdf
R0VUX05FWFRfSU5URVJSVVBUICgxIDw8IDEwKQorCisvKgorICogUmVhc29ucyBmb3IgdGhlIHZt
IGV2ZW50IHJlcXVlc3QKKyAqLworCisvKiBEZWZhdWx0IGNhc2UgKi8KKyNkZWZpbmUgVk1fRVZF
TlRfUkVBU09OX1VOS05PV04gICAgICAgICAgICAgICAgIDAKKy8qIE1lbW9yeSBhY2Nlc3Mgdmlv
bGF0aW9uICovCisjZGVmaW5lIFZNX0VWRU5UX1JFQVNPTl9NRU1fQUNDRVNTICAgICAgICAgICAg
ICAxCisvKiBNZW1vcnkgc2hhcmluZyBldmVudCAqLworI2RlZmluZSBWTV9FVkVOVF9SRUFTT05f
TUVNX1NIQVJJTkcgICAgICAgICAgICAgMgorLyogTWVtb3J5IHBhZ2luZyBldmVudCAqLworI2Rl
ZmluZSBWTV9FVkVOVF9SRUFTT05fTUVNX1BBR0lORyAgICAgICAgICAgICAgMworLyogQSBjb250
cm9sIHJlZ2lzdGVyIHdhcyB1cGRhdGVkICovCisjZGVmaW5lIFZNX0VWRU5UX1JFQVNPTl9XUklU
RV9DVFJMUkVHICAgICAgICAgICA0CisvKiBBbiBNU1Igd2FzIHVwZGF0ZWQuICovCisjZGVmaW5l
IFZNX0VWRU5UX1JFQVNPTl9NT1ZfVE9fTVNSICAgICAgICAgICAgICA1CisvKiBEZWJ1ZyBvcGVy
YXRpb24gZXhlY3V0ZWQgKGUuZy4gaW50MykgKi8KKyNkZWZpbmUgVk1fRVZFTlRfUkVBU09OX1NP
RlRXQVJFX0JSRUFLUE9JTlQgICAgIDYKKy8qIFNpbmdsZS1zdGVwIChlLmcuIE1URikgKi8KKyNk
ZWZpbmUgVk1fRVZFTlRfUkVBU09OX1NJTkdMRVNURVAgICAgICAgICAgICAgIDcKKy8qIEFuIGV2
ZW50IGhhcyBiZWVuIHJlcXVlc3RlZCB2aWEgSFZNT1BfZ3Vlc3RfcmVxdWVzdF92bV9ldmVudC4g
Ki8KKyNkZWZpbmUgVk1fRVZFTlRfUkVBU09OX0dVRVNUX1JFUVVFU1QgICAgICAgICAgIDgKKy8q
IEEgZGVidWcgZXhjZXB0aW9uIHdhcyBjYXVnaHQgKi8KKyNkZWZpbmUgVk1fRVZFTlRfUkVBU09O
X0RFQlVHX0VYQ0VQVElPTiAgICAgICAgIDkKKy8qIENQVUlEIGV4ZWN1dGVkICovCisjZGVmaW5l
IFZNX0VWRU5UX1JFQVNPTl9DUFVJRCAgICAgICAgICAgICAgICAgICAxMAorLyoKKyAqIFByaXZp
bGVnZWQgY2FsbCBleGVjdXRlZCAoZS5nLiBTTUMpLgorICogTm90ZTogZXZlbnQgbWF5IGJlIGdl
bmVyYXRlZCBldmVuIGlmIFNNQyBjb25kaXRpb24gY2hlY2sgZmFpbHMgb24gc29tZSBDUFVzLgor
ICogICAgICAgQXMgdGhpcyBiZWhhdmlvciBpcyBDUFUtc3BlY2lmaWMsIHVzZXJzIGFyZSBhZHZp
c2VkIHRvIG5vdCByZWx5IG9uIGl0LgorICogICAgICAgVGhlc2Uga2luZHMgb2YgZXZlbnRzIHdp
bGwgYmUgZmlsdGVyZWQgb3V0IGluIGZ1dHVyZSB2ZXJzaW9ucy4KKyAqLworI2RlZmluZSBWTV9F
VkVOVF9SRUFTT05fUFJJVklMRUdFRF9DQUxMICAgICAgICAgMTEKKy8qIEFuIGludGVycnVwdCBo
YXMgYmVlbiBkZWxpdmVyZWQuICovCisjZGVmaW5lIFZNX0VWRU5UX1JFQVNPTl9JTlRFUlJVUFQg
ICAgICAgICAgICAgICAxMgorLyogQSBkZXNjcmlwdG9yIHRhYmxlIHJlZ2lzdGVyIHdhcyBhY2Nl
c3NlZC4gKi8KKyNkZWZpbmUgVk1fRVZFTlRfUkVBU09OX0RFU0NSSVBUT1JfQUNDRVNTICAgICAg
IDEzCisvKiBDdXJyZW50IGluc3RydWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBieSB0aGUgZW11
bGF0b3IgKi8KKyNkZWZpbmUgVk1fRVZFTlRfUkVBU09OX0VNVUxfVU5JTVBMRU1FTlRFRCAgICAg
IDE0CisKKy8qIFN1cHBvcnRlZCB2YWx1ZXMgZm9yIHRoZSB2bV9ldmVudF93cml0ZV9jdHJscmVn
IGluZGV4LiAqLworI2RlZmluZSBWTV9FVkVOVF9YODZfQ1IwICAgIDAKKyNkZWZpbmUgVk1fRVZF
TlRfWDg2X0NSMyAgICAxCisjZGVmaW5lIFZNX0VWRU5UX1g4Nl9DUjQgICAgMgorI2RlZmluZSBW
TV9FVkVOVF9YODZfWENSMCAgIDMKKworLyoKKyAqIFVzaW5nIGN1c3RvbSB2Q1BVIHN0cnVjdHMg
KGkuZS4gbm90IGh2bV9od19jcHUpIGZvciBib3RoIHg4NiBhbmQgQVJNCisgKiBzbyBhcyB0byBu
b3QgZmlsbCB0aGUgdm1fZXZlbnQgcmluZyBidWZmZXIgdG9vIHF1aWNrbHkuCisgKi8KK3N0cnVj
dCB2bV9ldmVudF9yZWdzX3g4NiB7CisgICAgdWludDY0X3QgcmF4OworICAgIHVpbnQ2NF90IHJj
eDsKKyAgICB1aW50NjRfdCByZHg7CisgICAgdWludDY0X3QgcmJ4OworICAgIHVpbnQ2NF90IHJz
cDsKKyAgICB1aW50NjRfdCByYnA7CisgICAgdWludDY0X3QgcnNpOworICAgIHVpbnQ2NF90IHJk
aTsKKyAgICB1aW50NjRfdCByODsKKyAgICB1aW50NjRfdCByOTsKKyAgICB1aW50NjRfdCByMTA7
CisgICAgdWludDY0X3QgcjExOworICAgIHVpbnQ2NF90IHIxMjsKKyAgICB1aW50NjRfdCByMTM7
CisgICAgdWludDY0X3QgcjE0OworICAgIHVpbnQ2NF90IHIxNTsKKyAgICB1aW50NjRfdCByZmxh
Z3M7CisgICAgdWludDY0X3QgZHI3OworICAgIHVpbnQ2NF90IHJpcDsKKyAgICB1aW50NjRfdCBj
cjA7CisgICAgdWludDY0X3QgY3IyOworICAgIHVpbnQ2NF90IGNyMzsKKyAgICB1aW50NjRfdCBj
cjQ7CisgICAgdWludDY0X3Qgc3lzZW50ZXJfY3M7CisgICAgdWludDY0X3Qgc3lzZW50ZXJfZXNw
OworICAgIHVpbnQ2NF90IHN5c2VudGVyX2VpcDsKKyAgICB1aW50NjRfdCBtc3JfZWZlcjsKKyAg
ICB1aW50NjRfdCBtc3Jfc3RhcjsKKyAgICB1aW50NjRfdCBtc3JfbHN0YXI7CisgICAgdWludDY0
X3QgZnNfYmFzZTsKKyAgICB1aW50NjRfdCBnc19iYXNlOworICAgIHVpbnQzMl90IGNzX2FyYnl0
ZXM7CisgICAgdWludDMyX3QgX3BhZDsKK307CisKKy8qCisgKiBPbmx5IHRoZSByZWdpc3RlciAn
cGMnIGNhbiBiZSBzZXQgb24gYSB2bV9ldmVudCByZXNwb25zZSB1c2luZyB0aGUKKyAqIFZNX0VW
RU5UX0ZMQUdfU0VUX1JFR0lTVEVSUyBmbGFnLgorICovCitzdHJ1Y3Qgdm1fZXZlbnRfcmVnc19h
cm0geworICAgIHVpbnQ2NF90IHR0YnIwOworICAgIHVpbnQ2NF90IHR0YnIxOworICAgIHVpbnQ2
NF90IHR0YmNyOworICAgIHVpbnQ2NF90IHBjOworICAgIHVpbnQzMl90IGNwc3I7CisgICAgdWlu
dDMyX3QgX3BhZDsKK307CisKKy8qCisgKiBtZW1fYWNjZXNzIGZsYWcgZGVmaW5pdGlvbnMKKyAq
CisgKiBUaGVzZSBmbGFncyBhcmUgc2V0IG9ubHkgYXMgcGFydCBvZiBhIG1lbV9ldmVudCByZXF1
ZXN0LgorICoKKyAqIFIvVy9YOiBEZWZpbmVzIHRoZSB0eXBlIG9mIHZpb2xhdGlvbiB0aGF0IGhh
cyB0cmlnZ2VyZWQgdGhlIGV2ZW50CisgKiAgICAgICAgTXVsdGlwbGUgdHlwZXMgY2FuIGJlIHNl
dCBpbiBhIHNpbmdsZSB2aW9sYXRpb24hCisgKiBHTEFfVkFMSUQ6IElmIHRoZSBnbGEgZmllbGQg
aG9sZHMgYSBndWVzdCBWQSBhc3NvY2lhdGVkIHdpdGggdGhlIGV2ZW50CisgKiBGQVVMVF9XSVRI
X0dMQTogSWYgdGhlIHZpb2xhdGlvbiB3YXMgdHJpZ2dlcmVkIGJ5IGFjY2Vzc2luZyBnbGEKKyAq
IEZBVUxUX0lOX0dQVDogSWYgdGhlIHZpb2xhdGlvbiB3YXMgdHJpZ2dlcmVkIGR1cmluZyB0cmFu
c2xhdGluZyBnbGEKKyAqLworI2RlZmluZSBNRU1fQUNDRVNTX1IgICAgICAgICAgICAgICAgKDEg
PDwgMCkKKyNkZWZpbmUgTUVNX0FDQ0VTU19XICAgICAgICAgICAgICAgICgxIDw8IDEpCisjZGVm
aW5lIE1FTV9BQ0NFU1NfWCAgICAgICAgICAgICAgICAoMSA8PCAyKQorI2RlZmluZSBNRU1fQUND
RVNTX1JXWCAgICAgICAgICAgICAgKE1FTV9BQ0NFU1NfUiB8IE1FTV9BQ0NFU1NfVyB8IE1FTV9B
Q0NFU1NfWCkKKyNkZWZpbmUgTUVNX0FDQ0VTU19SVyAgICAgICAgICAgICAgIChNRU1fQUNDRVNT
X1IgfCBNRU1fQUNDRVNTX1cpCisjZGVmaW5lIE1FTV9BQ0NFU1NfUlggICAgICAgICAgICAgICAo
TUVNX0FDQ0VTU19SIHwgTUVNX0FDQ0VTU19YKQorI2RlZmluZSBNRU1fQUNDRVNTX1dYICAgICAg
ICAgICAgICAgKE1FTV9BQ0NFU1NfVyB8IE1FTV9BQ0NFU1NfWCkKKyNkZWZpbmUgTUVNX0FDQ0VT
U19HTEFfVkFMSUQgICAgICAgICgxIDw8IDMpCisjZGVmaW5lIE1FTV9BQ0NFU1NfRkFVTFRfV0lU
SF9HTEEgICAoMSA8PCA0KQorI2RlZmluZSBNRU1fQUNDRVNTX0ZBVUxUX0lOX0dQVCAgICAgKDEg
PDwgNSkKKworc3RydWN0IHZtX2V2ZW50X21lbV9hY2Nlc3MgeworICAgIHVpbnQ2NF90IGdmbjsK
KyAgICB1aW50NjRfdCBvZmZzZXQ7CisgICAgdWludDY0X3QgZ2xhOyAgIC8qIGlmIGZsYWdzIGhh
cyBNRU1fQUNDRVNTX0dMQV9WQUxJRCBzZXQgKi8KKyAgICB1aW50MzJfdCBmbGFnczsgLyogTUVN
X0FDQ0VTU18qICovCisgICAgdWludDMyX3QgX3BhZDsKK307CisKK3N0cnVjdCB2bV9ldmVudF93
cml0ZV9jdHJscmVnIHsKKyAgICB1aW50MzJfdCBpbmRleDsKKyAgICB1aW50MzJfdCBfcGFkOwor
ICAgIHVpbnQ2NF90IG5ld192YWx1ZTsKKyAgICB1aW50NjRfdCBvbGRfdmFsdWU7Cit9OworCitz
dHJ1Y3Qgdm1fZXZlbnRfc2luZ2xlc3RlcCB7CisgICAgdWludDY0X3QgZ2ZuOworfTsKKworc3Ry
dWN0IHZtX2V2ZW50X2RlYnVnIHsKKyAgICB1aW50NjRfdCBnZm47CisgICAgdWludDMyX3QgaW5z
bl9sZW5ndGg7CisgICAgdWludDhfdCB0eXBlOyAgICAgICAgLyogSFZNT1BfVFJBUF8qICovCisg
ICAgdWludDhfdCBfcGFkWzNdOworfTsKKworc3RydWN0IHZtX2V2ZW50X21vdl90b19tc3Igewor
ICAgIHVpbnQ2NF90IG1zcjsKKyAgICB1aW50NjRfdCB2YWx1ZTsKK307CisKKyNkZWZpbmUgVk1f
RVZFTlRfREVTQ19JRFRSICAgICAgICAgICAxCisjZGVmaW5lIFZNX0VWRU5UX0RFU0NfR0RUUiAg
ICAgICAgICAgMgorI2RlZmluZSBWTV9FVkVOVF9ERVNDX0xEVFIgICAgICAgICAgIDMKKyNkZWZp
bmUgVk1fRVZFTlRfREVTQ19UUiAgICAgICAgICAgICA0CisKK3N0cnVjdCB2bV9ldmVudF9kZXNj
X2FjY2VzcyB7CisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgdWlu
dDMyX3QgaW5zdHJfaW5mbzsgICAgICAgICAvKiBWTVg6IFZNQ1MgSW5zdHJ1Y3Rpb24tSW5mb3Jt
YXRpb24gKi8KKyAgICAgICAgICAgIHVpbnQzMl90IF9wYWQxOworICAgICAgICAgICAgdWludDY0
X3QgZXhpdF9xdWFsaWZpY2F0aW9uOyAvKiBWTVg6IFZNQ1MgRXhpdCBRdWFsaWZpY2F0aW9uICov
CisgICAgICAgIH0gdm14OworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgdWludDY0X3Qg
ZXhpdGluZm87ICAgICAgICAgICAvKiBTVk06IFZNQ0IgRVhJVElORk8gKi8KKyAgICAgICAgICAg
IHVpbnQ2NF90IF9wYWQyOworICAgICAgICB9IHN2bTsKKyAgICB9IGFyY2g7CisgICAgdWludDhf
dCBkZXNjcmlwdG9yOyAgICAgICAgICAgICAgICAgIC8qIFZNX0VWRU5UX0RFU0NfKiAqLworICAg
IHVpbnQ4X3QgaXNfd3JpdGU7CisgICAgdWludDhfdCBfcGFkWzZdOworfTsKKworc3RydWN0IHZt
X2V2ZW50X2NwdWlkIHsKKyAgICB1aW50MzJfdCBpbnNuX2xlbmd0aDsKKyAgICB1aW50MzJfdCBs
ZWFmOworICAgIHVpbnQzMl90IHN1YmxlYWY7CisgICAgdWludDMyX3QgX3BhZDsKK307CisKK3N0
cnVjdCB2bV9ldmVudF9pbnRlcnJ1cHRfeDg2IHsKKyAgICB1aW50MzJfdCB2ZWN0b3I7CisgICAg
dWludDMyX3QgdHlwZTsKKyAgICB1aW50MzJfdCBlcnJvcl9jb2RlOworICAgIHVpbnQzMl90IF9w
YWQ7CisgICAgdWludDY0X3QgY3IyOworfTsKKworI2RlZmluZSBNRU1fUEFHSU5HX0RST1BfUEFH
RSAgICAgICAoMSA8PCAwKQorI2RlZmluZSBNRU1fUEFHSU5HX0VWSUNUX0ZBSUwgICAgICAoMSA8
PCAxKQorCitzdHJ1Y3Qgdm1fZXZlbnRfcGFnaW5nIHsKKyAgICB1aW50NjRfdCBnZm47CisgICAg
dWludDMyX3QgcDJtdDsKKyAgICB1aW50MzJfdCBmbGFnczsKK307CisKK3N0cnVjdCB2bV9ldmVu
dF9zaGFyaW5nIHsKKyAgICB1aW50NjRfdCBnZm47CisgICAgdWludDMyX3QgcDJtdDsKKyAgICB1
aW50MzJfdCBfcGFkOworfTsKKworc3RydWN0IHZtX2V2ZW50X2VtdWxfcmVhZF9kYXRhIHsKKyAg
ICB1aW50MzJfdCBzaXplOworICAgIC8qIFRoZSBzdHJ1Y3QgaXMgdXNlZCBpbiBhIHVuaW9uIHdp
dGggdm1fZXZlbnRfcmVnc194ODYuICovCisgICAgdWludDhfdCAgZGF0YVtzaXplb2Yoc3RydWN0
IHZtX2V2ZW50X3JlZ3NfeDg2KSAtIHNpemVvZih1aW50MzJfdCldOworfTsKKworc3RydWN0IHZt
X2V2ZW50X2VtdWxfaW5zbl9kYXRhIHsKKyAgICB1aW50OF90IGRhdGFbMTZdOyAvKiBIYXMgdG8g
YmUgY29tcGxldGVseSBmaWxsZWQgKi8KK307CisKK3R5cGVkZWYgc3RydWN0IHZtX2V2ZW50X3N0
IHsKKyAgICB1aW50MzJfdCB2ZXJzaW9uOyAgIC8qIFZNX0VWRU5UX0lOVEVSRkFDRV9WRVJTSU9O
ICovCisgICAgdWludDMyX3QgZmxhZ3M7ICAgICAvKiBWTV9FVkVOVF9GTEFHXyogKi8KKyAgICB1
aW50MzJfdCByZWFzb247ICAgIC8qIFZNX0VWRU5UX1JFQVNPTl8qICovCisgICAgdWludDMyX3Qg
dmNwdV9pZDsKKyAgICB1aW50MTZfdCBhbHRwMm1faWR4OyAvKiBtYXkgYmUgdXNlZCBkdXJpbmcg
cmVxdWVzdCBhbmQgcmVzcG9uc2UgKi8KKyAgICB1aW50MTZfdCBfcGFkWzNdOworCisgICAgdW5p
b24geworICAgICAgICBzdHJ1Y3Qgdm1fZXZlbnRfcGFnaW5nICAgICAgICAgICAgICAgIG1lbV9w
YWdpbmc7CisgICAgICAgIHN0cnVjdCB2bV9ldmVudF9zaGFyaW5nICAgICAgICAgICAgICAgbWVt
X3NoYXJpbmc7CisgICAgICAgIHN0cnVjdCB2bV9ldmVudF9tZW1fYWNjZXNzICAgICAgICAgICAg
bWVtX2FjY2VzczsKKyAgICAgICAgc3RydWN0IHZtX2V2ZW50X3dyaXRlX2N0cmxyZWcgICAgICAg
ICB3cml0ZV9jdHJscmVnOworICAgICAgICBzdHJ1Y3Qgdm1fZXZlbnRfbW92X3RvX21zciAgICAg
ICAgICAgIG1vdl90b19tc3I7CisgICAgICAgIHN0cnVjdCB2bV9ldmVudF9kZXNjX2FjY2VzcyAg
ICAgICAgICAgZGVzY19hY2Nlc3M7CisgICAgICAgIHN0cnVjdCB2bV9ldmVudF9zaW5nbGVzdGVw
ICAgICAgICAgICAgc2luZ2xlc3RlcDsKKyAgICAgICAgc3RydWN0IHZtX2V2ZW50X2RlYnVnICAg
ICAgICAgICAgICAgICBzb2Z0d2FyZV9icmVha3BvaW50OworICAgICAgICBzdHJ1Y3Qgdm1fZXZl
bnRfZGVidWcgICAgICAgICAgICAgICAgIGRlYnVnX2V4Y2VwdGlvbjsKKyAgICAgICAgc3RydWN0
IHZtX2V2ZW50X2NwdWlkICAgICAgICAgICAgICAgICBjcHVpZDsKKyAgICAgICAgdW5pb24gewor
ICAgICAgICAgICAgc3RydWN0IHZtX2V2ZW50X2ludGVycnVwdF94ODYgICAgIHg4NjsKKyAgICAg
ICAgfSBpbnRlcnJ1cHQ7CisgICAgfSB1OworCisgICAgdW5pb24geworICAgICAgICB1bmlvbiB7
CisgICAgICAgICAgICBzdHJ1Y3Qgdm1fZXZlbnRfcmVnc194ODYgeDg2OworICAgICAgICAgICAg
c3RydWN0IHZtX2V2ZW50X3JlZ3NfYXJtIGFybTsKKyAgICAgICAgfSByZWdzOworCisgICAgICAg
IHVuaW9uIHsKKyAgICAgICAgICAgIHN0cnVjdCB2bV9ldmVudF9lbXVsX3JlYWRfZGF0YSByZWFk
OworICAgICAgICAgICAgc3RydWN0IHZtX2V2ZW50X2VtdWxfaW5zbl9kYXRhIGluc247CisgICAg
ICAgIH0gZW11bDsKKyAgICB9IGRhdGE7Cit9IHZtX2V2ZW50X3JlcXVlc3RfdCwgdm1fZXZlbnRf
cmVzcG9uc2VfdDsKKworREVGSU5FX1JJTkdfVFlQRVModm1fZXZlbnQsIHZtX2V2ZW50X3JlcXVl
c3RfdCwgdm1fZXZlbnRfcmVzcG9uc2VfdCk7CisKKyNlbmRpZiAvKiBkZWZpbmVkKF9fWEVOX18p
IHx8IGRlZmluZWQoX19YRU5fVE9PTFNfXykgKi8KKyNlbmRpZiAvKiBfWEVOX1BVQkxJQ19WTV9F
VkVOVF9IICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZp
bGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0Cisg
KiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVk
ZS94ZW4veHNtL3hlbi1jb21wYXQuaCBiL2luY2x1ZGUveGVuL3hzbS94ZW4tY29tcGF0LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY3MzY1MwotLS0gL2Rldi9udWxsCisr
KyBiL2luY2x1ZGUveGVuL3hzbS94ZW4tY29tcGF0LmgKQEAgLTAsMCArMSw0NCBAQAorLyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorICogeGVuLWNvbXBhdC5oCisgKiAKKyAqIEd1ZXN0IE9TIGludGVy
ZmFjZSB0byBYZW4uICBDb21wYXRpYmlsaXR5IGxheWVyLgorICogCisgKiBQZXJtaXNzaW9uIGlz
IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcg
YSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24g
ZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhv
dXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdo
dHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJs
aWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBl
cm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8g
c28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92
ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGlu
Y2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBT
b2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V
VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5H
IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisg
KiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUg
TElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5H
CisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBU
SEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQ29w
eXJpZ2h0IChjKSAyMDA2LCBDaHJpc3RpYW4gTGltcGFjaAorICovCisKKyNpZm5kZWYgX19YRU5f
UFVCTElDX1hFTl9DT01QQVRfSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19YRU5fQ09NUEFUX0hf
XworCisjZGVmaW5lIF9fWEVOX0xBVEVTVF9JTlRFUkZBQ0VfVkVSU0lPTl9fIDB4MDAwNDA5MDAK
KworI2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKQorLyogWGVu
IGlzIGJ1aWx0IHdpdGggbWF0Y2hpbmcgaGVhZGVycyBhbmQgaW1wbGVtZW50cyB0aGUgbGF0ZXN0
IGludGVyZmFjZS4gKi8KKyNkZWZpbmUgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyBfX1hFTl9M
QVRFU1RfSU5URVJGQUNFX1ZFUlNJT05fXworI2VsaWYgIWRlZmluZWQoX19YRU5fSU5URVJGQUNF
X1ZFUlNJT05fXykKKy8qIEd1ZXN0cyB3aGljaCBkbyBub3Qgc3BlY2lmeSBhIHZlcnNpb24gZ2V0
IHRoZSBsZWdhY3kgaW50ZXJmYWNlLiAqLworI2RlZmluZSBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lP
Tl9fIDB4MDAwMDAwMDAKKyNlbmRpZgorCisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA+
IF9fWEVOX0xBVEVTVF9JTlRFUkZBQ0VfVkVSU0lPTl9fCisjZXJyb3IgIlRoZXNlIGhlYWRlciBm
aWxlcyBkbyBub3Qgc3VwcG9ydCB0aGUgcmVxdWVzdGVkIGludGVyZmFjZSB2ZXJzaW9uLiIKKyNl
bmRpZgorCisjZW5kaWYgLyogX19YRU5fUFVCTElDX1hFTl9DT01QQVRfSF9fICovCmRpZmYgLS1n
aXQgYS9pbmNsdWRlL3hlbi94c20veGVuLmggYi9pbmNsdWRlL3hlbi94c20veGVuLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzA4MTA5ZgotLS0gL2Rldi9udWxsCisrKyBi
L2luY2x1ZGUveGVuL3hzbS94ZW4uaApAQCAtMCwwICsxLDk5OCBAQAorLyoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgorICogeGVuLmgKKyAqIAorICogR3Vlc3QgT1MgaW50ZXJmYWNlIHRvIFhlbi4KKyAq
IAorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFu
eSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2Np
YXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFsIGlu
IHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1p
dGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlz
aCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0aGUg
U29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwor
ICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
czoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u
IG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlh
bCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJ
REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAq
IElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5E
IE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENP
UFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVS
CisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9S
IE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lU
SCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNP
RlRXQVJFLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAwNCwgSyBBIEZyYXNlcgorICovCisKKyNp
Zm5kZWYgX19YRU5fUFVCTElDX1hFTl9IX18KKyNkZWZpbmUgX19YRU5fUFVCTElDX1hFTl9IX18K
KworI2luY2x1ZGUgInhlbi1jb21wYXQuaCIKKworI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRl
ZmluZWQoX194ODZfNjRfXykKKyNpbmNsdWRlICJhcmNoLXg4Ni94ZW4uaCIKKyNlbGlmIGRlZmlu
ZWQoX19hcm1fXykgfHwgZGVmaW5lZCAoX19hYXJjaDY0X18pCisjaW5jbHVkZSAiYXJjaC1hcm0u
aCIKKyNlbHNlCisjZXJyb3IgIlVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZSIKKyNlbmRpZgorCisj
aWZuZGVmIF9fQVNTRU1CTFlfXworLyogR3Vlc3QgaGFuZGxlcyBmb3IgcHJpbWl0aXZlIEMgdHlw
ZXMuICovCitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShjaGFyKTsKK19fREVGSU5FX1hFTl9HVUVT
VF9IQU5ETEUodWNoYXIsIHVuc2lnbmVkIGNoYXIpOworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo
aW50KTsKK19fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUodWludCwgIHVuc2lnbmVkIGludCk7Cisj
aWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAwNDAzMDAKK0RFRklORV9YRU5fR1VF
U1RfSEFORExFKGxvbmcpOworX19ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh1bG9uZywgdW5zaWdu
ZWQgbG9uZyk7CisjZW5kaWYKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHZvaWQpOworCitERUZJ
TkVfWEVOX0dVRVNUX0hBTkRMRSh1aW50NjRfdCk7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4
ZW5fcGZuX3QpOworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3Vsb25nX3QpOworCisvKiBU
dXJuIGEgcGxhaW4gbnVtYmVyIGludG8gYSBDIHVuc2lnbmVkIChsb25nIChsb25nKSkgY29uc3Rh
bnQuICovCisjZGVmaW5lIF9feGVuX21rX3VpbnQoeCkgIHggIyMgVQorI2RlZmluZSBfX3hlbl9t
a191bG9uZyh4KSB4ICMjIFVMCisjaWZuZGVmIF9feGVuX21rX3VsbG9uZworIyBkZWZpbmUgX194
ZW5fbWtfdWxsb25nKHgpIHggIyMgVUxMCisjZW5kaWYKKyNkZWZpbmUgeGVuX21rX3VpbnQoeCkg
ICAgX194ZW5fbWtfdWludCh4KQorI2RlZmluZSB4ZW5fbWtfdWxvbmcoeCkgICBfX3hlbl9ta191
bG9uZyh4KQorI2RlZmluZSB4ZW5fbWtfdWxsb25nKHgpICBfX3hlbl9ta191bGxvbmcoeCkKKwor
I2Vsc2UKKworLyogSW4gYXNzZW1ibHkgY29kZSB3ZSBjYW5ub3QgdXNlIEMgbnVtZXJpYyBjb25z
dGFudCBzdWZmaXhlcy4gKi8KKyNkZWZpbmUgeGVuX21rX3VpbnQoeCkgICB4CisjZGVmaW5lIHhl
bl9ta191bG9uZyh4KSAgeAorI2RlZmluZSB4ZW5fbWtfdWxsb25nKHgpIHgKKworI2VuZGlmCisK
Ky8qCisgKiBIWVBFUkNBTExTCisgKi8KKworLyogYGluY29udGVudHMgMTAwIGhjYWxscyBMaXN0
IG9mIGh5cGVyY2FsbHMKKyAqIGAgZW51bSBoeXBlcmNhbGxfbnVtIHsgLy8gX19IWVBFUlZJU09S
XyogPT4gSFlQRVJWSVNPUl8qKCkKKyAqLworCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9zZXRfdHJh
cF90YWJsZSAgICAgICAgMAorI2RlZmluZSBfX0hZUEVSVklTT1JfbW11X3VwZGF0ZSAgICAgICAg
ICAgIDEKKyNkZWZpbmUgX19IWVBFUlZJU09SX3NldF9nZHQgICAgICAgICAgICAgICAyCisjZGVm
aW5lIF9fSFlQRVJWSVNPUl9zdGFja19zd2l0Y2ggICAgICAgICAgMworI2RlZmluZSBfX0hZUEVS
VklTT1Jfc2V0X2NhbGxiYWNrcyAgICAgICAgIDQKKyNkZWZpbmUgX19IWVBFUlZJU09SX2ZwdV90
YXNrc3dpdGNoICAgICAgICA1CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9zY2hlZF9vcF9jb21wYXQg
ICAgICAgNiAvKiBjb21wYXQgc2luY2UgMHgwMDAzMDEwMSAqLworI2RlZmluZSBfX0hZUEVSVklT
T1JfcGxhdGZvcm1fb3AgICAgICAgICAgIDcKKyNkZWZpbmUgX19IWVBFUlZJU09SX3NldF9kZWJ1
Z3JlZyAgICAgICAgICA4CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9nZXRfZGVidWdyZWcgICAgICAg
ICAgOQorI2RlZmluZSBfX0hZUEVSVklTT1JfdXBkYXRlX2Rlc2NyaXB0b3IgICAgMTAKKyNkZWZp
bmUgX19IWVBFUlZJU09SX21lbW9yeV9vcCAgICAgICAgICAgIDEyCisjZGVmaW5lIF9fSFlQRVJW
SVNPUl9tdWx0aWNhbGwgICAgICAgICAgICAxMworI2RlZmluZSBfX0hZUEVSVklTT1JfdXBkYXRl
X3ZhX21hcHBpbmcgICAgMTQKKyNkZWZpbmUgX19IWVBFUlZJU09SX3NldF90aW1lcl9vcCAgICAg
ICAgIDE1CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9ldmVudF9jaGFubmVsX29wX2NvbXBhdCAxNiAv
KiBjb21wYXQgc2luY2UgMHgwMDAzMDIwMiAqLworI2RlZmluZSBfX0hZUEVSVklTT1JfeGVuX3Zl
cnNpb24gICAgICAgICAgMTcKKyNkZWZpbmUgX19IWVBFUlZJU09SX2NvbnNvbGVfaW8gICAgICAg
ICAgIDE4CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9waHlzZGV2X29wX2NvbXBhdCAgICAxOSAvKiBj
b21wYXQgc2luY2UgMHgwMDAzMDIwMiAqLworI2RlZmluZSBfX0hZUEVSVklTT1JfZ3JhbnRfdGFi
bGVfb3AgICAgICAgMjAKKyNkZWZpbmUgX19IWVBFUlZJU09SX3ZtX2Fzc2lzdCAgICAgICAgICAg
IDIxCisjZGVmaW5lIF9fSFlQRVJWSVNPUl91cGRhdGVfdmFfbWFwcGluZ19vdGhlcmRvbWFpbiAy
MgorI2RlZmluZSBfX0hZUEVSVklTT1JfaXJldCAgICAgICAgICAgICAgICAgMjMgLyogeDg2IG9u
bHkgKi8KKyNkZWZpbmUgX19IWVBFUlZJU09SX3ZjcHVfb3AgICAgICAgICAgICAgIDI0CisjZGVm
aW5lIF9fSFlQRVJWSVNPUl9zZXRfc2VnbWVudF9iYXNlICAgICAyNSAvKiB4ODYvNjQgb25seSAq
LworI2RlZmluZSBfX0hZUEVSVklTT1JfbW11ZXh0X29wICAgICAgICAgICAgMjYKKyNkZWZpbmUg
X19IWVBFUlZJU09SX3hzbV9vcCAgICAgICAgICAgICAgIDI3CisjZGVmaW5lIF9fSFlQRVJWSVNP
Ul9ubWlfb3AgICAgICAgICAgICAgICAyOAorI2RlZmluZSBfX0hZUEVSVklTT1Jfc2NoZWRfb3Ag
ICAgICAgICAgICAgMjkKKyNkZWZpbmUgX19IWVBFUlZJU09SX2NhbGxiYWNrX29wICAgICAgICAg
IDMwCisjZGVmaW5lIF9fSFlQRVJWSVNPUl94ZW5vcHJvZl9vcCAgICAgICAgICAzMQorI2RlZmlu
ZSBfX0hZUEVSVklTT1JfZXZlbnRfY2hhbm5lbF9vcCAgICAgMzIKKyNkZWZpbmUgX19IWVBFUlZJ
U09SX3BoeXNkZXZfb3AgICAgICAgICAgIDMzCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9odm1fb3Ag
ICAgICAgICAgICAgICAzNAorI2RlZmluZSBfX0hZUEVSVklTT1Jfc3lzY3RsICAgICAgICAgICAg
ICAgMzUKKyNkZWZpbmUgX19IWVBFUlZJU09SX2RvbWN0bCAgICAgICAgICAgICAgIDM2CisjZGVm
aW5lIF9fSFlQRVJWSVNPUl9rZXhlY19vcCAgICAgICAgICAgICAzNworI2RlZmluZSBfX0hZUEVS
VklTT1JfdG1lbV9vcCAgICAgICAgICAgICAgMzgKKyNkZWZpbmUgX19IWVBFUlZJU09SX3hjX3Jl
c2VydmVkX29wICAgICAgIDM5IC8qIHJlc2VydmVkIGZvciBYZW5DbGllbnQgKi8KKyNkZWZpbmUg
X19IWVBFUlZJU09SX3hlbnBtdV9vcCAgICAgICAgICAgIDQwCisjZGVmaW5lIF9fSFlQRVJWSVNP
Ul9kbV9vcCAgICAgICAgICAgICAgICA0MQorCisvKiBBcmNoaXRlY3R1cmUtc3BlY2lmaWMgaHlw
ZXJjYWxsIGRlZmluaXRpb25zLiAqLworI2RlZmluZSBfX0hZUEVSVklTT1JfYXJjaF8wICAgICAg
ICAgICAgICAgNDgKKyNkZWZpbmUgX19IWVBFUlZJU09SX2FyY2hfMSAgICAgICAgICAgICAgIDQ5
CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9hcmNoXzIgICAgICAgICAgICAgICA1MAorI2RlZmluZSBf
X0hZUEVSVklTT1JfYXJjaF8zICAgICAgICAgICAgICAgNTEKKyNkZWZpbmUgX19IWVBFUlZJU09S
X2FyY2hfNCAgICAgICAgICAgICAgIDUyCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9hcmNoXzUgICAg
ICAgICAgICAgICA1MworI2RlZmluZSBfX0hZUEVSVklTT1JfYXJjaF82ICAgICAgICAgICAgICAg
NTQKKyNkZWZpbmUgX19IWVBFUlZJU09SX2FyY2hfNyAgICAgICAgICAgICAgIDU1CisKKy8qIGAg
fSAqLworCisvKgorICogSFlQRVJDQUxMIENPTVBBVElCSUxJVFkuCisgKi8KKworLyogTmV3IHNj
aGVkX29wIGh5cGVyY2FsbCBpbnRyb2R1Y2VkIGluIDB4MDAwMzAxMDEuICovCisjaWYgX19YRU5f
SU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAwMzAxMDEKKyN1bmRlZiBfX0hZUEVSVklTT1Jfc2No
ZWRfb3AKKyNkZWZpbmUgX19IWVBFUlZJU09SX3NjaGVkX29wIF9fSFlQRVJWSVNPUl9zY2hlZF9v
cF9jb21wYXQKKyNlbmRpZgorCisvKiBOZXcgZXZlbnQtY2hhbm5lbCBhbmQgcGh5c2RldiBoeXBl
cmNhbGxzIGludHJvZHVjZWQgaW4gMHgwMDAzMDIwMi4gKi8KKyNpZiBfX1hFTl9JTlRFUkZBQ0Vf
VkVSU0lPTl9fIDwgMHgwMDAzMDIwMgorI3VuZGVmIF9fSFlQRVJWSVNPUl9ldmVudF9jaGFubmVs
X29wCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9ldmVudF9jaGFubmVsX29wIF9fSFlQRVJWSVNPUl9l
dmVudF9jaGFubmVsX29wX2NvbXBhdAorI3VuZGVmIF9fSFlQRVJWSVNPUl9waHlzZGV2X29wCisj
ZGVmaW5lIF9fSFlQRVJWSVNPUl9waHlzZGV2X29wIF9fSFlQRVJWSVNPUl9waHlzZGV2X29wX2Nv
bXBhdAorI2VuZGlmCisKKy8qIE5ldyBwbGF0Zm9ybV9vcCBoeXBlcmNhbGwgaW50cm9kdWNlZCBp
biAweDAwMDMwMjA0LiAqLworI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPCAweDAwMDMw
MjA0CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9kb20wX29wIF9fSFlQRVJWSVNPUl9wbGF0Zm9ybV9v
cAorI2VuZGlmCisKKy8qIAorICogVklSVFVBTCBJTlRFUlJVUFRTCisgKiAKKyAqIFZpcnR1YWwg
aW50ZXJydXB0cyB0aGF0IGEgZ3Vlc3QgT1MgbWF5IHJlY2VpdmUgZnJvbSBYZW4uCisgKiAKKyAq
IEluIHRoZSBzaWRlIGNvbW1lbnRzLCAnVi4nIGRlbm90ZXMgYSBwZXItVkNQVSBWSVJRIHdoaWxl
ICdHLicgZGVub3RlcyBhCisgKiBnbG9iYWwgVklSUS4gVGhlIGZvcm1lciBjYW4gYmUgYm91bmQg
b25jZSBwZXIgVkNQVSBhbmQgY2Fubm90IGJlIHJlLWJvdW5kLgorICogVGhlIGxhdHRlciBjYW4g
YmUgYWxsb2NhdGVkIG9ubHkgb25jZSBwZXIgZ3Vlc3Q6IHRoZXkgbXVzdCBpbml0aWFsbHkgYmUK
KyAqIGFsbG9jYXRlZCB0byBWQ1BVMCBidXQgY2FuIHN1YnNlcXVlbnRseSBiZSByZS1ib3VuZC4K
KyAqLworLyogYCBlbnVtIHZpcnEgeyAqLworI2RlZmluZSBWSVJRX1RJTUVSICAgICAgMCAgLyog
Vi4gVGltZWJhc2UgdXBkYXRlLCBhbmQvb3IgcmVxdWVzdGVkIHRpbWVvdXQuICAqLworI2RlZmlu
ZSBWSVJRX0RFQlVHICAgICAgMSAgLyogVi4gUmVxdWVzdCBndWVzdCB0byBkdW1wIGRlYnVnIGlu
Zm8uICAgICAgICAgICAqLworI2RlZmluZSBWSVJRX0NPTlNPTEUgICAgMiAgLyogRy4gKERPTTAp
IEJ5dGVzIHJlY2VpdmVkIG9uIGVtZXJnZW5jeSBjb25zb2xlLiAqLworI2RlZmluZSBWSVJRX0RP
TV9FWEMgICAgMyAgLyogRy4gKERPTTApIEV4Y2VwdGlvbmFsIGV2ZW50IGZvciBzb21lIGRvbWFp
bi4gICAqLworI2RlZmluZSBWSVJRX1RCVUYgICAgICAgNCAgLyogRy4gKERPTTApIFRyYWNlIGJ1
ZmZlciBoYXMgcmVjb3JkcyBhdmFpbGFibGUuICAqLworI2RlZmluZSBWSVJRX0RFQlVHR0VSICAg
NiAgLyogRy4gKERPTTApIEEgZG9tYWluIGhhcyBwYXVzZWQgZm9yIGRlYnVnZ2luZy4gICAqLwor
I2RlZmluZSBWSVJRX1hFTk9QUk9GICAgNyAgLyogVi4gWGVuT3Byb2ZpbGUgaW50ZXJydXB0OiBu
ZXcgc2FtcGxlIGF2YWlsYWJsZSAqLworI2RlZmluZSBWSVJRX0NPTl9SSU5HICAgOCAgLyogRy4g
KERPTTApIEJ5dGVzIHJlY2VpdmVkIG9uIGNvbnNvbGUgICAgICAgICAgICAqLworI2RlZmluZSBW
SVJRX1BDUFVfU1RBVEUgOSAgLyogRy4gKERPTTApIFBDUFUgc3RhdGUgY2hhbmdlZCAgICAgICAg
ICAgICAgICAgICAqLworI2RlZmluZSBWSVJRX01FTV9FVkVOVCAgMTAgLyogRy4gKERPTTApIEEg
bWVtb3J5IGV2ZW50IGhhcyBvY2N1cmVkICAgICAgICAgICAqLworI2RlZmluZSBWSVJRX1hDX1JF
U0VSVkVEIDExIC8qIEcuIFJlc2VydmVkIGZvciBYZW5DbGllbnQgICAgICAgICAgICAgICAgICAg
ICAqLworI2RlZmluZSBWSVJRX0VOT01FTSAgICAgMTIgLyogRy4gKERPTTApIExvdyBvbiBoZWFw
IG1lbW9yeSAgICAgICAqLworI2RlZmluZSBWSVJRX1hFTlBNVSAgICAgMTMgLyogVi4gIFBNQyBp
bnRlcnJ1cHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworCisvKiBBcmNoaXRlY3R1
cmUtc3BlY2lmaWMgVklSUSBkZWZpbml0aW9ucy4gKi8KKyNkZWZpbmUgVklSUV9BUkNIXzAgICAg
MTYKKyNkZWZpbmUgVklSUV9BUkNIXzEgICAgMTcKKyNkZWZpbmUgVklSUV9BUkNIXzIgICAgMTgK
KyNkZWZpbmUgVklSUV9BUkNIXzMgICAgMTkKKyNkZWZpbmUgVklSUV9BUkNIXzQgICAgMjAKKyNk
ZWZpbmUgVklSUV9BUkNIXzUgICAgMjEKKyNkZWZpbmUgVklSUV9BUkNIXzYgICAgMjIKKyNkZWZp
bmUgVklSUV9BUkNIXzcgICAgMjMKKy8qIGAgfSAqLworCisjZGVmaW5lIE5SX1ZJUlFTICAgICAg
IDI0CisKKy8qCisgKiBgIGVudW0gbmVnX2Vycm5vdmFsCisgKiBgIEhZUEVSVklTT1JfbW11X3Vw
ZGF0ZShjb25zdCBzdHJ1Y3QgbW11X3VwZGF0ZSByZXFzW10sCisgKiBgICAgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBjb3VudCwgdW5zaWduZWQgKmRvbmVfb3V0LAorICogYCAgICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgZm9yZWlnbmRvbSkKKyAqIGAKKyAqIEByZXFzIGlzIGFu
IGFycmF5IG9mIG1tdV91cGRhdGVfdCBzdHJ1Y3R1cmVzICgocHRyLCB2YWwpIHBhaXJzKS4KKyAq
IEBjb3VudCBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBhYm92ZSBhcnJheS4KKyAqIEBwZG9uZSBpcyBh
biBvdXRwdXQgcGFyYW1ldGVyIGluZGljYXRpbmcgbnVtYmVyIG9mIGNvbXBsZXRlZCBvcGVyYXRp
b25zCisgKiBAZm9yZWlnbmRvbVsxNTowXTogRkQsIHRoZSBleHBlY3RlZCBvd25lciBvZiBkYXRh
IHBhZ2VzIHJlZmVyZW5jZWQgaW4gdGhpcworICogICAgICAgICAgICAgICAgICAgIGh5cGVyY2Fs
bCBpbnZvY2F0aW9uLiBDYW4gYmUgRE9NSURfU0VMRi4KKyAqIEBmb3JlaWduZG9tWzMxOjE2XTog
UEZELCB0aGUgZXhwZWN0ZWQgb3duZXIgb2YgcGFnZXRhYmxlIHBhZ2VzIHJlZmVyZW5jZWQKKyAq
ICAgICAgICAgICAgICAgICAgICAgaW4gdGhpcyBoeXBlcmNhbGwgaW52b2NhdGlvbi4gVGhlIHZh
bHVlIG9mIHRoaXMgZmllbGQKKyAqICAgICAgICAgICAgICAgICAgICAgKHgpIGVuY29kZXMgdGhl
IFBGRCBhcyBmb2xsb3dzOgorICogICAgICAgICAgICAgICAgICAgICB4ID09IDAgPT4gUEZEID09
IERPTUlEX1NFTEYKKyAqICAgICAgICAgICAgICAgICAgICAgeCAhPSAwID0+IFBGRCA9PSB4IC0g
MQorICogCisgKiBTdWItY29tbWFuZHM6IHB0clsxOjBdIHNwZWNpZmllcyB0aGUgYXBwcm9wcmlh
dGUgTU1VXyogY29tbWFuZC4KKyAqIC0tLS0tLS0tLS0tLS0KKyAqIHB0clsxOjBdID09IE1NVV9O
T1JNQUxfUFRfVVBEQVRFOgorICogVXBkYXRlcyBhbiBlbnRyeSBpbiBhIHBhZ2UgdGFibGUgYmVs
b25naW5nIHRvIFBGRC4gSWYgdXBkYXRpbmcgYW4gTDEgdGFibGUsCisgKiBhbmQgdGhlIG5ldyB0
YWJsZSBlbnRyeSBpcyB2YWxpZC9wcmVzZW50LCB0aGUgbWFwcGVkIGZyYW1lIG11c3QgYmVsb25n
IHRvCisgKiBGRC4gSWYgYXR0ZW1wdGluZyB0byBtYXAgYW4gSS9PIHBhZ2UgdGhlbiB0aGUgY2Fs
bGVyIGFzc3VtZXMgdGhlIHByaXZpbGVnZQorICogb2YgdGhlIEZELgorICogRkQgPT0gRE9NSURf
SU86IFBlcm1pdCAvb25seS8gSS9PIG1hcHBpbmdzLCBhdCB0aGUgcHJpdiBsZXZlbCBvZiB0aGUg
Y2FsbGVyLgorICogRkQgPT0gRE9NSURfWEVOOiBNYXAgcmVzdHJpY3RlZCBhcmVhcyBvZiBYZW4n
cyBoZWFwIHNwYWNlLgorICogcHRyWzoyXSAgLS0gTWFjaGluZSBhZGRyZXNzIG9mIHRoZSBwYWdl
LXRhYmxlIGVudHJ5IHRvIG1vZGlmeS4KKyAqIHZhbCAgICAgIC0tIFZhbHVlIHRvIHdyaXRlLgor
ICoKKyAqIFRoZXJlIGFsc28gY2VydGFpbiBpbXBsaWNpdCByZXF1aXJlbWVudHMgd2hlbiB1c2lu
ZyB0aGlzIGh5cGVyY2FsbC4gVGhlCisgKiBwYWdlcyB0aGF0IG1ha2UgdXAgYSBwYWdldGFibGUg
bXVzdCBiZSBtYXBwZWQgcmVhZC1vbmx5IGluIHRoZSBndWVzdC4KKyAqIFRoaXMgcHJldmVudHMg
dW5jb250cm9sbGVkIGd1ZXN0IHVwZGF0ZXMgdG8gdGhlIHBhZ2V0YWJsZS4gWGVuIHN0cmljdGx5
CisgKiBlbmZvcmNlcyB0aGlzLCBhbmQgd2lsbCBkaXNhbGxvdyBhbnkgcGFnZXRhYmxlIHVwZGF0
ZSB3aGljaCB3aWxsIGVuZCB1cAorICogbWFwcGluZyBwYWdldGFibGUgcGFnZSBSVywgYW5kIHdp
bGwgZGlzYWxsb3cgdXNpbmcgYW55IHdyaXRhYmxlIHBhZ2UgYXMgYQorICogcGFnZXRhYmxlLiBJ
biBwcmFjdGljZSBpdCBtZWFucyB0aGF0IHdoZW4gY29uc3RydWN0aW5nIGEgcGFnZSB0YWJsZSBm
b3IgYQorICogcHJvY2VzcywgdGhyZWFkLCBldGMsIHdlIE1VU1QgYmUgdmVyeSBkaWxsaWdpZW50
IGluIGZvbGxvd2luZyB0aGVzZSBydWxlczoKKyAqICAxKS4gU3RhcnQgd2l0aCB0b3AtbGV2ZWwg
cGFnZSAoUEdEIG9yIGluIFhlbiBsYW5ndWFnZTogTDQpLiBGaWxsIG91dAorICogICAgICB0aGUg
ZW50cmllcy4KKyAqICAyKS4gS2VlcCBvbiBnb2luZywgZmlsbGluZyBvdXQgdGhlIHVwcGVyIChQ
VUQgb3IgTDMpLCBhbmQgbWlkZGxlIChQTUQKKyAqICAgICAgb3IgTDIpLgorICogIDMpLiBTdGFy
dCBmaWxsaW5nIG91dCB0aGUgUFRFIHRhYmxlIChMMSkgd2l0aCB0aGUgUFRFIGVudHJpZXMuIE9u
Y2UKKyAqICAJZG9uZSwgbWFrZSBzdXJlIHRvIHNldCBlYWNoIG9mIHRob3NlIGVudHJpZXMgdG8g
Uk8gKHNvIHdyaXRlYWJsZSBiaXQKKyAqICAJaXMgdW5zZXQpLiBPbmNlIHRoYXQgaGFzIGJlZW4g
Y29tcGxldGVkLCBzZXQgdGhlIFBNRCAoTDIpIGZvciB0aGlzCisgKiAgCVBURSB0YWJsZSBhcyBS
Ty4KKyAqICA0KS4gV2hlbiBjb21wbGV0ZWQgd2l0aCBhbGwgb2YgdGhlIFBNRCAoTDIpIGVudHJp
ZXMsIGFuZCBhbGwgb2YgdGhlbSBoYXZlCisgKiAgCWJlZW4gc2V0IHRvIFJPLCBtYWtlIHN1cmUg
dG8gc2V0IFJPIHRoZSBQVUQgKEwzKS4gRG8gdGhlIHNhbWUKKyAqICAJb3BlcmF0aW9uIG9uIFBH
RCAoTDQpIHBhZ2V0YWJsZSBlbnRyaWVzIHRoYXQgaGF2ZSBhIFBVRCAoTDMpIGVudHJ5LgorICog
IDUpLiBOb3cgYmVmb3JlIHlvdSBjYW4gdXNlIHRob3NlIHBhZ2VzIChzbyBzZXR0aW5nIHRoZSBj
cjMpLCB5b3UgTVVTVCBhbHNvCisgKiAgICAgIHBpbiB0aGVtIHNvIHRoYXQgdGhlIGh5cGVydmlz
b3IgY2FuIHZlcmlmeSB0aGUgZW50cmllcy4gVGhpcyBpcyBkb25lCisgKiAgICAgIHZpYSB0aGUg
SFlQRVJWSVNPUl9tbXVleHRfb3AoTU1VRVhUX1BJTl9MNF9UQUJMRSwgZ3Vlc3QgcGh5c2ljYWwg
ZnJhbWUKKyAqICAgICAgbnVtYmVyIG9mIHRoZSBQR0QgKEw0KSkuIEFuZCB0aGlzIHBvaW50IHRo
ZSBIWVBFUlZJU09SX21tdWV4dF9vcCgKKyAqICAgICAgTU1VRVhUX05FV19CQVNFUFRSLCBndWVz
dCBwaHlzaWNhbCBmcmFtZSBudW1iZXIgb2YgdGhlIFBHRCAoTDQpKSBjYW4gYmUKKyAqICAgICAg
aXNzdWVkLgorICogRm9yIDMyLWJpdCBndWVzdHMsIHRoZSBMNCBpcyBub3QgdXNlZCAoYXMgdGhl
cmUgaXMgbGVzcyBwYWdldGFibGVzKSwgc28KKyAqIGluc3RlYWQgdXNlIEwzLgorICogQXQgdGhp
cyBwb2ludCB0aGUgcGFnZXRhYmxlcyBjYW4gYmUgbW9kaWZpZWQgdXNpbmcgdGhlIE1NVV9OT1JN
QUxfUFRfVVBEQVRFCisgKiBoeXBlcmNhbGwuIEFsc28gaWYgc28gZGVzaXJlZCB0aGUgT1MgY2Fu
IGFsc28gdHJ5IHRvIHdyaXRlIHRvIHRoZSBQVEUKKyAqIGFuZCBiZSB0cmFwcGVkIGJ5IHRoZSBo
eXBlcnZpc29yIChhcyB0aGUgUFRFIGVudHJ5IGlzIFJPKS4KKyAqCisgKiBUbyBkZWFsbG9jYXRl
IHRoZSBwYWdlcywgdGhlIG9wZXJhdGlvbnMgYXJlIHRoZSByZXZlcnNlIG9mIHRoZSBzdGVwcwor
ICogbWVudGlvbmVkIGFib3ZlLiBUaGUgYXJndW1lbnQgaXMgTU1VRVhUX1VOUElOX1RBQkxFIGZv
ciBhbGwgbGV2ZWxzIGFuZCB0aGUKKyAqIHBhZ2V0YWJsZSBNVVNUIG5vdCBiZSBpbiB1c2UgKG1l
YW5pbmcgdGhhdCB0aGUgY3IzIGlzIG5vdCBzZXQgdG8gaXQpLgorICogCisgKiBwdHJbMTowXSA9
PSBNTVVfTUFDSFBIWVNfVVBEQVRFOgorICogVXBkYXRlcyBhbiBlbnRyeSBpbiB0aGUgbWFjaGlu
ZS0+cHNldWRvLXBoeXNpY2FsIG1hcHBpbmcgdGFibGUuCisgKiBwdHJbOjJdICAtLSBNYWNoaW5l
IGFkZHJlc3Mgd2l0aGluIHRoZSBmcmFtZSB3aG9zZSBtYXBwaW5nIHRvIG1vZGlmeS4KKyAqICAg
ICAgICAgICAgIFRoZSBmcmFtZSBtdXN0IGJlbG9uZyB0byB0aGUgRkQsIGlmIG9uZSBpcyBzcGVj
aWZpZWQuCisgKiB2YWwgICAgICAtLSBWYWx1ZSB0byB3cml0ZSBpbnRvIHRoZSBtYXBwaW5nIGVu
dHJ5LgorICogCisgKiBwdHJbMTowXSA9PSBNTVVfUFRfVVBEQVRFX1BSRVNFUlZFX0FEOgorICog
QXMgTU1VX05PUk1BTF9QVF9VUERBVEUgYWJvdmUsIGJ1dCBBL0QgYml0cyBjdXJyZW50bHkgaW4g
dGhlIFBURSBhcmUgT1JlZAorICogd2l0aCB0aG9zZSBpbiBAdmFsLgorICoKKyAqIEB2YWwgaXMg
dXN1YWxseSB0aGUgbWFjaGluZSBmcmFtZSBudW1iZXIgYWxvbmcgd2l0aCBzb21lIGF0dHJpYnV0
ZXMuCisgKiBUaGUgYXR0cmlidXRlcyBieSBkZWZhdWx0IGZvbGxvdyB0aGUgYXJjaGl0ZWN0dXJl
IGRlZmluZWQgYml0cy4gTWVhbmluZyB0aGF0CisgKiBpZiB0aGlzIGlzIGEgWDg2XzY0IG1hY2hp
bmUgYW5kIGZvdXIgcGFnZSB0YWJsZSBsYXlvdXQgaXMgdXNlZCwgdGhlIGxheW91dAorICogb2Yg
dmFsIGlzOgorICogIC0gNjMgaWYgc2V0IG1lYW5zIE5vIGV4ZWN1dGUgKE5YKQorICogIC0gNDYt
MTMgdGhlIG1hY2hpbmUgZnJhbWUgbnVtYmVyCisgKiAgLSAxMiBhdmFpbGFibGUgZm9yIGd1ZXN0
CisgKiAgLSAxMSBhdmFpbGFibGUgZm9yIGd1ZXN0CisgKiAgLSAxMCBhdmFpbGFibGUgZm9yIGd1
ZXN0CisgKiAgLSA5IGF2YWlsYWJsZSBmb3IgZ3Vlc3QKKyAqICAtIDggZ2xvYmFsCisgKiAgLSA3
IFBBVCAoUFNFIGlzIGRpc2FibGVkLCBtdXN0IHVzZSBoeXBlcmNhbGwgdG8gbWFrZSA0TUIgb3Ig
Mk1CIHBhZ2VzKQorICogIC0gNiBkaXJ0eQorICogIC0gNSBhY2Nlc3NlZAorICogIC0gNCBwYWdl
IGNhY2hlZCBkaXNhYmxlZAorICogIC0gMyBwYWdlIHdyaXRlIHRocm91Z2gKKyAqICAtIDIgdXNl
cnNwYWNlIGFjY2Vzc2libGUKKyAqICAtIDEgd3JpdGVhYmxlCisgKiAgLSAwIHByZXNlbnQKKyAq
CisgKiAgVGhlIG9uZSBiaXRzIHRoYXQgZG9lcyBub3QgZml0IHdpdGggdGhlIGRlZmF1bHQgbGF5
b3V0IGlzIHRoZSBQQUdFX1BTRQorICogIGFsc28gY2FsbGVkIFBBR0VfUEFUKS4gVGhlIE1NVUVY
VF9bVU5dTUFSS19TVVBFUiBhcmd1bWVudHMgdG8gdGhlCisgKiAgSFlQRVJWSVNPUl9tbXVleHRf
b3Agc2VydmUgYXMgbWVjaGFuaXNtIHRvIHNldCBhIHBhZ2V0YWJsZSB0byBiZSA0TUIKKyAqICAo
b3IgMk1CKSBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBQQUdFX1BTRSBiaXQuCisgKgorICogIFRoZSBy
ZWFzb24gdGhhdCB0aGUgUEFHRV9QU0UgKGJpdCA3KSBpcyBub3QgYmVpbmcgdXRpbGl6ZWQgaXMg
ZHVlIHRvIFhlbgorICogIHVzaW5nIGl0IGFzIHRoZSBQYWdlIEF0dHJpYnV0ZSBUYWJsZSAoUEFU
KSBiaXQgLSBmb3IgZGV0YWlscyBvbiBpdCBwbGVhc2UKKyAqICByZWZlciB0byBJbnRlbCBTRE0g
MTAuMTIuIFRoZSBQQVQgYWxsb3dzIHRvIHNldCB0aGUgY2FjaGluZyBhdHRyaWJ1dGVzIG9mCisg
KiAgcGFnZXMgaW5zdGVhZCBvZiB1c2luZyBNVFJScy4KKyAqCisgKiAgVGhlIFBBVCBNU1IgaXMg
YXMgZm9sbG93cyAoaXQgaXMgYSA2NC1iaXQgdmFsdWUsIGVhY2ggZW50cnkgaXMgOCBiaXRzKToK
KyAqICAgICAgICAgICAgICAgICAgICBQQVQ0ICAgICAgICAgICAgICAgICBQQVQwCisgKiAgKy0t
LS0tKy0tLS0tKy0tLS0rLS0tLSstLS0tKy0tLS0tKy0tLS0rLS0tLSsKKyAqICB8IFVDICB8IFVD
LSB8IFdDIHwgV0IgfCBVQyB8IFVDLSB8IFdDIHwgV0IgfCAgPD0gTGludXgKKyAqICArLS0tLS0r
LS0tLS0rLS0tLSstLS0tKy0tLS0rLS0tLS0rLS0tLSstLS0tKworICogIHwgVUMgIHwgVUMtIHwg
V1QgfCBXQiB8IFVDIHwgVUMtIHwgV1QgfCBXQiB8ICA8PSBCSU9TIChkZWZhdWx0IHdoZW4gbWFj
aGluZSBib290cykKKyAqICArLS0tLS0rLS0tLS0rLS0tLSstLS0tKy0tLS0rLS0tLS0rLS0tLSst
LS0tKworICogIHwgcnN2IHwgcnN2IHwgV1AgfCBXQyB8IFVDIHwgVUMtIHwgV1QgfCBXQiB8ICA8
PSBYZW4KKyAqICArLS0tLS0rLS0tLS0rLS0tLSstLS0tKy0tLS0rLS0tLS0rLS0tLSstLS0tKwor
ICoKKyAqICBUaGUgbG9va3VwIG9mIHRoaXMgaW5kZXggdGFibGUgdHJhbnNsYXRlcyB0byBsb29r
aW5nIHVwCisgKiAgQml0IDcsIEJpdCA0LCBhbmQgQml0IDMgb2YgdmFsIGVudHJ5OgorICoKKyAq
ICBQQVQvUFNFIChiaXQgNykgLi4uIFBDRCAoYml0IDQpIC4uIFBXVCAoYml0IDMpLgorICoKKyAq
ICBJZiBhbGwgYml0cyBhcmUgb2ZmLCB0aGVuIHdlIGFyZSB1c2luZyBQQVQwLiBJZiBiaXQgMyB0
dXJuZWQgb24sCisgKiAgdGhlbiB3ZSBhcmUgdXNpbmcgUEFUMSwgaWYgYml0IDMgYW5kIGJpdCA0
LCB0aGVuIFBBVDIuLgorICoKKyAqICBBcyB5b3UgY2FuIHNlZSwgdGhlIExpbnV4IFBBVDEgdHJh
bnNsYXRlcyB0byBQQVQ0IHVuZGVyIFhlbi4gV2hpY2ggbWVhbnMKKyAqICB0aGF0IGlmIGEgZ3Vl
c3QgdGhhdCBmb2xsb3dzIExpbnV4J3MgUEFUIHNldHVwIGFuZCB3b3VsZCBsaWtlIHRvIHNldCBX
cml0ZQorICogIENvbWJpbmVkIG9uIHBhZ2VzIGl0IE1VU1QgdXNlIFBBVDQgZW50cnkuIE1lYW5p
bmcgdGhhdCBCaXQgNyAoUEFHRV9QQVQpIGlzCisgKiAgc2V0LiBGb3IgZXhhbXBsZSwgdW5kZXIg
TGludXggaXQgb25seSB1c2VzIFBBVDAsIFBBVDEsIGFuZCBQQVQyIGZvciB0aGUKKyAqICBjYWNo
aW5nIGFzOgorICoKKyAqICAgV0IgPSBub25lIChzbyBQQVQwKQorICogICBXQyA9IFBXVCAoYml0
IDMgb24pCisgKiAgIFVDID0gUFdUIHwgUENEIChiaXQgMyBhbmQgNCBhcmUgb24pLgorICoKKyAq
IFRvIG1ha2UgaXQgd29yayB3aXRoIFhlbiwgaXQgbmVlZHMgdG8gdHJhbnNsYXRlIHRoZSBXQyBi
aXQgYXMgc286CisgKgorICogIFBXVCAoc28gYml0IDMgb24pIC0tPiBQQVQgKHNvIGJpdCA3IGlz
IG9uKSBhbmQgY2xlYXIgYml0IDMKKyAqCisgKiBBbmQgdG8gdHJhbnNsYXRlIGJhY2sgaXQgd291
bGQ6CisgKgorICogUEFUIChiaXQgNyBvbikgLS0+IFBXVCAoYml0IDMgb24pIGFuZCBjbGVhciBi
aXQgNy4KKyAqLworI2RlZmluZSBNTVVfTk9STUFMX1BUX1VQREFURSAgICAgIDAgLyogY2hlY2tl
ZCAnKnB0ciA9IHZhbCcuIHB0ciBpcyBNQS4gICAgICAqLworI2RlZmluZSBNTVVfTUFDSFBIWVNf
VVBEQVRFICAgICAgIDEgLyogcHRyID0gTUEgb2YgZnJhbWUgdG8gbW9kaWZ5IGVudHJ5IGZvciAq
LworI2RlZmluZSBNTVVfUFRfVVBEQVRFX1BSRVNFUlZFX0FEIDIgLyogYXRvbWljYWxseTogKnB0
ciA9IHZhbCB8ICgqcHRyJihBfEQpKSAqLworCisvKgorICogTU1VIEVYVEVOREVEIE9QRVJBVElP
TlMKKyAqCisgKiBgIGVudW0gbmVnX2Vycm5vdmFsCisgKiBgIEhZUEVSVklTT1JfbW11ZXh0X29w
KG1tdWV4dF9vcF90IHVvcHNbXSwKKyAqIGAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
aW50IGNvdW50LAorICogYCAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKnBkb25l
LAorICogYCAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZm9yZWlnbmRvbSkKKyAq
LworLyogSFlQRVJWSVNPUl9tbXVleHRfb3AoKSBhY2NlcHRzIGEgbGlzdCBvZiBtbXVleHRfb3Ag
c3RydWN0dXJlcy4KKyAqIEEgZm9yZWlnbmRvbSAoRkQpIGNhbiBiZSBzcGVjaWZpZWQgKG9yIERP
TUlEX1NFTEYgZm9yIG5vbmUpLgorICogV2hlcmUgdGhlIEZEIGhhcyBzb21lIGVmZmVjdCwgaXQg
aXMgZGVzY3JpYmVkIGJlbG93LgorICoKKyAqIGNtZDogTU1VRVhUXyhVTilQSU5fKl9UQUJMRQor
ICogbWZuOiBNYWNoaW5lIGZyYW1lIG51bWJlciB0byBiZSAodW4pcGlubmVkIGFzIGEgcC50LiBw
YWdlLgorICogICAgICBUaGUgZnJhbWUgbXVzdCBiZWxvbmcgdG8gdGhlIEZELCBpZiBvbmUgaXMg
c3BlY2lmaWVkLgorICoKKyAqIGNtZDogTU1VRVhUX05FV19CQVNFUFRSCisgKiBtZm46IE1hY2hp
bmUgZnJhbWUgbnVtYmVyIG9mIG5ldyBwYWdlLXRhYmxlIGJhc2UgdG8gaW5zdGFsbCBpbiBNTVUu
CisgKgorICogY21kOiBNTVVFWFRfTkVXX1VTRVJfQkFTRVBUUiBbeDg2LzY0IG9ubHldCisgKiBt
Zm46IE1hY2hpbmUgZnJhbWUgbnVtYmVyIG9mIG5ldyBwYWdlLXRhYmxlIGJhc2UgdG8gaW5zdGFs
bCBpbiBNTVUKKyAqICAgICAgd2hlbiBpbiB1c2VyIHNwYWNlLgorICoKKyAqIGNtZDogTU1VRVhU
X1RMQl9GTFVTSF9MT0NBTAorICogTm8gYWRkaXRpb25hbCBhcmd1bWVudHMuIEZsdXNoZXMgbG9j
YWwgVExCLgorICoKKyAqIGNtZDogTU1VRVhUX0lOVkxQR19MT0NBTAorICogbGluZWFyX2FkZHI6
IExpbmVhciBhZGRyZXNzIHRvIGJlIGZsdXNoZWQgZnJvbSB0aGUgbG9jYWwgVExCLgorICoKKyAq
IGNtZDogTU1VRVhUX1RMQl9GTFVTSF9NVUxUSQorICogdmNwdW1hc2s6IFBvaW50ZXIgdG8gYml0
bWFwIG9mIFZDUFVzIHRvIGJlIGZsdXNoZWQuCisgKgorICogY21kOiBNTVVFWFRfSU5WTFBHX01V
TFRJCisgKiBsaW5lYXJfYWRkcjogTGluZWFyIGFkZHJlc3MgdG8gYmUgZmx1c2hlZC4KKyAqIHZj
cHVtYXNrOiBQb2ludGVyIHRvIGJpdG1hcCBvZiBWQ1BVcyB0byBiZSBmbHVzaGVkLgorICoKKyAq
IGNtZDogTU1VRVhUX1RMQl9GTFVTSF9BTEwKKyAqIE5vIGFkZGl0aW9uYWwgYXJndW1lbnRzLiBG
bHVzaGVzIGFsbCBWQ1BVcycgVExCcy4KKyAqCisgKiBjbWQ6IE1NVUVYVF9JTlZMUEdfQUxMCisg
KiBsaW5lYXJfYWRkcjogTGluZWFyIGFkZHJlc3MgdG8gYmUgZmx1c2hlZCBmcm9tIGFsbCBWQ1BV
cycgVExCcy4KKyAqCisgKiBjbWQ6IE1NVUVYVF9GTFVTSF9DQUNIRQorICogTm8gYWRkaXRpb25h
bCBhcmd1bWVudHMuIFdyaXRlcyBiYWNrIGFuZCBmbHVzaGVzIGNhY2hlIGNvbnRlbnRzLgorICoK
KyAqIGNtZDogTU1VRVhUX0ZMVVNIX0NBQ0hFX0dMT0JBTAorICogTm8gYWRkaXRpb25hbCBhcmd1
bWVudHMuIFdyaXRlcyBiYWNrIGFuZCBmbHVzaGVzIGNhY2hlIGNvbnRlbnRzCisgKiBvbiBhbGwg
Q1BVcyBpbiB0aGUgc3lzdGVtLgorICoKKyAqIGNtZDogTU1VRVhUX1NFVF9MRFQKKyAqIGxpbmVh
cl9hZGRyOiBMaW5lYXIgYWRkcmVzcyBvZiBMRFQgYmFzZSAoTkIuIG11c3QgYmUgcGFnZS1hbGln
bmVkKS4KKyAqIG5yX2VudHM6IE51bWJlciBvZiBlbnRyaWVzIGluIExEVC4KKyAqCisgKiBjbWQ6
IE1NVUVYVF9DTEVBUl9QQUdFCisgKiBtZm46IE1hY2hpbmUgZnJhbWUgbnVtYmVyIHRvIGJlIGNs
ZWFyZWQuCisgKgorICogY21kOiBNTVVFWFRfQ09QWV9QQUdFCisgKiBtZm46IE1hY2hpbmUgZnJh
bWUgbnVtYmVyIG9mIHRoZSBkZXN0aW5hdGlvbiBwYWdlLgorICogc3JjX21mbjogTWFjaGluZSBm
cmFtZSBudW1iZXIgb2YgdGhlIHNvdXJjZSBwYWdlLgorICoKKyAqIGNtZDogTU1VRVhUX1tVTl1N
QVJLX1NVUEVSCisgKiBtZm46IE1hY2hpbmUgZnJhbWUgbnVtYmVyIG9mIGhlYWQgb2Ygc3VwZXJw
YWdlIHRvIGJlIFt1bl1tYXJrZWQuCisgKi8KKy8qIGAgZW51bSBtbXVleHRfY21kIHsgKi8KKyNk
ZWZpbmUgTU1VRVhUX1BJTl9MMV9UQUJMRSAgICAgIDAKKyNkZWZpbmUgTU1VRVhUX1BJTl9MMl9U
QUJMRSAgICAgIDEKKyNkZWZpbmUgTU1VRVhUX1BJTl9MM19UQUJMRSAgICAgIDIKKyNkZWZpbmUg
TU1VRVhUX1BJTl9MNF9UQUJMRSAgICAgIDMKKyNkZWZpbmUgTU1VRVhUX1VOUElOX1RBQkxFICAg
ICAgIDQKKyNkZWZpbmUgTU1VRVhUX05FV19CQVNFUFRSICAgICAgIDUKKyNkZWZpbmUgTU1VRVhU
X1RMQl9GTFVTSF9MT0NBTCAgIDYKKyNkZWZpbmUgTU1VRVhUX0lOVkxQR19MT0NBTCAgICAgIDcK
KyNkZWZpbmUgTU1VRVhUX1RMQl9GTFVTSF9NVUxUSSAgIDgKKyNkZWZpbmUgTU1VRVhUX0lOVkxQ
R19NVUxUSSAgICAgIDkKKyNkZWZpbmUgTU1VRVhUX1RMQl9GTFVTSF9BTEwgICAgMTAKKyNkZWZp
bmUgTU1VRVhUX0lOVkxQR19BTEwgICAgICAgMTEKKyNkZWZpbmUgTU1VRVhUX0ZMVVNIX0NBQ0hF
ICAgICAgMTIKKyNkZWZpbmUgTU1VRVhUX1NFVF9MRFQgICAgICAgICAgMTMKKyNkZWZpbmUgTU1V
RVhUX05FV19VU0VSX0JBU0VQVFIgMTUKKyNkZWZpbmUgTU1VRVhUX0NMRUFSX1BBR0UgICAgICAg
MTYKKyNkZWZpbmUgTU1VRVhUX0NPUFlfUEFHRSAgICAgICAgMTcKKyNkZWZpbmUgTU1VRVhUX0ZM
VVNIX0NBQ0hFX0dMT0JBTCAxOAorI2RlZmluZSBNTVVFWFRfTUFSS19TVVBFUiAgICAgICAxOQor
I2RlZmluZSBNTVVFWFRfVU5NQVJLX1NVUEVSICAgICAyMAorLyogYCB9ICovCisKKyNpZm5kZWYg
X19BU1NFTUJMWV9fCitzdHJ1Y3QgbW11ZXh0X29wIHsKKyAgICB1bnNpZ25lZCBpbnQgY21kOyAv
KiA9PiBlbnVtIG1tdWV4dF9jbWQgKi8KKyAgICB1bmlvbiB7CisgICAgICAgIC8qIFtVTl1QSU5f
VEFCTEUsIE5FV19CQVNFUFRSLCBORVdfVVNFUl9CQVNFUFRSCisgICAgICAgICAqIENMRUFSX1BB
R0UsIENPUFlfUEFHRSwgW1VOXU1BUktfU1VQRVIgKi8KKyAgICAgICAgeGVuX3Bmbl90ICAgICBt
Zm47CisgICAgICAgIC8qIElOVkxQR19MT0NBTCwgSU5WTFBHX0FMTCwgU0VUX0xEVCAqLworICAg
ICAgICB1bnNpZ25lZCBsb25nIGxpbmVhcl9hZGRyOworICAgIH0gYXJnMTsKKyAgICB1bmlvbiB7
CisgICAgICAgIC8qIFNFVF9MRFQgKi8KKyAgICAgICAgdW5zaWduZWQgaW50IG5yX2VudHM7Cisg
ICAgICAgIC8qIFRMQl9GTFVTSF9NVUxUSSwgSU5WTFBHX01VTFRJICovCisjaWYgX19YRU5fSU5U
RVJGQUNFX1ZFUlNJT05fXyA+PSAweDAwMDMwMjA1CisgICAgICAgIFhFTl9HVUVTVF9IQU5ETEUo
Y29uc3Rfdm9pZCkgdmNwdW1hc2s7CisjZWxzZQorICAgICAgICBjb25zdCB2b2lkICp2Y3B1bWFz
azsKKyNlbmRpZgorICAgICAgICAvKiBDT1BZX1BBR0UgKi8KKyAgICAgICAgeGVuX3Bmbl90IHNy
Y19tZm47CisgICAgfSBhcmcyOworfTsKK3R5cGVkZWYgc3RydWN0IG1tdWV4dF9vcCBtbXVleHRf
b3BfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKG1tdWV4dF9vcF90KTsKKyNlbmRpZgorCisv
KgorICogYCBlbnVtIG5lZ19lcnJub3ZhbAorICogYCBIWVBFUlZJU09SX3VwZGF0ZV92YV9tYXBw
aW5nKHVuc2lnbmVkIGxvbmcgdmEsIHU2NCB2YWwsCisgKiBgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZW51bSB1dm1fZmxhZ3MgZmxhZ3MpCisgKiBgCisgKiBgIGVudW0gbmVnX2Vycm5v
dmFsCisgKiBgIEhZUEVSVklTT1JfdXBkYXRlX3ZhX21hcHBpbmdfb3RoZXJkb21haW4odW5zaWdu
ZWQgbG9uZyB2YSwgdTY0IHZhbCwKKyAqIGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlbnVtIHV2bV9mbGFncyBmbGFncywKKyAqIGAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkb21pZF90IGRvbWlkKQorICogYAorICogYCBAdmE6IFRo
ZSB2aXJ0dWFsIGFkZHJlc3Mgd2hvc2UgbWFwcGluZyB3ZSB3YW50IHRvIGNoYW5nZQorICogYCBA
dmFsOiBUaGUgbmV3IHBhZ2UgdGFibGUgZW50cnksIG11c3QgY29udGFpbiBhIG1hY2hpbmUgYWRk
cmVzcworICogYCBAZmxhZ3M6IENvbnRyb2wgVExCIGZsdXNoZXMKKyAqLworLyogVGhlc2UgYXJl
IHBhc3NlZCBhcyAnZmxhZ3MnIHRvIHVwZGF0ZV92YV9tYXBwaW5nLiBUaGV5IGNhbiBiZSBPUmVk
LiAqLworLyogV2hlbiBzcGVjaWZ5aW5nIFVWTUZfTVVMVEksIGFsc28gT1IgaW4gYSBwb2ludGVy
IHRvIGEgQ1BVIGJpdG1hcC4gICAqLworLyogVVZNRl9MT0NBTCBpcyBtZXJlbHkgVVZNRl9NVUxU
SSB3aXRoIGEgTlVMTCBiaXRtYXAgcG9pbnRlci4gICAgICAgICAqLworLyogYCBlbnVtIHV2bV9m
bGFncyB7ICovCisjZGVmaW5lIFVWTUZfTk9ORSAgICAgICAgICAgKHhlbl9ta191bG9uZygwKTw8
MCkgLyogTm8gZmx1c2hpbmcgYXQgYWxsLiAgICovCisjZGVmaW5lIFVWTUZfVExCX0ZMVVNIICAg
ICAgKHhlbl9ta191bG9uZygxKTw8MCkgLyogRmx1c2ggZW50aXJlIFRMQihzKS4gICovCisjZGVm
aW5lIFVWTUZfSU5WTFBHICAgICAgICAgKHhlbl9ta191bG9uZygyKTw8MCkgLyogRmx1c2ggb25s
eSBvbmUgZW50cnkuICovCisjZGVmaW5lIFVWTUZfRkxVU0hUWVBFX01BU0sgKHhlbl9ta191bG9u
ZygzKTw8MCkKKyNkZWZpbmUgVVZNRl9NVUxUSSAgICAgICAgICAoeGVuX21rX3Vsb25nKDApPDwy
KSAvKiBGbHVzaCBzdWJzZXQgb2YgVExCcy4gKi8KKyNkZWZpbmUgVVZNRl9MT0NBTCAgICAgICAg
ICAoeGVuX21rX3Vsb25nKDApPDwyKSAvKiBGbHVzaCBsb2NhbCBUTEIuICAgICAgKi8KKyNkZWZp
bmUgVVZNRl9BTEwgICAgICAgICAgICAoeGVuX21rX3Vsb25nKDEpPDwyKSAvKiBGbHVzaCBhbGwg
VExCcy4gICAgICAgKi8KKy8qIGAgfSAqLworCisvKgorICogQ29tbWFuZHMgdG8gSFlQRVJWSVNP
Ul9jb25zb2xlX2lvKCkuCisgKi8KKyNkZWZpbmUgQ09OU09MRUlPX3dyaXRlICAgICAgICAgMAor
I2RlZmluZSBDT05TT0xFSU9fcmVhZCAgICAgICAgICAxCisKKy8qCisgKiBDb21tYW5kcyB0byBI
WVBFUlZJU09SX3ZtX2Fzc2lzdCgpLgorICovCisjZGVmaW5lIFZNQVNTVF9DTURfZW5hYmxlICAg
ICAgICAgICAgICAgIDAKKyNkZWZpbmUgVk1BU1NUX0NNRF9kaXNhYmxlICAgICAgICAgICAgICAg
MQorCisvKiB4ODYvMzIgZ3Vlc3RzOiBzaW11bGF0ZSBmdWxsIDRHQiBzZWdtZW50IGxpbWl0cy4g
Ki8KKyNkZWZpbmUgVk1BU1NUX1RZUEVfNGdiX3NlZ21lbnRzICAgICAgICAgMAorCisvKiB4ODYv
MzIgZ3Vlc3RzOiB0cmFwICh2ZWN0b3IgMTUpIHdoZW5ldmVyIGFib3ZlIHZtYXNzaXN0IGlzIHVz
ZWQuICovCisjZGVmaW5lIFZNQVNTVF9UWVBFXzRnYl9zZWdtZW50c19ub3RpZnkgIDEKKworLyoK
KyAqIHg4NiBndWVzdHM6IHN1cHBvcnQgd3JpdGVzIHRvIGJvdHRvbS1sZXZlbCBQVEVzLgorICog
TkIxLiBQYWdlLWRpcmVjdG9yeSBlbnRyaWVzIGNhbm5vdCBiZSB3cml0dGVuLgorICogTkIyLiBH
dWVzdCBtdXN0IGNvbnRpbnVlIHRvIHJlbW92ZSBhbGwgd3JpdGFibGUgbWFwcGluZ3Mgb2YgUFRF
cy4KKyAqLworI2RlZmluZSBWTUFTU1RfVFlQRV93cml0YWJsZV9wYWdldGFibGVzICAyCisKKy8q
IHg4Ni9QQUUgZ3Vlc3RzOiBzdXBwb3J0IFBEUFRzIGFib3ZlIDRHQi4gKi8KKyNkZWZpbmUgVk1B
U1NUX1RZUEVfcGFlX2V4dGVuZGVkX2NyMyAgICAgMworCisvKgorICogeDg2IGd1ZXN0czogU2Fu
ZSBiZWhhdmlvdXIgZm9yIHZpcnR1YWwgaW9wbAorICogIC0gdmlydHVhbCBpb3BsIHVwZGF0ZWQg
ZnJvbSBkb19pcmV0KCkgaHlwZXJjYWxscy4KKyAqICAtIHZpcnR1YWwgaW9wbCByZXBvcnRlZCBp
biBib3VuY2UgZnJhbWVzLgorICogIC0gZ3Vlc3Qga2VybmVscyBhc3N1bWVkIHRvIGJlIGxldmVs
IDAgZm9yIHRoZSBwdXJwb3NlIG9mIGlvcGwgY2hlY2tzLgorICovCisjZGVmaW5lIFZNQVNTVF9U
WVBFX2FyY2hpdGVjdHVyYWxfaW9wbCAgIDQKKworLyoKKyAqIEFsbCBndWVzdHM6IGFjdGl2YXRl
IHVwZGF0ZSBpbmRpY2F0b3IgaW4gdmNwdV9ydW5zdGF0ZV9pbmZvCisgKiBFbmFibGUgc2V0dGlu
ZyB0aGUgWEVOX1JVTlNUQVRFX1VQREFURSBmbGFnIGluIGd1ZXN0IG1lbW9yeSBtYXBwZWQKKyAq
IHZjcHVfcnVuc3RhdGVfaW5mbyBkdXJpbmcgdXBkYXRlcyBvZiB0aGUgcnVuc3RhdGUgaW5mb3Jt
YXRpb24uCisgKi8KKyNkZWZpbmUgVk1BU1NUX1RZUEVfcnVuc3RhdGVfdXBkYXRlX2ZsYWcgNQor
CisvKgorICogeDg2LzY0IGd1ZXN0czogc3RyaWN0bHkgaGlkZSBNMlAgZnJvbSB1c2VyIG1vZGUu
CisgKiBUaGlzIGFsbG93cyB0aGUgZ3Vlc3QgdG8gY29udHJvbCByZXNwZWN0aXZlIGh5cGVydmlz
b3IgYmVoYXZpb3I6CisgKiAtIHdoZW4gbm90IHNldCwgTDQgdGFibGVzIGdldCBjcmVhdGVkIHdp
dGggdGhlIHJlc3BlY3RpdmUgc2xvdCBibGFuaywKKyAqICAgYW5kIHdoZW5ldmVyIHRoZSBMNCB0
YWJsZSBnZXRzIHVzZWQgYXMgYSBrZXJuZWwgb25lIHRoZSBtaXNzaW5nCisgKiAgIG1hcHBpbmcg
Z2V0cyBpbnNlcnRlZCwKKyAqIC0gd2hlbiBzZXQsIEw0IHRhYmxlcyBnZXQgY3JlYXRlZCB3aXRo
IHRoZSByZXNwZWN0aXZlIHNsb3QgaW5pdGlhbGl6ZWQKKyAqICAgYXMgYmVmb3JlLCBhbmQgd2hl
bmV2ZXIgdGhlIEw0IHRhYmxlIGdldHMgdXNlZCBhcyBhIHVzZXIgb25lIHRoZQorICogICBtYXBw
aW5nIGdldHMgemFwcGVkLgorICovCisjZGVmaW5lIFZNQVNTVF9UWVBFX20ycF9zdHJpY3QgICAg
ICAgICAgIDMyCisKKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDA0MDYwMAor
I2RlZmluZSBNQVhfVk1BU1NUX1RZUEUgICAgICAgICAgICAgICAgICAzCisjZW5kaWYKKworLyog
RG9tYWluIGlkcyA+PSBET01JRF9GSVJTVF9SRVNFUlZFRCBjYW5ub3QgYmUgdXNlZCBmb3Igb3Jk
aW5hcnkgZG9tYWlucy4gKi8KKyNkZWZpbmUgRE9NSURfRklSU1RfUkVTRVJWRUQgeGVuX21rX3Vp
bnQoMHg3RkYwKQorCisvKiBET01JRF9TRUxGIGlzIHVzZWQgaW4gY2VydGFpbiBjb250ZXh0cyB0
byByZWZlciB0byBvbmVzZWxmLiAqLworI2RlZmluZSBET01JRF9TRUxGICAgICAgICAgICB4ZW5f
bWtfdWludCgweDdGRjApCisKKy8qCisgKiBET01JRF9JTyBpcyB1c2VkIHRvIHJlc3RyaWN0IHBh
Z2UtdGFibGUgdXBkYXRlcyB0byBtYXBwaW5nIEkvTyBtZW1vcnkuCisgKiBBbHRob3VnaCBubyBG
b3JlaWduIERvbWFpbiBuZWVkIGJlIHNwZWNpZmllZCB0byBtYXAgSS9PIHBhZ2VzLCBET01JRF9J
TworICogaXMgdXNlZnVsIHRvIGVuc3VyZSB0aGF0IG5vIG1hcHBpbmdzIHRvIHRoZSBPUydzIG93
biBoZWFwIGFyZSBhY2NpZGVudGFsbHkKKyAqIGluc3RhbGxlZC4gKGUuZy4sIGluIExpbnV4IHRo
aXMgY291bGQgY2F1c2UgaGF2b2MgYXMgcmVmZXJlbmNlIGNvdW50cworICogYXJlbid0IGFkanVz
dGVkIG9uIHRoZSBJL08tbWFwcGluZyBjb2RlIHBhdGgpLgorICogVGhpcyBvbmx5IG1ha2VzIHNl
bnNlIGFzIEhZUEVSVklTT1JfbW11X3VwZGF0ZSgpJ3MgYW5kCisgKiBIWVBFUlZJU09SX3VwZGF0
ZV92YV9tYXBwaW5nX290aGVyZG9tYWluKCkncyAiZm9yZWlnbmRvbSIgYXJndW1lbnQuIEZvcgor
ICogSFlQRVJWSVNPUl9tbXVfdXBkYXRlKCkgY29udGV4dCBpdCBjYW4gYmUgc3BlY2lmaWVkIGJ5
IGFueSBjYWxsaW5nIGRvbWFpbiwKKyAqIG90aGVyd2lzZSBpdCdzIG9ubHkgcGVybWl0dGVkIGlm
IHRoZSBjYWxsZXIgaXMgcHJpdmlsZWdlZC4KKyAqLworI2RlZmluZSBET01JRF9JTyAgICAgICAg
ICAgICB4ZW5fbWtfdWludCgweDdGRjEpCisKKy8qCisgKiBET01JRF9YRU4gaXMgdXNlZCB0byBh
bGxvdyBwcml2aWxlZ2VkIGRvbWFpbnMgdG8gbWFwIHJlc3RyaWN0ZWQgcGFydHMgb2YKKyAqIFhl
bidzIGhlYXAgc3BhY2UgKGUuZy4sIHRoZSBtYWNoaW5lX3RvX3BoeXMgdGFibGUpLgorICogVGhp
cyBvbmx5IG1ha2VzIHNlbnNlIGFzCisgKiAtIEhZUEVSVklTT1JfbW11X3VwZGF0ZSgpJ3MsIEhZ
UEVSVklTT1JfbW11ZXh0X29wKCkncywgb3IKKyAqICAgSFlQRVJWSVNPUl91cGRhdGVfdmFfbWFw
cGluZ19vdGhlcmRvbWFpbigpJ3MgImZvcmVpZ25kb20iIGFyZ3VtZW50LAorICogLSB3aXRoIFhF
Tk1BUFNQQUNFX2dtZm5fZm9yZWlnbiwKKyAqIGFuZCBpcyBvbmx5IHBlcm1pdHRlZCBpZiB0aGUg
Y2FsbGVyIGlzIHByaXZpbGVnZWQuCisgKi8KKyNkZWZpbmUgRE9NSURfWEVOICAgICAgICAgICAg
eGVuX21rX3VpbnQoMHg3RkYyKQorCisvKgorICogRE9NSURfQ09XIGlzIHVzZWQgYXMgdGhlIG93
bmVyIG9mIHNoYXJhYmxlIHBhZ2VzICovCisjZGVmaW5lIERPTUlEX0NPVyAgICAgICAgICAgIHhl
bl9ta191aW50KDB4N0ZGMykKKworLyogRE9NSURfSU5WQUxJRCBpcyB1c2VkIHRvIGlkZW50aWZ5
IHBhZ2VzIHdpdGggdW5rbm93biBvd25lci4gKi8KKyNkZWZpbmUgRE9NSURfSU5WQUxJRCAgICAg
ICAgeGVuX21rX3VpbnQoMHg3RkY0KQorCisvKiBJZGxlIGRvbWFpbi4gKi8KKyNkZWZpbmUgRE9N
SURfSURMRSAgICAgICAgICAgeGVuX21rX3VpbnQoMHg3RkZGKQorCisjaWZuZGVmIF9fQVNTRU1C
TFlfXworCit0eXBlZGVmIHVpbnQxNl90IGRvbWlkX3Q7CisKKy8qCisgKiBTZW5kIGFuIGFycmF5
IG9mIHRoZXNlIHRvIEhZUEVSVklTT1JfbW11X3VwZGF0ZSgpLgorICogTkIuIFRoZSBmaWVsZHMg
YXJlIG5hdHVyYWwgcG9pbnRlci9hZGRyZXNzIHNpemUgZm9yIHRoaXMgYXJjaGl0ZWN0dXJlLgor
ICovCitzdHJ1Y3QgbW11X3VwZGF0ZSB7CisgICAgdWludDY0X3QgcHRyOyAgICAgICAvKiBNYWNo
aW5lIGFkZHJlc3Mgb2YgUFRFLiAqLworICAgIHVpbnQ2NF90IHZhbDsgICAgICAgLyogTmV3IGNv
bnRlbnRzIG9mIFBURS4gICAgKi8KK307Cit0eXBlZGVmIHN0cnVjdCBtbXVfdXBkYXRlIG1tdV91
cGRhdGVfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKG1tdV91cGRhdGVfdCk7CisKKy8qCisg
KiBgIGVudW0gbmVnX2Vycm5vdmFsCisgKiBgIEhZUEVSVklTT1JfbXVsdGljYWxsKG11bHRpY2Fs
bF9lbnRyeV90IGNhbGxfbGlzdFtdLAorICogYCAgICAgICAgICAgICAgICAgICAgICB1aW50MzJf
dCBucl9jYWxscyk7CisgKgorICogTkIuIFRoZSBmaWVsZHMgYXJlIGxvZ2ljYWxseSB0aGUgbmF0
dXJhbCByZWdpc3RlciBzaXplIGZvciB0aGlzCisgKiBhcmNoaXRlY3R1cmUuIEluIGNhc2VzIHdo
ZXJlIHhlbl91bG9uZ190IGlzIGxhcmdlciB0aGFuIHRoaXMgdGhlbgorICogYW55IHVudXNlZCBi
aXRzIGluIHRoZSB1cHBlciBwb3J0aW9uIG11c3QgYmUgemVyby4KKyAqLworc3RydWN0IG11bHRp
Y2FsbF9lbnRyeSB7CisgICAgeGVuX3Vsb25nX3Qgb3AsIHJlc3VsdDsKKyAgICB4ZW5fdWxvbmdf
dCBhcmdzWzZdOworfTsKK3R5cGVkZWYgc3RydWN0IG11bHRpY2FsbF9lbnRyeSBtdWx0aWNhbGxf
ZW50cnlfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKG11bHRpY2FsbF9lbnRyeV90KTsKKwor
I2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPCAweDAwMDQwNDAwCisvKgorICogRXZlbnQg
Y2hhbm5lbCBlbmRwb2ludHMgcGVyIGRvbWFpbiAod2hlbiB1c2luZyB0aGUgMi1sZXZlbCBBQkkp
OgorICogIDEwMjQgaWYgYSBsb25nIGlzIDMyIGJpdHM7IDQwOTYgaWYgYSBsb25nIGlzIDY0IGJp
dHMuCisgKi8KKyNkZWZpbmUgTlJfRVZFTlRfQ0hBTk5FTFMgRVZUQ0hOXzJMX05SX0NIQU5ORUxT
CisjZW5kaWYKKworc3RydWN0IHZjcHVfdGltZV9pbmZvIHsKKyAgICAvKgorICAgICAqIFVwZGF0
ZXMgdG8gdGhlIGZvbGxvd2luZyB2YWx1ZXMgYXJlIHByZWNlZGVkIGFuZCBmb2xsb3dlZCBieSBh
bgorICAgICAqIGluY3JlbWVudCBvZiAndmVyc2lvbicuIFRoZSBndWVzdCBjYW4gdGhlcmVmb3Jl
IGRldGVjdCB1cGRhdGVzIGJ5CisgICAgICogbG9va2luZyBmb3IgY2hhbmdlcyB0byAndmVyc2lv
bicuIElmIHRoZSBsZWFzdC1zaWduaWZpY2FudCBiaXQgb2YKKyAgICAgKiB0aGUgdmVyc2lvbiBu
dW1iZXIgaXMgc2V0IHRoZW4gYW4gdXBkYXRlIGlzIGluIHByb2dyZXNzIGFuZCB0aGUgZ3Vlc3QK
KyAgICAgKiBtdXN0IHdhaXQgdG8gcmVhZCBhIGNvbnNpc3RlbnQgc2V0IG9mIHZhbHVlcy4KKyAg
ICAgKiBUaGUgY29ycmVjdCB3YXkgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIg
aXMgc2ltaWxhciB0bworICAgICAqIExpbnV4J3Mgc2VxbG9jazogc2VlIHRoZSBpbXBsZW1lbnRh
dGlvbnMgb2YgcmVhZF9zZXFiZWdpbi9yZWFkX3NlcXJldHJ5LgorICAgICAqLworICAgIHVpbnQz
Ml90IHZlcnNpb247CisgICAgdWludDMyX3QgcGFkMDsKKyAgICB1aW50NjRfdCB0c2NfdGltZXN0
YW1wOyAgIC8qIFRTQyBhdCBsYXN0IHVwZGF0ZSBvZiB0aW1lIHZhbHMuICAqLworICAgIHVpbnQ2
NF90IHN5c3RlbV90aW1lOyAgICAgLyogVGltZSwgaW4gbmFub3NlY3MsIHNpbmNlIGJvb3QuICAg
ICovCisgICAgLyoKKyAgICAgKiBDdXJyZW50IHN5c3RlbSB0aW1lOgorICAgICAqICAgc3lzdGVt
X3RpbWUgKworICAgICAqICAgKCgoKHRzYyAtIHRzY190aW1lc3RhbXApIDw8IHRzY19zaGlmdCkg
KiB0c2NfdG9fc3lzdGVtX211bCkgPj4gMzIpCisgICAgICogQ1BVIGZyZXF1ZW5jeSAoSHopOgor
ICAgICAqICAgKCgxMF45IDw8IDMyKSAvIHRzY190b19zeXN0ZW1fbXVsKSA+PiB0c2Nfc2hpZnQK
KyAgICAgKi8KKyAgICB1aW50MzJfdCB0c2NfdG9fc3lzdGVtX211bDsKKyAgICBpbnQ4X3QgICB0
c2Nfc2hpZnQ7CisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA+IDB4MDQwNjAwCisgICAg
dWludDhfdCAgZmxhZ3M7CisgICAgdWludDhfdCAgcGFkMVsyXTsKKyNlbHNlCisgICAgaW50OF90
ICAgcGFkMVszXTsKKyNlbmRpZgorfTsgLyogMzIgYnl0ZXMgKi8KK3R5cGVkZWYgc3RydWN0IHZj
cHVfdGltZV9pbmZvIHZjcHVfdGltZV9pbmZvX3Q7CisKKyNkZWZpbmUgWEVOX1BWQ0xPQ0tfVFND
X1NUQUJMRV9CSVQgICAgICgxIDw8IDApCisjZGVmaW5lIFhFTl9QVkNMT0NLX0dVRVNUX1NUT1BQ
RUQgICAgICAoMSA8PCAxKQorCitzdHJ1Y3QgdmNwdV9pbmZvIHsKKyAgICAvKgorICAgICAqICdl
dnRjaG5fdXBjYWxsX3BlbmRpbmcnIGlzIHdyaXR0ZW4gbm9uLXplcm8gYnkgWGVuIHRvIGluZGlj
YXRlCisgICAgICogYSBwZW5kaW5nIG5vdGlmaWNhdGlvbiBmb3IgYSBwYXJ0aWN1bGFyIFZDUFUu
IEl0IGlzIHRoZW4gY2xlYXJlZCAKKyAgICAgKiBieSB0aGUgZ3Vlc3QgT1MgL2JlZm9yZS8gY2hl
Y2tpbmcgZm9yIHBlbmRpbmcgd29yaywgdGh1cyBhdm9pZGluZworICAgICAqIGEgc2V0LWFuZC1j
aGVjayByYWNlLiBOb3RlIHRoYXQgdGhlIG1hc2sgaXMgb25seSBhY2Nlc3NlZCBieSBYZW4KKyAg
ICAgKiBvbiB0aGUgQ1BVIHRoYXQgaXMgY3VycmVudGx5IGhvc3RpbmcgdGhlIFZDUFUuIFRoaXMg
bWVhbnMgdGhhdCB0aGUKKyAgICAgKiBwZW5kaW5nIGFuZCBtYXNrIGZsYWdzIGNhbiBiZSB1cGRh
dGVkIGJ5IHRoZSBndWVzdCB3aXRob3V0IHNwZWNpYWwKKyAgICAgKiBzeW5jaHJvbmlzYXRpb24g
KGkuZS4sIG5vIG5lZWQgZm9yIHRoZSB4ODYgTE9DSyBwcmVmaXgpLgorICAgICAqIFRoaXMgbWF5
IHNlZW0gc3Vib3B0aW1hbCBiZWNhdXNlIGlmIHRoZSBwZW5kaW5nIGZsYWcgaXMgc2V0IGJ5Cisg
ICAgICogYSBkaWZmZXJlbnQgQ1BVIHRoZW4gYW4gSVBJIG1heSBiZSBzY2hlZHVsZWQgZXZlbiB3
aGVuIHRoZSBtYXNrCisgICAgICogaXMgc2V0LiBIb3dldmVyLCBub3RlOgorICAgICAqICAxLiBU
aGUgdGFzayBvZiAnaW50ZXJydXB0IGhvbGRvZmYnIGlzIGNvdmVyZWQgYnkgdGhlIHBlci1ldmVu
dC0KKyAgICAgKiAgICAgY2hhbm5lbCBtYXNrIGJpdHMuIEEgJ25vaXN5JyBldmVudCB0aGF0IGlz
IGNvbnRpbnVhbGx5IGJlaW5nCisgICAgICogICAgIHRyaWdnZXJlZCBjYW4gYmUgbWFza2VkIGF0
IHNvdXJjZSBhdCB0aGlzIHZlcnkgcHJlY2lzZQorICAgICAqICAgICBncmFudWxhcml0eS4KKyAg
ICAgKiAgMi4gVGhlIG1haW4gcHVycG9zZSBvZiB0aGUgcGVyLVZDUFUgbWFzayBpcyB0aGVyZWZv
cmUgdG8gcmVzdHJpY3QKKyAgICAgKiAgICAgcmVlbnRyYW50IGV4ZWN1dGlvbjogd2hldGhlciBm
b3IgY29uY3VycmVuY3kgY29udHJvbCwgb3IgdG8KKyAgICAgKiAgICAgcHJldmVudCB1bmJvdW5k
ZWQgc3RhY2sgdXNhZ2UuIFdoYXRldmVyIHRoZSBwdXJwb3NlLCB3ZSBleHBlY3QKKyAgICAgKiAg
ICAgdGhhdCB0aGUgbWFzayB3aWxsIGJlIGFzc2VydGVkIG9ubHkgZm9yIHNob3J0IHBlcmlvZHMg
YXQgYSB0aW1lLAorICAgICAqICAgICBhbmQgc28gdGhlIGxpa2VsaWhvb2Qgb2YgYSAnc3B1cmlv
dXMnIElQSSBpcyBzdWl0YWJseSBzbWFsbC4KKyAgICAgKiBUaGUgbWFzayBpcyByZWFkIGJlZm9y
ZSBtYWtpbmcgYW4gZXZlbnQgdXBjYWxsIHRvIHRoZSBndWVzdDogYQorICAgICAqIG5vbi16ZXJv
IG1hc2sgdGhlcmVmb3JlIGd1YXJhbnRlZXMgdGhhdCB0aGUgVkNQVSB3aWxsIG5vdCByZWNlaXZl
CisgICAgICogYW4gdXBjYWxsIGFjdGl2YXRpb24uIFRoZSBtYXNrIGlzIGNsZWFyZWQgd2hlbiB0
aGUgVkNQVSByZXF1ZXN0cworICAgICAqIHRvIGJsb2NrOiB0aGlzIGF2b2lkcyB3YWtldXAtd2Fp
dGluZyByYWNlcy4KKyAgICAgKi8KKyAgICB1aW50OF90IGV2dGNobl91cGNhbGxfcGVuZGluZzsK
KyNpZmRlZiBYRU5fSEFWRV9QVl9VUENBTExfTUFTSworICAgIHVpbnQ4X3QgZXZ0Y2huX3VwY2Fs
bF9tYXNrOworI2Vsc2UgLyogWEVOX0hBVkVfUFZfVVBDQUxMX01BU0sgKi8KKyAgICB1aW50OF90
IHBhZDA7CisjZW5kaWYgLyogWEVOX0hBVkVfUFZfVVBDQUxMX01BU0sgKi8KKyAgICB4ZW5fdWxv
bmdfdCBldnRjaG5fcGVuZGluZ19zZWw7CisgICAgc3RydWN0IGFyY2hfdmNwdV9pbmZvIGFyY2g7
CisgICAgc3RydWN0IHZjcHVfdGltZV9pbmZvIHRpbWU7Cit9OyAvKiA2NCBieXRlcyAoeDg2KSAq
LworI2lmbmRlZiBfX1hFTl9fCit0eXBlZGVmIHN0cnVjdCB2Y3B1X2luZm8gdmNwdV9pbmZvX3Q7
CisjZW5kaWYKKworLyoKKyAqIGBpbmNvbnRlbnRzIDIwMCBzdGFydG9mZGF5X3NoYXJlZCBTdGFy
dC1vZi1kYXkgc2hhcmVkIGRhdGEgc3RydWN0dXJlCisgKiBYZW4va2VybmVsIHNoYXJlZCBkYXRh
IC0tIHBvaW50ZXIgcHJvdmlkZWQgaW4gc3RhcnRfaW5mby4KKyAqCisgKiBUaGlzIHN0cnVjdHVy
ZSBpcyBkZWZpbmVkIHRvIGJlIGJvdGggc21hbGxlciB0aGFuIGEgcGFnZSwgYW5kIHRoZQorICog
b25seSBkYXRhIG9uIHRoZSBzaGFyZWQgcGFnZSwgYnV0IG1heSB2YXJ5IGluIGFjdHVhbCBzaXpl
IGV2ZW4gd2l0aGluCisgKiBjb21wYXRpYmxlIFhlbiB2ZXJzaW9uczsgZ3Vlc3RzIHNob3VsZCBu
b3QgcmVseSBvbiB0aGUgc2l6ZQorICogb2YgdGhpcyBzdHJ1Y3R1cmUgcmVtYWluaW5nIGNvbnN0
YW50LgorICovCitzdHJ1Y3Qgc2hhcmVkX2luZm8geworICAgIHN0cnVjdCB2Y3B1X2luZm8gdmNw
dV9pbmZvW1hFTl9MRUdBQ1lfTUFYX1ZDUFVTXTsKKworICAgIC8qCisgICAgICogQSBkb21haW4g
Y2FuIGNyZWF0ZSAiZXZlbnQgY2hhbm5lbHMiIG9uIHdoaWNoIGl0IGNhbiBzZW5kIGFuZCByZWNl
aXZlCisgICAgICogYXN5bmNocm9ub3VzIGV2ZW50IG5vdGlmaWNhdGlvbnMuIFRoZXJlIGFyZSB0
aHJlZSBjbGFzc2VzIG9mIGV2ZW50IHRoYXQKKyAgICAgKiBhcmUgZGVsaXZlcmVkIGJ5IHRoaXMg
bWVjaGFuaXNtOgorICAgICAqICAxLiBCaS1kaXJlY3Rpb25hbCBpbnRlci0gYW5kIGludHJhLWRv
bWFpbiBjb25uZWN0aW9ucy4gRG9tYWlucyBtdXN0CisgICAgICogICAgIGFycmFuZ2Ugb3V0LW9m
LWJhbmQgdG8gc2V0IHVwIGEgY29ubmVjdGlvbiAodXN1YWxseSBieSBhbGxvY2F0aW5nCisgICAg
ICogICAgIGFuIHVuYm91bmQgJ2xpc3RlbmVyJyBwb3J0IGFuZCBhdmVydGlzaW5nIHRoYXQgdmlh
IGEgc3RvcmFnZSBzZXJ2aWNlCisgICAgICogICAgIHN1Y2ggYXMgeGVuc3RvcmUpLgorICAgICAq
ICAyLiBQaHlzaWNhbCBpbnRlcnJ1cHRzLiBBIGRvbWFpbiB3aXRoIHN1aXRhYmxlIGhhcmR3YXJl
LWFjY2VzcworICAgICAqICAgICBwcml2aWxlZ2VzIGNhbiBiaW5kIGFuIGV2ZW50LWNoYW5uZWwg
cG9ydCB0byBhIHBoeXNpY2FsIGludGVycnVwdAorICAgICAqICAgICBzb3VyY2UuCisgICAgICog
IDMuIFZpcnR1YWwgaW50ZXJydXB0cyAoJ2V2ZW50cycpLiBBIGRvbWFpbiBjYW4gYmluZCBhbiBl
dmVudC1jaGFubmVsCisgICAgICogICAgIHBvcnQgdG8gYSB2aXJ0dWFsIGludGVycnVwdCBzb3Vy
Y2UsIHN1Y2ggYXMgdGhlIHZpcnR1YWwtdGltZXIKKyAgICAgKiAgICAgZGV2aWNlIG9yIHRoZSBl
bWVyZ2VuY3kgY29uc29sZS4KKyAgICAgKiAKKyAgICAgKiBFdmVudCBjaGFubmVscyBhcmUgYWRk
cmVzc2VkIGJ5IGEgInBvcnQgaW5kZXgiLiBFYWNoIGNoYW5uZWwgaXMKKyAgICAgKiBhc3NvY2lh
dGVkIHdpdGggdHdvIGJpdHMgb2YgaW5mb3JtYXRpb246CisgICAgICogIDEuIFBFTkRJTkcgLS0g
bm90aWZpZXMgdGhlIGRvbWFpbiB0aGF0IHRoZXJlIGlzIGEgcGVuZGluZyBub3RpZmljYXRpb24K
KyAgICAgKiAgICAgdG8gYmUgcHJvY2Vzc2VkLiBUaGlzIGJpdCBpcyBjbGVhcmVkIGJ5IHRoZSBn
dWVzdC4KKyAgICAgKiAgMi4gTUFTSyAtLSBpZiB0aGlzIGJpdCBpcyBjbGVhciB0aGVuIGEgMC0+
MSB0cmFuc2l0aW9uIG9mIFBFTkRJTkcKKyAgICAgKiAgICAgd2lsbCBjYXVzZSBhbiBhc3luY2hy
b25vdXMgdXBjYWxsIHRvIGJlIHNjaGVkdWxlZC4gVGhpcyBiaXQgaXMgb25seQorICAgICAqICAg
ICB1cGRhdGVkIGJ5IHRoZSBndWVzdC4gSXQgaXMgcmVhZC1vbmx5IHdpdGhpbiBYZW4uIElmIGEg
Y2hhbm5lbAorICAgICAqICAgICBiZWNvbWVzIHBlbmRpbmcgd2hpbGUgdGhlIGNoYW5uZWwgaXMg
bWFza2VkIHRoZW4gdGhlICdlZGdlJyBpcyBsb3N0CisgICAgICogICAgIChpLmUuLCB3aGVuIHRo
ZSBjaGFubmVsIGlzIHVubWFza2VkLCB0aGUgZ3Vlc3QgbXVzdCBtYW51YWxseSBoYW5kbGUKKyAg
ICAgKiAgICAgcGVuZGluZyBub3RpZmljYXRpb25zIGFzIG5vIHVwY2FsbCB3aWxsIGJlIHNjaGVk
dWxlZCBieSBYZW4pLgorICAgICAqIAorICAgICAqIFRvIGV4cGVkaXRlIHNjYW5uaW5nIG9mIHBl
bmRpbmcgbm90aWZpY2F0aW9ucywgYW55IDAtPjEgcGVuZGluZworICAgICAqIHRyYW5zaXRpb24g
b24gYW4gdW5tYXNrZWQgY2hhbm5lbCBjYXVzZXMgYSBjb3JyZXNwb25kaW5nIGJpdCBpbiBhCisg
ICAgICogcGVyLXZjcHUgc2VsZWN0b3Igd29yZCB0byBiZSBzZXQuIEVhY2ggYml0IGluIHRoZSBz
ZWxlY3RvciBjb3ZlcnMgYQorICAgICAqICdDIGxvbmcnIGluIHRoZSBQRU5ESU5HIGJpdGZpZWxk
IGFycmF5LgorICAgICAqLworICAgIHhlbl91bG9uZ190IGV2dGNobl9wZW5kaW5nW3NpemVvZih4
ZW5fdWxvbmdfdCkgKiA4XTsKKyAgICB4ZW5fdWxvbmdfdCBldnRjaG5fbWFza1tzaXplb2YoeGVu
X3Vsb25nX3QpICogOF07CisKKyAgICAvKgorICAgICAqIFdhbGxjbG9jayB0aW1lOiB1cGRhdGVk
IG9ubHkgYnkgY29udHJvbCBzb2Z0d2FyZS4gR3Vlc3RzIHNob3VsZCBiYXNlCisgICAgICogdGhl
aXIgZ2V0dGltZW9mZGF5KCkgc3lzY2FsbCBvbiB0aGlzIHdhbGxjbG9jay1iYXNlIHZhbHVlLgor
ICAgICAqLworICAgIHVpbnQzMl90IHdjX3ZlcnNpb247ICAgICAgLyogVmVyc2lvbiBjb3VudGVy
OiBzZWUgdmNwdV90aW1lX2luZm9fdC4gKi8KKyAgICB1aW50MzJfdCB3Y19zZWM7ICAgICAgICAg
IC8qIFNlY3MgIDAwOjAwOjAwIFVUQywgSmFuIDEsIDE5NzAuICAqLworICAgIHVpbnQzMl90IHdj
X25zZWM7ICAgICAgICAgLyogTnNlY3MgMDA6MDA6MDAgVVRDLCBKYW4gMSwgMTk3MC4gICovCisj
aWYgIWRlZmluZWQoX19pMzg2X18pCisgICAgdWludDMyX3Qgd2Nfc2VjX2hpOworIyBkZWZpbmUg
eGVuX3djX3NlY19oaSB3Y19zZWNfaGkKKyNlbGlmICFkZWZpbmVkKF9fWEVOX18pICYmICFkZWZp
bmVkKF9fWEVOX1RPT0xTX18pCisjIGRlZmluZSB4ZW5fd2Nfc2VjX2hpIGFyY2gud2Nfc2VjX2hp
CisjZW5kaWYKKworICAgIHN0cnVjdCBhcmNoX3NoYXJlZF9pbmZvIGFyY2g7CisKK307CisjaWZu
ZGVmIF9fWEVOX18KK3R5cGVkZWYgc3RydWN0IHNoYXJlZF9pbmZvIHNoYXJlZF9pbmZvX3Q7Cisj
ZW5kaWYKKworLyoKKyAqIGBpbmNvbnRlbnRzIDIwMCBzdGFydG9mZGF5IFN0YXJ0LW9mLWRheSBt
ZW1vcnkgbGF5b3V0CisgKgorICogIDEuIFRoZSBkb21haW4gaXMgc3RhcnRlZCB3aXRoaW4gY29u
dGlndW91cyB2aXJ0dWFsLW1lbW9yeSByZWdpb24uCisgKiAgMi4gVGhlIGNvbnRpZ3VvdXMgcmVn
aW9uIGVuZHMgb24gYW4gYWxpZ25lZCA0TUIgYm91bmRhcnkuCisgKiAgMy4gVGhpcyB0aGUgb3Jk
ZXIgb2YgYm9vdHN0cmFwIGVsZW1lbnRzIGluIHRoZSBpbml0aWFsIHZpcnR1YWwgcmVnaW9uOgor
ICogICAgICBhLiByZWxvY2F0ZWQga2VybmVsIGltYWdlCisgKiAgICAgIGIuIGluaXRpYWwgcmFt
IGRpc2sgICAgICAgICAgICAgIFttb2Rfc3RhcnQsIG1vZF9sZW5dCisgKiAgICAgICAgIChtYXkg
YmUgb21pdHRlZCkKKyAqICAgICAgYy4gbGlzdCBvZiBhbGxvY2F0ZWQgcGFnZSBmcmFtZXMgW21m
bl9saXN0LCBucl9wYWdlc10KKyAqICAgICAgICAgKHVubGVzcyByZWxvY2F0ZWQgZHVlIHRvIFhF
Tl9FTEZOT1RFX0lOSVRfUDJNKQorICogICAgICBkLiBzdGFydF9pbmZvX3Qgc3RydWN0dXJlICAg
ICAgICBbcmVnaXN0ZXIgclNJICh4ODYpXQorICogICAgICAgICBpbiBjYXNlIG9mIGRvbTAgdGhp
cyBwYWdlIGNvbnRhaW5zIHRoZSBjb25zb2xlIGluZm8sIHRvbworICogICAgICBlLiB1bmxlc3Mg
ZG9tMDogeGVuc3RvcmUgcmluZyBwYWdlCisgKiAgICAgIGYuIHVubGVzcyBkb20wOiBjb25zb2xl
IHJpbmcgcGFnZQorICogICAgICBnLiBib290c3RyYXAgcGFnZSB0YWJsZXMgICAgICAgICBbcHRf
YmFzZSBhbmQgQ1IzICh4ODYpXQorICogICAgICBoLiBib290c3RyYXAgc3RhY2sgICAgICAgICAg
ICAgICBbcmVnaXN0ZXIgRVNQICh4ODYpXQorICogIDQuIEJvb3RzdHJhcCBlbGVtZW50cyBhcmUg
cGFja2VkIHRvZ2V0aGVyLCBidXQgZWFjaCBpcyA0a0ItYWxpZ25lZC4KKyAqICA1LiBUaGUgbGlz
dCBvZiBwYWdlIGZyYW1lcyBmb3JtcyBhIGNvbnRpZ3VvdXMgJ3BzZXVkby1waHlzaWNhbCcgbWVt
b3J5CisgKiAgICAgbGF5b3V0IGZvciB0aGUgZG9tYWluLiBJbiBwYXJ0aWN1bGFyLCB0aGUgYm9v
dHN0cmFwIHZpcnR1YWwtbWVtb3J5CisgKiAgICAgcmVnaW9uIGlzIGEgMToxIG1hcHBpbmcgdG8g
dGhlIGZpcnN0IHNlY3Rpb24gb2YgdGhlIHBzZXVkby1waHlzaWNhbCBtYXAuCisgKiAgNi4gQWxs
IGJvb3RzdHJhcCBlbGVtZW50cyBhcmUgbWFwcGVkIHJlYWQtd3JpdGFibGUgZm9yIHRoZSBndWVz
dCBPUy4gVGhlCisgKiAgICAgb25seSBleGNlcHRpb24gaXMgdGhlIGJvb3RzdHJhcCBwYWdlIHRh
YmxlLCB3aGljaCBpcyBtYXBwZWQgcmVhZC1vbmx5LgorICogIDcuIFRoZXJlIGlzIGd1YXJhbnRl
ZWQgdG8gYmUgYXQgbGVhc3QgNTEya0IgcGFkZGluZyBhZnRlciB0aGUgZmluYWwKKyAqICAgICBi
b290c3RyYXAgZWxlbWVudC4gSWYgbmVjZXNzYXJ5LCB0aGUgYm9vdHN0cmFwIHZpcnR1YWwgcmVn
aW9uIGlzCisgKiAgICAgZXh0ZW5kZWQgYnkgYW4gZXh0cmEgNE1CIHRvIGVuc3VyZSB0aGlzLgor
ICoKKyAqIE5vdGU6IFByaW9yIHRvIDI1ODMzOmJiODViYmNjYjFjOS4gKCJ4ODYvMzItb24tNjQg
YWRqdXN0IERvbTAgaW5pdGlhbCBwYWdlCisgKiB0YWJsZSBsYXlvdXQiKSBhIGJ1ZyBjYXVzZWQg
dGhlIHB0X2Jhc2UgKDMuZyBhYm92ZSkgYW5kIGNyMyB0byBub3QgcG9pbnQKKyAqIHRvIHRoZSBz
dGFydCBvZiB0aGUgZ3Vlc3QgcGFnZSB0YWJsZXMgKGl0IHdhcyBvZmZzZXQgYnkgdHdvIHBhZ2Vz
KS4KKyAqIFRoaXMgb25seSBtYW5pZmVzdGVkIGl0c2VsZiBvbiAzMi1vbi02NCBkb20wIGtlcm5l
bHMgYW5kIG5vdCAzMi1vbi02NCBkb21VCisgKiBvciA2NC1iaXQga2VybmVscyBvZiBhbnkgY29s
b3VyLiBUaGUgcGFnZSB0YWJsZXMgZm9yIGEgMzItb24tNjQgZG9tMCBnb3QKKyAqIGFsbG9jYXRl
ZCBpbiB0aGUgb3JkZXI6ICdmaXJzdCBMMScsJ2ZpcnN0IEwyJywgJ2ZpcnN0IEwzJywgc28gdGhl
IG9mZnNldAorICogdG8gdGhlIHBhZ2UgdGFibGUgYmFzZSBpcyBieSB0d28gcGFnZXMgYmFjay4g
VGhlIGluaXRpYWwgZG9tYWluIGlmIGl0IGlzCisgKiAzMi1iaXQgYW5kIHJ1bnMgdW5kZXIgYSA2
NC1iaXQgaHlwZXJ2aXNvciBzaG91bGQgX05PVF8gdXNlIHR3byBvZiB0aGUKKyAqIHBhZ2VzIHBy
ZWNlZGluZyBwdF9iYXNlIGFuZCBtYXJrIHRoZW0gYXMgcmVzZXJ2ZWQvdW51c2VkLgorICovCisj
aWZkZWYgWEVOX0hBVkVfUFZfR1VFU1RfRU5UUlkKK3N0cnVjdCBzdGFydF9pbmZvIHsKKyAgICAv
KiBUSEUgRk9MTE9XSU5HIEFSRSBGSUxMRUQgSU4gQk9USCBPTiBJTklUSUFMIEJPT1QgQU5EIE9O
IFJFU1VNRS4gICAgKi8KKyAgICBjaGFyIG1hZ2ljWzMyXTsgICAgICAgICAgICAgLyogInhlbi08
dmVyc2lvbj4tPHBsYXRmb3JtPiIuICAgICAgICAgICAgKi8KKyAgICB1bnNpZ25lZCBsb25nIG5y
X3BhZ2VzOyAgICAgLyogVG90YWwgcGFnZXMgYWxsb2NhdGVkIHRvIHRoaXMgZG9tYWluLiAgKi8K
KyAgICB1bnNpZ25lZCBsb25nIHNoYXJlZF9pbmZvOyAgLyogTUFDSElORSBhZGRyZXNzIG9mIHNo
YXJlZCBpbmZvIHN0cnVjdC4gKi8KKyAgICB1aW50MzJfdCBmbGFnczsgICAgICAgICAgICAgLyog
U0lGX3h4eCBmbGFncy4gICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICB4ZW5fcGZuX3Qg
c3RvcmVfbWZuOyAgICAgICAgLyogTUFDSElORSBwYWdlIG51bWJlciBvZiBzaGFyZWQgcGFnZS4g
ICAgKi8KKyAgICB1aW50MzJfdCBzdG9yZV9ldnRjaG47ICAgICAgLyogRXZlbnQgY2hhbm5lbCBm
b3Igc3RvcmUgY29tbXVuaWNhdGlvbi4gKi8KKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCB7
CisgICAgICAgICAgICB4ZW5fcGZuX3QgbWZuOyAgICAgIC8qIE1BQ0hJTkUgcGFnZSBudW1iZXIg
b2YgY29uc29sZSBwYWdlLiAgICovCisgICAgICAgICAgICB1aW50MzJfdCAgZXZ0Y2huOyAgIC8q
IEV2ZW50IGNoYW5uZWwgZm9yIGNvbnNvbGUgcGFnZS4gICAgICAgICovCisgICAgICAgIH0gZG9t
VTsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIHVpbnQzMl90IGluZm9fb2ZmOyAgLyog
T2Zmc2V0IG9mIGNvbnNvbGVfaW5mbyBzdHJ1Y3QuICAgICAgICAgKi8KKyAgICAgICAgICAgIHVp
bnQzMl90IGluZm9fc2l6ZTsgLyogU2l6ZSBvZiBjb25zb2xlX2luZm8gc3RydWN0IGZyb20gc3Rh
cnQuKi8KKyAgICAgICAgfSBkb20wOworICAgIH0gY29uc29sZTsKKyAgICAvKiBUSEUgRk9MTE9X
SU5HIEFSRSBPTkxZIEZJTExFRCBJTiBPTiBJTklUSUFMIEJPT1QgKE5PVCBSRVNVTUUpLiAgICAg
Ki8KKyAgICB1bnNpZ25lZCBsb25nIHB0X2Jhc2U7ICAgICAgLyogVklSVFVBTCBhZGRyZXNzIG9m
IHBhZ2UgZGlyZWN0b3J5LiAgICAgKi8KKyAgICB1bnNpZ25lZCBsb25nIG5yX3B0X2ZyYW1lczsg
LyogTnVtYmVyIG9mIGJvb3RzdHJhcCBwLnQuIGZyYW1lcy4gICAgICAgKi8KKyAgICB1bnNpZ25l
ZCBsb25nIG1mbl9saXN0OyAgICAgLyogVklSVFVBTCBhZGRyZXNzIG9mIHBhZ2UtZnJhbWUgbGlz
dC4gICAgKi8KKyAgICB1bnNpZ25lZCBsb25nIG1vZF9zdGFydDsgICAgLyogVklSVFVBTCBhZGRy
ZXNzIG9mIHByZS1sb2FkZWQgbW9kdWxlICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLyogKFBGTiBvZiBwcmUtbG9hZGVkIG1vZHVsZSBpZiAgICAgICAgICAgKi8KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIFNJRl9NT0RfU1RBUlRfUEZOIHNldCBpbiBm
bGFncykuICAgICAgKi8KKyAgICB1bnNpZ25lZCBsb25nIG1vZF9sZW47ICAgICAgLyogU2l6ZSAo
Ynl0ZXMpIG9mIHByZS1sb2FkZWQgbW9kdWxlLiAgICAgKi8KKyNkZWZpbmUgTUFYX0dVRVNUX0NN
RExJTkUgMTAyNAorICAgIGludDhfdCBjbWRfbGluZVtNQVhfR1VFU1RfQ01ETElORV07CisgICAg
LyogVGhlIHBmbiByYW5nZSBoZXJlIGNvdmVycyBib3RoIHBhZ2UgdGFibGUgYW5kIHAtPm0gdGFi
bGUgZnJhbWVzLiAgICovCisgICAgdW5zaWduZWQgbG9uZyBmaXJzdF9wMm1fcGZuOy8qIDFzdCBw
Zm4gZm9ybWluZyBpbml0aWFsIFAtPk0gdGFibGUuICAgICovCisgICAgdW5zaWduZWQgbG9uZyBu
cl9wMm1fZnJhbWVzOy8qICMgb2YgcGZucyBmb3JtaW5nIGluaXRpYWwgUC0+TSB0YWJsZS4gICov
Cit9OwordHlwZWRlZiBzdHJ1Y3Qgc3RhcnRfaW5mbyBzdGFydF9pbmZvX3Q7CisKKy8qIE5ldyBj
b25zb2xlIHVuaW9uIGZvciBkb20wIGludHJvZHVjZWQgaW4gMHgwMDAzMDIwMy4gKi8KKyNpZiBf
X1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDAzMDIwMworI2RlZmluZSBjb25zb2xlX21m
biAgICBjb25zb2xlLmRvbVUubWZuCisjZGVmaW5lIGNvbnNvbGVfZXZ0Y2huIGNvbnNvbGUuZG9t
VS5ldnRjaG4KKyNlbmRpZgorI2VuZGlmIC8qIFhFTl9IQVZFX1BWX0dVRVNUX0VOVFJZICovCisK
Ky8qIFRoZXNlIGZsYWdzIGFyZSBwYXNzZWQgaW4gdGhlICdmbGFncycgZmllbGQgb2Ygc3RhcnRf
aW5mb190LiAqLworI2RlZmluZSBTSUZfUFJJVklMRUdFRCAgICAoMTw8MCkgIC8qIElzIHRoZSBk
b21haW4gcHJpdmlsZWdlZD8gKi8KKyNkZWZpbmUgU0lGX0lOSVRET01BSU4gICAgKDE8PDEpICAv
KiBJcyB0aGlzIHRoZSBpbml0aWFsIGNvbnRyb2wgZG9tYWluPyAqLworI2RlZmluZSBTSUZfTVVM
VElCT09UX01PRCAoMTw8MikgIC8qIElzIG1vZF9zdGFydCBhIG11bHRpYm9vdCBtb2R1bGU/ICov
CisjZGVmaW5lIFNJRl9NT0RfU1RBUlRfUEZOICgxPDwzKSAgLyogSXMgbW9kX3N0YXJ0IGEgUEZO
PyAqLworI2RlZmluZSBTSUZfVklSVF9QMk1fNFRPT0xTICgxPDw0KSAvKiBEbyBYZW4gdG9vbHMg
dW5kZXJzdGFuZCBhIHZpcnQuIG1hcHBlZCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvKiBQLT5NIG1ha2luZyB0aGUgMyBsZXZlbCB0cmVlIG9ic29sZXRlPyAqLworI2Rl
ZmluZSBTSUZfUE1fTUFTSyAgICAgICAoMHhGRjw8OCkgLyogcmVzZXJ2ZSAxIGJ5dGUgZm9yIHhl
bi1wbSBvcHRpb25zICovCisKKy8qCisgKiBBIG11bHRpYm9vdCBtb2R1bGUgaXMgYSBwYWNrYWdl
IGNvbnRhaW5pbmcgbW9kdWxlcyB2ZXJ5IHNpbWlsYXIgdG8gYQorICogbXVsdGlib290IG1vZHVs
ZSBhcnJheS4gVGhlIG9ubHkgZGlmZmVyZW5jZXMgYXJlOgorICogLSB0aGUgYXJyYXkgb2YgbW9k
dWxlIGRlc2NyaXB0b3JzIGlzIGJ5IGNvbnZlbnRpb24gc2ltcGx5IGF0IHRoZSBiZWdpbm5pbmcK
KyAqICAgb2YgdGhlIG11bHRpYm9vdCBtb2R1bGUsCisgKiAtIGFkZHJlc3NlcyBpbiB0aGUgbW9k
dWxlIGRlc2NyaXB0b3JzIGFyZSBiYXNlZCBvbiB0aGUgYmVnaW5uaW5nIG9mIHRoZQorICogICBt
dWx0aWJvb3QgbW9kdWxlLAorICogLSB0aGUgbnVtYmVyIG9mIG1vZHVsZXMgaXMgZGV0ZXJtaW5l
ZCBieSBhIHRlcm1pbmF0aW9uIGRlc2NyaXB0b3IgdGhhdCBoYXMKKyAqICAgbW9kX3N0YXJ0ID09
IDAuCisgKgorICogVGhpcyBwZXJtaXRzIHRvIGJvdGggYnVpbGQgaXQgc3RhdGljYWxseSBhbmQg
cmVmZXJlbmNlIGl0IGluIGEgY29uZmlndXJhdGlvbgorICogZmlsZSwgYW5kIGxldCB0aGUgUFYg
Z3Vlc3QgZWFzaWx5IHJlYmFzZSB0aGUgYWRkcmVzc2VzIHRvIHZpcnR1YWwgYWRkcmVzc2VzCisg
KiBhbmQgYXQgdGhlIHNhbWUgdGltZSBjb3VudCB0aGUgbnVtYmVyIG9mIG1vZHVsZXMuCisgKi8K
K3N0cnVjdCB4ZW5fbXVsdGlib290X21vZF9saXN0Cit7CisgICAgLyogQWRkcmVzcyBvZiBmaXJz
dCBieXRlIG9mIHRoZSBtb2R1bGUgKi8KKyAgICB1aW50MzJfdCBtb2Rfc3RhcnQ7CisgICAgLyog
QWRkcmVzcyBvZiBsYXN0IGJ5dGUgb2YgdGhlIG1vZHVsZSAoaW5jbHVzaXZlKSAqLworICAgIHVp
bnQzMl90IG1vZF9lbmQ7CisgICAgLyogQWRkcmVzcyBvZiB6ZXJvLXRlcm1pbmF0ZWQgY29tbWFu
ZCBsaW5lICovCisgICAgdWludDMyX3QgY21kbGluZTsKKyAgICAvKiBVbnVzZWQsIG11c3QgYmUg
emVybyAqLworICAgIHVpbnQzMl90IHBhZDsKK307CisvKgorICogYGluY29udGVudHMgMjAwIHN0
YXJ0b2ZkYXlfZG9tMF9jb25zb2xlIERvbTBfY29uc29sZQorICoKKyAqIFRoZSBjb25zb2xlIHN0
cnVjdHVyZSBpbiBzdGFydF9pbmZvLmNvbnNvbGUuZG9tMAorICoKKyAqIFRoaXMgc3RydWN0dXJl
IGluY2x1ZGVzIGEgdmFyaWV0eSBvZiBpbmZvcm1hdGlvbiByZXF1aXJlZCB0bworICogaGF2ZSBh
IHdvcmtpbmcgVkdBL1ZFU0EgY29uc29sZS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgZG9tMF92Z2Ff
Y29uc29sZV9pbmZvIHsKKyAgICB1aW50OF90IHZpZGVvX3R5cGU7IC8qIERPTTBfVkdBX0NPTlNP
TEVfPz8/ICovCisjZGVmaW5lIFhFTl9WR0FUWVBFX1RFWFRfTU9ERV8zIDB4MDMKKyNkZWZpbmUg
WEVOX1ZHQVRZUEVfVkVTQV9MRkIgICAgMHgyMworI2RlZmluZSBYRU5fVkdBVFlQRV9FRklfTEZC
ICAgICAweDcwCisKKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICAv
KiBGb250IGhlaWdodCwgaW4gcGl4ZWxzLiAqLworICAgICAgICAgICAgdWludDE2X3QgZm9udF9o
ZWlnaHQ7CisgICAgICAgICAgICAvKiBDdXJzb3IgbG9jYXRpb24gKGNvbHVtbiwgcm93KS4gKi8K
KyAgICAgICAgICAgIHVpbnQxNl90IGN1cnNvcl94LCBjdXJzb3JfeTsKKyAgICAgICAgICAgIC8q
IE51bWJlciBvZiByb3dzIGFuZCBjb2x1bW5zIChkaW1lbnNpb25zIGluIGNoYXJhY3RlcnMpLiAq
LworICAgICAgICAgICAgdWludDE2X3Qgcm93cywgY29sdW1uczsKKyAgICAgICAgfSB0ZXh0X21v
ZGVfMzsKKworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgLyogV2lkdGggYW5kIGhlaWdo
dCwgaW4gcGl4ZWxzLiAqLworICAgICAgICAgICAgdWludDE2X3Qgd2lkdGgsIGhlaWdodDsKKyAg
ICAgICAgICAgIC8qIEJ5dGVzIHBlciBzY2FuIGxpbmUuICovCisgICAgICAgICAgICB1aW50MTZf
dCBieXRlc19wZXJfbGluZTsKKyAgICAgICAgICAgIC8qIEJpdHMgcGVyIHBpeGVsLiAqLworICAg
ICAgICAgICAgdWludDE2X3QgYml0c19wZXJfcGl4ZWw7CisgICAgICAgICAgICAvKiBMRkIgcGh5
c2ljYWwgYWRkcmVzcywgYW5kIHNpemUgKGluIHVuaXRzIG9mIDY0a0IpLiAqLworICAgICAgICAg
ICAgdWludDMyX3QgbGZiX2Jhc2U7CisgICAgICAgICAgICB1aW50MzJfdCBsZmJfc2l6ZTsKKyAg
ICAgICAgICAgIC8qIFJHQiBtYXNrIG9mZnNldHMgYW5kIHNpemVzLCBhcyBkZWZpbmVkIGJ5IFZC
RSAxLjIrICovCisgICAgICAgICAgICB1aW50OF90ICByZWRfcG9zLCByZWRfc2l6ZTsKKyAgICAg
ICAgICAgIHVpbnQ4X3QgIGdyZWVuX3BvcywgZ3JlZW5fc2l6ZTsKKyAgICAgICAgICAgIHVpbnQ4
X3QgIGJsdWVfcG9zLCBibHVlX3NpemU7CisgICAgICAgICAgICB1aW50OF90ICByc3ZkX3Bvcywg
cnN2ZF9zaXplOworI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPj0gMHgwMDAzMDIwNgor
ICAgICAgICAgICAgLyogVkVTQSBjYXBhYmlsaXRpZXMgKG9mZnNldCAweGEsIFZFU0EgY29tbWFu
ZCAweDRmMDApLiAqLworICAgICAgICAgICAgdWludDMyX3QgZ2JsX2NhcHM7CisgICAgICAgICAg
ICAvKiBNb2RlIGF0dHJpYnV0ZXMgKG9mZnNldCAweDAsIFZFU0EgY29tbWFuZCAweDRmMDEpLiAq
LworICAgICAgICAgICAgdWludDE2X3QgbW9kZV9hdHRyczsKKyNlbmRpZgorICAgICAgICB9IHZl
c2FfbGZiOworICAgIH0gdTsKK30gZG9tMF92Z2FfY29uc29sZV9pbmZvX3Q7CisjZGVmaW5lIHhl
bl92Z2FfY29uc29sZV9pbmZvIGRvbTBfdmdhX2NvbnNvbGVfaW5mbworI2RlZmluZSB4ZW5fdmdh
X2NvbnNvbGVfaW5mb190IGRvbTBfdmdhX2NvbnNvbGVfaW5mb190CisKK3R5cGVkZWYgdWludDhf
dCB4ZW5fZG9tYWluX2hhbmRsZV90WzE2XTsKKworX19ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh1
aW50OCwgIHVpbnQ4X3QpOworX19ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh1aW50MTYsIHVpbnQx
Nl90KTsKK19fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUodWludDMyLCB1aW50MzJfdCk7CitfX0RF
RklORV9YRU5fR1VFU1RfSEFORExFKHVpbnQ2NCwgdWludDY0X3QpOworCit0eXBlZGVmIHN0cnVj
dCB7CisgICAgdWludDhfdCBhWzE2XTsKK30geGVuX3V1aWRfdDsKKworLyoKKyAqIFhFTl9ERUZJ
TkVfVVVJRCgweDAwMTEyMjMzLCAweDQ0NTUsIDB4NjY3NywgMHg4ODk5LAorICogICAgICAgICAg
ICAgICAgIDB4YWEsIDB4YmIsIDB4Y2MsIDB4ZGQsIDB4ZWUsIDB4ZmYpCisgKiB3aWxsIGNvbnN0
cnVjdCBVVUlEIDAwMTEyMjMzLTQ0NTUtNjY3Ny04ODk5LWFhYmJjY2RkZWVmZiBwcmVzZW50ZWQg
YXMKKyAqIHsweDAwLCAweDExLCAweDIyLCAweDMzLCAweDQ0LCAweDU1LCAweDY2LCAweDc3LCAw
eDg4LAorICogMHg5OSwgMHhhYSwgMHhiYiwgMHhjYywgMHhkZCwgMHhlZSwgMHhmZn07CisgKgor
ICogTkI6IFRoaXMgaXMgY29tcGF0aWJsZSB3aXRoIExpbnV4IGtlcm5lbCBhbmQgd2l0aCBsaWJ1
dWlkLCBidXQgaXQgaXMgbm90CisgKiBjb21wYXRpYmxlIHdpdGggTWljcm9zb2Z0LCBhcyB0aGV5
IHVzZSBtaXhlZC1lbmRpYW4gZW5jb2RpbmcgKHNvbWUKKyAqIGNvbXBvbmVudHMgYXJlIGxpdHRs
ZS1lbmRpYW4sIHNvbWUgYXJlIGJpZy1lbmRpYW4pLgorICovCisjZGVmaW5lIFhFTl9ERUZJTkVf
VVVJRF8oYSwgYiwgYywgZCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNikgICAgICAgICAgICBcCisg
ICAge3soKGEpID4+IDI0KSAmIDB4RkYsICgoYSkgPj4gMTYpICYgMHhGRiwgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgICAoKGEpID4+ICA4KSAmIDB4RkYsICgoYSkgPj4gIDApICYg
MHhGRiwgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAoKGIpID4+ICA4KSAmIDB4
RkYsICgoYikgPj4gIDApICYgMHhGRiwgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAoKGMpID4+ICA4KSAmIDB4RkYsICgoYykgPj4gIDApICYgMHhGRiwgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgICAgICAoKGQpID4+ICA4KSAmIDB4RkYsICgoZCkgPj4gIDApICYgMHhG
RiwgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgZTEsIGUyLCBl
MywgZTQsIGU1LCBlNn19CisKKyNpZiBkZWZpbmVkKF9fU1REQ19WRVJTSU9OX18pID8gX19TVERD
X1ZFUlNJT05fXyA+PSAxOTk5MDFMIDogZGVmaW5lZChfX0dOVUNfXykKKyNkZWZpbmUgWEVOX0RF
RklORV9VVUlEKGEsIGIsIGMsIGQsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYpICAgICAgICAgICAg
IFwKKyAgICAoKHhlbl91dWlkX3QpWEVOX0RFRklORV9VVUlEXyhhLCBiLCBjLCBkLCBlMSwgZTIs
IGUzLCBlNCwgZTUsIGU2KSkKKyNlbHNlCisjZGVmaW5lIFhFTl9ERUZJTkVfVVVJRChhLCBiLCBj
LCBkLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2KSAgICAgICAgICAgICBcCisgICAgWEVOX0RFRklO
RV9VVUlEXyhhLCBiLCBjLCBkLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2KQorI2VuZGlmIC8qIF9f
U1REQ19WRVJTSU9OX18gLyBfX0dOVUNfXyAqLworCisjZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAq
LworCisvKiBEZWZhdWx0IGRlZmluaXRpb25zIGZvciBtYWNyb3MgdXNlZCBieSBkb21jdGwvc3lz
Y3RsLiAqLworI2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKQor
CisjaWZuZGVmIGludDY0X2FsaWduZWRfdAorI2RlZmluZSBpbnQ2NF9hbGlnbmVkX3QgaW50NjRf
dAorI2VuZGlmCisjaWZuZGVmIHVpbnQ2NF9hbGlnbmVkX3QKKyNkZWZpbmUgdWludDY0X2FsaWdu
ZWRfdCB1aW50NjRfdAorI2VuZGlmCisjaWZuZGVmIFhFTl9HVUVTVF9IQU5ETEVfNjQKKyNkZWZp
bmUgWEVOX0dVRVNUX0hBTkRMRV82NChuYW1lKSBYRU5fR1VFU1RfSEFORExFKG5hbWUpCisjZW5k
aWYKKworI2lmbmRlZiBfX0FTU0VNQkxZX18KK3N0cnVjdCB4ZW5jdGxfYml0bWFwIHsKKyAgICBY
RU5fR1VFU1RfSEFORExFXzY0KHVpbnQ4KSBiaXRtYXA7CisgICAgdWludDMyX3QgbnJfYml0czsK
K307CisjZW5kaWYKKworI2VuZGlmIC8qIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hF
Tl9UT09MU19fKSAqLworCisjZW5kaWYgLyogX19YRU5fUFVCTElDX1hFTl9IX18gKi8KKworLyoK
KyAqIExvY2FsIHZhcmlhYmxlczoKKyAqIG1vZGU6IEMKKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIK
KyAqIGMtYmFzaWMtb2Zmc2V0OiA0CisgKiB0YWItd2lkdGg6IDQKKyAqIGluZGVudC10YWJzLW1v
ZGU6IG5pbAorICogRW5kOgorICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi94c20veGVuY29t
bS5oIGIvaW5jbHVkZS94ZW4veHNtL3hlbmNvbW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5hYzQ1ZTA3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94ZW4veHNtL3hl
bmNvbW0uaApAQCAtMCwwICsxLDQxIEBACisvKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh
bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICog
b2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUg
IlNvZnR3YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0
aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwg
Y29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5k
L29yCisgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29u
cyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0
IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0
IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgor
ICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisg
KgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkg
T0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJ
TUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1Ig
QU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4g
QUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwg
T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBP
VEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIENvcHlyaWdodCAoQykg
SUJNIENvcnAuIDIwMDYKKyAqLworCisjaWZuZGVmIF9YRU5fWEVOQ09NTV9IXworI2RlZmluZSBf
WEVOX1hFTkNPTU1fSF8KKworLyogQSB4ZW5jb21tIGRlc2NyaXB0b3IgaXMgYSBzY2F0dGVyL2dh
dGhlciBsaXN0IGNvbnRhaW5pbmcgcGh5c2ljYWwKKyAqIGFkZHJlc3NlcyBjb3JyZXNwb25kaW5n
IHRvIGEgdmlydHVhbGx5IGNvbnRpZ3VvdXMgbWVtb3J5IGFyZWEuIFRoZQorICogaHlwZXJ2aXNv
ciB0cmFuc2xhdGVzIHRoZXNlIHBoeXNpY2FsIGFkZHJlc3NlcyB0byBtYWNoaW5lIGFkZHJlc3Nl
cyB0byBjb3B5CisgKiB0byBhbmQgZnJvbSB0aGUgdmlydHVhbGx5IGNvbnRpZ3VvdXMgYXJlYS4K
KyAqLworCisjZGVmaW5lIFhFTkNPTU1fTUFHSUMgMHg1ODQzNEY0RCAvKiAnWENPTScgKi8KKyNk
ZWZpbmUgWEVOQ09NTV9JTlZBTElEICh+MFVMKQorCitzdHJ1Y3QgeGVuY29tbV9kZXNjIHsKKyAg
ICB1aW50MzJfdCBtYWdpYzsKKyAgICB1aW50MzJfdCBucl9hZGRyczsgLyogdGhlIG51bWJlciBv
ZiBlbnRyaWVzIGluIGFkZHJlc3NbXSAqLworICAgIHVpbnQ2NF90IGFkZHJlc3NbMF07Cit9Owor
CisjZW5kaWYgLyogX1hFTl9YRU5DT01NX0hfICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi94
c20veGVub3Byb2YuaCBiL2luY2x1ZGUveGVuL3hzbS94ZW5vcHJvZi5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5NTVkYjEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRl
L3hlbi94c20veGVub3Byb2YuaApAQCAtMCwwICsxLDE1MiBAQAorLyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgorICogeGVub3Byb2YuaAorICogCisgKiBJbnRlcmZhY2UgZm9yIGVuYWJsaW5nIHN5c3Rl
bSB3aWRlIHByb2ZpbGluZyBiYXNlZCBvbiBoYXJkd2FyZSBwZXJmb3JtYW5jZQorICogY291bnRl
cnMKKyAqIAorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us
IHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQg
YXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiBk
ZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91
dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwg
cHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGllcyBv
ZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2Fy
ZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJt
aXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJz
dGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElT
IFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Mg
T1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRIT1JT
IE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9S
IE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBU
T1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJ
T04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4g
VEhFIFNPRlRXQVJFLgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNSBIZXdsZXR0LVBhY2thcmQg
Q28uCisgKiBXcml0dGVuIGJ5IEFyYXZpbmQgTWVub24gJiBKb3NlIFJlbmF0byBTYW50b3MKKyAq
LworCisjaWZuZGVmIF9fWEVOX1BVQkxJQ19YRU5PUFJPRl9IX18KKyNkZWZpbmUgX19YRU5fUFVC
TElDX1hFTk9QUk9GX0hfXworCisjaW5jbHVkZSAieGVuLmgiCisKKy8qCisgKiBDb21tYW5kcyB0
byBIWVBFUlZJU09SX3hlbm9wcm9mX29wKCkuCisgKi8KKyNkZWZpbmUgWEVOT1BST0ZfaW5pdCAg
ICAgICAgICAgICAgICAwCisjZGVmaW5lIFhFTk9QUk9GX3Jlc2V0X2FjdGl2ZV9saXN0ICAgMQor
I2RlZmluZSBYRU5PUFJPRl9yZXNldF9wYXNzaXZlX2xpc3QgIDIKKyNkZWZpbmUgWEVOT1BST0Zf
c2V0X2FjdGl2ZSAgICAgICAgICAzCisjZGVmaW5lIFhFTk9QUk9GX3NldF9wYXNzaXZlICAgICAg
ICAgNAorI2RlZmluZSBYRU5PUFJPRl9yZXNlcnZlX2NvdW50ZXJzICAgIDUKKyNkZWZpbmUgWEVO
T1BST0ZfY291bnRlciAgICAgICAgICAgICA2CisjZGVmaW5lIFhFTk9QUk9GX3NldHVwX2V2ZW50
cyAgICAgICAgNworI2RlZmluZSBYRU5PUFJPRl9lbmFibGVfdmlycSAgICAgICAgIDgKKyNkZWZp
bmUgWEVOT1BST0Zfc3RhcnQgICAgICAgICAgICAgICA5CisjZGVmaW5lIFhFTk9QUk9GX3N0b3Ag
ICAgICAgICAgICAgICAxMAorI2RlZmluZSBYRU5PUFJPRl9kaXNhYmxlX3ZpcnEgICAgICAgMTEK
KyNkZWZpbmUgWEVOT1BST0ZfcmVsZWFzZV9jb3VudGVycyAgIDEyCisjZGVmaW5lIFhFTk9QUk9G
X3NodXRkb3duICAgICAgICAgICAxMworI2RlZmluZSBYRU5PUFJPRl9nZXRfYnVmZmVyICAgICAg
ICAgMTQKKyNkZWZpbmUgWEVOT1BST0Zfc2V0X2JhY2t0cmFjZSAgICAgIDE1CisKKy8qIEFNRCBJ
QlMgc3VwcG9ydCAqLworI2RlZmluZSBYRU5PUFJPRl9nZXRfaWJzX2NhcHMgICAgICAgMTYKKyNk
ZWZpbmUgWEVOT1BST0ZfaWJzX2NvdW50ZXIgICAgICAgIDE3CisjZGVmaW5lIFhFTk9QUk9GX2xh
c3Rfb3AgICAgICAgICAgICAxNworCisjZGVmaW5lIE1BWF9PUFJPRl9FVkVOVFMgICAgMzIKKyNk
ZWZpbmUgTUFYX09QUk9GX0RPTUFJTlMgICAyNQorI2RlZmluZSBYRU5PUFJPRl9DUFVfVFlQRV9T
SVpFIDY0CisKKy8qIFhlbm9wcm9mIHBlcmZvcm1hbmNlIGV2ZW50cyAobm90IFhlbiBldmVudHMp
ICovCitzdHJ1Y3QgZXZlbnRfbG9nIHsKKyAgICB1aW50NjRfdCBlaXA7CisgICAgdWludDhfdCBt
b2RlOworICAgIHVpbnQ4X3QgZXZlbnQ7Cit9OworCisvKiBQQyB2YWx1ZSB0aGF0IGluZGljYXRl
cyBhIHNwZWNpYWwgY29kZSAqLworI2RlZmluZSBYRU5PUFJPRl9FU0NBUEVfQ09ERSAofnhlbl9t
a191bGxvbmcoMCkpCisvKiBUcmFuc2llbnQgZXZlbnRzIGZvciB0aGUgeGVub3Byb2YtPm9wcm9m
aWxlIGNwdSBidWYgKi8KKyNkZWZpbmUgWEVOT1BST0ZfVFJBQ0VfQkVHSU4gMQorCisvKiBYZW5v
cHJvZiBidWZmZXIgc2hhcmVkIGJldHdlZW4gWGVuIGFuZCBkb21haW4gLSAxIHBlciBWQ1BVICov
CitzdHJ1Y3QgeGVub3Byb2ZfYnVmIHsKKyAgICB1aW50MzJfdCBldmVudF9oZWFkOworICAgIHVp
bnQzMl90IGV2ZW50X3RhaWw7CisgICAgdWludDMyX3QgZXZlbnRfc2l6ZTsKKyAgICB1aW50MzJf
dCB2Y3B1X2lkOworICAgIHVpbnQ2NF90IHhlbl9zYW1wbGVzOworICAgIHVpbnQ2NF90IGtlcm5l
bF9zYW1wbGVzOworICAgIHVpbnQ2NF90IHVzZXJfc2FtcGxlczsKKyAgICB1aW50NjRfdCBsb3N0
X3NhbXBsZXM7CisgICAgc3RydWN0IGV2ZW50X2xvZyBldmVudF9sb2dbMV07Cit9OworI2lmbmRl
ZiBfX1hFTl9fCit0eXBlZGVmIHN0cnVjdCB4ZW5vcHJvZl9idWYgeGVub3Byb2ZfYnVmX3Q7CitE
RUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5vcHJvZl9idWZfdCk7CisjZW5kaWYKKworc3RydWN0
IHhlbm9wcm9mX2luaXQgeworICAgIGludDMyX3QgIG51bV9ldmVudHM7CisgICAgaW50MzJfdCAg
aXNfcHJpbWFyeTsKKyAgICBjaGFyIGNwdV90eXBlW1hFTk9QUk9GX0NQVV9UWVBFX1NJWkVdOwor
fTsKK3R5cGVkZWYgc3RydWN0IHhlbm9wcm9mX2luaXQgeGVub3Byb2ZfaW5pdF90OworREVGSU5F
X1hFTl9HVUVTVF9IQU5ETEUoeGVub3Byb2ZfaW5pdF90KTsKKworc3RydWN0IHhlbm9wcm9mX2dl
dF9idWZmZXIgeworICAgIGludDMyX3QgIG1heF9zYW1wbGVzOworICAgIGludDMyX3QgIG5idWY7
CisgICAgaW50MzJfdCAgYnVmc2l6ZTsKKyAgICB1aW50NjRfdCBidWZfZ21hZGRyOworfTsKK3R5
cGVkZWYgc3RydWN0IHhlbm9wcm9mX2dldF9idWZmZXIgeGVub3Byb2ZfZ2V0X2J1ZmZlcl90Owor
REVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVub3Byb2ZfZ2V0X2J1ZmZlcl90KTsKKworc3RydWN0
IHhlbm9wcm9mX2NvdW50ZXIgeworICAgIHVpbnQzMl90IGluZDsKKyAgICB1aW50NjRfdCBjb3Vu
dDsKKyAgICB1aW50MzJfdCBlbmFibGVkOworICAgIHVpbnQzMl90IGV2ZW50OworICAgIHVpbnQz
Ml90IGh5cGVydmlzb3I7CisgICAgdWludDMyX3Qga2VybmVsOworICAgIHVpbnQzMl90IHVzZXI7
CisgICAgdWludDY0X3QgdW5pdF9tYXNrOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbm9wcm9mX2Nv
dW50ZXIgeGVub3Byb2ZfY291bnRlcl90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVub3By
b2ZfY291bnRlcl90KTsKKwordHlwZWRlZiBzdHJ1Y3QgeGVub3Byb2ZfcGFzc2l2ZSB7CisgICAg
dWludDE2X3QgZG9tYWluX2lkOworICAgIGludDMyX3QgIG1heF9zYW1wbGVzOworICAgIGludDMy
X3QgIG5idWY7CisgICAgaW50MzJfdCAgYnVmc2l6ZTsKKyAgICB1aW50NjRfdCBidWZfZ21hZGRy
OworfSB4ZW5vcHJvZl9wYXNzaXZlX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5vcHJv
Zl9wYXNzaXZlX3QpOworCitzdHJ1Y3QgeGVub3Byb2ZfaWJzX2NvdW50ZXIgeworICAgIHVpbnQ2
NF90IG9wX2VuYWJsZWQ7CisgICAgdWludDY0X3QgZmV0Y2hfZW5hYmxlZDsKKyAgICB1aW50NjRf
dCBtYXhfY250X2ZldGNoOworICAgIHVpbnQ2NF90IG1heF9jbnRfb3A7CisgICAgdWludDY0X3Qg
cmFuZF9lbjsKKyAgICB1aW50NjRfdCBkaXNwYXRjaGVkX29wczsKK307Cit0eXBlZGVmIHN0cnVj
dCB4ZW5vcHJvZl9pYnNfY291bnRlciB4ZW5vcHJvZl9pYnNfY291bnRlcl90OworREVGSU5FX1hF
Tl9HVUVTVF9IQU5ETEUoeGVub3Byb2ZfaWJzX2NvdW50ZXJfdCk7CisKKyNlbmRpZiAvKiBfX1hF
Tl9QVUJMSUNfWEVOT1BST0ZfSF9fICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBt
b2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICog
dGFiLXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwotLSAK
Mi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
TWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v
cmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8v
bWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Mon Oct 16 13:53:26 2017
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 16 Oct 2017 13:53:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1e45pd-00012Z-8c; Mon, 16 Oct 2017 13:53:25 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=4558fadb9=wei.liu2@citrix.com>)
 id 1e45pb-00011f-So
 for minios-devel@lists.xenproject.org; Mon, 16 Oct 2017 13:53:23 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
 43/6C-02146-3D9B4E95; Mon, 16 Oct 2017 13:53:23 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrGIsWRWlGSWpSXmKPExsXitHSDve6lnU8
 iDdY8NLB4+3UJswOjx+EPV1gCGKNYM/OS8isSWDOWL7vKVLCcueJ81x6mBsbrTF2MnBwSAv4S
 xw48ZAaxWQRUJbonT2YDsdkElCV+dvaC2SICJhK/L5xm6WLk4GAWCJK4N4EVJCwMFL77cgkLi
 M0rYCGxf+99dhBbSMBcovHGBkaIuKDEyZlPwGqYBXQkFuz+xAYxRlpi+T8OkDAnUGvvy/VgJa
 ICKhKdS+ewQIxRkOiYfoxpAiPfLCSTZiGZNAth0gJG5lWMGsWpRWWpRbqG5npJRZnpGSW5iZk
 5uoYGpnq5qcXFiempOYlJxXrJ+bmbGIFhxgAEOxgvnvY8xCjJwaQkyuts+CRSiC8pP6UyI7E4
 I76oNCe1+BCjDAeHkgTvhB1AOcGi1PTUirTMHGDAw6QlOHiURHiLQdK8xQWJucWZ6RCpU4y6H
 DceXv/DJMSSl5+XKiXOmwZSJABSlFGaBzcCFn2XGGWlhHkZgY4S4ilILcrNLEGVf8UozsGoJM
 x7BWQKT2ZeCdymV0BHMAEdsc4J7IiSRISUVAPjbT4pc/mIj7ZqH54Ivm21sz7YcZ3p7cwVzF/
 n9yutknoc+z/wQ2rBtvMb3ZuOV9x9/nbj6fvH/u9MDvX6XvnT9/yS2z+TS++oeq/sWuPz8NXN
 6niZkIBkO+u/kyvSb1n+KXBrW2UXkPefUXJJfqC2As+93Sqbo10iXjLUKS4+1XR7f/HtVZq7l
 ViKMxINtZiLihMBI6p+/bkCAAA=
X-Env-Sender: prvs=4558fadb9=wei.liu2@citrix.com
X-Msg-Ref: server-12.tower-206.messagelabs.com!1508162000!70892489!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15114 invoked from network); 16 Oct 2017 13:53:22 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-12.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 16 Oct 2017 13:53:22 -0000
X-IronPort-AV: E=Sophos;i="5.43,387,1503360000"; d="scan'208";a="454329282"
Date: Mon, 16 Oct 2017 14:53:18 +0100
From: Wei Liu <wei.liu2@citrix.com>
To: Minios-devel <minios-devel@lists.xenproject.org>
Message-ID: <20171016135318.2jdozwfq45kmoazl@citrix.com>
References: <20171016105635.5866-1-wei.liu2@citrix.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <20171016105635.5866-1-wei.liu2@citrix.com>
User-Agent: NeoMutt/20170113 (1.7.2)
Cc: Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Wei Liu <wei.liu2@citrix.com>
Subject: Re: [Minios-devel] [MINIOS PATCH] Update Xen headers again
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

T24gTW9uLCBPY3QgMTYsIDIwMTcgYXQgMTE6NTY6MzVBTSArMDEwMCwgV2VpIExpdSB3cm90ZToK
PiBUaGUgbW9zdCBpbXBvcnRhbnQgdGhpbmcgaXMgY29uc29sZS5oIHdoaWNoIGlzIG1vZGlmaWVk
IHRvIGF2b2lkCj4gYnJlYWthZ2UgZm9yIGNvbnN1bWVycy4KPiAKPiBJdCBhbHNvIGFwcGVhcnMg
dGhhdCB0aGUgeHNtIGhlYWRlcnMgd2VyZSBtaXNzZWQgaW4gbGFzdCBhdHRlbXB0Lgo+IAo+IFdo
aWxlIGF0IGl0LCB1cGRhdGUgYWxsIGhlYWRlcnMgaW4gb25lIGdvLCBpbmNsdWRpbmcgdGhlIG5l
d2x5Cj4gY29tbWl0dGVkIG9uZXMuCj4gCj4gU2lnbmVkLW9mZi1ieTogV2VpIExpdSA8d2VpLmxp
dTJAY2l0cml4LmNvbT4KClBsZWFzZSBpZ25vcmUgdGhpcyBwYXRjaC4gSSB3aWxsIGNoZWNrIG15
IHRyZWUgYW5kIHJlc2VuZCBsYXRlci4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9t
YWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Mon Oct 16 15:56:30 2017
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 16 Oct 2017 15:56:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1e47kj-0005Fe-VX; Mon, 16 Oct 2017 15:56:29 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=4558fadb9=wei.liu2@citrix.com>)
 id 1e47ki-0005F5-Rx
 for minios-devel@lists.xenproject.org; Mon, 16 Oct 2017 15:56:29 +0000
Received: from [85.158.139.211] by server-4.bemta-5.messagelabs.com id
 E7/FD-31302-CA6D4E95; Mon, 16 Oct 2017 15:56:28 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprAIsWRWlGSWpSXmKPExsXitHRDpO7qa08
 iDRp3y1i8/bqE2YHR4/CHKywBjFGsmXlJ+RUJrBk7ZhxgL/iVX7H96SXWBsZF4V2MnBwSAv4S
 b5dtYwax2QSUJX529rKB2CICJhK/L5xm6WLk4GAWCJK4N4EVJCwsYCHx7vYRJhCbRUBV4vPVZ
 WA2r4C5xIzLyxkhRspL7Gq7CFYvJKAg0TH9GFSNoMTJmU9YQGxmAQmJgy9eME9g5J6FJDULSW
 oBI9MqRo3i1KKy1CJdIwO9pKLM9IyS3MTMHF1DA1O93NTi4sT01JzEpGK95PzcTYzAUKhnYGD
 cwdg42+8QoyQHk5Ior7Phk0ghvqT8lMqMxOKM+KLSnNTiQ4wyHBxKErznrgLlBItS01Mr0jJz
 gEEJk5bg4FES4Z0CkuYtLkjMLc5Mh0idYnTlOLbp8h8mjkmLrwDJjpt3geQmMLnh+4M/TEIse
 fl5qVLivF4gzQIgzRmleXCjYRF1iVFWSpiXkYGBQYinILUoN7MEVf4VozgHo5IwbxXIFJ7MvB
 K4C14BHccEdNw6J7DjShIRUlINjPwbnvQsv33tWsb7BqXYrUbPu5Ue35/RJJzuGabVrT5t9wV
 Ddn7R9KyreeHpPfpFOSpLXbPnNGhJsl6u7Gaf7XLeftnmtJspgtuf9JRpzTMzbj/VItd3Y9ae
 +N4fF1+I/K802l0nu89J2pDHlTWEYer/uT8mWj3qVPofMiHSJG691wur447VSizFGYmGWsxFx
 YkA4J2QAKMCAAA=
X-Env-Sender: prvs=4558fadb9=wei.liu2@citrix.com
X-Msg-Ref: server-13.tower-206.messagelabs.com!1508169383!91694648!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 44947 invoked from network); 16 Oct 2017 15:56:26 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-13.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 16 Oct 2017 15:56:26 -0000
X-IronPort-AV: E=Sophos;i="5.43,387,1503360000"; d="scan'208";a="446419612"
From: Wei Liu <wei.liu2@citrix.com>
To: Minios-devel <minios-devel@lists.xenproject.org>
Date: Mon, 16 Oct 2017 16:36:41 +0100
Message-ID: <20171016153641.7043-1-wei.liu2@citrix.com>
X-Mailer: git-send-email 2.11.0
MIME-Version: 1.0
Cc: Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Wei Liu <wei.liu2@citrix.com>
Subject: [Minios-devel] [MINIOS PATCH v2] Update Xen header files again
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhlIG1vc3QgaW1wb3J0YW50IHRoaW5nIGlzIHRoZSB1cGRhdGUgdG8gY29uc29sZS5oLCB3aGlj
aCBmaXhlcyBhIGJ1Zwp0aGF0IHJlcXVpcmVzIHRoZSBjb25zdW1lcnMgdG8gaW5jbHVkZSBzdHJp
bmcuaC4KClVwZGF0ZSBhbGwgaGVhZGVycyBub25ldGhlbGVzcyBmb3Igb3RoZXIgZml4ZXMgYW5k
IG5ldyBjb250ZW50LgoKU2lnbmVkLW9mZi1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNv
bT4KLS0tCiBpbmNsdWRlL3hlbi9hcmNoLWFybS9zbWNjYy5oICAgICAgfCAgNjYgKysrKysrKysr
KysrKysrKysrKysKIGluY2x1ZGUveGVuL2FyY2gteDg2L3hlbi14ODZfNjQuaCB8ICAgNCArLQog
aW5jbHVkZS94ZW4vZG9tY3RsLmggICAgICAgICAgICAgIHwgICA0ICsrCiBpbmNsdWRlL3hlbi9m
ZWF0dXJlcy5oICAgICAgICAgICAgfCAgIDMgKwogaW5jbHVkZS94ZW4vaHZtL2RtX29wLmggICAg
ICAgICAgIHwgIDEyICsrKysKIGluY2x1ZGUveGVuL2lvL2NvbnNvbGUuaCAgICAgICAgICB8ICAg
NSArLQogaW5jbHVkZS94ZW4vaW8vbmV0aWYuaCAgICAgICAgICAgIHwgMTIzICsrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL3hlbi94ZW4uaCAgICAgICAgICAg
ICAgICAgfCAgMzEgKysrKysrKysrKwogOCBmaWxlcyBjaGFuZ2VkLCAyNDMgaW5zZXJ0aW9ucygr
KSwgNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi9hcmNoLWFy
bS9zbWNjYy5oCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vYXJjaC1hcm0vc21jY2MuaCBiL2lu
Y2x1ZGUveGVuL2FyY2gtYXJtL3NtY2NjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMTdkYzZkOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL2FyY2gtYXJtL3Nt
Y2NjLmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIHNtY2NjLmgKKyAqCisgKiBTTUMvSFZDIGlu
dGVyZmFjZSBpbiBhY2NvcmRhbmNlIHdpdGggU01DIENhbGxpbmcgQ29udmVudGlvbi4KKyAqCisg
KiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBl
cnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVk
IGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhl
IFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRp
b24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBk
aXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0
d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBm
dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgor
ICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90
aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBv
cnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg
IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1Q
TElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9O
SU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJ
R0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAq
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI
RVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRI
RSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdB
UkUuCisgKgorICogQ29weXJpZ2h0IDIwMTcgKEMpIEVQQU0gU3lzdGVtcworICovCisKKyNpZm5k
ZWYgX19YRU5fUFVCTElDX0FSQ0hfQVJNX1NNQ0NDX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNf
QVJDSF9BUk1fU01DQ0NfSF9fCisKKyNpbmNsdWRlICJwdWJsaWMveGVuLmgiCisKKy8qCisgKiBI
eXBlcnZpc29yIFNlcnZpY2UgdmVyc2lvbi4KKyAqCisgKiBXZSBjYW4ndCB1c2UgWEVOIHZlcnNp
b24gaGVyZSwgYmVjYXVzZSBvZiBTTUNDQyByZXF1aXJlbWVudHM6CisgKiBNYWpvciByZXZpc2lv
biBzaG91bGQgY2hhbmdlIGV2ZXJ5IHRpbWUgU01DL0hWQyBmdW5jdGlvbiBpcyByZW1vdmVkLgor
ICogTWlub3IgcmV2aXNpb24gc2hvdWxkIGNoYW5nZSBldmVyeSB0aW1lIFNNQy9IVkMgZnVuY3Rp
b24gaXMgYWRkZWQuCisgKiBTbywgaXQgaXMgU01DQ0MgcHJvdG9jb2wgcmV2aXNpb24gY29kZSwg
bm90IFhFTiB2ZXJzaW9uLgorICoKKyAqIFRob3NlIHZhbHVlcyBhcmUgc3ViamVjdGVkIHRvIGNo
YW5nZSwgd2hlbiBpbnRlcmZhY2Ugd2lsbCBiZSBleHRlbmRlZC4KKyAqLworI2RlZmluZSBYRU5f
U01DQ0NfTUFKT1JfUkVWSVNJT04gMAorI2RlZmluZSBYRU5fU01DQ0NfTUlOT1JfUkVWSVNJT04g
MQorCisvKiBIeXBlcnZpc29yIFNlcnZpY2UgVUlELiBSYW5kb21seSBnZW5lcmF0ZWQgd2l0aCB1
dWlkZ2VuLiAqLworI2RlZmluZSBYRU5fU01DQ0NfVUlEIFhFTl9ERUZJTkVfVVVJRCgweGE3MTgx
MmRjLCAweGM2OTgsIDB4NDM2OSwgMHg5YWNmLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDB4NzksIDB4ZDEsIDB4OGQsIDB4ZGUsIDB4ZTYsIDB4NjcpCisKKy8qIFN0
YW5kYXJkIFNlcnZpY2UgU2VydmljZSBDYWxsIHZlcnNpb24uICovCisjZGVmaW5lIFNTU0NfU01D
Q0NfTUFKT1JfUkVWSVNJT04gMAorI2RlZmluZSBTU1NDX1NNQ0NDX01JTk9SX1JFVklTSU9OIDEK
KworLyogU3RhbmRhcmQgU2VydmljZSBDYWxsIFVJRC4gUmFuZG9tbHkgZ2VuZXJhdGVkIHdpdGgg
dXVpZGdlbi4gKi8KKyNkZWZpbmUgU1NTQ19TTUNDQ19VSUQgWEVOX0RFRklORV9VVUlEKDB4Zjg2
MzM4NmYsIDB4NGIzOSwgMHg0Y2JkLCAweDkyMjAsXAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMHhjZSwgMHgxNiwgMHg0MSwgMHhlNSwgMHg5ZiwgMHg2ZikKKworI2Vu
ZGlmIC8qIF9fWEVOX1BVQkxJQ19BUkNIX0FSTV9TTUNDQ19IX18gKi8KKworLyoKKyAqIExvY2Fs
IHZhcmlhYmxlczoKKyAqIG1vZGU6IEMKKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKKyAqIGMtYmFz
aWMtb2Zmc2V0OiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDpiCisgKi8KZGlm
ZiAtLWdpdCBhL2luY2x1ZGUveGVuL2FyY2gteDg2L3hlbi14ODZfNjQuaCBiL2luY2x1ZGUveGVu
L2FyY2gteDg2L3hlbi14ODZfNjQuaAppbmRleCA5NzhmOGNiLi5iZTUyZjcwIDEwMDY0NAotLS0g
YS9pbmNsdWRlL3hlbi9hcmNoLXg4Ni94ZW4teDg2XzY0LmgKKysrIGIvaW5jbHVkZS94ZW4vYXJj
aC14ODYveGVuLXg4Nl82NC5oCkBAIC0yMDMsOCArMjAzLDggQEAgc3RydWN0IGNwdV91c2VyX3Jl
Z3MgewogICAgIHVpbnQxNl90IHNzLCBfcGFkMlszXTsKICAgICB1aW50MTZfdCBlcywgX3BhZDNb
M107CiAgICAgdWludDE2X3QgZHMsIF9wYWQ0WzNdOwotICAgIHVpbnQxNl90IGZzLCBfcGFkNVsz
XTsgLyogTm9uLXplcm8gPT4gdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGZzX2Jhc2UuICAgICAqLwot
ICAgIHVpbnQxNl90IGdzLCBfcGFkNlszXTsgLyogTm9uLXplcm8gPT4gdGFrZXMgcHJlY2VkZW5j
ZSBvdmVyIGdzX2Jhc2VfdXNyLiAqLworICAgIHVpbnQxNl90IGZzLCBfcGFkNVszXTsgLyogTm9u
LW51bCA9PiB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgZnNfYmFzZS4gICAgICAqLworICAgIHVpbnQx
Nl90IGdzLCBfcGFkNlszXTsgLyogTm9uLW51bCA9PiB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgZ3Nf
YmFzZV91c2VyLiAqLwogfTsKIHR5cGVkZWYgc3RydWN0IGNwdV91c2VyX3JlZ3MgY3B1X3VzZXJf
cmVnc190OwogREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoY3B1X3VzZXJfcmVnc190KTsKZGlmZiAt
LWdpdCBhL2luY2x1ZGUveGVuL2RvbWN0bC5oIGIvaW5jbHVkZS94ZW4vZG9tY3RsLmgKaW5kZXgg
ODg1MzQ0NS4uNzAwMjdhYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4vZG9tY3RsLmgKKysrIGIv
aW5jbHVkZS94ZW4vZG9tY3RsLmgKQEAgLTM0Miw2ICszNDIsMTAgQEAgc3RydWN0IHhlbl9kb21j
dGxfc2NoZWRfY3JlZGl0MiB7CiBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZF9ydGRzIHsKICAgICB1
aW50MzJfdCBwZXJpb2Q7CiAgICAgdWludDMyX3QgYnVkZ2V0OworLyogQ2FuIHRoaXMgdkNQVSBl
eGVjdXRlIGJleW9uZCBpdHMgcmVzZXJ2ZWQgYW1vdW50IG9mIHRpbWU/ICovCisjZGVmaW5lIF9Y
RU5fRE9NQ1RMX1NDSEVEUlRfZXh0cmEgICAwCisjZGVmaW5lIFhFTl9ET01DVExfU0NIRURSVF9l
eHRyYSAgICAoMVU8PF9YRU5fRE9NQ1RMX1NDSEVEUlRfZXh0cmEpCisgICAgdWludDMyX3QgZmxh
Z3M7CiB9OwogCiB0eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVkcGFyYW1fdmNwdSB7CmRp
ZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9mZWF0dXJlcy5oIGIvaW5jbHVkZS94ZW4vZmVhdHVyZXMu
aAppbmRleCAyMTEwYjA0Li4xYTk4OWI4IDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi9mZWF0dXJl
cy5oCisrKyBiL2luY2x1ZGUveGVuL2ZlYXR1cmVzLmgKQEAgLTEwMiw2ICsxMDIsOSBAQAogLyog
R3Vlc3QgY2FuIHVzZSBYRU5NRU1GX3Zub2RlIHRvIHNwZWNpZnkgdmlydHVhbCBub2RlIGZvciBt
ZW1vcnkgb3AuICovCiAjZGVmaW5lIFhFTkZFQVRfbWVtb3J5X29wX3Zub2RlX3N1cHBvcnRlZCAx
MwogCisvKiBhcm06IEh5cGVydmlzb3Igc3VwcG9ydHMgQVJNIFNNQyBjYWxsaW5nIGNvbnZlbnRp
b24uICovCisjZGVmaW5lIFhFTkZFQVRfQVJNX1NNQ0NDX3N1cHBvcnRlZCAgICAgICAxNAorCiAj
ZGVmaW5lIFhFTkZFQVRfTlJfU1VCTUFQUyAxCiAKICNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfRkVB
VFVSRVNfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9odm0vZG1fb3AuaCBiL2luY2x1
ZGUveGVuL2h2bS9kbV9vcC5oCmluZGV4IDZiYmFiNWYuLmUxNzMwODUgMTAwNjQ0Ci0tLSBhL2lu
Y2x1ZGUveGVuL2h2bS9kbV9vcC5oCisrKyBiL2luY2x1ZGUveGVuL2h2bS9kbV9vcC5oCkBAIC0z
NTcsNiArMzU3LDE3IEBAIHN0cnVjdCB4ZW5fZG1fb3BfbWFwX21lbV90eXBlX3RvX2lvcmVxX3Nl
cnZlciB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXMgdG8gYmUgc2V0IHRvIHplcm8g
YnkgdGhlIGNhbGxlciAqLwogfTsKIAorLyoKKyAqIFhFTl9ETU9QX3JlbW90ZV9zaHV0ZG93biA6
IERlY2xhcmUgYSBzaHV0ZG93biBmb3IgYW5vdGhlciBkb21haW4KKyAqICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIElkZW50aWNhbCB0byBTQ0hFRE9QX3JlbW90ZV9zaHV0ZG93bgorICovCisj
ZGVmaW5lIFhFTl9ETU9QX3JlbW90ZV9zaHV0ZG93biAxNgorCitzdHJ1Y3QgeGVuX2RtX29wX3Jl
bW90ZV9zaHV0ZG93biB7CisgICAgdWludDMyX3QgcmVhc29uOyAgICAgICAvKiBTSFVURE9XTl8q
ID0+IGVudW0gc2NoZWRfc2h1dGRvd25fcmVhc29uICovCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvKiAoT3RoZXIgcmVhc29uIHZhbHVlcyBhcmUgbm90IGJsb2NrZWQpICovCit9OworCiBz
dHJ1Y3QgeGVuX2RtX29wIHsKICAgICB1aW50MzJfdCBvcDsKICAgICB1aW50MzJfdCBwYWQ7CkBA
IC0zNzcsNiArMzg4LDcgQEAgc3RydWN0IHhlbl9kbV9vcCB7CiAgICAgICAgIHN0cnVjdCB4ZW5f
ZG1fb3BfaW5qZWN0X21zaSBpbmplY3RfbXNpOwogICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX21h
cF9tZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXIKICAgICAgICAgICAgICAgICBtYXBfbWVtX3R5cGVf
dG9faW9yZXFfc2VydmVyOworICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3JlbW90ZV9zaHV0ZG93
biByZW1vdGVfc2h1dGRvd247CiAgICAgfSB1OwogfTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS94
ZW4vaW8vY29uc29sZS5oIGIvaW5jbHVkZS94ZW4vaW8vY29uc29sZS5oCmluZGV4IDBmMDcxMWYu
LjFmNzllZjggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL2lvL2NvbnNvbGUuaAorKysgYi9pbmNs
dWRlL3hlbi9pby9jb25zb2xlLmgKQEAgLTI3LDggKzI3LDYgQEAKICNpZm5kZWYgX19YRU5fUFVC
TElDX0lPX0NPTlNPTEVfSF9fCiAjZGVmaW5lIF9fWEVOX1BVQkxJQ19JT19DT05TT0xFX0hfXwog
Ci0jaW5jbHVkZSAicmluZy5oIgotCiB0eXBlZGVmIHVpbnQzMl90IFhFTkNPTlNfUklOR19JRFg7
CiAKICNkZWZpbmUgTUFTS19YRU5DT05TX0lEWChpZHgsIHJpbmcpICgoaWR4KSAmIChzaXplb2Yo
cmluZyktMSkpCkBAIC00MCw3ICszOCw4IEBAIHN0cnVjdCB4ZW5jb25zX2ludGVyZmFjZSB7CiAg
ICAgWEVOQ09OU19SSU5HX0lEWCBvdXRfY29ucywgb3V0X3Byb2Q7CiB9OwogCi0jaWYgZGVmaW5l
ZChfX0dOVUNfXykgJiYgIWRlZmluZWQoX19TVFJJQ1RfQU5TSV9fKQorI2lmZGVmIFhFTl9XQU5U
X0ZMRVhfQ09OU09MRV9SSU5HCisjaW5jbHVkZSAicmluZy5oIgogREVGSU5FX1hFTl9GTEVYX1JJ
TkcoeGVuY29ucyk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vaW8vbmV0aWYu
aCBiL2luY2x1ZGUveGVuL2lvL25ldGlmLmgKaW5kZXggY2EwMDYxNC4uMjQ1NDQ0OCAxMDA2NDQK
LS0tIGEvaW5jbHVkZS94ZW4vaW8vbmV0aWYuaAorKysgYi9pbmNsdWRlL3hlbi9pby9uZXRpZi5o
CkBAIC0zNTMsNiArMzUzLDkgQEAgc3RydWN0IHhlbl9uZXRpZl9jdHJsX3JlcXVlc3QgewogI2Rl
ZmluZSBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9IQVNIX01BUFBJTkdfU0laRSA1CiAjZGVmaW5l
IFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfTUFQUElORyAgICAgIDYKICNkZWZpbmUgWEVO
X05FVElGX0NUUkxfVFlQRV9TRVRfSEFTSF9BTEdPUklUSE0gICAgNworI2RlZmluZSBYRU5fTkVU
SUZfQ1RSTF9UWVBFX0dFVF9HUkVGX01BUFBJTkdfU0laRSA4CisjZGVmaW5lIFhFTl9ORVRJRl9D
VFJMX1RZUEVfQUREX0dSRUZfTUFQUElORyAgICAgIDkKKyNkZWZpbmUgWEVOX05FVElGX0NUUkxf
VFlQRV9ERUxfR1JFRl9NQVBQSU5HICAgICAxMAogCiAgICAgdWludDMyX3QgZGF0YVszXTsKIH07
CkBAIC0zOTAsNiArMzkzLDQ0IEBAIHN0cnVjdCB4ZW5fbmV0aWZfY3RybF9yZXNwb25zZSB7CiAg
ICAgdWludDMyX3QgZGF0YTsKIH07CiAKKy8qCisgKiBTdGF0aWMgR3JhbnRzIChzdHJ1Y3QgeGVu
X25ldGlmX2dyZWYpCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cisg
KgorICogQSBmcm9udGVuZCBtYXkgcHJvdmlkZSBhIGZpeGVkIHNldCBvZiBncmFudCByZWZlcmVu
Y2VzIHRvIGJlIG1hcHBlZCBvbgorICogdGhlIGJhY2tlbmQuIFRoZSBtZXNzYWdlIG9mIHR5cGUg
WEVOX05FVElGX0NUUkxfVFlQRV9BRERfR1JFRl9NQVBQSU5HCisgKiBwcmlvciBpdHMgdXNhZ2Ug
aW4gdGhlIGNvbW1hbmQgcmluZyBhbGxvd3MgZm9yIGNyZWF0aW9uIG9mIHRoZXNlIG1hcHBpbmdz
LgorICogVGhlIGJhY2tlbmQgd2lsbCBtYWludGFpbiBhIGZpeGVkIGFtb3VudCBvZiB0aGVzZSBt
YXBwaW5ncy4KKyAqCisgKiBYRU5fTkVUSUZfQ1RSTF9UWVBFX0dFVF9HUkVGX01BUFBJTkdfU0la
RSBsZXRzIGEgZnJvbnRlbmQgcXVlcnkgaG93IG1hbnkKKyAqIG9mIHRoZXNlIG1hcHBpbmdzIGNh
biBiZSBrZXB0LgorICoKKyAqIEVhY2ggZW50cnkgaW4gdGhlIFhFTl9ORVRJRl9DVFJMX1RZUEVf
e0FERCxERUx9X0dSRUZfTUFQUElORyBpbnB1dCB0YWJsZSBoYXMKKyAqIHRoZSBmb2xsb3dpbmcg
Zm9ybWF0OgorICoKKyAqICAgIDAgICAgIDEgICAgIDIgICAgIDMgICAgIDQgICAgIDUgICAgIDYg
ICAgIDcgIG9jdGV0CisgKiArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0t
LS0rLS0tLS0rCisgKiB8IGdyYW50IHJlZiAgICAgICAgICAgICB8ICBmbGFncyAgICB8ICBzdGF0
dXMgICB8CisgKiArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0t
LS0rCisgKgorICogZ3JhbnQgcmVmOiBncmFudCByZWZlcmVuY2UgKElOKQorICogZmxhZ3M6IGZs
YWdzIGRlc2NyaWJpbmcgdGhlIGNvbnRyb2wgb3BlcmF0aW9uIChJTikKKyAqIHN0YXR1czogWEVO
X05FVElGX0NUUkxfU1RBVFVTXyogKE9VVCkKKyAqCisgKiAnc3RhdHVzJyBpcyBhbiBvdXRwdXQg
cGFyYW1ldGVyIHdoaWNoIGRvZXMgbm90IHJlcXVpcmUgdG8gYmUgc2V0IHRvIHplcm8KKyAqIHBy
aW9yIHRvIGl0cyB1c2FnZSBpbiB0aGUgY29ycmVzcG9uZGluZyBjb250cm9sIG1lc3NhZ2VzLgor
ICovCisKK3N0cnVjdCB4ZW5fbmV0aWZfZ3JlZiB7CisgICAgICAgZ3JhbnRfcmVmX3QgcmVmOwor
ICAgICAgIHVpbnQxNl90IGZsYWdzOworCisjZGVmaW5lIF9YRU5fTkVUSUZfQ1RSTEZfR1JFRl9y
ZWFkb25seSAgICAwCisjZGVmaW5lIFhFTl9ORVRJRl9DVFJMRl9HUkVGX3JlYWRvbmx5ICAgICgx
VTw8X1hFTl9ORVRJRl9DVFJMRl9HUkVGX3JlYWRvbmx5KQorCisgICAgICAgdWludDE2X3Qgc3Rh
dHVzOworfTsKKwogLyoKICAqIENvbnRyb2wgbWVzc2FnZXMKICAqID09PT09PT09PT09PT09PT0K
QEAgLTYwOSw2ICs2NTAsODggQEAgc3RydWN0IHhlbl9uZXRpZl9jdHJsX3Jlc3BvbnNlIHsKICAq
ICAgICAgIGludmFsaWRhdGUgYW55IHRhYmxlIGRhdGEgb3V0c2lkZSB0aGF0IHJhbmdlLgogICog
ICAgICAgVGhlIGdyYW50IHJlZmVyZW5jZSBtYXkgYmUgcmVhZC1vbmx5IGFuZCBtdXN0IHJlbWFp
biB2YWxpZCB1bnRpbAogICogICAgICAgdGhlIHJlc3BvbnNlIGhhcyBiZWVuIHByb2Nlc3NlZC4K
KyAqCisgKiBYRU5fTkVUSUZfQ1RSTF9UWVBFX0dFVF9HUkVGX01BUFBJTkdfU0laRQorICogLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBUaGlzIGlzIHNl
bnQgYnkgdGhlIGZyb250ZW5kIHRvIGZldGNoIHRoZSBudW1iZXIgb2YgZ3JlZnMgdGhhdCBjYW4g
YmUga2VwdAorICogbWFwcGVkIGluIHRoZSBiYWNrZW5kLgorICoKKyAqIFJlcXVlc3Q6CisgKgor
ICogIHR5cGUgICAgPSBYRU5fTkVUSUZfQ1RSTF9UWVBFX0dFVF9HUkVGX01BUFBJTkdfU0laRQor
ICogIGRhdGFbMF0gPSBxdWV1ZSBpbmRleCAoYXNzdW1lZCAwIGZvciBzaW5nbGUgcXVldWUpCisg
KiAgZGF0YVsxXSA9IDAKKyAqICBkYXRhWzJdID0gMAorICoKKyAqIFJlc3BvbnNlOgorICoKKyAq
ICBzdGF0dXMgPSBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfTk9UX1NVUFBPUlRFRCAgICAgLSBPcGVy
YXRpb24gbm90CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3VwcG9ydGVkCisgKiAgICAgICAgICAgWEVOX05FVElGX0NUUkxfU1RBVFVTX0lO
VkFMSURfUEFSQU1FVEVSIC0gVGhlIHF1ZXVlIGluZGV4IGlzCisgKiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0IG9mIHJhbmdlCisgKiAgICAg
ICAgICAgWEVOX05FVElGX0NUUkxfU1RBVFVTX1NVQ0NFU1MgICAgICAgICAgIC0gT3BlcmF0aW9u
IHN1Y2Nlc3NmdWwKKyAqICBkYXRhICAgPSBtYXhpbXVtIG51bWJlciBvZiBlbnRyaWVzIGFsbG93
ZWQgaW4gdGhlIGdyZWYgbWFwcGluZyB0YWJsZQorICogICAgICAgICAgIChpZiBvcGVyYXRpb24g
d2FzIHN1Y2Nlc3NmdWwpIG9yIHplcm8gaWYgaXQgaXMgbm90IHN1cHBvcnRlZC4KKyAqCisgKiBY
RU5fTkVUSUZfQ1RSTF9UWVBFX0FERF9HUkVGX01BUFBJTkcKKyAqIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIFRoaXMgaXMgc2VudCBieSB0aGUgZnJvbnRlbmQg
Zm9yIGJhY2tlbmQgdG8gbWFwIGEgbGlzdCBvZiBncmFudAorICogcmVmZXJlbmNlcy4KKyAqCisg
KiBSZXF1ZXN0OgorICoKKyAqICB0eXBlICAgID0gWEVOX05FVElGX0NUUkxfVFlQRV9BRERfR1JF
Rl9NQVBQSU5HCisgKiAgZGF0YVswXSA9IHF1ZXVlIGluZGV4CisgKiAgZGF0YVsxXSA9IGdyYW50
IHJlZmVyZW5jZSBvZiBwYWdlIGNvbnRhaW5pbmcgdGhlIG1hcHBpbmcgbGlzdAorICogICAgICAg
ICAgICAoci93IGFuZCBhc3N1bWVkIHRvIHN0YXJ0IGF0IGJlZ2lubmluZyBvZiBwYWdlKQorICog
IGRhdGFbMl0gPSBzaXplIG9mIGxpc3QgaW4gZW50cmllcworICoKKyAqIFJlc3BvbnNlOgorICoK
KyAqICBzdGF0dXMgPSBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfTk9UX1NVUFBPUlRFRCAgICAgLSBP
cGVyYXRpb24gbm90CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3VwcG9ydGVkCisgKiAgICAgICAgICAgWEVOX05FVElGX0NUUkxfU1RBVFVT
X0lOVkFMSURfUEFSQU1FVEVSIC0gT3BlcmF0aW9uIGZhaWxlZAorICogICAgICAgICAgIFhFTl9O
RVRJRl9DVFJMX1NUQVRVU19TVUNDRVNTICAgICAgICAgICAtIE9wZXJhdGlvbiBzdWNjZXNzZnVs
CisgKgorICogTk9URTogRWFjaCBlbnRyeSBpbiB0aGUgaW5wdXQgdGFibGUgaGFzIHRoZSBmb3Jt
YXQgb3V0bGluZWQKKyAqICAgICAgIGluIHN0cnVjdCB4ZW5fbmV0aWZfZ3JlZi4KKyAqICAgICAg
IENvbnRyYXJ5IHRvIFhFTl9ORVRJRl9DVFJMX1RZUEVfREVMX0dSRUZfTUFQUElORywgdGhlIHN0
cnVjdAorICogICAgICAgeGVuX25ldGlmX2dyZWYgJ3N0YXR1cycgZmllbGQgaXMgbm90IHVzZWQg
YW5kIHRoZXJlZm9yZSB0aGUgcmVzcG9uc2UKKyAqICAgICAgICdzdGF0dXMnIGRldGVybWluZXMg
dGhlIHN1Y2Nlc3Mgb2YgdGhpcyBvcGVyYXRpb24uIEluIGNhc2Ugb2YKKyAqICAgICAgIGZhaWx1
cmUgbm9uZSBvZiBncmFudHMgbWFwcGluZ3MgZ2V0IGFkZGVkIGluIHRoZSBiYWNrZW5kLgorICoK
KyAqIFhFTl9ORVRJRl9DVFJMX1RZUEVfREVMX0dSRUZfTUFQUElORworICogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogVGhpcyBpcyBzZW50IGJ5IHRoZSBmcm9u
dGVuZCBmb3IgYmFja2VuZCB0byB1bm1hcCBhIGxpc3Qgb2YgZ3JhbnQKKyAqIHJlZmVyZW5jZXMu
CisgKgorICogUmVxdWVzdDoKKyAqCisgKiAgdHlwZSAgICA9IFhFTl9ORVRJRl9DVFJMX1RZUEVf
REVMX0dSRUZfTUFQUElORworICogIGRhdGFbMF0gPSBxdWV1ZSBpbmRleAorICogIGRhdGFbMV0g
PSBncmFudCByZWZlcmVuY2Ugb2YgcGFnZSBjb250YWluaW5nIHRoZSBtYXBwaW5nIGxpc3QKKyAq
ICAgICAgICAgICAgKHIvdyBhbmQgYXNzdW1lZCB0byBzdGFydCBhdCBiZWdpbm5pbmcgb2YgcGFn
ZSkKKyAqICBkYXRhWzJdID0gc2l6ZSBvZiBsaXN0IGluIGVudHJpZXMKKyAqCisgKiBSZXNwb25z
ZToKKyAqCisgKiAgc3RhdHVzID0gWEVOX05FVElGX0NUUkxfU1RBVFVTX05PVF9TVVBQT1JURUQg
ICAgIC0gT3BlcmF0aW9uIG5vdAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZAorICogICAgICAgICAgIFhFTl9ORVRJRl9DVFJM
X1NUQVRVU19JTlZBTElEX1BBUkFNRVRFUiAtIE9wZXJhdGlvbiBmYWlsZWQKKyAqICAgICAgICAg
ICBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfU1VDQ0VTUyAgICAgICAgICAgLSBPcGVyYXRpb24gc3Vj
Y2Vzc2Z1bAorICogIGRhdGEgICA9IG51bWJlciBvZiBlbnRyaWVzIHRoYXQgd2VyZSB1bm1hcHBl
ZAorICoKKyAqIE5PVEU6IEVhY2ggZW50cnkgaW4gdGhlIGlucHV0IHRhYmxlIGhhcyB0aGUgZm9y
bWF0IG91dGxpbmVkIGluIHN0cnVjdAorICogICAgICAgeGVuX25ldGlmX2dyZWYuCisgKiAgICAg
ICBUaGUgc3RydWN0IHhlbl9uZXRpZl9ncmVmICdzdGF0dXMnIGZpZWxkIGRldGVybWluZXMgaWYg
dGhlIGVudHJ5CisgKiAgICAgICB3YXMgc3VjY2Vzc2Z1bGx5IHJlbW92ZWQuCisgKiAgICAgICBU
aGUgZW50cmllcyB1c2VkIGFyZSBvbmx5IHRoZSBvbmVzIHJlcHJlc2VudGluZyBncmFudCByZWZl
cmVuY2VzIHRoYXQKKyAqICAgICAgIHdlcmUgcHJldmlvdXNseSB0aGUgc3ViamVjdCBvZiBhIFhF
Tl9ORVRJRl9DVFJMX1RZUEVfQUREX0dSRUZfTUFQUElORworICogICAgICAgb3BlcmF0aW9uLiBB
bnkgb3RoZXIgZW50cmllcyB3aWxsIGhhdmUgdGhlaXIgc3RhdHVzIHNldCB0bworICogICAgICAg
WEVOX05FVElGX0NUUkxfU1RBVFVTX0lOVkFMSURfUEFSQU1FVEVSIHVwb24gY29tcGxldGlvbi4K
ICAqLwogCiBERUZJTkVfUklOR19UWVBFUyh4ZW5fbmV0aWZfY3RybCwKZGlmZiAtLWdpdCBhL2lu
Y2x1ZGUveGVuL3hlbi5oIGIvaW5jbHVkZS94ZW4veGVuLmgKaW5kZXggMmFjNmIxZS4uMzA4MTA5
ZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4veGVuLmgKKysrIGIvaW5jbHVkZS94ZW4veGVuLmgK
QEAgLTkzMCw2ICs5MzAsMzcgQEAgX19ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh1aW50MTYsIHVp
bnQxNl90KTsKIF9fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUodWludDMyLCB1aW50MzJfdCk7CiBf
X0RFRklORV9YRU5fR1VFU1RfSEFORExFKHVpbnQ2NCwgdWludDY0X3QpOwogCit0eXBlZGVmIHN0
cnVjdCB7CisgICAgdWludDhfdCBhWzE2XTsKK30geGVuX3V1aWRfdDsKKworLyoKKyAqIFhFTl9E
RUZJTkVfVVVJRCgweDAwMTEyMjMzLCAweDQ0NTUsIDB4NjY3NywgMHg4ODk5LAorICogICAgICAg
ICAgICAgICAgIDB4YWEsIDB4YmIsIDB4Y2MsIDB4ZGQsIDB4ZWUsIDB4ZmYpCisgKiB3aWxsIGNv
bnN0cnVjdCBVVUlEIDAwMTEyMjMzLTQ0NTUtNjY3Ny04ODk5LWFhYmJjY2RkZWVmZiBwcmVzZW50
ZWQgYXMKKyAqIHsweDAwLCAweDExLCAweDIyLCAweDMzLCAweDQ0LCAweDU1LCAweDY2LCAweDc3
LCAweDg4LAorICogMHg5OSwgMHhhYSwgMHhiYiwgMHhjYywgMHhkZCwgMHhlZSwgMHhmZn07Cisg
KgorICogTkI6IFRoaXMgaXMgY29tcGF0aWJsZSB3aXRoIExpbnV4IGtlcm5lbCBhbmQgd2l0aCBs
aWJ1dWlkLCBidXQgaXQgaXMgbm90CisgKiBjb21wYXRpYmxlIHdpdGggTWljcm9zb2Z0LCBhcyB0
aGV5IHVzZSBtaXhlZC1lbmRpYW4gZW5jb2RpbmcgKHNvbWUKKyAqIGNvbXBvbmVudHMgYXJlIGxp
dHRsZS1lbmRpYW4sIHNvbWUgYXJlIGJpZy1lbmRpYW4pLgorICovCisjZGVmaW5lIFhFTl9ERUZJ
TkVfVVVJRF8oYSwgYiwgYywgZCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNikgICAgICAgICAgICBc
CisgICAge3soKGEpID4+IDI0KSAmIDB4RkYsICgoYSkgPj4gMTYpICYgMHhGRiwgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgICAoKGEpID4+ICA4KSAmIDB4RkYsICgoYSkgPj4gIDAp
ICYgMHhGRiwgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAoKGIpID4+ICA4KSAm
IDB4RkYsICgoYikgPj4gIDApICYgMHhGRiwgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgICAoKGMpID4+ICA4KSAmIDB4RkYsICgoYykgPj4gIDApICYgMHhGRiwgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgICAoKGQpID4+ICA4KSAmIDB4RkYsICgoZCkgPj4gIDApICYg
MHhGRiwgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgZTEsIGUy
LCBlMywgZTQsIGU1LCBlNn19CisKKyNpZiBkZWZpbmVkKF9fU1REQ19WRVJTSU9OX18pID8gX19T
VERDX1ZFUlNJT05fXyA+PSAxOTk5MDFMIDogZGVmaW5lZChfX0dOVUNfXykKKyNkZWZpbmUgWEVO
X0RFRklORV9VVUlEKGEsIGIsIGMsIGQsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYpICAgICAgICAg
ICAgIFwKKyAgICAoKHhlbl91dWlkX3QpWEVOX0RFRklORV9VVUlEXyhhLCBiLCBjLCBkLCBlMSwg
ZTIsIGUzLCBlNCwgZTUsIGU2KSkKKyNlbHNlCisjZGVmaW5lIFhFTl9ERUZJTkVfVVVJRChhLCBi
LCBjLCBkLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2KSAgICAgICAgICAgICBcCisgICAgWEVOX0RF
RklORV9VVUlEXyhhLCBiLCBjLCBkLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2KQorI2VuZGlmIC8q
IF9fU1REQ19WRVJTSU9OX18gLyBfX0dOVUNfXyAqLworCiAjZW5kaWYgLyogIV9fQVNTRU1CTFlf
XyAqLwogCiAvKiBEZWZhdWx0IGRlZmluaXRpb25zIGZvciBtYWNyb3MgdXNlZCBieSBkb21jdGwv
c3lzY3RsLiAqLwotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlz
dHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21h
aWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Mon Oct 16 20:35:44 2017
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 16 Oct 2017 20:35:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1e4C6x-00013k-E3; Mon, 16 Oct 2017 20:35:43 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <samuel.thibault@ens-lyon.org>) id 1e4C6w-00013e-O7
 for minios-devel@lists.xenproject.org; Mon, 16 Oct 2017 20:35:42 +0000
Received: from [85.158.139.211] by server-10.bemta-5.messagelabs.com id
 1F/7E-19067-D1815E95; Mon, 16 Oct 2017 20:35:41 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrBIsWRWlGSWpSXmKPExsXS+7+BUVdW4mm
 kwfXT3BZvvy5hdmD0OPzhCksAYxRrZl5SfkUCa8aDa0/ZCxorK97MuM7ewPgspouRi0NIYCKj
 xLRz01m7GDk5JASMJa5sb2CESOxilNj69Sk7hLOCUaKv+xhUZgOjxIHpLUwgLSwCqhINn3eDt
 bMJmEj0N85jA7FFBBQlHry8CRTn4GAGik97FQASFhawkTi2dSEziM0r4CVx9MxtVpCZvAKTGS
 UO3ngANkdIwFxi/tVNTBBFghInZz5hAbGZBbQkbvx7yQQxU1pi+T8OkDCngIXEmg0/GUFsfgE
 FiS3XXoKViwqoSHQuncMygVF4FpJJs5BMmoUwaQEj8ypG9eLUorLUIl1jvaSizPSMktzEzBxd
 QwNTvdzU4uLE9NScxKRiveT83E2MwDBnAIIdjHv/OR1ilORgUhLldTZ8EinEl5SfUpmRWJwRX
 1Sak1p8iFGGg0NJgrdX/GmkkGBRanpqRVpmDjDiYNISHDxKIrxXxYDSvMUFibnFmekQqVOM9h
 zHNl3+w8QxafEVILnp5l0gueH7gz9MQix5+XmpUuK8piBTBUDaMkrz4IbCEsQlRlkpYV5GoDO
 FeApSi3IzS1DlXzGKczAqCfPWgUzhycwrgdv9CugsJqCz1jk9ATmrJBEhJdXAaLZ6W2TNWZd9
 ritzeNeZ98tcm39oQ6quEpdlrvXFSuED7Mw9lfE3dCfarln4uO9UHu+GtaYinl83d99/I971Z
 GVnyv9m8+c9C0IbVTuv63VHtuz5EaiQfYBtuhwHd6faebZ1b+erPfbwYNuXfni2fsbncIu4Cb
 7XWNx/7ZHLczF/dIqDvzFTiaU4I9FQi7moOBEARhHRXgsDAAA=
X-Env-Sender: samuel.thibault@ens-lyon.org
X-Msg-Ref: server-12.tower-206.messagelabs.com!1508186140!70943934!1
X-Originating-IP: [141.255.128.1]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28726 invoked from network); 16 Oct 2017 20:35:41 -0000
Received: from hera.aquilenet.fr (HELO hera.aquilenet.fr) (141.255.128.1)
 by server-12.tower-206.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
 encrypted SMTP; 16 Oct 2017 20:35:41 -0000
Received: from localhost (localhost [127.0.0.1])
 by hera.aquilenet.fr (Postfix) with ESMTP id 4B583E652;
 Mon, 16 Oct 2017 22:35:41 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at aquilenet.fr
Received: from hera.aquilenet.fr ([127.0.0.1])
 by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id rBS2tWDQm3aQ; Mon, 16 Oct 2017 22:35:39 +0200 (CEST)
Received: from var.youpi.perso.aquilenet.fr (unknown [185.163.62.37])
 by hera.aquilenet.fr (Postfix) with ESMTPSA id 52525DFB3;
 Mon, 16 Oct 2017 22:35:37 +0200 (CEST)
Received: from samy by var.youpi.perso.aquilenet.fr with local (Exim 4.89)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1e4C6j-0002vp-SE; Mon, 16 Oct 2017 22:35:29 +0200
Date: Mon, 16 Oct 2017 22:35:29 +0200
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
To: Wei Liu <wei.liu2@citrix.com>
Message-ID: <20171016203529.cqyrqrinq5pdjczh@var.youpi.perso.aquilenet.fr>
Mail-Followup-To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Wei Liu <wei.liu2@citrix.com>,
 Minios-devel <minios-devel@lists.xenproject.org>
References: <20171016153641.7043-1-wei.liu2@citrix.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <20171016153641.7043-1-wei.liu2@citrix.com>
Organization: I am not organized
User-Agent: NeoMutt/20170113 (1.7.2)
Cc: Minios-devel <minios-devel@lists.xenproject.org>
Subject: Re: [Minios-devel] [MINIOS PATCH v2] Update Xen header files again
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

V2VpIExpdSwgb24gbHVuLiAxNiBvY3QuIDIwMTcgMTY6MzY6NDEgKzAxMDAsIHdyb3RlOgo+IFRo
ZSBtb3N0IGltcG9ydGFudCB0aGluZyBpcyB0aGUgdXBkYXRlIHRvIGNvbnNvbGUuaCwgd2hpY2gg
Zml4ZXMgYSBidWcKPiB0aGF0IHJlcXVpcmVzIHRoZSBjb25zdW1lcnMgdG8gaW5jbHVkZSBzdHJp
bmcuaC4KPiAKPiBVcGRhdGUgYWxsIGhlYWRlcnMgbm9uZXRoZWxlc3MgZm9yIG90aGVyIGZpeGVz
IGFuZCBuZXcgY29udGVudC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBXZWkgTGl1IDx3ZWkubGl1MkBj
aXRyaXguY29tPgoKQWNrZWQtYnk6IFNhbXVlbCBUaGliYXVsdCA8c2FtdWVsLnRoaWJhdWx0QGVu
cy1seW9uLm9yZz4KCj4gLS0tCj4gIGluY2x1ZGUveGVuL2FyY2gtYXJtL3NtY2NjLmggICAgICB8
ICA2NiArKysrKysrKysrKysrKysrKysrKwo+ICBpbmNsdWRlL3hlbi9hcmNoLXg4Ni94ZW4teDg2
XzY0LmggfCAgIDQgKy0KPiAgaW5jbHVkZS94ZW4vZG9tY3RsLmggICAgICAgICAgICAgIHwgICA0
ICsrCj4gIGluY2x1ZGUveGVuL2ZlYXR1cmVzLmggICAgICAgICAgICB8ICAgMyArCj4gIGluY2x1
ZGUveGVuL2h2bS9kbV9vcC5oICAgICAgICAgICB8ICAxMiArKysrCj4gIGluY2x1ZGUveGVuL2lv
L2NvbnNvbGUuaCAgICAgICAgICB8ICAgNSArLQo+ICBpbmNsdWRlL3hlbi9pby9uZXRpZi5oICAg
ICAgICAgICAgfCAxMjMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAg
aW5jbHVkZS94ZW4veGVuLmggICAgICAgICAgICAgICAgIHwgIDMxICsrKysrKysrKysKPiAgOCBm
aWxlcyBjaGFuZ2VkLCAyNDMgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKPiAgY3JlYXRl
IG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL2FyY2gtYXJtL3NtY2NjLmgKPiAKPiBkaWZmIC0tZ2l0
IGEvaW5jbHVkZS94ZW4vYXJjaC1hcm0vc21jY2MuaCBiL2luY2x1ZGUveGVuL2FyY2gtYXJtL3Nt
Y2NjLmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjE3ZGM2ZDgKPiAt
LS0gL2Rldi9udWxsCj4gKysrIGIvaW5jbHVkZS94ZW4vYXJjaC1hcm0vc21jY2MuaAo+IEBAIC0w
LDAgKzEsNjYgQEAKPiArLyoKPiArICogc21jY2MuaAo+ICsgKgo+ICsgKiBTTUMvSFZDIGludGVy
ZmFjZSBpbiBhY2NvcmRhbmNlIHdpdGggU01DIENhbGxpbmcgQ29udmVudGlvbi4KPiArICoKPiAr
ICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBw
ZXJzb24gb2J0YWluaW5nIGEgY29weQo+ICsgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lh
dGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KPiArICogZGVhbCBp
biB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGlt
aXRhdGlvbiB0aGUKPiArICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVi
bGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCj4gKyAqIHNlbGwgY29waWVzIG9m
IHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJl
IGlzCj4gKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnM6Cj4gKyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz
IHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCj4gKyAqIGFsbCBjb3BpZXMg
b3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUg
U09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO
RCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRP
IFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFCj4gKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkg
Q0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD
VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiArICogRlJPTSwg
T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBP
VEhFUgo+ICsgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4gKyAqCj4gKyAqIENvcHlyaWdo
dCAyMDE3IChDKSBFUEFNIFN5c3RlbXMKPiArICovCj4gKwo+ICsjaWZuZGVmIF9fWEVOX1BVQkxJ
Q19BUkNIX0FSTV9TTUNDQ19IX18KPiArI2RlZmluZSBfX1hFTl9QVUJMSUNfQVJDSF9BUk1fU01D
Q0NfSF9fCj4gKwo+ICsjaW5jbHVkZSAicHVibGljL3hlbi5oIgo+ICsKPiArLyoKPiArICogSHlw
ZXJ2aXNvciBTZXJ2aWNlIHZlcnNpb24uCj4gKyAqCj4gKyAqIFdlIGNhbid0IHVzZSBYRU4gdmVy
c2lvbiBoZXJlLCBiZWNhdXNlIG9mIFNNQ0NDIHJlcXVpcmVtZW50czoKPiArICogTWFqb3IgcmV2
aXNpb24gc2hvdWxkIGNoYW5nZSBldmVyeSB0aW1lIFNNQy9IVkMgZnVuY3Rpb24gaXMgcmVtb3Zl
ZC4KPiArICogTWlub3IgcmV2aXNpb24gc2hvdWxkIGNoYW5nZSBldmVyeSB0aW1lIFNNQy9IVkMg
ZnVuY3Rpb24gaXMgYWRkZWQuCj4gKyAqIFNvLCBpdCBpcyBTTUNDQyBwcm90b2NvbCByZXZpc2lv
biBjb2RlLCBub3QgWEVOIHZlcnNpb24uCj4gKyAqCj4gKyAqIFRob3NlIHZhbHVlcyBhcmUgc3Vi
amVjdGVkIHRvIGNoYW5nZSwgd2hlbiBpbnRlcmZhY2Ugd2lsbCBiZSBleHRlbmRlZC4KPiArICov
Cj4gKyNkZWZpbmUgWEVOX1NNQ0NDX01BSk9SX1JFVklTSU9OIDAKPiArI2RlZmluZSBYRU5fU01D
Q0NfTUlOT1JfUkVWSVNJT04gMQo+ICsKPiArLyogSHlwZXJ2aXNvciBTZXJ2aWNlIFVJRC4gUmFu
ZG9tbHkgZ2VuZXJhdGVkIHdpdGggdXVpZGdlbi4gKi8KPiArI2RlZmluZSBYRU5fU01DQ0NfVUlE
IFhFTl9ERUZJTkVfVVVJRCgweGE3MTgxMmRjLCAweGM2OTgsIDB4NDM2OSwgMHg5YWNmLCBcCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3OSwgMHhkMSwgMHg4ZCwg
MHhkZSwgMHhlNiwgMHg2NykKPiArCj4gKy8qIFN0YW5kYXJkIFNlcnZpY2UgU2VydmljZSBDYWxs
IHZlcnNpb24uICovCj4gKyNkZWZpbmUgU1NTQ19TTUNDQ19NQUpPUl9SRVZJU0lPTiAwCj4gKyNk
ZWZpbmUgU1NTQ19TTUNDQ19NSU5PUl9SRVZJU0lPTiAxCj4gKwo+ICsvKiBTdGFuZGFyZCBTZXJ2
aWNlIENhbGwgVUlELiBSYW5kb21seSBnZW5lcmF0ZWQgd2l0aCB1dWlkZ2VuLiAqLwo+ICsjZGVm
aW5lIFNTU0NfU01DQ0NfVUlEIFhFTl9ERUZJTkVfVVVJRCgweGY4NjMzODZmLCAweDRiMzksIDB4
NGNiZCwgMHg5MjIwLFwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MHhjZSwgMHgxNiwgMHg0MSwgMHhlNSwgMHg5ZiwgMHg2ZikKPiArCj4gKyNlbmRpZiAvKiBfX1hF
Tl9QVUJMSUNfQVJDSF9BUk1fU01DQ0NfSF9fICovCj4gKwo+ICsvKgo+ICsgKiBMb2NhbCB2YXJp
YWJsZXM6Cj4gKyAqIG1vZGU6IEMKPiArICogYy1maWxlLXN0eWxlOiAiQlNEIgo+ICsgKiBjLWJh
c2ljLW9mZnNldDogNAo+ICsgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKPiArICogRW5kOmIKPiAr
ICovCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2FyY2gteDg2L3hlbi14ODZfNjQuaCBiL2lu
Y2x1ZGUveGVuL2FyY2gteDg2L3hlbi14ODZfNjQuaAo+IGluZGV4IDk3OGY4Y2IuLmJlNTJmNzAg
MTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS94ZW4vYXJjaC14ODYveGVuLXg4Nl82NC5oCj4gKysrIGIv
aW5jbHVkZS94ZW4vYXJjaC14ODYveGVuLXg4Nl82NC5oCj4gQEAgLTIwMyw4ICsyMDMsOCBAQCBz
dHJ1Y3QgY3B1X3VzZXJfcmVncyB7Cj4gICAgICB1aW50MTZfdCBzcywgX3BhZDJbM107Cj4gICAg
ICB1aW50MTZfdCBlcywgX3BhZDNbM107Cj4gICAgICB1aW50MTZfdCBkcywgX3BhZDRbM107Cj4g
LSAgICB1aW50MTZfdCBmcywgX3BhZDVbM107IC8qIE5vbi16ZXJvID0+IHRha2VzIHByZWNlZGVu
Y2Ugb3ZlciBmc19iYXNlLiAgICAgKi8KPiAtICAgIHVpbnQxNl90IGdzLCBfcGFkNlszXTsgLyog
Tm9uLXplcm8gPT4gdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGdzX2Jhc2VfdXNyLiAqLwo+ICsgICAg
dWludDE2X3QgZnMsIF9wYWQ1WzNdOyAvKiBOb24tbnVsID0+IHRha2VzIHByZWNlZGVuY2Ugb3Zl
ciBmc19iYXNlLiAgICAgICovCj4gKyAgICB1aW50MTZfdCBncywgX3BhZDZbM107IC8qIE5vbi1u
dWwgPT4gdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGdzX2Jhc2VfdXNlci4gKi8KPiAgfTsKPiAgdHlw
ZWRlZiBzdHJ1Y3QgY3B1X3VzZXJfcmVncyBjcHVfdXNlcl9yZWdzX3Q7Cj4gIERFRklORV9YRU5f
R1VFU1RfSEFORExFKGNwdV91c2VyX3JlZ3NfdCk7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVu
L2RvbWN0bC5oIGIvaW5jbHVkZS94ZW4vZG9tY3RsLmgKPiBpbmRleCA4ODUzNDQ1Li43MDAyN2Fi
IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUveGVuL2RvbWN0bC5oCj4gKysrIGIvaW5jbHVkZS94ZW4v
ZG9tY3RsLmgKPiBAQCAtMzQyLDYgKzM0MiwxMCBAQCBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZF9j
cmVkaXQyIHsKPiAgc3RydWN0IHhlbl9kb21jdGxfc2NoZWRfcnRkcyB7Cj4gICAgICB1aW50MzJf
dCBwZXJpb2Q7Cj4gICAgICB1aW50MzJfdCBidWRnZXQ7Cj4gKy8qIENhbiB0aGlzIHZDUFUgZXhl
Y3V0ZSBiZXlvbmQgaXRzIHJlc2VydmVkIGFtb3VudCBvZiB0aW1lPyAqLwo+ICsjZGVmaW5lIF9Y
RU5fRE9NQ1RMX1NDSEVEUlRfZXh0cmEgICAwCj4gKyNkZWZpbmUgWEVOX0RPTUNUTF9TQ0hFRFJU
X2V4dHJhICAgICgxVTw8X1hFTl9ET01DVExfU0NIRURSVF9leHRyYSkKPiArICAgIHVpbnQzMl90
IGZsYWdzOwo+ICB9Owo+ICAKPiAgdHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZHBhcmFt
X3ZjcHUgewo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9mZWF0dXJlcy5oIGIvaW5jbHVkZS94
ZW4vZmVhdHVyZXMuaAo+IGluZGV4IDIxMTBiMDQuLjFhOTg5YjggMTAwNjQ0Cj4gLS0tIGEvaW5j
bHVkZS94ZW4vZmVhdHVyZXMuaAo+ICsrKyBiL2luY2x1ZGUveGVuL2ZlYXR1cmVzLmgKPiBAQCAt
MTAyLDYgKzEwMiw5IEBACj4gIC8qIEd1ZXN0IGNhbiB1c2UgWEVOTUVNRl92bm9kZSB0byBzcGVj
aWZ5IHZpcnR1YWwgbm9kZSBmb3IgbWVtb3J5IG9wLiAqLwo+ICAjZGVmaW5lIFhFTkZFQVRfbWVt
b3J5X29wX3Zub2RlX3N1cHBvcnRlZCAxMwo+ICAKPiArLyogYXJtOiBIeXBlcnZpc29yIHN1cHBv
cnRzIEFSTSBTTUMgY2FsbGluZyBjb252ZW50aW9uLiAqLwo+ICsjZGVmaW5lIFhFTkZFQVRfQVJN
X1NNQ0NDX3N1cHBvcnRlZCAgICAgICAxNAo+ICsKPiAgI2RlZmluZSBYRU5GRUFUX05SX1NVQk1B
UFMgMQo+ICAKPiAgI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19GRUFUVVJFU19IX18gKi8KPiBkaWZm
IC0tZ2l0IGEvaW5jbHVkZS94ZW4vaHZtL2RtX29wLmggYi9pbmNsdWRlL3hlbi9odm0vZG1fb3Au
aAo+IGluZGV4IDZiYmFiNWYuLmUxNzMwODUgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS94ZW4vaHZt
L2RtX29wLmgKPiArKysgYi9pbmNsdWRlL3hlbi9odm0vZG1fb3AuaAo+IEBAIC0zNTcsNiArMzU3
LDE3IEBAIHN0cnVjdCB4ZW5fZG1fb3BfbWFwX21lbV90eXBlX3RvX2lvcmVxX3NlcnZlciB7Cj4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhcyB0byBiZSBzZXQgdG8gemVybyBieSB0aGUg
Y2FsbGVyICovCj4gIH07Cj4gIAo+ICsvKgo+ICsgKiBYRU5fRE1PUF9yZW1vdGVfc2h1dGRvd24g
OiBEZWNsYXJlIGEgc2h1dGRvd24gZm9yIGFub3RoZXIgZG9tYWluCj4gKyAqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIElkZW50aWNhbCB0byBTQ0hFRE9QX3JlbW90ZV9zaHV0ZG93bgo+ICsg
Ki8KPiArI2RlZmluZSBYRU5fRE1PUF9yZW1vdGVfc2h1dGRvd24gMTYKPiArCj4gK3N0cnVjdCB4
ZW5fZG1fb3BfcmVtb3RlX3NodXRkb3duIHsKPiArICAgIHVpbnQzMl90IHJlYXNvbjsgICAgICAg
LyogU0hVVERPV05fKiA9PiBlbnVtIHNjaGVkX3NodXRkb3duX3JlYXNvbiAqLwo+ICsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvKiAoT3RoZXIgcmVhc29uIHZhbHVlcyBhcmUgbm90IGJsb2Nr
ZWQpICovCj4gK307Cj4gKwo+ICBzdHJ1Y3QgeGVuX2RtX29wIHsKPiAgICAgIHVpbnQzMl90IG9w
Owo+ICAgICAgdWludDMyX3QgcGFkOwo+IEBAIC0zNzcsNiArMzg4LDcgQEAgc3RydWN0IHhlbl9k
bV9vcCB7Cj4gICAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9pbmplY3RfbXNpIGluamVjdF9tc2k7
Cj4gICAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9tYXBfbWVtX3R5cGVfdG9faW9yZXFfc2VydmVy
Cj4gICAgICAgICAgICAgICAgICBtYXBfbWVtX3R5cGVfdG9faW9yZXFfc2VydmVyOwo+ICsgICAg
ICAgIHN0cnVjdCB4ZW5fZG1fb3BfcmVtb3RlX3NodXRkb3duIHJlbW90ZV9zaHV0ZG93bjsKPiAg
ICAgIH0gdTsKPiAgfTsKPiAgCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2lvL2NvbnNvbGUu
aCBiL2luY2x1ZGUveGVuL2lvL2NvbnNvbGUuaAo+IGluZGV4IDBmMDcxMWYuLjFmNzllZjggMTAw
NjQ0Cj4gLS0tIGEvaW5jbHVkZS94ZW4vaW8vY29uc29sZS5oCj4gKysrIGIvaW5jbHVkZS94ZW4v
aW8vY29uc29sZS5oCj4gQEAgLTI3LDggKzI3LDYgQEAKPiAgI2lmbmRlZiBfX1hFTl9QVUJMSUNf
SU9fQ09OU09MRV9IX18KPiAgI2RlZmluZSBfX1hFTl9QVUJMSUNfSU9fQ09OU09MRV9IX18KPiAg
Cj4gLSNpbmNsdWRlICJyaW5nLmgiCj4gLQo+ICB0eXBlZGVmIHVpbnQzMl90IFhFTkNPTlNfUklO
R19JRFg7Cj4gIAo+ICAjZGVmaW5lIE1BU0tfWEVOQ09OU19JRFgoaWR4LCByaW5nKSAoKGlkeCkg
JiAoc2l6ZW9mKHJpbmcpLTEpKQo+IEBAIC00MCw3ICszOCw4IEBAIHN0cnVjdCB4ZW5jb25zX2lu
dGVyZmFjZSB7Cj4gICAgICBYRU5DT05TX1JJTkdfSURYIG91dF9jb25zLCBvdXRfcHJvZDsKPiAg
fTsKPiAgCj4gLSNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAhZGVmaW5lZChfX1NUUklDVF9BTlNJ
X18pCj4gKyNpZmRlZiBYRU5fV0FOVF9GTEVYX0NPTlNPTEVfUklORwo+ICsjaW5jbHVkZSAicmlu
Zy5oIgo+ICBERUZJTkVfWEVOX0ZMRVhfUklORyh4ZW5jb25zKTsKPiAgI2VuZGlmCj4gIAo+IGRp
ZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9pby9uZXRpZi5oIGIvaW5jbHVkZS94ZW4vaW8vbmV0aWYu
aAo+IGluZGV4IGNhMDA2MTQuLjI0NTQ0NDggMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS94ZW4vaW8v
bmV0aWYuaAo+ICsrKyBiL2luY2x1ZGUveGVuL2lvL25ldGlmLmgKPiBAQCAtMzUzLDYgKzM1Myw5
IEBAIHN0cnVjdCB4ZW5fbmV0aWZfY3RybF9yZXF1ZXN0IHsKPiAgI2RlZmluZSBYRU5fTkVUSUZf
Q1RSTF9UWVBFX1NFVF9IQVNIX01BUFBJTkdfU0laRSA1Cj4gICNkZWZpbmUgWEVOX05FVElGX0NU
UkxfVFlQRV9TRVRfSEFTSF9NQVBQSU5HICAgICAgNgo+ICAjZGVmaW5lIFhFTl9ORVRJRl9DVFJM
X1RZUEVfU0VUX0hBU0hfQUxHT1JJVEhNICAgIDcKPiArI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9U
WVBFX0dFVF9HUkVGX01BUFBJTkdfU0laRSA4Cj4gKyNkZWZpbmUgWEVOX05FVElGX0NUUkxfVFlQ
RV9BRERfR1JFRl9NQVBQSU5HICAgICAgOQo+ICsjZGVmaW5lIFhFTl9ORVRJRl9DVFJMX1RZUEVf
REVMX0dSRUZfTUFQUElORyAgICAgMTAKPiAgCj4gICAgICB1aW50MzJfdCBkYXRhWzNdOwo+ICB9
Owo+IEBAIC0zOTAsNiArMzkzLDQ0IEBAIHN0cnVjdCB4ZW5fbmV0aWZfY3RybF9yZXNwb25zZSB7
Cj4gICAgICB1aW50MzJfdCBkYXRhOwo+ICB9Owo+ICAKPiArLyoKPiArICogU3RhdGljIEdyYW50
cyAoc3RydWN0IHhlbl9uZXRpZl9ncmVmKQo+ICsgKiA9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Cj4gKyAqCj4gKyAqIEEgZnJvbnRlbmQgbWF5IHByb3ZpZGUgYSBmaXhlZCBz
ZXQgb2YgZ3JhbnQgcmVmZXJlbmNlcyB0byBiZSBtYXBwZWQgb24KPiArICogdGhlIGJhY2tlbmQu
IFRoZSBtZXNzYWdlIG9mIHR5cGUgWEVOX05FVElGX0NUUkxfVFlQRV9BRERfR1JFRl9NQVBQSU5H
Cj4gKyAqIHByaW9yIGl0cyB1c2FnZSBpbiB0aGUgY29tbWFuZCByaW5nIGFsbG93cyBmb3IgY3Jl
YXRpb24gb2YgdGhlc2UgbWFwcGluZ3MuCj4gKyAqIFRoZSBiYWNrZW5kIHdpbGwgbWFpbnRhaW4g
YSBmaXhlZCBhbW91bnQgb2YgdGhlc2UgbWFwcGluZ3MuCj4gKyAqCj4gKyAqIFhFTl9ORVRJRl9D
VFJMX1RZUEVfR0VUX0dSRUZfTUFQUElOR19TSVpFIGxldHMgYSBmcm9udGVuZCBxdWVyeSBob3cg
bWFueQo+ICsgKiBvZiB0aGVzZSBtYXBwaW5ncyBjYW4gYmUga2VwdC4KPiArICoKPiArICogRWFj
aCBlbnRyeSBpbiB0aGUgWEVOX05FVElGX0NUUkxfVFlQRV97QURELERFTH1fR1JFRl9NQVBQSU5H
IGlucHV0IHRhYmxlIGhhcwo+ICsgKiB0aGUgZm9sbG93aW5nIGZvcm1hdDoKPiArICoKPiArICog
ICAgMCAgICAgMSAgICAgMiAgICAgMyAgICAgNCAgICAgNSAgICAgNiAgICAgNyAgb2N0ZXQKPiAr
ICogKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwo+ICsg
KiB8IGdyYW50IHJlZiAgICAgICAgICAgICB8ICBmbGFncyAgICB8ICBzdGF0dXMgICB8Cj4gKyAq
ICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKPiArICoK
PiArICogZ3JhbnQgcmVmOiBncmFudCByZWZlcmVuY2UgKElOKQo+ICsgKiBmbGFnczogZmxhZ3Mg
ZGVzY3JpYmluZyB0aGUgY29udHJvbCBvcGVyYXRpb24gKElOKQo+ICsgKiBzdGF0dXM6IFhFTl9O
RVRJRl9DVFJMX1NUQVRVU18qIChPVVQpCj4gKyAqCj4gKyAqICdzdGF0dXMnIGlzIGFuIG91dHB1
dCBwYXJhbWV0ZXIgd2hpY2ggZG9lcyBub3QgcmVxdWlyZSB0byBiZSBzZXQgdG8gemVybwo+ICsg
KiBwcmlvciB0byBpdHMgdXNhZ2UgaW4gdGhlIGNvcnJlc3BvbmRpbmcgY29udHJvbCBtZXNzYWdl
cy4KPiArICovCj4gKwo+ICtzdHJ1Y3QgeGVuX25ldGlmX2dyZWYgewo+ICsgICAgICAgZ3JhbnRf
cmVmX3QgcmVmOwo+ICsgICAgICAgdWludDE2X3QgZmxhZ3M7Cj4gKwo+ICsjZGVmaW5lIF9YRU5f
TkVUSUZfQ1RSTEZfR1JFRl9yZWFkb25seSAgICAwCj4gKyNkZWZpbmUgWEVOX05FVElGX0NUUkxG
X0dSRUZfcmVhZG9ubHkgICAgKDFVPDxfWEVOX05FVElGX0NUUkxGX0dSRUZfcmVhZG9ubHkpCj4g
Kwo+ICsgICAgICAgdWludDE2X3Qgc3RhdHVzOwo+ICt9Owo+ICsKPiAgLyoKPiAgICogQ29udHJv
bCBtZXNzYWdlcwo+ICAgKiA9PT09PT09PT09PT09PT09Cj4gQEAgLTYwOSw2ICs2NTAsODggQEAg
c3RydWN0IHhlbl9uZXRpZl9jdHJsX3Jlc3BvbnNlIHsKPiAgICogICAgICAgaW52YWxpZGF0ZSBh
bnkgdGFibGUgZGF0YSBvdXRzaWRlIHRoYXQgcmFuZ2UuCj4gICAqICAgICAgIFRoZSBncmFudCBy
ZWZlcmVuY2UgbWF5IGJlIHJlYWQtb25seSBhbmQgbXVzdCByZW1haW4gdmFsaWQgdW50aWwKPiAg
ICogICAgICAgdGhlIHJlc3BvbnNlIGhhcyBiZWVuIHByb2Nlc3NlZC4KPiArICoKPiArICogWEVO
X05FVElGX0NUUkxfVFlQRV9HRVRfR1JFRl9NQVBQSU5HX1NJWkUKPiArICogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoKPiArICogVGhpcyBpcyBzZW50IGJ5
IHRoZSBmcm9udGVuZCB0byBmZXRjaCB0aGUgbnVtYmVyIG9mIGdyZWZzIHRoYXQgY2FuIGJlIGtl
cHQKPiArICogbWFwcGVkIGluIHRoZSBiYWNrZW5kLgo+ICsgKgo+ICsgKiBSZXF1ZXN0Ogo+ICsg
Kgo+ICsgKiAgdHlwZSAgICA9IFhFTl9ORVRJRl9DVFJMX1RZUEVfR0VUX0dSRUZfTUFQUElOR19T
SVpFCj4gKyAqICBkYXRhWzBdID0gcXVldWUgaW5kZXggKGFzc3VtZWQgMCBmb3Igc2luZ2xlIHF1
ZXVlKQo+ICsgKiAgZGF0YVsxXSA9IDAKPiArICogIGRhdGFbMl0gPSAwCj4gKyAqCj4gKyAqIFJl
c3BvbnNlOgo+ICsgKgo+ICsgKiAgc3RhdHVzID0gWEVOX05FVElGX0NUUkxfU1RBVFVTX05PVF9T
VVBQT1JURUQgICAgIC0gT3BlcmF0aW9uIG5vdAo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkCj4gKyAqICAgICAgICAgICBY
RU5fTkVUSUZfQ1RSTF9TVEFUVVNfSU5WQUxJRF9QQVJBTUVURVIgLSBUaGUgcXVldWUgaW5kZXgg
aXMKPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG91dCBvZiByYW5nZQo+ICsgKiAgICAgICAgICAgWEVOX05FVElGX0NUUkxfU1RBVFVTX1NV
Q0NFU1MgICAgICAgICAgIC0gT3BlcmF0aW9uIHN1Y2Nlc3NmdWwKPiArICogIGRhdGEgICA9IG1h
eGltdW0gbnVtYmVyIG9mIGVudHJpZXMgYWxsb3dlZCBpbiB0aGUgZ3JlZiBtYXBwaW5nIHRhYmxl
Cj4gKyAqICAgICAgICAgICAoaWYgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsKSBvciB6ZXJvIGlm
IGl0IGlzIG5vdCBzdXBwb3J0ZWQuCj4gKyAqCj4gKyAqIFhFTl9ORVRJRl9DVFJMX1RZUEVfQURE
X0dSRUZfTUFQUElORwo+ICsgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
PiArICoKPiArICogVGhpcyBpcyBzZW50IGJ5IHRoZSBmcm9udGVuZCBmb3IgYmFja2VuZCB0byBt
YXAgYSBsaXN0IG9mIGdyYW50Cj4gKyAqIHJlZmVyZW5jZXMuCj4gKyAqCj4gKyAqIFJlcXVlc3Q6
Cj4gKyAqCj4gKyAqICB0eXBlICAgID0gWEVOX05FVElGX0NUUkxfVFlQRV9BRERfR1JFRl9NQVBQ
SU5HCj4gKyAqICBkYXRhWzBdID0gcXVldWUgaW5kZXgKPiArICogIGRhdGFbMV0gPSBncmFudCBy
ZWZlcmVuY2Ugb2YgcGFnZSBjb250YWluaW5nIHRoZSBtYXBwaW5nIGxpc3QKPiArICogICAgICAg
ICAgICAoci93IGFuZCBhc3N1bWVkIHRvIHN0YXJ0IGF0IGJlZ2lubmluZyBvZiBwYWdlKQo+ICsg
KiAgZGF0YVsyXSA9IHNpemUgb2YgbGlzdCBpbiBlbnRyaWVzCj4gKyAqCj4gKyAqIFJlc3BvbnNl
Ogo+ICsgKgo+ICsgKiAgc3RhdHVzID0gWEVOX05FVElGX0NUUkxfU1RBVFVTX05PVF9TVVBQT1JU
RUQgICAgIC0gT3BlcmF0aW9uIG5vdAo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkCj4gKyAqICAgICAgICAgICBYRU5fTkVU
SUZfQ1RSTF9TVEFUVVNfSU5WQUxJRF9QQVJBTUVURVIgLSBPcGVyYXRpb24gZmFpbGVkCj4gKyAq
ICAgICAgICAgICBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfU1VDQ0VTUyAgICAgICAgICAgLSBPcGVy
YXRpb24gc3VjY2Vzc2Z1bAo+ICsgKgo+ICsgKiBOT1RFOiBFYWNoIGVudHJ5IGluIHRoZSBpbnB1
dCB0YWJsZSBoYXMgdGhlIGZvcm1hdCBvdXRsaW5lZAo+ICsgKiAgICAgICBpbiBzdHJ1Y3QgeGVu
X25ldGlmX2dyZWYuCj4gKyAqICAgICAgIENvbnRyYXJ5IHRvIFhFTl9ORVRJRl9DVFJMX1RZUEVf
REVMX0dSRUZfTUFQUElORywgdGhlIHN0cnVjdAo+ICsgKiAgICAgICB4ZW5fbmV0aWZfZ3JlZiAn
c3RhdHVzJyBmaWVsZCBpcyBub3QgdXNlZCBhbmQgdGhlcmVmb3JlIHRoZSByZXNwb25zZQo+ICsg
KiAgICAgICAnc3RhdHVzJyBkZXRlcm1pbmVzIHRoZSBzdWNjZXNzIG9mIHRoaXMgb3BlcmF0aW9u
LiBJbiBjYXNlIG9mCj4gKyAqICAgICAgIGZhaWx1cmUgbm9uZSBvZiBncmFudHMgbWFwcGluZ3Mg
Z2V0IGFkZGVkIGluIHRoZSBiYWNrZW5kLgo+ICsgKgo+ICsgKiBYRU5fTkVUSUZfQ1RSTF9UWVBF
X0RFTF9HUkVGX01BUFBJTkcKPiArICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCj4gKyAqCj4gKyAqIFRoaXMgaXMgc2VudCBieSB0aGUgZnJvbnRlbmQgZm9yIGJhY2tlbmQg
dG8gdW5tYXAgYSBsaXN0IG9mIGdyYW50Cj4gKyAqIHJlZmVyZW5jZXMuCj4gKyAqCj4gKyAqIFJl
cXVlc3Q6Cj4gKyAqCj4gKyAqICB0eXBlICAgID0gWEVOX05FVElGX0NUUkxfVFlQRV9ERUxfR1JF
Rl9NQVBQSU5HCj4gKyAqICBkYXRhWzBdID0gcXVldWUgaW5kZXgKPiArICogIGRhdGFbMV0gPSBn
cmFudCByZWZlcmVuY2Ugb2YgcGFnZSBjb250YWluaW5nIHRoZSBtYXBwaW5nIGxpc3QKPiArICog
ICAgICAgICAgICAoci93IGFuZCBhc3N1bWVkIHRvIHN0YXJ0IGF0IGJlZ2lubmluZyBvZiBwYWdl
KQo+ICsgKiAgZGF0YVsyXSA9IHNpemUgb2YgbGlzdCBpbiBlbnRyaWVzCj4gKyAqCj4gKyAqIFJl
c3BvbnNlOgo+ICsgKgo+ICsgKiAgc3RhdHVzID0gWEVOX05FVElGX0NUUkxfU1RBVFVTX05PVF9T
VVBQT1JURUQgICAgIC0gT3BlcmF0aW9uIG5vdAo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkCj4gKyAqICAgICAgICAgICBY
RU5fTkVUSUZfQ1RSTF9TVEFUVVNfSU5WQUxJRF9QQVJBTUVURVIgLSBPcGVyYXRpb24gZmFpbGVk
Cj4gKyAqICAgICAgICAgICBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfU1VDQ0VTUyAgICAgICAgICAg
LSBPcGVyYXRpb24gc3VjY2Vzc2Z1bAo+ICsgKiAgZGF0YSAgID0gbnVtYmVyIG9mIGVudHJpZXMg
dGhhdCB3ZXJlIHVubWFwcGVkCj4gKyAqCj4gKyAqIE5PVEU6IEVhY2ggZW50cnkgaW4gdGhlIGlu
cHV0IHRhYmxlIGhhcyB0aGUgZm9ybWF0IG91dGxpbmVkIGluIHN0cnVjdAo+ICsgKiAgICAgICB4
ZW5fbmV0aWZfZ3JlZi4KPiArICogICAgICAgVGhlIHN0cnVjdCB4ZW5fbmV0aWZfZ3JlZiAnc3Rh
dHVzJyBmaWVsZCBkZXRlcm1pbmVzIGlmIHRoZSBlbnRyeQo+ICsgKiAgICAgICB3YXMgc3VjY2Vz
c2Z1bGx5IHJlbW92ZWQuCj4gKyAqICAgICAgIFRoZSBlbnRyaWVzIHVzZWQgYXJlIG9ubHkgdGhl
IG9uZXMgcmVwcmVzZW50aW5nIGdyYW50IHJlZmVyZW5jZXMgdGhhdAo+ICsgKiAgICAgICB3ZXJl
IHByZXZpb3VzbHkgdGhlIHN1YmplY3Qgb2YgYSBYRU5fTkVUSUZfQ1RSTF9UWVBFX0FERF9HUkVG
X01BUFBJTkcKPiArICogICAgICAgb3BlcmF0aW9uLiBBbnkgb3RoZXIgZW50cmllcyB3aWxsIGhh
dmUgdGhlaXIgc3RhdHVzIHNldCB0bwo+ICsgKiAgICAgICBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNf
SU5WQUxJRF9QQVJBTUVURVIgdXBvbiBjb21wbGV0aW9uLgo+ICAgKi8KPiAgCj4gIERFRklORV9S
SU5HX1RZUEVTKHhlbl9uZXRpZl9jdHJsLAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi94ZW4u
aCBiL2luY2x1ZGUveGVuL3hlbi5oCj4gaW5kZXggMmFjNmIxZS4uMzA4MTA5ZiAxMDA2NDQKPiAt
LS0gYS9pbmNsdWRlL3hlbi94ZW4uaAo+ICsrKyBiL2luY2x1ZGUveGVuL3hlbi5oCj4gQEAgLTkz
MCw2ICs5MzAsMzcgQEAgX19ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh1aW50MTYsIHVpbnQxNl90
KTsKPiAgX19ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh1aW50MzIsIHVpbnQzMl90KTsKPiAgX19E
RUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh1aW50NjQsIHVpbnQ2NF90KTsKPiAgCj4gK3R5cGVkZWYg
c3RydWN0IHsKPiArICAgIHVpbnQ4X3QgYVsxNl07Cj4gK30geGVuX3V1aWRfdDsKPiArCj4gKy8q
Cj4gKyAqIFhFTl9ERUZJTkVfVVVJRCgweDAwMTEyMjMzLCAweDQ0NTUsIDB4NjY3NywgMHg4ODk5
LAo+ICsgKiAgICAgICAgICAgICAgICAgMHhhYSwgMHhiYiwgMHhjYywgMHhkZCwgMHhlZSwgMHhm
ZikKPiArICogd2lsbCBjb25zdHJ1Y3QgVVVJRCAwMDExMjIzMy00NDU1LTY2NzctODg5OS1hYWJi
Y2NkZGVlZmYgcHJlc2VudGVkIGFzCj4gKyAqIHsweDAwLCAweDExLCAweDIyLCAweDMzLCAweDQ0
LCAweDU1LCAweDY2LCAweDc3LCAweDg4LAo+ICsgKiAweDk5LCAweGFhLCAweGJiLCAweGNjLCAw
eGRkLCAweGVlLCAweGZmfTsKPiArICoKPiArICogTkI6IFRoaXMgaXMgY29tcGF0aWJsZSB3aXRo
IExpbnV4IGtlcm5lbCBhbmQgd2l0aCBsaWJ1dWlkLCBidXQgaXQgaXMgbm90Cj4gKyAqIGNvbXBh
dGlibGUgd2l0aCBNaWNyb3NvZnQsIGFzIHRoZXkgdXNlIG1peGVkLWVuZGlhbiBlbmNvZGluZyAo
c29tZQo+ICsgKiBjb21wb25lbnRzIGFyZSBsaXR0bGUtZW5kaWFuLCBzb21lIGFyZSBiaWctZW5k
aWFuKS4KPiArICovCj4gKyNkZWZpbmUgWEVOX0RFRklORV9VVUlEXyhhLCBiLCBjLCBkLCBlMSwg
ZTIsIGUzLCBlNCwgZTUsIGU2KSAgICAgICAgICAgIFwKPiArICAgIHt7KChhKSA+PiAyNCkgJiAw
eEZGLCAoKGEpID4+IDE2KSAmIDB4RkYsICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsg
ICAgICAoKGEpID4+ICA4KSAmIDB4RkYsICgoYSkgPj4gIDApICYgMHhGRiwgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCj4gKyAgICAgICgoYikgPj4gIDgpICYgMHhGRiwgKChiKSA+PiAgMCkg
JiAweEZGLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgICAgKChjKSA+PiAgOCkg
JiAweEZGLCAoKGMpID4+ICAwKSAmIDB4RkYsICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+
ICsgICAgICAoKGQpID4+ICA4KSAmIDB4RkYsICgoZCkgPj4gIDApICYgMHhGRiwgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCj4gKyAgICAgICAgICAgICAgICBlMSwgZTIsIGUzLCBlNCwgZTUs
IGU2fX0KPiArCj4gKyNpZiBkZWZpbmVkKF9fU1REQ19WRVJTSU9OX18pID8gX19TVERDX1ZFUlNJ
T05fXyA+PSAxOTk5MDFMIDogZGVmaW5lZChfX0dOVUNfXykKPiArI2RlZmluZSBYRU5fREVGSU5F
X1VVSUQoYSwgYiwgYywgZCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNikgICAgICAgICAgICAgXAo+
ICsgICAgKCh4ZW5fdXVpZF90KVhFTl9ERUZJTkVfVVVJRF8oYSwgYiwgYywgZCwgZTEsIGUyLCBl
MywgZTQsIGU1LCBlNikpCj4gKyNlbHNlCj4gKyNkZWZpbmUgWEVOX0RFRklORV9VVUlEKGEsIGIs
IGMsIGQsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYpICAgICAgICAgICAgIFwKPiArICAgIFhFTl9E
RUZJTkVfVVVJRF8oYSwgYiwgYywgZCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNikKPiArI2VuZGlm
IC8qIF9fU1REQ19WRVJTSU9OX18gLyBfX0dOVUNfXyAqLwo+ICsKPiAgI2VuZGlmIC8qICFfX0FT
U0VNQkxZX18gKi8KPiAgCj4gIC8qIERlZmF1bHQgZGVmaW5pdGlvbnMgZm9yIG1hY3JvcyB1c2Vk
IGJ5IGRvbWN0bC9zeXNjdGwuICovCj4gLS0gCj4gMi4xMS4wCj4gCgotLSAKU2FtdWVsClJLID4g
U29tZSAiUEMgc3BlYWtlcnMiIGFyZSBhY3R1YWxseSBidXp6ZXJzIGluIHNvbWUgY2FzZXMgcmF0
aGVyIHRoYW4KUksgPiByZWFsIGxvdWRzcGVha2VycyB3aGljaCBnaXZlIGEgc3F1YXJrIHJhdGhl
ciB0aGFuIGEgYmVlcC4KRFcgVGhleSdyZSBub3QgX3RoYXRfIGJhZC4gRXZlbiBvbiBtb3N0IHJl
Y2VudCBoYXJkd2FyZSwgbXAzcyBwbGF5ZWQKRFcgdGhyb3VnaCB0aGUgUEMgc3BlYWtlciBhcmUg
cmVsYXRpdmVseSByZWNvZ25pc2FibGUgOikKIC0rLSBsa21sIC0rLSAKCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxp
c3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv
amVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

