Devuan bug report logs - #417
gcc-10: internal compiler error building kernel 5.6.0-rc7 with amdgpu

Package: gcc-10; Reported by: Arthur Marsh <arthur.marsh@internode.on.net>; Keywords: debian; dated Mon, 23 Mar 2020 15:03:01 UTC; Maintainer for gcc-10 is (unknown).
Added tag(s) debian. Request was from Mark Hindley <mark@hindley.org.uk> to 417-submit@bugs.devuan.org. Full text available.

Message received at 417@bugs.devuan.org:


Received: (at 417) by bugs.devuan.org; 23 Mar 2020 16:50:05 +0000
Return-Path: <mark@hindley.org.uk>
Delivered-To: devuanbugs@dyne.org
Received: from tupac3.dyne.org [195.169.149.119]
	by doc.devuan.org with IMAP (fetchmail-6.4.0.beta4)
	for <debbugs@localhost> (single-drop); Mon, 23 Mar 2020 16:50:05 +0000 (UTC)
Received: from mx.hindley.org.uk (mohindley.plus.com [81.174.245.179])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by vm6.ganeti.dyne.org (Postfix) with ESMTPS id 97E4DF60B28
	for <417@bugs.devuan.org>; Mon, 23 Mar 2020 17:38:36 +0100 (CET)
Received: from apollo.hindleynet ([192.168.1.3] helo=apollo)
	by mx.hindley.org.uk with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
	(Exim 4.84_2)
	(envelope-from <mark@hindley.org.uk>)
	id 1jGQ5x-0000F3-EA; Mon, 23 Mar 2020 16:38:33 +0000
Received: from mark by apollo with local (Exim 4.84_2)
	(envelope-from <mark@hindley.org.uk>)
	id 1jGQ5w-00040M-2L; Mon, 23 Mar 2020 16:38:32 +0000
Date: Mon, 23 Mar 2020 16:38:31 +0000
From: Mark Hindley <mark@hindley.org.uk>
To: 417@bugs.devuan.org
Cc: Arthur Marsh <arthur.marsh@internode.on.net>
Subject: Re: gcc-10: internal compiler error building kernel 5.6.0-rc7 with
 amdgpu
Message-ID: <20200323163831.GA15373@hindley.org.uk>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <158497486864.17367.14059265919888444783.reportbug@localhost>
X-Debbugs-No-Ack: No Thanks
User-Agent: Mutt/1.5.23 (2014-03-12)
X-Spam-Status: No, score=0.0 required=5.0 tests=FAKE_REPLY_C,SPF_PASS
	autolearn=disabled version=3.4.2
X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on tupac3.dyne.org

Control: tags -1 debian

On Tue, 24 Mar 2020 01:17:48 +1030 Arthur Marsh <arthur.marsh@internode.on.net> wrote:
> Package: gcc-10
> Version: 10-20200321-1
> Severity: normal
> 

Arthur,

Thanks for this.

However, gcc-10 is not a forked package and Devuan uses the Debian 
pacakges directly. You would be much better reporting this directly to 
Debian's BTS so it can be fixed.

Thanks

Mark

Information forwarded to devuan-bugs@lists.dyne.org, devuan-dev@lists.dyne.org:
bug#417; Package gcc-10. Full text available.

Message received at submit@bugs.devuan.org:


Received: (at submit) by bugs.devuan.org; 23 Mar 2020 14:50:06 +0000
Return-Path: <arthur.marsh@internode.on.net>
Delivered-To: devuanbugs@dyne.org
Received: from tupac3.dyne.org [195.169.149.119]
	by doc.devuan.org with IMAP (fetchmail-6.4.0.beta4)
	for <debbugs@localhost> (single-drop); Mon, 23 Mar 2020 14:50:06 +0000 (UTC)
Received: from ipmail05.adl3.internode.on.net (ipmail05.adl3.internode.on.net [150.101.137.13])
	by vm6.ganeti.dyne.org (Postfix) with ESMTP id 4DF13F60B07
	for <submit@bugs.devuan.org>; Mon, 23 Mar 2020 15:47:59 +0100 (CET)
X-IronPort-Anti-Spam-NotFiltered: toobig
Received: from ppp227-106.static.internode.on.net (HELO localhost) ([203.122.227.106])
  by ipmail05.adl3.internode.on.net with ESMTP; 24 Mar 2020 01:17:53 +1030
Received: from amarsh04 by localhost with local (Exim 4.93)
	(envelope-from <arthur.marsh@internode.on.net>)
	id 1jGOMm-0006Um-Tp; Tue, 24 Mar 2020 01:17:51 +1030
Content-Type: multipart/mixed; boundary="===============2530410277144048522=="
MIME-Version: 1.0
From: Arthur Marsh <arthur.marsh@internode.on.net>
To: Devuan Bug Tracking System <submit@bugs.devuan.org>
Subject: gcc-10: internal compiler error building kernel 5.6.0-rc7 with amdgpu
Message-ID: <158497486864.17367.14059265919888444783.reportbug@localhost>
X-Mailer: reportbug 7.5.3+devuan3
Date: Tue, 24 Mar 2020 01:17:48 +1030

This is a multi-part MIME message sent by reportbug.


--===============2530410277144048522==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Package: gcc-10
Version: 10-20200321-1
Severity: normal

Dear Maintainer,

*** Reporter, please consider answering these questions, where appropriate ***

   * What led up to the situation?

After upgrading gcc-10, the Linux kernel failed to build

   * What exactly did you do (or not do) that was effective (or
     ineffective)?

removing the amdgpu option from the kernel build allowed the build to complete.


   * What was the outcome of this action?
   * What outcome did you expect instead?

*** End of the template - remove these template lines ***


-- System Information:
Distributor ID:	Debian
Description:	Devuan GNU/Linux 4 (chimaera/ceres)
Release:	testing/unstable
Codename:	n/a
Architecture: x86_64

Kernel: Linux 5.6.0-rc6+ (SMP w/4 CPU cores)
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Init: sysvinit (via /sbin/init)

Versions of packages gcc-10 depends on:
ii  binutils       2.34-5
ii  cpp-10         10-20200321-1
ii  gcc-10-base    10-20200321-1
ii  libc6          2.30-2
ii  libcc1-0       10-20200321-1
ii  libgcc-10-dev  10-20200321-1
ii  libgcc-s1      10-20200321-1
ii  libgmp10       2:6.2.0+dfsg-4
ii  libisl22       0.22.1-1
ii  libmpc3        1.1.0-1
ii  libmpfr6       4.0.2-1
ii  libstdc++6     10-20200321-1
ii  libzstd1       1.4.4+dfsg-3
ii  zlib1g         1:1.2.11.dfsg-2

Versions of packages gcc-10 recommends:
ii  libc6-dev  2.30-2

Versions of packages gcc-10 suggests:
pn  gcc-10-doc       <none>
pn  gcc-10-locales   <none>
pn  gcc-10-multilib  <none>

-- no debconf information

--===============2530410277144048522==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="20200324.log"

VXNpbmcgZGVmYXVsdCBkaXN0cmlidXRpb24gb2YgJ3Vuc3RhYmxlJyBpbiB0aGUgY2hhbmdlbG9n
Ckluc3RhbGwgbHNiLXJlbGVhc2Ugb3Igc2V0ICRLREVCX0NIQU5HRUxPR19ESVNUIGV4cGxpY2l0
bHkKG1sxbWRwa2ctYnVpbGRwYWNrYWdlOiAbWzBtG1sxOzMzbXdhcm5pbmcbWzBtOiB1c2luZyBh
IGdhaW4tcm9vdC1jb21tYW5kIHdoaWxlIGJlaW5nIHJvb3QKG1sxOzM1bSBkcGtnLXNvdXJjZSAt
LWJlZm9yZS1idWlsZCAuChtbMG0bWzE7MzVtIGRlYmlhbi9ydWxlcyBidWlsZAobWzBtZHVyaW5n
IFJUTCBwYXNzOiBjb21iaW5lCmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
ZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdyLmM6IEluIGZ1bmN0aW9uIOKAmHJuX3VwZGF0ZV9j
bG9ja3PigJk6CmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21n
ci9kY24yMS9ybl9jbGtfbWdyLmM6MTkzOjE6IGludGVybmFsIGNvbXBpbGVyIGVycm9yOiBpbiBp
eDg2X2NjX21vZGUsIGF0IGNvbmZpZy9pMzg2L2kzODYuYzoxNTI4NQogIDE5MyB8IH0KICAgICAg
fCBeCjB4NWQwNmEyIGl4ODZfY2NfbW9kZShydHhfY29kZSwgcnR4X2RlZiosIHJ0eF9kZWYqKQoJ
Li4vLi4vc3JjL2djYy9jb25maWcvaTM4Ni9pMzg2LmM6MTUyODUKMHgxMjc4ZGUyIHNpbXBsaWZ5
X3NldAoJLi4vLi4vc3JjL2djYy9jb21iaW5lLmM6NjkzOAoweDEyN2M0NmEgc3Vic3QKCS4uLy4u
L3NyYy9nY2MvY29tYmluZS5jOjU3MTkKMHgxMjdjNWZjIHN1YnN0CgkuLi8uLi9zcmMvZ2NjL2Nv
bWJpbmUuYzo1NTgxCjB4MTI3ZTdjOSB0cnlfY29tYmluZQoJLi4vLi4vc3JjL2djYy9jb21iaW5l
LmM6MzQ3OQoweDEyODQ3NzIgY29tYmluZV9pbnN0cnVjdGlvbnMKCS4uLy4uL3NyYy9nY2MvY29t
YmluZS5jOjE0NjkKMHgxMjg0NzcyIHJlc3Rfb2ZfaGFuZGxlX2NvbWJpbmUKCS4uLy4uL3NyYy9n
Y2MvY29tYmluZS5jOjE1MDU5CjB4MTI4NDc3MiBleGVjdXRlCgkuLi8uLi9zcmMvZ2NjL2NvbWJp
bmUuYzoxNTEwNApQbGVhc2Ugc3VibWl0IGEgZnVsbCBidWcgcmVwb3J0LAp3aXRoIHByZXByb2Nl
c3NlZCBzb3VyY2UgaWYgYXBwcm9wcmlhdGUuClBsZWFzZSBpbmNsdWRlIHRoZSBjb21wbGV0ZSBi
YWNrdHJhY2Ugd2l0aCBhbnkgYnVnIHJlcG9ydC4KU2VlIDxmaWxlOi8vL3Vzci9zaGFyZS9kb2Mv
Z2NjLTEwL1JFQURNRS5CdWdzPiBmb3IgaW5zdHJ1Y3Rpb25zLgpQcmVwcm9jZXNzZWQgc291cmNl
IHN0b3JlZCBpbnRvIC90bXAvY2NGcEMxa0Qub3V0IGZpbGUsIHBsZWFzZSBhdHRhY2ggdGhpcyB0
byB5b3VyIGJ1Z3JlcG9ydC4KPT09IEJFR0lOIEdDQyBEVU1QID09PQoxNDQ3NDogLy8gVGFyZ2V0
OiB4ODZfNjQtbGludXgtZ251CjE0NDc0OiAvLyBDb25maWd1cmVkIHdpdGg6IC4uL3NyYy9jb25m
aWd1cmUgLXYgLS13aXRoLXBrZ3ZlcnNpb249J0RlYmlhbiAxMC0yMDIwMDMyMS0xJyAtLXdpdGgt
YnVndXJsPWZpbGU6Ly8vdXNyL3NoYXJlL2RvYy9nY2MtMTAvUkVBRE1FLkJ1Z3MgLS1lbmFibGUt
bGFuZ3VhZ2VzPWMsYysrLGdvLGJyaWcsZCxmb3J0cmFuLG9iamMsb2JqLWMrKyxtMiAtLXByZWZp
eD0vdXNyIC0td2l0aC1nY2MtbWFqb3ItdmVyc2lvbi1vbmx5IC0tcHJvZ3JhbS1zdWZmaXg9LTEw
IC0tcHJvZ3JhbS1wcmVmaXg9eDg2XzY0LWxpbnV4LWdudS0gLS1lbmFibGUtc2hhcmVkIC0tZW5h
YmxlLWxpbmtlci1idWlsZC1pZCAtLWxpYmV4ZWNkaXI9L3Vzci9saWIgLS13aXRob3V0LWluY2x1
ZGVkLWdldHRleHQgLS1lbmFibGUtdGhyZWFkcz1wb3NpeCAtLWxpYmRpcj0vdXNyL2xpYiAtLWVu
YWJsZS1ubHMgLS1lbmFibGUtY2xvY2FsZT1nbnUgLS1lbmFibGUtbGlic3RkY3h4LWRlYnVnIC0t
ZW5hYmxlLWxpYnN0ZGN4eC10aW1lPXllcyAtLXdpdGgtZGVmYXVsdC1saWJzdGRjeHgtYWJpPW5l
dyAtLWVuYWJsZS1nbnUtdW5pcXVlLW9iamVjdCAtLWRpc2FibGUtdnRhYmxlLXZlcmlmeSAtLWVu
YWJsZS1wbHVnaW4gLS1lbmFibGUtZGVmYXVsdC1waWUgLS13aXRoLXN5c3RlbS16bGliIC0td2l0
aC10YXJnZXQtc3lzdGVtLXpsaWI9YXV0byAtLWVuYWJsZS1vYmpjLWdjPWF1dG8gLS1lbmFibGUt
bXVsdGlhcmNoIC0tZGlzYWJsZS13ZXJyb3IgLS13aXRoLWFyY2gtMzI9aTY4NiAtLXdpdGgtYWJp
PW02NCAtLXdpdGgtbXVsdGlsaWItbGlzdD1tMzIsbTY0LG14MzIgLS1lbmFibGUtbXVsdGlsaWIg
LS13aXRoLXR1bmU9Z2VuZXJpYyAtLWVuYWJsZS1vZmZsb2FkLXRhcmdldHM9bnZwdHgtbm9uZSxh
bWRnY24tYW1kaHNhLGhzYSAtLXdpdGhvdXQtY3VkYS1kcml2ZXIgLS1lbmFibGUtY2hlY2tpbmc9
cmVsZWFzZSAtLWJ1aWxkPXg4Nl82NC1saW51eC1nbnUgLS1ob3N0PXg4Nl82NC1saW51eC1nbnUg
LS10YXJnZXQ9eDg2XzY0LWxpbnV4LWdudQoxNDQ3NDogLy8gVGhyZWFkIG1vZGVsOiBwb3NpeAox
NDQ3NDogLy8gU3VwcG9ydGVkIExUTyBjb21wcmVzc2lvbiBhbGdvcml0aG1zOiB6bGliIHpzdGQK
MTQ0NzQ6IC8vIGdjYyB2ZXJzaW9uIDEwLjAuMSAyMDIwMDMyMSAoZXhwZXJpbWVudGFsKSBbbWFz
dGVyIHJldmlzaW9uIDE1NzExZTgzN2IyOmFiNjU4NmNiMDI0OjQ5NzQ5OGM4NzhkNDg3NTQzMThl
NDg2NDI4ZTJhYTMwODU0MDIwYjldIChEZWJpYW4gMTAtMjAyMDAzMjEtMSkgCjE0NDc0OiAvLyAK
MTQ0NzQ6IC8vIGR1cmluZyBSVEwgcGFzczogY29tYmluZQoxNDQ3NDogLy8gZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYzog
SW4gZnVuY3Rpb24g4oCYcm5fdXBkYXRlX2Nsb2Nrc+KAmToKMTQ0NzQ6IC8vIGRyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdyLmM6
MTkzOjE6IGludGVybmFsIGNvbXBpbGVyIGVycm9yOiBpbiBpeDg2X2NjX21vZGUsIGF0IGNvbmZp
Zy9pMzg2L2kzODYuYzoxNTI4NQoxNDQ3NDogLy8gICAxOTMgfCB9CjE0NDc0OiAvLyAgICAgICB8
IF4KMTQ0NzQ6IC8vIDB4NWQwNmEyIGl4ODZfY2NfbW9kZShydHhfY29kZSwgcnR4X2RlZiosIHJ0
eF9kZWYqKQoxNDQ3NDogLy8gCS4uLy4uL3NyYy9nY2MvY29uZmlnL2kzODYvaTM4Ni5jOjE1Mjg1
CjE0NDc0OiAvLyAweDEyNzhkZTIgc2ltcGxpZnlfc2V0CjE0NDc0OiAvLyAJLi4vLi4vc3JjL2dj
Yy9jb21iaW5lLmM6NjkzOAoxNDQ3NDogLy8gMHgxMjdjNDZhIHN1YnN0CjE0NDc0OiAvLyAJLi4v
Li4vc3JjL2djYy9jb21iaW5lLmM6NTcxOQoxNDQ3NDogLy8gMHgxMjdjNWZjIHN1YnN0CjE0NDc0
OiAvLyAJLi4vLi4vc3JjL2djYy9jb21iaW5lLmM6NTU4MQoxNDQ3NDogLy8gMHgxMjdlN2M5IHRy
eV9jb21iaW5lCjE0NDc0OiAvLyAJLi4vLi4vc3JjL2djYy9jb21iaW5lLmM6MzQ3OQoxNDQ3NDog
Ly8gMHgxMjg0NzcyIGNvbWJpbmVfaW5zdHJ1Y3Rpb25zCjE0NDc0OiAvLyAJLi4vLi4vc3JjL2dj
Yy9jb21iaW5lLmM6MTQ2OQoxNDQ3NDogLy8gMHgxMjg0NzcyIHJlc3Rfb2ZfaGFuZGxlX2NvbWJp
bmUKMTQ0NzQ6IC8vIAkuLi8uLi9zcmMvZ2NjL2NvbWJpbmUuYzoxNTA1OQoxNDQ3NDogLy8gMHgx
Mjg0NzcyIGV4ZWN1dGUKMTQ0NzQ6IC8vIAkuLi8uLi9zcmMvZ2NjL2NvbWJpbmUuYzoxNTEwNAox
NDQ3NDogLy8gUGxlYXNlIHN1Ym1pdCBhIGZ1bGwgYnVnIHJlcG9ydCwKMTQ0NzQ6IC8vIHdpdGgg
cHJlcHJvY2Vzc2VkIHNvdXJjZSBpZiBhcHByb3ByaWF0ZS4KMTQ0NzQ6IC8vIFBsZWFzZSBpbmNs
dWRlIHRoZSBjb21wbGV0ZSBiYWNrdHJhY2Ugd2l0aCBhbnkgYnVnIHJlcG9ydC4KMTQ0NzQ6IC8v
IFNlZSA8ZmlsZTovLy91c3Ivc2hhcmUvZG9jL2djYy0xMC9SRUFETUUuQnVncz4gZm9yIGluc3Ry
dWN0aW9ucy4KMTQ0NzQ6IAoxNDQ3NDogLy8gL3Vzci9saWIvZ2NjL3g4Nl82NC1saW51eC1nbnUv
MTAvY2MxIC1xdWlldCAtbm9zdGRpbmMgLUkgLi9hcmNoL3g4Ni9pbmNsdWRlIC1JIC4vYXJjaC94
ODYvaW5jbHVkZS9nZW5lcmF0ZWQgLUkgLi9pbmNsdWRlIC1JIC4vYXJjaC94ODYvaW5jbHVkZS91
YXBpIC1JIC4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaSAtSSAuL2luY2x1ZGUvdWFw
aSAtSSAuL2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkgLUkgLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9wb3dlcnBsYXkvaW5jLyAtSSAuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2luY2x1ZGUvYXNpY19yZWcgLUkgLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNs
dWRlIC1JIC4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vcG93ZXJwbGF5L3NtdW1nciAt
SSAuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL3Bvd2VycGxheS9od21nciAtSSAuL2Ry
aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jLyAtSSAuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3IC1JIC4vZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyIC1JIC4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9tb2R1bGVzL2luYyAtSSAuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvbW9kdWxlcy9mcmVlc3luYyAtSSAuL2RyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvbW9kdWxlcy9jb2xvciAtSSAuL2RyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvbW9kdWxlcy9pbmZvX3BhY2tldCAtSSAuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvbW9kdWxlcy9wb3dlciAtSSAuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZG11Yi9pbmMgLUkgLi9kcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjIC1JIC4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vaW5jbHVkZS9hc2ljX3JlZyAtSSAuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2luY2x1ZGUgLUkgLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9hbWRncHUgLUkgLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9wb3dlcnBsYXkvaW5jIC1JIC4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vYWNwL2luY2x1ZGUgLUkgLi9kcml2ZXJzL2dwdS9kcm0vYW1k
L2FtZGdwdS8uLi9kaXNwbGF5IC1JIC4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9pbmNsdWRlIC1JIC4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9k
YyAtSSAuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvYW1kZ3B1X2RtIC1J
IC4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vYW1ka2ZkIC1pbXVsdGlhcmNoIHg4Nl82
NC1saW51eC1nbnUgLUQgX19LRVJORUxfXyAtRCBDT05GSUdfQVNfQ0ZJPTEgLUQgQ09ORklHX0FT
X0NGSV9TSUdOQUxfRlJBTUU9MSAtRCBDT05GSUdfQVNfQ0ZJX1NFQ1RJT05TPTEgLUQgQ09ORklH
X0FTX1NTU0UzPTEgLUQgQ09ORklHX0FTX0FWWD0xIC1EIENPTkZJR19BU19BVlgyPTEgLUQgQ09O
RklHX0FTX0FWWDUxMj0xIC1EIENPTkZJR19BU19TSEExX05JPTEgLUQgQ09ORklHX0FTX1NIQTI1
Nl9OST0xIC1EIENPTkZJR19BU19BRFg9MSAtRCBDQ19VU0lOR19GRU5UUlkgLUQgQlVJTERfRkVB
VFVSRV9USU1JTkdfU1lOQz0wIC1EIE1PRFVMRSAtRCBLQlVJTERfQkFTRU5BTUU9InJuX2Nsa19t
Z3IiIC1EIEtCVUlMRF9NT0ROQU1FPSJhbWRncHUiIC1pc3lzdGVtIC91c3IvbGliL2djYy94ODZf
NjQtbGludXgtZ251LzEwL2luY2x1ZGUgLWluY2x1ZGUgLi9pbmNsdWRlL2xpbnV4L2tjb25maWcu
aCAtaW5jbHVkZSAuL2luY2x1ZGUvbGludXgvY29tcGlsZXJfdHlwZXMuaCAtTUQgZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxLy5ybl9jbGtfbWdy
Lm8uZCBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNu
MjEvcm5fY2xrX21nci5jIC1xdWlldCAtZHVtcGJhc2Ugcm5fY2xrX21nci5jIC1tbm8tc3NlIC1t
bm8tbW14IC1tbm8tc3NlMiAtbW5vLTNkbm93IC1tbm8tYXZ4IC1tNjQgLW1uby04MDM4NyAtbW5v
LWZwLXJldC1pbi0zODcgLW1wcmVmZXJyZWQtc3RhY2stYm91bmRhcnk9MyAtbXNraXAtcmF4LXNl
dHVwIC1tYXJjaD1rOCAtbW5vLXJlZC16b25lIC1tY21vZGVsPWtlcm5lbCAtbWluZGlyZWN0LWJy
YW5jaD10aHVuay1leHRlcm4gLW1pbmRpcmVjdC1icmFuY2gtcmVnaXN0ZXIgLW1yZWNvcmQtbWNv
dW50IC1tZmVudHJ5IC1hdXhiYXNlLXN0cmlwIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdyLm8gLU8yIC1XYWxsIC1XdW5kZWYg
LVdlcnJvcj1zdHJpY3QtcHJvdG90eXBlcyAtV25vLXRyaWdyYXBocyAtV2Vycm9yPWltcGxpY2l0
LWZ1bmN0aW9uLWRlY2xhcmF0aW9uIC1XZXJyb3I9aW1wbGljaXQtaW50IC1Xbm8tZm9ybWF0LXNl
Y3VyaXR5IC1Xbm8tc2lnbi1jb21wYXJlIC1Xbm8tZnJhbWUtYWRkcmVzcyAtV2Zvcm1hdC10cnVu
Y2F0aW9uPTAgLVdmb3JtYXQtb3ZlcmZsb3c9MCAtV25vLWFkZHJlc3Mtb2YtcGFja2VkLW1lbWJl
ciAtV2ZyYW1lLWxhcmdlci10aGFuPTIwNDggLVduby11bnVzZWQtYnV0LXNldC12YXJpYWJsZSAt
V2ltcGxpY2l0LWZhbGx0aHJvdWdoPTMgLVd1bnVzZWQtY29uc3QtdmFyaWFibGU9MCAtV2RlY2xh
cmF0aW9uLWFmdGVyLXN0YXRlbWVudCAtV3ZsYSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXN0cmlu
Z29wLXRydW5jYXRpb24gLVdlcnJvcj1kYXRlLXRpbWUgLVdlcnJvcj1pbmNvbXBhdGlibGUtcG9p
bnRlci10eXBlcyAtV2Vycm9yPWRlc2lnbmF0ZWQtaW5pdCAtV25vLXBhY2tlZC1ub3QtYWxpZ25l
ZCAtc3RkPWdudTkwIC1wIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tY29tbW9uIC1mc2hvcnQt
d2NoYXIgLWZuby1QSUUgLWZhbGlnbi1qdW1wcz0xIC1mYWxpZ24tbG9vcHM9MSAtZm5vLWFzeW5j
aHJvbm91cy11bndpbmQtdGFibGVzIC1mbm8tanVtcC10YWJsZXMgLWZuby1kZWxldGUtbnVsbC1w
b2ludGVyLWNoZWNrcyAtZnN0YWNrLXByb3RlY3RvciAtZm5vLXZhci10cmFja2luZy1hc3NpZ25t
ZW50cyAtZm5vLXN0cmljdC1vdmVyZmxvdyAtZm5vLW1lcmdlLWFsbC1jb25zdGFudHMgLWZtZXJn
ZS1jb25zdGFudHMgLWZzdGFjay1jaGVjaz1ubyAtZmNvbnNlcnZlLXN0YWNrIC1mbWFjcm8tcHJl
Zml4LW1hcD0uLz0gLWZjZi1wcm90ZWN0aW9uPW5vbmUgLW8gLSAtZnJhbmRvbS1zZWVkPTAgLWZk
dW1wLW5vYWRkcgoxNDQ3NDogCjE0NDc0OiAjIDEgImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdyLmMiCjE0NDc0OiAjIDEgIjxi
dWlsdC1pbj4iCjE0NDc0OiAjIDEgIjxjb21tYW5kLWxpbmU+IgoxNDQ3NDogIyAxICIuLy4vaW5j
bHVkZS9saW51eC9rY29uZmlnLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogIyAxICIuL2luY2x1ZGUvZ2VuZXJhdGVkL2F1dG9jb25mLmgiIDEKMTQ0NzQ6ICMgNiAi
Li8uL2luY2x1ZGUvbGludXgva2NvbmZpZy5oIiAyCjE0NDc0OiAjIDEgIjxjb21tYW5kLWxpbmU+
IiAyCjE0NDc0OiAjIDEgIi4vLi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyX3R5cGVzLmgiIDEKMTQ0
NzQ6ICMgNTkgIi4vLi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyX3R5cGVzLmgiCjE0NDc0OiAjIDEg
Ii4vaW5jbHVkZS9saW51eC9jb21waWxlcl9hdHRyaWJ1dGVzLmgiIDEKMTQ0NzQ6ICMgNjAgIi4v
Li9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyX3R5cGVzLmgiIDIKMTQ0NzQ6ICMgNjggIi4vLi9pbmNs
dWRlL2xpbnV4L2NvbXBpbGVyX3R5cGVzLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9j
b21waWxlci1nY2MuaCIgMQoxNDQ3NDogIyA2OSAiLi8uL2luY2x1ZGUvbGludXgvY29tcGlsZXJf
dHlwZXMuaCIgMgoxNDQ3NDogIyA4NSAiLi8uL2luY2x1ZGUvbGludXgvY29tcGlsZXJfdHlwZXMu
aCIKMTQ0NzQ6IHN0cnVjdCBmdHJhY2VfYnJhbmNoX2RhdGEgewoxNDQ3NDogIGNvbnN0IGNoYXIg
KmZ1bmM7CjE0NDc0OiAgY29uc3QgY2hhciAqZmlsZTsKMTQ0NzQ6ICB1bnNpZ25lZCBsaW5lOwox
NDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgc3RydWN0IHsKMTQ0NzQ6ICAgIHVuc2lnbmVkIGxvbmcg
Y29ycmVjdDsKMTQ0NzQ6ICAgIHVuc2lnbmVkIGxvbmcgaW5jb3JyZWN0OwoxNDQ3NDogICB9Owox
NDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogICAgdW5zaWduZWQgbG9uZyBtaXNzOwoxNDQ3NDogICAg
dW5zaWduZWQgbG9uZyBoaXQ7CjE0NDc0OiAgIH07CjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcgbWlz
c19oaXRbMl07CjE0NDc0OiAgfTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBmdHJh
Y2VfbGlrZWx5X2RhdGEgewoxNDQ3NDogIHN0cnVjdCBmdHJhY2VfYnJhbmNoX2RhdGEgZGF0YTsK
MTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGNvbnN0YW50OwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMSAiPGNv
bW1hbmQtbGluZT4iIDIKMTQ0NzQ6ICMgMSAiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIKMTQ0NzQ6ICMgMjYgImRyaXZl
cnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtf
bWdyLmMiCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9kYy9pbmMvaHcvZGNjZy5oIiAxCjE0NDc0OiAjIDI5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2RjY2cuaCIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjX3R5cGVzLmgiIDEKMTQ0NzQ6ICMg
MzIgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY190eXBlcy5o
IgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMv
b3NfdHlwZXMuaCIgMQoxNDQ3NDogIyAzMCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL29zX3R5cGVzLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9rZ2Ri
LmgiIDEKMTQ0NzQ6ICMgMTYgIi4vaW5jbHVkZS9saW51eC9rZ2RiLmgiCjE0NDc0OiAjIDEgIi4v
aW5jbHVkZS9saW51eC9saW5rYWdlLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvY29tcGlsZXJfdHlwZXMuaCIgMQoxNDQ3NDog
IyA2ICIuL2luY2x1ZGUvbGludXgvbGlua2FnZS5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9s
aW51eC9zdHJpbmdpZnkuaCIgMQoxNDQ3NDogIyA3ICIuL2luY2x1ZGUvbGludXgvbGlua2FnZS5o
IiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9leHBvcnQuaCIgMQoxNDQ3NDogIyAxNiAi
Li9pbmNsdWRlL2xpbnV4L2V4cG9ydC5oIgoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBtb2R1bGUgX190
aGlzX21vZHVsZTsKMTQ0NzQ6ICMgNDMgIi4vaW5jbHVkZS9saW51eC9leHBvcnQuaCIKMTQ0NzQ6
ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLmgiIDEKMTQ0NzQ6ICMgMTgwICIuL2luY2x1
ZGUvbGludXgvY29tcGlsZXIuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvdHlw
ZXMuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJj
aC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaS9hc20vdHlwZXMuaCIgMQoxNDQ3NDogIyAxICIu
L2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy90eXBlcy5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9hc20tZ2Vu
ZXJpYy9pbnQtbGw2NC5oIiAxCjE0NDc0OiAjIDExICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvaW50
LWxsNjQuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvaW50LWxsNjQu
aCIgMQoxNDQ3NDogIyAxMiAiLi9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvaW50LWxsNjQuaCIK
MTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2JpdHNwZXJsb25nLmgiIDEK
MTQ0NzQ6ICMgMTEgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9iaXRzcGVybG9uZy5oIgox
NDQ3NDogIyAxICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0c3BlcmxvbmcuaCIgMQoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2FzbS1n
ZW5lcmljL2JpdHNwZXJsb25nLmgiIDEKMTQ0NzQ6ICMgNiAiLi9pbmNsdWRlL2FzbS1nZW5lcmlj
L2JpdHNwZXJsb25nLmgiIDIKMTQ0NzQ6ICMgMTIgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2Fz
bS9iaXRzcGVybG9uZy5oIiAyCjE0NDc0OiAjIDEzICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJp
Yy9pbnQtbGw2NC5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgX19zaWduZWRfXyBjaGFyIF9fczg7CjE0NDc0
OiB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgX191ODsKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBfX3Np
Z25lZF9fIHNob3J0IF9fczE2OwoxNDQ3NDogdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBfX3UxNjsK
MTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBfX3NpZ25lZF9fIGludCBfX3MzMjsKMTQ0NzQ6IHR5cGVk
ZWYgdW5zaWduZWQgaW50IF9fdTMyOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IF9fZXh0ZW5zaW9u
X18gdHlwZWRlZiBfX3NpZ25lZF9fIGxvbmcgbG9uZyBfX3M2NDsKMTQ0NzQ6IF9fZXh0ZW5zaW9u
X18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgX191NjQ7CjE0NDc0OiAjIDEyICIuL2luY2x1
ZGUvYXNtLWdlbmVyaWMvaW50LWxsNjQuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiB0eXBlZGVmIF9fczggczg7CjE0NDc0OiB0eXBlZGVmIF9fdTggdTg7CjE0NDc0
OiB0eXBlZGVmIF9fczE2IHMxNjsKMTQ0NzQ6IHR5cGVkZWYgX191MTYgdTE2OwoxNDQ3NDogdHlw
ZWRlZiBfX3MzMiBzMzI7CjE0NDc0OiB0eXBlZGVmIF9fdTMyIHUzMjsKMTQ0NzQ6IHR5cGVkZWYg
X19zNjQgczY0OwoxNDQ3NDogdHlwZWRlZiBfX3U2NCB1NjQ7CjE0NDc0OiAjIDggIi4vaW5jbHVk
ZS91YXBpL2FzbS1nZW5lcmljL3R5cGVzLmgiIDIKMTQ0NzQ6ICMgMiAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2dlbmVyYXRlZC91YXBpL2FzbS90eXBlcy5oIiAyCjE0NDc0OiAjIDYgIi4vaW5jbHVkZS91
YXBpL2xpbnV4L3R5cGVzLmgiIDIKMTQ0NzQ6ICMgMTQgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3R5
cGVzLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3Bvc2l4X3R5cGVzLmgiIDEK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGlu
dXgvc3RkZGVmLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAx
ICIuL2luY2x1ZGUvdWFwaS9saW51eC9zdGRkZWYuaCIgMQoxNDQ3NDogIyA2ICIuL2luY2x1ZGUv
bGludXgvc3RkZGVmLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
ZW51bSB7CjE0NDc0OiAgZmFsc2UgPSAwLAoxNDQ3NDogIHRydWUgPSAxCjE0NDc0OiB9OwoxNDQ3
NDogIyA2ICIuL2luY2x1ZGUvdWFwaS9saW51eC9wb3NpeF90eXBlcy5oIiAyCjE0NDc0OiAjIDI1
ICIuL2luY2x1ZGUvdWFwaS9saW51eC9wb3NpeF90eXBlcy5oIgoxNDQ3NDogdHlwZWRlZiBzdHJ1
Y3QgewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZmRzX2JpdHNbMTAyNCAvICg4ICogc2l6ZW9mKGxv
bmcpKV07CjE0NDc0OiB9IF9fa2VybmVsX2ZkX3NldDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB0
eXBlZGVmIHZvaWQgKCpfX2tlcm5lbF9zaWdoYW5kbGVyX3QpKGludCk7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogdHlwZWRlZiBpbnQgX19rZXJuZWxfa2V5X3Q7CjE0NDc0OiB0eXBlZGVmIGludCBf
X2tlcm5lbF9tcWRfdDsKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L3Bvc2l4X3R5cGVzLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IyAxICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vcG9zaXhfdHlwZXNfNjQuaCIgMQoxNDQ3
NDogIyAxMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3Bvc2l4X3R5cGVzXzY0LmgiCjE0
NDc0OiB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IF9fa2VybmVsX29sZF91aWRfdDsKMTQ0NzQ6IHR5
cGVkZWYgdW5zaWduZWQgc2hvcnQgX19rZXJuZWxfb2xkX2dpZF90OwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgbG9uZyBfX2tlcm5lbF9vbGRfZGV2X3Q7CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9wb3NpeF90eXBl
cy5oIiAxCjE0NDc0OiAjIDE1ICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9wb3NpeF90eXBl
cy5oIgoxNDQ3NDogdHlwZWRlZiBsb25nIF9fa2VybmVsX2xvbmdfdDsKMTQ0NzQ6IHR5cGVkZWYg
dW5zaWduZWQgbG9uZyBfX2tlcm5lbF91bG9uZ190OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogdHlwZWRlZiBfX2tlcm5lbF91bG9uZ190IF9fa2VybmVsX2lub190OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiB1bnNpZ25lZCBpbnQgX19rZXJuZWxfbW9kZV90
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBpbnQgX19rZXJuZWxfcGlk
X3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIGludCBfX2tlcm5lbF9p
cGNfcGlkX3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHVuc2lnbmVk
IGludCBfX2tlcm5lbF91aWRfdDsKMTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgaW50IF9fa2VybmVs
X2dpZF90OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBfX2tlcm5lbF9s
b25nX3QgX19rZXJuZWxfc3VzZWNvbmRzX3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiB0eXBlZGVmIGludCBfX2tlcm5lbF9kYWRkcl90OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogdHlwZWRlZiB1bnNpZ25lZCBpbnQgX19rZXJuZWxfdWlkMzJfdDsKMTQ0NzQ6IHR5cGVk
ZWYgdW5zaWduZWQgaW50IF9fa2VybmVsX2dpZDMyX3Q7CjE0NDc0OiAjIDcyICIuL2luY2x1ZGUv
dWFwaS9hc20tZ2VuZXJpYy9wb3NpeF90eXBlcy5oIgoxNDQ3NDogdHlwZWRlZiBfX2tlcm5lbF91
bG9uZ190IF9fa2VybmVsX3NpemVfdDsKMTQ0NzQ6IHR5cGVkZWYgX19rZXJuZWxfbG9uZ190IF9f
a2VybmVsX3NzaXplX3Q7CjE0NDc0OiB0eXBlZGVmIF9fa2VybmVsX2xvbmdfdCBfX2tlcm5lbF9w
dHJkaWZmX3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYg
c3RydWN0IHsKMTQ0NzQ6ICBpbnQgdmFsWzJdOwoxNDQ3NDogfSBfX2tlcm5lbF9mc2lkX3Q7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBfX2tl
cm5lbF9sb25nX3QgX19rZXJuZWxfb2ZmX3Q7CjE0NDc0OiB0eXBlZGVmIGxvbmcgbG9uZyBfX2tl
cm5lbF9sb2ZmX3Q7CjE0NDc0OiB0eXBlZGVmIF9fa2VybmVsX2xvbmdfdCBfX2tlcm5lbF9vbGRf
dGltZV90OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBsb25nIGxvbmcg
X19rZXJuZWxfdGltZTY0X3Q7CjE0NDc0OiB0eXBlZGVmIF9fa2VybmVsX2xvbmdfdCBfX2tlcm5l
bF9jbG9ja190OwoxNDQ3NDogdHlwZWRlZiBpbnQgX19rZXJuZWxfdGltZXJfdDsKMTQ0NzQ6IHR5
cGVkZWYgaW50IF9fa2VybmVsX2Nsb2NraWRfdDsKMTQ0NzQ6IHR5cGVkZWYgY2hhciAqIF9fa2Vy
bmVsX2NhZGRyX3Q7CjE0NDc0OiB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IF9fa2VybmVsX3VpZDE2
X3Q7CjE0NDc0OiB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IF9fa2VybmVsX2dpZDE2X3Q7CjE0NDc0
OiAjIDE5ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vcG9zaXhfdHlwZXNfNjQuaCIgMgox
NDQ3NDogIyA2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Bvc2l4X3R5cGVzLmgiIDIKMTQ0NzQ6
ICMgMzcgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3Bvc2l4X3R5cGVzLmgiIDIKMTQ0NzQ6ICMgMTUg
Ii4vaW5jbHVkZS91YXBpL2xpbnV4L3R5cGVzLmgiIDIKMTQ0NzQ6ICMgMjkgIi4vaW5jbHVkZS91
YXBpL2xpbnV4L3R5cGVzLmgiCjE0NDc0OiB0eXBlZGVmIF9fdTE2IF9fbGUxNjsKMTQ0NzQ6IHR5
cGVkZWYgX191MTYgX19iZTE2OwoxNDQ3NDogdHlwZWRlZiBfX3UzMiBfX2xlMzI7CjE0NDc0OiB0
eXBlZGVmIF9fdTMyIF9fYmUzMjsKMTQ0NzQ6IHR5cGVkZWYgX191NjQgX19sZTY0OwoxNDQ3NDog
dHlwZWRlZiBfX3U2NCBfX2JlNjQ7CjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgX191MTYgX19zdW0x
NjsKMTQ0NzQ6IHR5cGVkZWYgX191MzIgX193c3VtOwoxNDQ3NDogIyA1MiAiLi9pbmNsdWRlL3Vh
cGkvbGludXgvdHlwZXMuaCIKMTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgX19wb2xsX3Q7CjE0NDc0
OiAjIDE4MSAiLi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLmgiIDIKMTQ0NzQ6ICMgMTk2ICIuL2lu
Y2x1ZGUvbGludXgvY29tcGlsZXIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygoX19ub19pbnN0cnVtZW50X2Z1bmN0aW9uX18pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5
c19pbmxpbmVfXykpCjE0NDc0OiB2b2lkIF9fcmVhZF9vbmNlX3NpemUoY29uc3Qgdm9sYXRpbGUg
dm9pZCAqcCwgdm9pZCAqcmVzLCBpbnQgc2l6ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoeyBzd2l0Y2gg
KHNpemUpIHsgY2FzZSAxOiAqKF9fdTggKilyZXMgPSAqKHZvbGF0aWxlIF9fdTggKilwOyBicmVh
azsgY2FzZSAyOiAqKF9fdTE2ICopcmVzID0gKih2b2xhdGlsZSBfX3UxNiAqKXA7IGJyZWFrOyBj
YXNlIDQ6ICooX191MzIgKilyZXMgPSAqKHZvbGF0aWxlIF9fdTMyICopcDsgYnJlYWs7IGNhc2Ug
ODogKihfX3U2NCAqKXJlcyA9ICoodm9sYXRpbGUgX191NjQgKilwOyBicmVhazsgZGVmYXVsdDog
X19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgX19idWlsdGluX21lbWNweSgo
dm9pZCAqKXJlcywgKGNvbnN0IHZvaWQgKilwLCBzaXplKTsgX19hc21fXyBfX3ZvbGF0aWxlX18o
IiI6IDogOiJtZW1vcnkiKTsgfSB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjE0ICIuL2luY2x1ZGUv
bGludXgvY29tcGlsZXIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
X19ub19pbnN0cnVtZW50X2Z1bmN0aW9uX18pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpCjE0NDc0OiB2b2lkIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjayhjb25zdCB2b2xhdGls
ZSB2b2lkICpwLCB2b2lkICpyZXMsIGludCBzaXplKQoxNDQ3NDogewoxNDQ3NDogICh7IHN3aXRj
aCAoc2l6ZSkgeyBjYXNlIDE6ICooX191OCAqKXJlcyA9ICoodm9sYXRpbGUgX191OCAqKXA7IGJy
ZWFrOyBjYXNlIDI6ICooX191MTYgKilyZXMgPSAqKHZvbGF0aWxlIF9fdTE2ICopcDsgYnJlYWs7
IGNhc2UgNDogKihfX3UzMiAqKXJlcyA9ICoodm9sYXRpbGUgX191MzIgKilwOyBicmVhazsgY2Fz
ZSA4OiAqKF9fdTY0ICopcmVzID0gKih2b2xhdGlsZSBfX3U2NCAqKXA7IGJyZWFrOyBkZWZhdWx0
OiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyBfX2J1aWx0aW5fbWVtY3B5
KCh2b2lkICopcmVzLCAoY29uc3Qgdm9pZCAqKXAsIHNpemUpOyBfX2FzbV9fIF9fdm9sYXRpbGVf
XygiIjogOiA6Im1lbW9yeSIpOyB9IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKF9fbm9faW5zdHJ1bWVudF9mdW5jdGlvbl9fKSkgX19h
dHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fd3JpdGVfb25jZV9zaXplKHZv
bGF0aWxlIHZvaWQgKnAsIHZvaWQgKnJlcywgaW50IHNpemUpCjE0NDc0OiB7CjE0NDc0OiAgc3dp
dGNoIChzaXplKSB7CjE0NDc0OiAgY2FzZSAxOiAqKHZvbGF0aWxlIF9fdTggKilwID0gKihfX3U4
ICopcmVzOyBicmVhazsKMTQ0NzQ6ICBjYXNlIDI6ICoodm9sYXRpbGUgX191MTYgKilwID0gKihf
X3UxNiAqKXJlczsgYnJlYWs7CjE0NDc0OiAgY2FzZSA0OiAqKHZvbGF0aWxlIF9fdTMyICopcCA9
ICooX191MzIgKilyZXM7IGJyZWFrOwoxNDQ3NDogIGNhc2UgODogKih2b2xhdGlsZSBfX3U2NCAq
KXAgPSAqKF9fdTY0ICopcmVzOyBicmVhazsKMTQ0NzQ6ICBkZWZhdWx0OgoxNDQ3NDogICBfX2Fz
bV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoxNDQ3NDogICBfX2J1aWx0aW5fbWVt
Y3B5KCh2b2lkICopcCwgKGNvbnN0IHZvaWQgKilyZXMsIHNpemUpOwoxNDQ3NDogICBfX2FzbV9f
IF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoxNDQ3NDogIH0KMTQ0NzQ6IH0KMTQ0NzQ6
ICMgMjU2ICIuL2luY2x1ZGUvbGludXgvY29tcGlsZXIuaCIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9iYXJyaWVyLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FsdGVybmF0aXZlLmgiIDEKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAi
Li9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMTMgIi4vaW5jbHVkZS9saW51eC90
eXBlcy5oIgoxNDQ3NDogdHlwZWRlZiB1MzIgX19rZXJuZWxfZGV2X3Q7CjE0NDc0OiAKMTQ0NzQ6
IHR5cGVkZWYgX19rZXJuZWxfZmRfc2V0IGZkX3NldDsKMTQ0NzQ6IHR5cGVkZWYgX19rZXJuZWxf
ZGV2X3QgZGV2X3Q7CjE0NDc0OiB0eXBlZGVmIF9fa2VybmVsX2lub190IGlub190OwoxNDQ3NDog
dHlwZWRlZiBfX2tlcm5lbF9tb2RlX3QgbW9kZV90OwoxNDQ3NDogdHlwZWRlZiB1bnNpZ25lZCBz
aG9ydCB1bW9kZV90OwoxNDQ3NDogdHlwZWRlZiB1MzIgbmxpbmtfdDsKMTQ0NzQ6IHR5cGVkZWYg
X19rZXJuZWxfb2ZmX3Qgb2ZmX3Q7CjE0NDc0OiB0eXBlZGVmIF9fa2VybmVsX3BpZF90IHBpZF90
OwoxNDQ3NDogdHlwZWRlZiBfX2tlcm5lbF9kYWRkcl90IGRhZGRyX3Q7CjE0NDc0OiB0eXBlZGVm
IF9fa2VybmVsX2tleV90IGtleV90OwoxNDQ3NDogdHlwZWRlZiBfX2tlcm5lbF9zdXNlY29uZHNf
dCBzdXNlY29uZHNfdDsKMTQ0NzQ6IHR5cGVkZWYgX19rZXJuZWxfdGltZXJfdCB0aW1lcl90Owox
NDQ3NDogdHlwZWRlZiBfX2tlcm5lbF9jbG9ja2lkX3QgY2xvY2tpZF90OwoxNDQ3NDogdHlwZWRl
ZiBfX2tlcm5lbF9tcWRfdCBtcWRfdDsKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBfQm9vbCBib29s
OwoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIF9fa2VybmVsX3VpZDMyX3QgdWlkX3Q7CjE0NDc0OiB0
eXBlZGVmIF9fa2VybmVsX2dpZDMyX3QgZ2lkX3Q7CjE0NDc0OiB0eXBlZGVmIF9fa2VybmVsX3Vp
ZDE2X3QgdWlkMTZfdDsKMTQ0NzQ6IHR5cGVkZWYgX19rZXJuZWxfZ2lkMTZfdCBnaWQxNl90Owox
NDQ3NDogCjE0NDc0OiB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdWludHB0cl90OwoxNDQ3NDogIyA0
NiAiLi9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiCjE0NDc0OiB0eXBlZGVmIF9fa2VybmVsX2xvZmZf
dCBsb2ZmX3Q7CjE0NDc0OiAjIDU1ICIuL2luY2x1ZGUvbGludXgvdHlwZXMuaCIKMTQ0NzQ6IHR5
cGVkZWYgX19rZXJuZWxfc2l6ZV90IHNpemVfdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogdHlwZWRlZiBfX2tlcm5lbF9zc2l6ZV90IHNzaXplX3Q7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgX19rZXJuZWxfcHRyZGlmZl90IHB0
cmRpZmZfdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBf
X2tlcm5lbF9jbG9ja190IGNsb2NrX3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHR5cGVkZWYgX19rZXJuZWxfY2FkZHJfdCBjYWRkcl90OwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHVfY2hhcjsKMTQ0NzQ6IHR5cGVk
ZWYgdW5zaWduZWQgc2hvcnQgdV9zaG9ydDsKMTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgaW50IHVf
aW50OwoxNDQ3NDogdHlwZWRlZiB1bnNpZ25lZCBsb25nIHVfbG9uZzsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdW5jaGFyOwoxNDQ3NDogdHlwZWRlZiB1bnNp
Z25lZCBzaG9ydCB1c2hvcnQ7CjE0NDc0OiB0eXBlZGVmIHVuc2lnbmVkIGludCB1aW50OwoxNDQ3
NDogdHlwZWRlZiB1bnNpZ25lZCBsb25nIHVsb25nOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiB0eXBlZGVmIHU4IHVfaW50OF90OwoxNDQ3NDogdHlwZWRlZiBzOCBpbnQ4
X3Q7CjE0NDc0OiB0eXBlZGVmIHUxNiB1X2ludDE2X3Q7CjE0NDc0OiB0eXBlZGVmIHMxNiBpbnQx
Nl90OwoxNDQ3NDogdHlwZWRlZiB1MzIgdV9pbnQzMl90OwoxNDQ3NDogdHlwZWRlZiBzMzIgaW50
MzJfdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgdTggdWludDhfdDsK
MTQ0NzQ6IHR5cGVkZWYgdTE2IHVpbnQxNl90OwoxNDQ3NDogdHlwZWRlZiB1MzIgdWludDMyX3Q7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiB1NjQgdWludDY0X3Q7CjE0NDc0OiB0eXBl
ZGVmIHU2NCB1X2ludDY0X3Q7CjE0NDc0OiB0eXBlZGVmIHM2NCBpbnQ2NF90OwoxNDQ3NDogIyAx
MjUgIi4vaW5jbHVkZS9saW51eC90eXBlcy5oIgoxNDQ3NDogdHlwZWRlZiB1NjQgc2VjdG9yX3Q7
CjE0NDc0OiB0eXBlZGVmIHU2NCBibGtjbnRfdDsKMTQ0NzQ6ICMgMTQzICIuL2luY2x1ZGUvbGlu
dXgvdHlwZXMuaCIKMTQ0NzQ6IHR5cGVkZWYgdTY0IGRtYV9hZGRyX3Q7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgaW50IGdmcF90OwoxNDQ3
NDogdHlwZWRlZiB1bnNpZ25lZCBpbnQgc2xhYl9mbGFnc190OwoxNDQ3NDogdHlwZWRlZiB1bnNp
Z25lZCBpbnQgZm1vZGVfdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHU2NCBwaHlz
X2FkZHJfdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBw
aHlzX2FkZHJfdCByZXNvdXJjZV9zaXplX3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiB1bnNpZ25lZCBsb25nIGlycV9od19udW1iZXJfdDsK
MTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgewoxNDQ3NDogIGludCBjb3VudGVyOwoxNDQ3
NDogfSBhdG9taWNfdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHN0cnVjdCB7CjE0
NDc0OiAgczY0IGNvdW50ZXI7CjE0NDc0OiB9IGF0b21pYzY0X3Q7CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGxpc3RfaGVhZCB7CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCAqbmV4dCwg
KnByZXY7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgaGxpc3RfaGVhZCB7CjE0NDc0
OiAgc3RydWN0IGhsaXN0X25vZGUgKmZpcnN0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGhsaXN0X25vZGUgewoxNDQ3NDogIHN0cnVjdCBobGlzdF9ub2RlICpuZXh0LCAqKnBwcmV2
OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHVzdGF0IHsKMTQ0NzQ6ICBfX2tlcm5l
bF9kYWRkcl90IGZfdGZyZWU7CjE0NDc0OiAgX19rZXJuZWxfaW5vX3QgZl90aW5vZGU7CjE0NDc0
OiAgY2hhciBmX2ZuYW1lWzZdOwoxNDQ3NDogIGNoYXIgZl9mcGFja1s2XTsKMTQ0NzQ6IH07CjE0
NDc0OiAjIDIxNCAiLi9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiCjE0NDc0OiBzdHJ1Y3QgY2FsbGJh
Y2tfaGVhZCB7CjE0NDc0OiAgc3RydWN0IGNhbGxiYWNrX2hlYWQgKm5leHQ7CjE0NDc0OiAgdm9p
ZCAoKmZ1bmMpKHN0cnVjdCBjYWxsYmFja19oZWFkICpoZWFkKTsKMTQ0NzQ6IH0gX19hdHRyaWJ1
dGVfXygoYWxpZ25lZChzaXplb2Yodm9pZCAqKSkpKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB0
eXBlZGVmIHZvaWQgKCpyY3VfY2FsbGJhY2tfdCkoc3RydWN0IGNhbGxiYWNrX2hlYWQgKmhlYWQp
OwoxNDQ3NDogdHlwZWRlZiB2b2lkICgqY2FsbF9yY3VfZnVuY190KShzdHJ1Y3QgY2FsbGJhY2tf
aGVhZCAqaGVhZCwgcmN1X2NhbGxiYWNrX3QgZnVuYyk7CjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYg
dm9pZCAoKnN3YXBfZnVuY190KSh2b2lkICphLCB2b2lkICpiLCBpbnQgc2l6ZSk7CjE0NDc0OiAK
MTQ0NzQ6IHR5cGVkZWYgaW50ICgqY21wX3JfZnVuY190KShjb25zdCB2b2lkICphLCBjb25zdCB2
b2lkICpiLCBjb25zdCB2b2lkICpwcml2KTsKMTQ0NzQ6IHR5cGVkZWYgaW50ICgqY21wX2Z1bmNf
dCkoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYik7CjE0NDc0OiAjIDggIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vYWx0ZXJuYXRpdmUuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hc20uaCIgMQoxNDQ3NDogIyAxODIgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vYXNtLmgiCjE0NDc0OiByZWdpc3RlciB1bnNpZ25lZCBsb25nIGN1cnJlbnRf
c3RhY2tfcG9pbnRlciBhc20oInJzcCIpOwoxNDQ3NDogIyAxMSAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9hbHRlcm5hdGl2ZS5oIiAyCjE0NDc0OiAjIDU4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L2FsdGVybmF0aXZlLmgiCjE0NDc0OiBzdHJ1Y3QgYWx0X2luc3RyIHsKMTQ0NzQ6ICBzMzIgaW5z
dHJfb2Zmc2V0OwoxNDQ3NDogIHMzMiByZXBsX29mZnNldDsKMTQ0NzQ6ICB1MTYgY3B1aWQ7CjE0
NDc0OiAgdTggaW5zdHJsZW47CjE0NDc0OiAgdTggcmVwbGFjZW1lbnRsZW47CjE0NDc0OiAgdTgg
cGFkbGVuOwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fKSk7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBhbHRlcm5hdGl2
ZXNfcGF0Y2hlZDsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgYWx0ZXJuYXRpdmVfaW5zdHJ1
Y3Rpb25zKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgYXBwbHlfYWx0ZXJuYXRpdmVzKHN0cnVj
dCBhbHRfaW5zdHIgKnN0YXJ0LCBzdHJ1Y3QgYWx0X2luc3RyICplbmQpOwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgbW9kdWxlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGFsdGVy
bmF0aXZlc19zbXBfbW9kdWxlX2FkZChzdHJ1Y3QgbW9kdWxlICptb2QsIGNoYXIgKm5hbWUsCjE0
NDc0OiAgICAgIHZvaWQgKmxvY2tzLCB2b2lkICpsb2Nrc19lbmQsCjE0NDc0OiAgICAgIHZvaWQg
KnRleHQsIHZvaWQgKnRleHRfZW5kKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGFsdGVybmF0aXZlc19z
bXBfbW9kdWxlX2RlbChzdHJ1Y3QgbW9kdWxlICptb2QpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgYWx0
ZXJuYXRpdmVzX2VuYWJsZV9zbXAodm9pZCk7CjE0NDc0OiBleHRlcm4gaW50IGFsdGVybmF0aXZl
c190ZXh0X3Jlc2VydmVkKHZvaWQgKnN0YXJ0LCB2b2lkICplbmQpOwoxNDQ3NDogZXh0ZXJuIGJv
b2wgc2tpcF9zbXBfYWx0ZXJuYXRpdmVzOwoxNDQ3NDogIyA2ICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2JhcnJpZXIuaCIgMgoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL25vcHMu
aCIgMQoxNDQ3NDogIyAxNDMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbm9wcy5oIgoxNDQ3NDog
ZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiBjb25zdCAqaWRlYWxfbm9wczsKMTQ0NzQ6IGV4
dGVybiB2b2lkIGFyY2hfaW5pdF9pZGVhbF9ub3BzKHZvaWQpOwoxNDQ3NDogIyA3ICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL2JhcnJpZXIuaCIgMgoxNDQ3NDogIyAzNiAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9iYXJyaWVyLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KF9fbm9faW5zdHJ1bWVudF9mdW5jdGlvbl9fKSkgdW5zaWduZWQgbG9uZyBhcnJheV9pbmRleF9t
YXNrX25vc3BlYyh1bnNpZ25lZCBsb25nIGluZGV4LAoxNDQ3NDogICB1bnNpZ25lZCBsb25nIHNp
emUpCjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBtYXNrOwoxNDQ3NDogCjE0NDc0OiAg
YXNtIHZvbGF0aWxlICgiY21wICUxLCUyOyBzYmIgJTAsJTA7IgoxNDQ3NDogICAgOiI9ciIgKG1h
c2spCjE0NDc0OiAgICA6ImciKHNpemUpLCJyIiAoaW5kZXgpCjE0NDc0OiAgICA6ImNjIik7CjE0
NDc0OiAgcmV0dXJuIG1hc2s7CjE0NDc0OiB9CjE0NDc0OiAjIDg1ICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL2JhcnJpZXIuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2JhcnJp
ZXIuaCIgMQoxNDQ3NDogIyAxNiAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2JhcnJpZXIuaCIKMTQ0
NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLmgiIDEKMTQ0NzQ6ICMgMTcgIi4vaW5j
bHVkZS9hc20tZ2VuZXJpYy9iYXJyaWVyLmgiIDIKMTQ0NzQ6ICMgODYgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vYmFycmllci5oIiAyCjE0NDc0OiAjIDI1NyAiLi9pbmNsdWRlL2xpbnV4L2NvbXBp
bGVyLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2thc2FuLWNoZWNrcy5oIiAxCjE0
NDc0OiAjIDE2ICIuL2luY2x1ZGUvbGludXgva2FzYW4tY2hlY2tzLmgiCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKF9fbm9faW5zdHJ1bWVudF9mdW5jdGlvbl9fKSkgYm9v
bCBfX2thc2FuX2NoZWNrX3JlYWQoY29uc3Qgdm9sYXRpbGUgdm9pZCAqcCwgdW5zaWduZWQgaW50
IHNpemUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHRydWU7CjE0NDc0OiB9CjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKF9fbm9faW5zdHJ1bWVudF9mdW5jdGlvbl9fKSkg
Ym9vbCBfX2thc2FuX2NoZWNrX3dyaXRlKGNvbnN0IHZvbGF0aWxlIHZvaWQgKnAsIHVuc2lnbmVk
IGludCBzaXplKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB0cnVlOwoxNDQ3NDogfQoxNDQ3NDog
IyAzNCAiLi9pbmNsdWRlL2xpbnV4L2thc2FuLWNoZWNrcy5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChfX25vX2luc3RydW1lbnRfZnVuY3Rpb25fXykpIGJvb2wga2Fz
YW5fY2hlY2tfcmVhZChjb25zdCB2b2xhdGlsZSB2b2lkICpwLCB1bnNpZ25lZCBpbnQgc2l6ZSkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdHJ1ZTsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygoX19ub19pbnN0cnVtZW50X2Z1bmN0aW9uX18pKSBib29sIGth
c2FuX2NoZWNrX3dyaXRlKGNvbnN0IHZvbGF0aWxlIHZvaWQgKnAsIHVuc2lnbmVkIGludCBzaXpl
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB0cnVlOwoxNDQ3NDogfQoxNDQ3NDogIyAyNTggIi4v
aW5jbHVkZS9saW51eC9jb21waWxlci5oIiAyCjE0NDc0OiAjIDI3NyAiLi9pbmNsdWRlL2xpbnV4
L2NvbXBpbGVyLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKF9fbm9f
aW5zdHJ1bWVudF9mdW5jdGlvbl9fKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KQoxNDQ3NDogdW5zaWduZWQgbG9uZyByZWFkX3dvcmRfYXRfYV90aW1lKGNvbnN0IHZvaWQgKmFk
ZHIpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfcmVhZChhZGRyLCAxKTsKMTQ0NzQ6ICBy
ZXR1cm4gKih1bnNpZ25lZCBsb25nICopYWRkcjsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMzA4ICIuL2lu
Y2x1ZGUvbGludXgvY29tcGlsZXIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygoX19ub19pbnN0cnVtZW50X2Z1bmN0aW9uX18pKSB2b2lkICpvZmZzZXRfdG9fcHRyKGNv
bnN0IGludCAqb2ZmKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAodm9pZCAqKSgodW5zaWduZWQg
bG9uZylvZmYgKyAqb2ZmKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNDQgIi4vaW5jbHVkZS9saW51eC9l
eHBvcnQuaCIgMgoxNDQ3NDogIyA2MCAiLi9pbmNsdWRlL2xpbnV4L2V4cG9ydC5oIgoxNDQ3NDog
c3RydWN0IGtlcm5lbF9zeW1ib2wgewoxNDQ3NDogIGludCB2YWx1ZV9vZmZzZXQ7CjE0NDc0OiAg
aW50IG5hbWVfb2Zmc2V0OwoxNDQ3NDogIGludCBuYW1lc3BhY2Vfb2Zmc2V0OwoxNDQ3NDogfTsK
MTQ0NzQ6ICMgOCAiLi9pbmNsdWRlL2xpbnV4L2xpbmthZ2UuaCIgMgoxNDQ3NDogIyAxICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL2xpbmthZ2UuaCIgMQoxNDQ3NDogIyA5ICIuL2luY2x1ZGUvbGlu
dXgvbGlua2FnZS5oIiAyCjE0NDc0OiAjIDE3ICIuL2luY2x1ZGUvbGludXgva2dkYi5oIiAyCjE0
NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9pbml0LmgiIDEKMTQ0NzQ6ICMgMTE2ICIuL2luY2x1
ZGUvbGludXgvaW5pdC5oIgoxNDQ3NDogdHlwZWRlZiBpbnQgKCppbml0Y2FsbF90KSh2b2lkKTsK
MTQ0NzQ6IHR5cGVkZWYgdm9pZCAoKmV4aXRjYWxsX3QpKHZvaWQpOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHR5cGVkZWYgaW50IGluaXRjYWxsX2VudHJ5X3Q7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGluaXRj
YWxsX3QgaW5pdGNhbGxfZnJvbV9lbnRyeShpbml0Y2FsbF9lbnRyeV90ICplbnRyeSkKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4gb2Zmc2V0X3RvX3B0cihlbnRyeSk7CjE0NDc0OiB9CjE0NDc0OiAj
IDEzNSAiLi9pbmNsdWRlL2xpbnV4L2luaXQuaCIKMTQ0NzQ6IGV4dGVybiBpbml0Y2FsbF9lbnRy
eV90IF9fY29uX2luaXRjYWxsX3N0YXJ0W10sIF9fY29uX2luaXRjYWxsX2VuZFtdOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgdm9pZCAoKmN0b3JfZm5fdCkodm9pZCk7CjE0NDc0OiAK
MTQ0NzQ6IHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4
dGVybiBpbnQgZG9fb25lX2luaXRjYWxsKGluaXRjYWxsX3QgZm4pOwoxNDQ3NDogZXh0ZXJuIGNo
YXIgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LmRhdGEiKSkpIGJvb3RfY29tbWFu
ZF9saW5lW107CjE0NDc0OiBleHRlcm4gY2hhciAqc2F2ZWRfY29tbWFuZF9saW5lOwoxNDQ3NDog
ZXh0ZXJuIHVuc2lnbmVkIGludCByZXNldF9kZXZpY2VzOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHZvaWQgc2V0dXBfYXJjaChjaGFyICoqKTsKMTQ0NzQ6IHZvaWQgcHJlcGFyZV9uYW1lc3BhY2Uo
dm9pZCk7CjE0NDc0OiB2b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0
IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIGluaXRfcm9vdGZzKHZvaWQpOwoxNDQ3NDog
ZXh0ZXJuIHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlIHJvb3Rmc19mc190eXBlOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IGV4dGVybiBib29sIHJvZGF0YV9lbmFibGVkOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHZvaWQgbWFya19yb2RhdGFfcm8odm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIHZvaWQgKCpsYXRlX3RpbWVfaW5pdCkodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVy
biBib29sIGluaXRjYWxsX2RlYnVnOwoxNDQ3NDogIyAxOCAiLi9pbmNsdWRlL2xpbnV4L2tnZGIu
aCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvYXRvbWljLmgiIDEKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9hdG9taWMuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vY21weGNoZy5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmVzLmgiIDEKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vcmVxdWlyZWQtZmVhdHVyZXMuaCIgMQoxNDQ3NDogIyA3ICIuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmVzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9kaXNhYmxlZC1mZWF0dXJlcy5oIiAxCjE0
NDc0OiAjIDExICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmVzLmgiIDIKMTQ0NzQ6
ICMgNyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jbXB4Y2hnLmgiIDIKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIF9feGNo
Z193cm9uZ19zaXplKHZvaWQpCjE0NDc0OiAgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJCYWQg
YXJndW1lbnQgc2l6ZSBmb3IgeGNoZyIpKSk7CjE0NDc0OiBleHRlcm4gdm9pZCBfX2NtcHhjaGdf
d3Jvbmdfc2l6ZSh2b2lkKQoxNDQ3NDogIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiQmFkIGFy
Z3VtZW50IHNpemUgZm9yIGNtcHhjaGciKSkpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgX194YWRkX3dy
b25nX3NpemUodm9pZCkKMTQ0NzQ6ICBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oIkJhZCBhcmd1
bWVudCBzaXplIGZvciB4YWRkIikpKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIF9fYWRkX3dyb25nX3Np
emUodm9pZCkKMTQ0NzQ6ICBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oIkJhZCBhcmd1bWVudCBz
aXplIGZvciBhZGQiKSkpOwoxNDQ3NDogIyAxNDUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vY21w
eGNoZy5oIgoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NtcHhjaGdfNjQuaCIg
MQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNldF82NGJpdCh2
b2xhdGlsZSB1NjQgKnB0ciwgdTY0IHZhbCkKMTQ0NzQ6IHsKMTQ0NzQ6ICAqcHRyID0gdmFsOwox
NDQ3NDogfQoxNDQ3NDogIyAxNDYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vY21weGNoZy5oIiAy
CjE0NDc0OiAjIDkgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljLmgiIDIKMTQ0NzQ6ICMg
MSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9ybXdjYy5oIiAxCjE0NDc0OiAjIDEwICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL2F0b21pYy5oIiAyCjE0NDc0OiAjIDI1ICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL2F0b21pYy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSBpbnQgYXJjaF9hdG9taWNfcmVhZChjb25zdCBhdG9taWNfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiAoeyB1bmlvbiB7IHR5cGVv
ZigodiktPmNvdW50ZXIpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRf
b25jZV9zaXplKCYoKHYpLT5jb3VudGVyKSwgX191Ll9fYywgc2l6ZW9mKCh2KS0+Y291bnRlcikp
OyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKCh2KS0+Y291bnRlciksIF9fdS5fX2Ms
IHNpemVvZigodiktPmNvdW50ZXIpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsK
MTQ0NzQ6IH0KMTQ0NzQ6ICMgNDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljLmgiCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgYXJjaF9hdG9taWNf
c2V0KGF0b21pY190ICp2LCBpbnQgaSkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoeyB1bmlvbiB7IHR5cGVv
Zih2LT5jb3VudGVyKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5
cGVvZih2LT5jb3VudGVyKSkgKGkpIH07IF9fd3JpdGVfb25jZV9zaXplKCYodi0+Y291bnRlciks
IF9fdS5fX2MsIHNpemVvZih2LT5jb3VudGVyKSk7IF9fdS5fX3ZhbDsgfSk7CjE0NDc0OiB9CjE0
NDc0OiAjIDUzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYy5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIGFyY2hfYXRvbWljX2FkZChpbnQgaSwg
YXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24g
LnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBv
cHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAiYWRkbCAlMSwlMCIKMTQ0NzQ6ICAgICAg
ICA6ICIrbSIgKHYtPmNvdW50ZXIpCjE0NDc0OiAgICAgICAgOiAiaXIiIChpKSA6ICJtZW1vcnki
KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNjcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljLmgi
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgYXJjaF9hdG9t
aWNfc3ViKGludCBpLCBhdG9taWNfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBhc20gdm9sYXRpbGUo
Ii5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3
MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJzdWJsICUxLCUw
IgoxNDQ3NDogICAgICAgIDogIittIiAodi0+Y291bnRlcikKMTQ0NzQ6ICAgICAgICA6ICJpciIg
KGkpIDogIm1lbW9yeSIpOwoxNDQ3NDogfQoxNDQ3NDogIyA4MyAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9hdG9taWMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
Ym9vbCBhcmNoX2F0b21pY19zdWJfYW5kX3Rlc3QoaW50IGksIGF0b21pY190ICp2KQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiAoeyBib29sIGM7IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAu
c21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9w
c2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJzdWJsIiAiICVbdmFsXSwgIiAiJVt2YXJd
IiAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJlIiAiKi9cbiIgOiBbdmFyXSAiK20i
ICh2LT5jb3VudGVyKSwgIj1AY2MiICJlIiAoYykgOiBbdmFsXSAiZXIiIChpKSA6ICJtZW1vcnki
KTsgYzsgfSk7CjE0NDc0OiB9CjE0NDc0OiAjIDk1ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0
b21pYy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIGFy
Y2hfYXRvbWljX2luYyhhdG9taWNfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBhc20gdm9sYXRpbGUo
Ii5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3
MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJpbmNsICUwIgox
NDQ3NDogICAgICAgIDogIittIiAodi0+Y291bnRlcikgOjogIm1lbW9yeSIpOwoxNDQ3NDogfQox
NDQ3NDogIyAxMDggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljLmgiCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0
dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgYXJjaF9hdG9taWNfZGVjKGF0b21p
Y190ICp2KQoxNDQ3NDogewoxNDQ3NDogIGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBf
bG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0
aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImRlY2wgJTAiCjE0NDc0OiAgICAgICAgOiAiK20i
ICh2LT5jb3VudGVyKSA6OiAibWVtb3J5Iik7CjE0NDc0OiB9CjE0NDc0OiAjIDEyMyAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9hdG9taWMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlz
X2lubGluZV9fKSkgYm9vbCBhcmNoX2F0b21pY19kZWNfYW5kX3Rlc3QoYXRvbWljX3QgKnYpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IGJvb2wgYzsgYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0
aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIg
Ii5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImRlY2wiICIgIiAiJVt2YXJdIiAi
XG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJlIiAiKi9cbiIgOiBbdmFyXSAiK20iICh2
LT5jb3VudGVyKSwgIj1AY2MiICJlIiAoYykgOiA6ICJtZW1vcnkiKTsgYzsgfSk7CjE0NDc0OiB9
CjE0NDc0OiAjIDEzNyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWMuaCIKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9f
YXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9vbCBhcmNoX2F0b21pY19pbmNfYW5k
X3Rlc3QoYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IGJvb2wgYzsgYXNt
IHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxu
IiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIg
ImluY2wiICIgIiAiJVt2YXJdIiAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJlIiAi
Ki9cbiIgOiBbdmFyXSAiK20iICh2LT5jb3VudGVyKSwgIj1AY2MiICJlIiAoYykgOiA6ICJtZW1v
cnkiKTsgYzsgfSk7CjE0NDc0OiB9CjE0NDc0OiAjIDE1MiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9hdG9taWMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9v
bCBhcmNoX2F0b21pY19hZGRfbmVnYXRpdmUoaW50IGksIGF0b21pY190ICp2KQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiAoeyBib29sIGM7IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21w
X2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2Vj
dGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJhZGRsIiAiICVbdmFsXSwgIiAiJVt2YXJdIiAi
XG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJzIiAiKi9cbiIgOiBbdmFyXSAiK20iICh2
LT5jb3VudGVyKSwgIj1AY2MiICJzIiAoYykgOiBbdmFsXSAiZXIiIChpKSA6ICJtZW1vcnkiKTsg
YzsgfSk7CjE0NDc0OiB9CjE0NDc0OiAjIDE2NSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9t
aWMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IGFyY2hf
YXRvbWljX2FkZF9yZXR1cm4oaW50IGksIGF0b21pY190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiBpICsgKHsgX190eXBlb2ZfXyAoKigoKCZ2LT5jb3VudGVyKSkpKSBfX3JldCA9ICgoKGkp
KSk7IHN3aXRjaCAoc2l6ZW9mKCooKCgmdi0+Y291bnRlcikpKSkpIHsgY2FzZSAxOiBhc20gdm9s
YXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIu
bG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAieGFk
ZCIgImIgJWIwLCAlMVxuIiA6ICIrcSIgKF9fcmV0KSwgIittIiAoKigoKCZ2LT5jb3VudGVyKSkp
KSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCIucHVz
aHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0g
LlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAieGFkZCIgIncgJXcwLCAl
MVxuIiA6ICIrciIgKF9fcmV0KSwgIittIiAoKigoKCZ2LT5jb3VudGVyKSkpKSA6IDogIm1lbW9y
eSIsICJjYyIpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCIucHVzaHNlY3Rpb24gLnNt
cF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNl
Y3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAieGFkZCIgImwgJTAsICUxXG4iIDogIityIiAo
X19yZXQpLCAiK20iICgqKCgoJnYtPmNvdW50ZXIpKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJy
ZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwi
XG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcx
OiIgIlxuXHRsb2NrOyAiICJ4YWRkIiAicSAlcTAsICUxXG4iIDogIityIiAoX19yZXQpLCAiK20i
ICgqKCgoJnYtPmNvdW50ZXIpKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBkZWZhdWx0
OiBfX3hhZGRfd3Jvbmdfc2l6ZSgpOyB9IF9fcmV0OyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTc3
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSBpbnQgYXJjaF9hdG9taWNfc3ViX3JldHVybihpbnQgaSwgYXRv
bWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGFyY2hfYXRvbWljX2FkZF9yZXR1cm4o
LWksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19p
bmxpbmVfXykpIGludCBhcmNoX2F0b21pY19mZXRjaF9hZGQoaW50IGksIGF0b21pY190ICp2KQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiAoeyBfX3R5cGVvZl9fICgqKCgoJnYtPmNvdW50ZXIpKSkp
IF9fcmV0ID0gKCgoaSkpKTsgc3dpdGNoIChzaXplb2YoKigoKCZ2LT5jb3VudGVyKSkpKSkgeyBj
YXNlIDE6IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIu
YmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxu
XHRsb2NrOyAiICJ4YWRkIiAiYiAlYjAsICUxXG4iIDogIitxIiAoX19yZXQpLCAiK20iICgqKCgo
JnYtPmNvdW50ZXIpKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBjYXNlIDI6IGFzbSB2
b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIg
Ii5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJ4
YWRkIiAidyAldzAsICUxXG4iIDogIityIiAoX19yZXQpLCAiK20iICgqKCgoJnYtPmNvdW50ZXIp
KSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIi5w
dXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYg
LSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJ4YWRkIiAibCAlMCwg
JTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJtZW1v
cnkiLCAiY2MiKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5z
bXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3Bz
ZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJxICVxMCwgJTFcbiIgOiAiK3Ii
IChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJtZW1vcnkiLCAiY2MiKTsg
YnJlYWs7IGRlZmF1bHQ6IF9feGFkZF93cm9uZ19zaXplKCk7IH0gX19yZXQ7IH0pOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBh
cmNoX2F0b21pY19mZXRjaF9zdWIoaW50IGksIGF0b21pY190ICp2KQoxNDQ3NDogewoxNDQ3NDog
IHJldHVybiAoeyBfX3R5cGVvZl9fICgqKCgoJnYtPmNvdW50ZXIpKSkpIF9fcmV0ID0gKCgoLWkp
KSk7IHN3aXRjaCAoc2l6ZW9mKCooKCgmdi0+Y291bnRlcikpKSkpIHsgY2FzZSAxOiBhc20gdm9s
YXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIu
bG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAieGFk
ZCIgImIgJWIwLCAlMVxuIiA6ICIrcSIgKF9fcmV0KSwgIittIiAoKigoKCZ2LT5jb3VudGVyKSkp
KSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCIucHVz
aHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0g
LlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAieGFkZCIgIncgJXcwLCAl
MVxuIiA6ICIrciIgKF9fcmV0KSwgIittIiAoKigoKCZ2LT5jb3VudGVyKSkpKSA6IDogIm1lbW9y
eSIsICJjYyIpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCIucHVzaHNlY3Rpb24gLnNt
cF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNl
Y3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAieGFkZCIgImwgJTAsICUxXG4iIDogIityIiAo
X19yZXQpLCAiK20iICgqKCgoJnYtPmNvdW50ZXIpKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJy
ZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwi
XG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcx
OiIgIlxuXHRsb2NrOyAiICJ4YWRkIiAicSAlcTAsICUxXG4iIDogIityIiAoX19yZXQpLCAiK20i
ICgqKCgoJnYtPmNvdW50ZXIpKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBkZWZhdWx0
OiBfX3hhZGRfd3Jvbmdfc2l6ZSgpOyB9IF9fcmV0OyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgYXJjaF9hdG9taWNfY21w
eGNoZyhhdG9taWNfdCAqdiwgaW50IG9sZCwgaW50IG5ldykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gKHsgX190eXBlb2ZfXygqKCgmdi0+Y291bnRlcikpKSBfX3JldDsgX190eXBlb2ZfXygqKCgm
di0+Y291bnRlcikpKSBfX29sZCA9ICgob2xkKSk7IF9fdHlwZW9mX18oKigoJnYtPmNvdW50ZXIp
KSkgX19uZXcgPSAoKG5ldykpOyBzd2l0Y2ggKChzaXplb2YoKigmdi0+Y291bnRlcikpKSkgeyBj
YXNlIDE6IHsgdm9sYXRpbGUgdTggKl9fcHRyID0gKHZvbGF0aWxlIHU4ICopKCgmdi0+Y291bnRl
cikpOyBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFs
aWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRs
b2NrOyAiICJjbXB4Y2hnYiAlMiwlMSIgOiAiPWEiIChfX3JldCksICIrbSIgKCpfX3B0cikgOiAi
cSIgKF9fbmV3KSwgIjAiIChfX29sZCkgOiAibWVtb3J5Iik7IGJyZWFrOyB9IGNhc2UgMjogeyB2
b2xhdGlsZSB1MTYgKl9fcHRyID0gKHZvbGF0aWxlIHUxNiAqKSgoJnYtPmNvdW50ZXIpKTsgYXNt
IHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4i
ICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAi
Y21weGNoZ3cgJTIsJTEiIDogIj1hIiAoX19yZXQpLCAiK20iICgqX19wdHIpIDogInIiIChfX25l
dyksICIwIiAoX19vbGQpIDogIm1lbW9yeSIpOyBicmVhazsgfSBjYXNlIDQ6IHsgdm9sYXRpbGUg
dTMyICpfX3B0ciA9ICh2b2xhdGlsZSB1MzIgKikoKCZ2LT5jb3VudGVyKSk7IGFzbSB2b2xhdGls
ZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcg
NjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImNtcHhjaGds
ICUyLCUxIiA6ICI9YSIgKF9fcmV0KSwgIittIiAoKl9fcHRyKSA6ICJyIiAoX19uZXcpLCAiMCIg
KF9fb2xkKSA6ICJtZW1vcnkiKTsgYnJlYWs7IH0gY2FzZSA4OiB7IHZvbGF0aWxlIHU2NCAqX19w
dHIgPSAodm9sYXRpbGUgdTY0ICopKCgmdi0+Y291bnRlcikpOyBhc20gdm9sYXRpbGUoIi5wdXNo
c2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAu
XG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJjbXB4Y2hncSAlMiwlMSIg
OiAiPWEiIChfX3JldCksICIrbSIgKCpfX3B0cikgOiAiciIgKF9fbmV3KSwgIjAiIChfX29sZCkg
OiAibWVtb3J5Iik7IGJyZWFrOyB9IGRlZmF1bHQ6IF9fY21weGNoZ193cm9uZ19zaXplKCk7IH0g
X19yZXQ7IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18o
KF9fYWx3YXlzX2lubGluZV9fKSkgYm9vbCBhcmNoX2F0b21pY190cnlfY21weGNoZyhhdG9taWNf
dCAqdiwgaW50ICpvbGQsIGludCBuZXcpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IGJvb2wg
c3VjY2VzczsgX190eXBlb2ZfXygoKCZ2LT5jb3VudGVyKSkpIF9vbGQgPSAoX190eXBlb2ZfXygo
KCZ2LT5jb3VudGVyKSkpKSgoKG9sZCkpKTsgX190eXBlb2ZfXygqKCgoJnYtPmNvdW50ZXIpKSkp
IF9fb2xkID0gKl9vbGQ7IF9fdHlwZW9mX18oKigoKCZ2LT5jb3VudGVyKSkpKSBfX25ldyA9ICgo
KG5ldykpKTsgc3dpdGNoICgoc2l6ZW9mKCooJnYtPmNvdW50ZXIpKSkpIHsgY2FzZSAxOiB7IHZv
bGF0aWxlIHU4ICpfX3B0ciA9ICh2b2xhdGlsZSB1OCAqKSgoKCZ2LT5jb3VudGVyKSkpOyBhc20g
dm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIg
Ii5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJj
bXB4Y2hnYiAlW25ld10sICVbcHRyXSIgIlxuXHQvKiBvdXRwdXQgY29uZGl0aW9uIGNvZGUgIiAi
eiIgIiovXG4iIDogIj1AY2MiICJ6IiAoc3VjY2VzcyksIFtwdHJdICIrbSIgKCpfX3B0ciksIFtv
bGRdICIrYSIgKF9fb2xkKSA6IFtuZXddICJxIiAoX19uZXcpIDogIm1lbW9yeSIpOyBicmVhazsg
fSBjYXNlIDI6IHsgdm9sYXRpbGUgdTE2ICpfX3B0ciA9ICh2b2xhdGlsZSB1MTYgKikoKCgmdi0+
Y291bnRlcikpKTsgYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxu
IiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToi
ICJcblx0bG9jazsgIiAiY21weGNoZ3cgJVtuZXddLCAlW3B0cl0iICJcblx0Lyogb3V0cHV0IGNv
bmRpdGlvbiBjb2RlICIgInoiICIqL1xuIiA6ICI9QGNjIiAieiIgKHN1Y2Nlc3MpLCBbcHRyXSAi
K20iICgqX19wdHIpLCBbb2xkXSAiK2EiIChfX29sZCkgOiBbbmV3XSAiciIgKF9fbmV3KSA6ICJt
ZW1vcnkiKTsgYnJlYWs7IH0gY2FzZSA0OiB7IHZvbGF0aWxlIHUzMiAqX19wdHIgPSAodm9sYXRp
bGUgdTMyICopKCgoJnYtPmNvdW50ZXIpKSk7IGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5z
bXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3Bz
ZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImNtcHhjaGdsICVbbmV3XSwgJVtwdHJdIiAi
XG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJ6IiAiKi9cbiIgOiAiPUBjYyIgInoiIChz
dWNjZXNzKSwgW3B0cl0gIittIiAoKl9fcHRyKSwgW29sZF0gIithIiAoX19vbGQpIDogW25ld10g
InIiIChfX25ldykgOiAibWVtb3J5Iik7IGJyZWFrOyB9IGNhc2UgODogeyB2b2xhdGlsZSB1NjQg
Kl9fcHRyID0gKHZvbGF0aWxlIHU2NCAqKSgoKCZ2LT5jb3VudGVyKSkpOyBhc20gdm9sYXRpbGUo
Ii5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3
MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJjbXB4Y2hncSAl
W25ld10sICVbcHRyXSIgIlxuXHQvKiBvdXRwdXQgY29uZGl0aW9uIGNvZGUgIiAieiIgIiovXG4i
IDogIj1AY2MiICJ6IiAoc3VjY2VzcyksIFtwdHJdICIrbSIgKCpfX3B0ciksIFtvbGRdICIrYSIg
KF9fb2xkKSA6IFtuZXddICJyIiAoX19uZXcpIDogIm1lbW9yeSIpOyBicmVhazsgfSBkZWZhdWx0
OiBfX2NtcHhjaGdfd3Jvbmdfc2l6ZSgpOyB9IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKCFzdWNj
ZXNzKSwgMCkpICpfb2xkID0gX19vbGQ7IF9fYnVpbHRpbl9leHBlY3QoISEoc3VjY2VzcyksIDEp
OyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGFyY2hfYXRvbWljX3hjaGcoYXRvbWlj
X3QgKnYsIGludCBuZXcpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IF9fdHlwZW9mX18gKCoo
KCZ2LT5jb3VudGVyKSkpIF9fcmV0ID0gKChuZXcpKTsgc3dpdGNoIChzaXplb2YoKigoJnYtPmNv
dW50ZXIpKSkpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCIiICJ4Y2hnIiAiYiAlYjAsICUxXG4i
IDogIitxIiAoX19yZXQpLCAiK20iICgqKCgmdi0+Y291bnRlcikpKSA6IDogIm1lbW9yeSIsICJj
YyIpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCIiICJ4Y2hnIiAidyAldzAsICUxXG4i
IDogIityIiAoX19yZXQpLCAiK20iICgqKCgmdi0+Y291bnRlcikpKSA6IDogIm1lbW9yeSIsICJj
YyIpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCIiICJ4Y2hnIiAibCAlMCwgJTFcbiIg
OiAiK3IiIChfX3JldCksICIrbSIgKCooKCZ2LT5jb3VudGVyKSkpIDogOiAibWVtb3J5IiwgImNj
Iik7IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIiIgInhjaGciICJxICVxMCwgJTFcbiIg
OiAiK3IiIChfX3JldCksICIrbSIgKCooKCZ2LT5jb3VudGVyKSkpIDogOiAibWVtb3J5IiwgImNj
Iik7IGJyZWFrOyBkZWZhdWx0OiBfX3hjaGdfd3Jvbmdfc2l6ZSgpOyB9IF9fcmV0OyB9KTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBhcmNoX2F0b21pY19hbmQoaW50IGksIGF0b21pY190
ICp2KQoxNDQ3NDogewoxNDQ3NDogIGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9j
a3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9u
XG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImFuZGwgJTEsJTAiCjE0NDc0OiAgICA6ICIrbSIgKHYt
PmNvdW50ZXIpCjE0NDc0OiAgICA6ICJpciIgKGkpCjE0NDc0OiAgICA6ICJtZW1vcnkiKTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGFyY2hfYXRvbWljX2ZldGNoX2FuZChpbnQgaSwgYXRv
bWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgaW50IHZhbCA9IGFyY2hfYXRvbWljX3JlYWQodik7
CjE0NDc0OiAKMTQ0NzQ6ICBkbyB7IH0gd2hpbGUgKCFhcmNoX2F0b21pY190cnlfY21weGNoZyh2
LCAmdmFsLCB2YWwgJiBpKSk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gdmFsOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIGFyY2hfYXRvbWljX29yKGludCBpLCBhdG9taWNfdCAqdikKMTQ0
NzQ6IHsKMTQ0NzQ6ICBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwi
XG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcx
OiIgIlxuXHRsb2NrOyAiICJvcmwgJTEsJTAiCjE0NDc0OiAgICA6ICIrbSIgKHYtPmNvdW50ZXIp
CjE0NDc0OiAgICA6ICJpciIgKGkpCjE0NDc0OiAgICA6ICJtZW1vcnkiKTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgaW50IGFyY2hfYXRvbWljX2ZldGNoX29yKGludCBpLCBhdG9taWNfdCAqdikK
MTQ0NzQ6IHsKMTQ0NzQ6ICBpbnQgdmFsID0gYXJjaF9hdG9taWNfcmVhZCh2KTsKMTQ0NzQ6IAox
NDQ3NDogIGRvIHsgfSB3aGlsZSAoIWFyY2hfYXRvbWljX3RyeV9jbXB4Y2hnKHYsICZ2YWwsIHZh
bCB8IGkpKTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiB2YWw7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgYXJjaF9hdG9taWNfeG9yKGludCBpLCBhdG9taWNfdCAqdikKMTQ0NzQ6IHsKMTQ0
NzQ6ICBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFs
aWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRs
b2NrOyAiICJ4b3JsICUxLCUwIgoxNDQ3NDogICAgOiAiK20iICh2LT5jb3VudGVyKQoxNDQ3NDog
ICAgOiAiaXIiIChpKQoxNDQ3NDogICAgOiAibWVtb3J5Iik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGludCBhcmNoX2F0b21pY19mZXRjaF94b3IoaW50IGksIGF0b21pY190ICp2KQoxNDQ3NDog
ewoxNDQ3NDogIGludCB2YWwgPSBhcmNoX2F0b21pY19yZWFkKHYpOwoxNDQ3NDogCjE0NDc0OiAg
ZG8geyB9IHdoaWxlICghYXJjaF9hdG9taWNfdHJ5X2NtcHhjaGcodiwgJnZhbCwgdmFsIF4gaSkp
OwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIHZhbDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYzY0
XzY0LmgiIDEKMTQ0NzQ6ICMgMjAgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljNjRfNjQu
aCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHM2NCBhcmNoX2F0b21pYzY0X3JlYWQoY29uc3QgYXRvbWljNjRfdCAqdikKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHsgdW5pb24geyB0eXBlb2YoKHYpLT5jb3VudGVyKSBfX3Zh
bDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKCh2KS0+Y291
bnRlciksIF9fdS5fX2MsIHNpemVvZigodiktPmNvdW50ZXIpKTsgZWxzZSBfX3JlYWRfb25jZV9z
aXplX25vY2hlY2soJigodiktPmNvdW50ZXIpLCBfX3UuX19jLCBzaXplb2YoKHYpLT5jb3VudGVy
KSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7CjE0NDc0OiB9CjE0NDc0OiAjIDMy
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYzY0XzY0LmgiCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGFyY2hf
YXRvbWljNjRfc2V0KGF0b21pYzY0X3QgKnYsIHM2NCBpKQoxNDQ3NDogewoxNDQ3NDogICh7IHVu
aW9uIHsgdHlwZW9mKHYtPmNvdW50ZXIpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5f
X3ZhbCA9ICggdHlwZW9mKHYtPmNvdW50ZXIpKSAoaSkgfTsgX193cml0ZV9vbmNlX3NpemUoJih2
LT5jb3VudGVyKSwgX191Ll9fYywgc2l6ZW9mKHYtPmNvdW50ZXIpKTsgX191Ll9fdmFsOyB9KTsK
MTQ0NzQ6IH0KMTQ0NzQ6ICMgNDQgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljNjRfNjQu
aCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBhcmNoX2F0
b21pYzY0X2FkZChzNjQgaSwgYXRvbWljNjRfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBhc20gdm9s
YXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5s
b25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJhZGRx
ICUxLCUwIgoxNDQ3NDogICAgICAgIDogIj1tIiAodi0+Y291bnRlcikKMTQ0NzQ6ICAgICAgICA6
ICJlciIgKGkpLCAibSIgKHYtPmNvdW50ZXIpIDogIm1lbW9yeSIpOwoxNDQ3NDogfQoxNDQ3NDog
IyA1OCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWM2NF82NC5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBh
cmNoX2F0b21pYzY0X3N1YihzNjQgaSwgYXRvbWljNjRfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBh
c20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRc
biIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAi
ICJzdWJxICUxLCUwIgoxNDQ3NDogICAgICAgIDogIj1tIiAodi0+Y291bnRlcikKMTQ0NzQ6ICAg
ICAgICA6ICJlciIgKGkpLCAibSIgKHYtPmNvdW50ZXIpIDogIm1lbW9yeSIpOwoxNDQ3NDogfQox
NDQ3NDogIyA3NCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWM2NF82NC5oIgoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBhcmNoX2F0b21pYzY0X3N1Yl9hbmRfdGVzdChzNjQgaSwgYXRvbWljNjRfdCAqdikKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHsgYm9vbCBjOyBhc20gdm9sYXRpbGUgKCIucHVzaHNlY3Rp
b24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAi
LnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAic3VicSIgIiAlW3ZhbF0sICIgIiVb
dmFyXSIgIlxuXHQvKiBvdXRwdXQgY29uZGl0aW9uIGNvZGUgIiAiZSIgIiovXG4iIDogW3Zhcl0g
IittIiAodi0+Y291bnRlciksICI9QGNjIiAiZSIgKGMpIDogW3ZhbF0gImVyIiAoaSkgOiAibWVt
b3J5Iik7IGM7IH0pOwoxNDQ3NDogfQoxNDQ3NDogIyA4NiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9hdG9taWM2NF82NC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSB2b2lkIGFyY2hfYXRvbWljNjRfaW5jKGF0b21pYzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAg
YXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0
XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsg
IiAiaW5jcSAlMCIKMTQ0NzQ6ICAgICAgICA6ICI9bSIgKHYtPmNvdW50ZXIpCjE0NDc0OiAgICAg
ICAgOiAibSIgKHYtPmNvdW50ZXIpIDogIm1lbW9yeSIpOwoxNDQ3NDogfQoxNDQ3NDogIyAxMDAg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljNjRfNjQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRl
X18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBhcmNoX2F0b21pYzY0X2RlYyhhdG9taWM2NF90
ICp2KQoxNDQ3NDogewoxNDQ3NDogIGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9j
a3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9u
XG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImRlY3EgJTAiCjE0NDc0OiAgICAgICAgOiAiPW0iICh2
LT5jb3VudGVyKQoxNDQ3NDogICAgICAgIDogIm0iICh2LT5jb3VudGVyKSA6ICJtZW1vcnkiKTsK
MTQ0NzQ6IH0KMTQ0NzQ6ICMgMTE2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYzY0XzY0
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBib29sIGFyY2hfYXRvbWljNjRfZGVjX2FuZF90ZXN0KGF0b21pYzY0X3QgKnYp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IGJvb2wgYzsgYXNtIHZvbGF0aWxlICgiLnB1c2hz
ZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5c
biIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImRlY3EiICIgIiAiJVt2YXJd
IiAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJlIiAiKi9cbiIgOiBbdmFyXSAiK20i
ICh2LT5jb3VudGVyKSwgIj1AY2MiICJlIiAoYykgOiA6ICJtZW1vcnkiKTsgYzsgfSk7CjE0NDc0
OiB9CjE0NDc0OiAjIDEzMCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWM2NF82NC5oIgox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgYm9vbCBhcmNoX2F0b21pYzY0X2luY19hbmRfdGVzdChhdG9taWM2NF90ICp2KQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiAoeyBib29sIGM7IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlv
biAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIu
cG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJpbmNxIiAiICIgIiVbdmFyXSIgIlxu
XHQvKiBvdXRwdXQgY29uZGl0aW9uIGNvZGUgIiAiZSIgIiovXG4iIDogW3Zhcl0gIittIiAodi0+
Y291bnRlciksICI9QGNjIiAiZSIgKGMpIDogOiAibWVtb3J5Iik7IGM7IH0pOwoxNDQ3NDogfQox
NDQ3NDogIyAxNDUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljNjRfNjQuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGJvb2wgYXJjaF9hdG9taWM2NF9hZGRfbmVnYXRpdmUoczY0IGksIGF0b21pYzY0X3QgKnYpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IGJvb2wgYzsgYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0
aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIg
Ii5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImFkZHEiICIgJVt2YWxdLCAiICIl
W3Zhcl0iICJcblx0Lyogb3V0cHV0IGNvbmRpdGlvbiBjb2RlICIgInMiICIqL1xuIiA6IFt2YXJd
ICIrbSIgKHYtPmNvdW50ZXIpLCAiPUBjYyIgInMiIChjKSA6IFt2YWxdICJlciIgKGkpIDogIm1l
bW9yeSIpOyBjOyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTU4ICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2F0b21pYzY0XzY0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVf
XykpIHM2NCBhcmNoX2F0b21pYzY0X2FkZF9yZXR1cm4oczY0IGksIGF0b21pYzY0X3QgKnYpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGkgKyAoeyBfX3R5cGVvZl9fICgqKCgoJnYtPmNvdW50ZXIp
KSkpIF9fcmV0ID0gKCgoaSkpKTsgc3dpdGNoIChzaXplb2YoKigoKCZ2LT5jb3VudGVyKSkpKSkg
eyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4i
ICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIg
IlxuXHRsb2NrOyAiICJ4YWRkIiAiYiAlYjAsICUxXG4iIDogIitxIiAoX19yZXQpLCAiK20iICgq
KCgoJnYtPmNvdW50ZXIpKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBjYXNlIDI6IGFz
bSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRc
biIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAi
ICJ4YWRkIiAidyAldzAsICUxXG4iIDogIityIiAoX19yZXQpLCAiK20iICgqKCgoJnYtPmNvdW50
ZXIpKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAo
Ii5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3
MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJ4YWRkIiAibCAl
MCwgJTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJt
ZW1vcnkiLCAiY2MiKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9u
IC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5w
b3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJxICVxMCwgJTFcbiIgOiAi
K3IiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJtZW1vcnkiLCAiY2Mi
KTsgYnJlYWs7IGRlZmF1bHQ6IF9feGFkZF93cm9uZ19zaXplKCk7IH0gX19yZXQ7IH0pOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBzNjQgYXJjaF9hdG9taWM2NF9zdWJfcmV0dXJuKHM2NCBpLCBh
dG9taWM2NF90ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhcmNoX2F0b21pYzY0X2FkZF9y
ZXR1cm4oLWksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQgYXJjaF9hdG9taWM2NF9m
ZXRjaF9hZGQoczY0IGksIGF0b21pYzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7
IF9fdHlwZW9mX18gKCooKCgmdi0+Y291bnRlcikpKSkgX19yZXQgPSAoKChpKSkpOyBzd2l0Y2gg
KHNpemVvZigqKCgoJnYtPmNvdW50ZXIpKSkpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgiLnB1
c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAt
IC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJiICViMCwg
JTFcbiIgOiAiK3EiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJtZW1v
cnkiLCAiY2MiKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5z
bXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3Bz
ZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJ3ICV3MCwgJTFcbiIgOiAiK3Ii
IChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJtZW1vcnkiLCAiY2MiKTsg
YnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJh
XCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2
NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJsICUwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwgIitt
IiAoKigoKCZ2LT5jb3VudGVyKSkpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2FzZSA4
OiBhc20gdm9sYXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGln
biA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9j
azsgIiAieGFkZCIgInEgJXEwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwgIittIiAoKigoKCZ2LT5j
b3VudGVyKSkpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgZGVmYXVsdDogX194YWRkX3dy
b25nX3NpemUoKTsgfSBfX3JldDsgfSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NCBhcmNo
X2F0b21pYzY0X2ZldGNoX3N1YihzNjQgaSwgYXRvbWljNjRfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gKHsgX190eXBlb2ZfXyAoKigoKCZ2LT5jb3VudGVyKSkpKSBfX3JldCA9ICgoKC1p
KSkpOyBzd2l0Y2ggKHNpemVvZigqKCgoJnYtPmNvdW50ZXIpKSkpKSB7IGNhc2UgMTogYXNtIHZv
bGF0aWxlICgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAi
LmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhh
ZGQiICJiICViMCwgJTFcbiIgOiAiK3EiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikp
KSkgOiA6ICJtZW1vcnkiLCAiY2MiKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgiLnB1
c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAt
IC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJ3ICV3MCwg
JTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJtZW1v
cnkiLCAiY2MiKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5z
bXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3Bz
ZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJsICUwLCAlMVxuIiA6ICIrciIg
KF9fcmV0KSwgIittIiAoKigoKCZ2LT5jb3VudGVyKSkpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBi
cmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFc
IlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3
MToiICJcblx0bG9jazsgIiAieGFkZCIgInEgJXEwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwgIitt
IiAoKigoKCZ2LT5jb3VudGVyKSkpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgZGVmYXVs
dDogX194YWRkX3dyb25nX3NpemUoKTsgfSBfX3JldDsgfSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHM2NCBhcmNoX2F0b21pYzY0X2NtcHhjaGcoYXRvbWljNjRfdCAqdiwgczY0IG9sZCwgczY0
IG5ldykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHsgX190eXBlb2ZfXygqKCgmdi0+Y291bnRl
cikpKSBfX3JldDsgX190eXBlb2ZfXygqKCgmdi0+Y291bnRlcikpKSBfX29sZCA9ICgob2xkKSk7
IF9fdHlwZW9mX18oKigoJnYtPmNvdW50ZXIpKSkgX19uZXcgPSAoKG5ldykpOyBzd2l0Y2ggKChz
aXplb2YoKigmdi0+Y291bnRlcikpKSkgeyBjYXNlIDE6IHsgdm9sYXRpbGUgdTggKl9fcHRyID0g
KHZvbGF0aWxlIHU4ICopKCgmdi0+Y291bnRlcikpOyBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlv
biAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIu
cG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJjbXB4Y2hnYiAlMiwlMSIgOiAiPWEi
IChfX3JldCksICIrbSIgKCpfX3B0cikgOiAicSIgKF9fbmV3KSwgIjAiIChfX29sZCkgOiAibWVt
b3J5Iik7IGJyZWFrOyB9IGNhc2UgMjogeyB2b2xhdGlsZSB1MTYgKl9fcHRyID0gKHZvbGF0aWxl
IHUxNiAqKSgoJnYtPmNvdW50ZXIpKTsgYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9s
b2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rp
b25cbiIgIjY3MToiICJcblx0bG9jazsgIiAiY21weGNoZ3cgJTIsJTEiIDogIj1hIiAoX19yZXQp
LCAiK20iICgqX19wdHIpIDogInIiIChfX25ldyksICIwIiAoX19vbGQpIDogIm1lbW9yeSIpOyBi
cmVhazsgfSBjYXNlIDQ6IHsgdm9sYXRpbGUgdTMyICpfX3B0ciA9ICh2b2xhdGlsZSB1MzIgKiko
KCZ2LT5jb3VudGVyKSk7IGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJh
XCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2
NzE6IiAiXG5cdGxvY2s7ICIgImNtcHhjaGdsICUyLCUxIiA6ICI9YSIgKF9fcmV0KSwgIittIiAo
Kl9fcHRyKSA6ICJyIiAoX19uZXcpLCAiMCIgKF9fb2xkKSA6ICJtZW1vcnkiKTsgYnJlYWs7IH0g
Y2FzZSA4OiB7IHZvbGF0aWxlIHU2NCAqX19wdHIgPSAodm9sYXRpbGUgdTY0ICopKCgmdi0+Y291
bnRlcikpOyBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIu
YmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxu
XHRsb2NrOyAiICJjbXB4Y2hncSAlMiwlMSIgOiAiPWEiIChfX3JldCksICIrbSIgKCpfX3B0cikg
OiAiciIgKF9fbmV3KSwgIjAiIChfX29sZCkgOiAibWVtb3J5Iik7IGJyZWFrOyB9IGRlZmF1bHQ6
IF9fY21weGNoZ193cm9uZ19zaXplKCk7IH0gX19yZXQ7IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9vbCBhcmNo
X2F0b21pYzY0X3RyeV9jbXB4Y2hnKGF0b21pYzY0X3QgKnYsIHM2NCAqb2xkLCBzNjQgbmV3KQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiAoeyBib29sIHN1Y2Nlc3M7IF9fdHlwZW9mX18oKCgmdi0+
Y291bnRlcikpKSBfb2xkID0gKF9fdHlwZW9mX18oKCgmdi0+Y291bnRlcikpKSkoKChvbGQpKSk7
IF9fdHlwZW9mX18oKigoKCZ2LT5jb3VudGVyKSkpKSBfX29sZCA9ICpfb2xkOyBfX3R5cGVvZl9f
KCooKCgmdi0+Y291bnRlcikpKSkgX19uZXcgPSAoKChuZXcpKSk7IHN3aXRjaCAoKHNpemVvZigq
KCZ2LT5jb3VudGVyKSkpKSB7IGNhc2UgMTogeyB2b2xhdGlsZSB1OCAqX19wdHIgPSAodm9sYXRp
bGUgdTggKikoKCgmdi0+Y291bnRlcikpKTsgYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNt
cF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNl
Y3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAiY21weGNoZ2IgJVtuZXddLCAlW3B0cl0iICJc
blx0Lyogb3V0cHV0IGNvbmRpdGlvbiBjb2RlICIgInoiICIqL1xuIiA6ICI9QGNjIiAieiIgKHN1
Y2Nlc3MpLCBbcHRyXSAiK20iICgqX19wdHIpLCBbb2xkXSAiK2EiIChfX29sZCkgOiBbbmV3XSAi
cSIgKF9fbmV3KSA6ICJtZW1vcnkiKTsgYnJlYWs7IH0gY2FzZSAyOiB7IHZvbGF0aWxlIHUxNiAq
X19wdHIgPSAodm9sYXRpbGUgdTE2ICopKCgoJnYtPmNvdW50ZXIpKSk7IGFzbSB2b2xhdGlsZSgi
LnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcx
ZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImNtcHhjaGd3ICVb
bmV3XSwgJVtwdHJdIiAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJ6IiAiKi9cbiIg
OiAiPUBjYyIgInoiIChzdWNjZXNzKSwgW3B0cl0gIittIiAoKl9fcHRyKSwgW29sZF0gIithIiAo
X19vbGQpIDogW25ld10gInIiIChfX25ldykgOiAibWVtb3J5Iik7IGJyZWFrOyB9IGNhc2UgNDog
eyB2b2xhdGlsZSB1MzIgKl9fcHRyID0gKHZvbGF0aWxlIHUzMiAqKSgoKCZ2LT5jb3VudGVyKSkp
OyBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWdu
IDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2Nr
OyAiICJjbXB4Y2hnbCAlW25ld10sICVbcHRyXSIgIlxuXHQvKiBvdXRwdXQgY29uZGl0aW9uIGNv
ZGUgIiAieiIgIiovXG4iIDogIj1AY2MiICJ6IiAoc3VjY2VzcyksIFtwdHJdICIrbSIgKCpfX3B0
ciksIFtvbGRdICIrYSIgKF9fb2xkKSA6IFtuZXddICJyIiAoX19uZXcpIDogIm1lbW9yeSIpOyBi
cmVhazsgfSBjYXNlIDg6IHsgdm9sYXRpbGUgdTY0ICpfX3B0ciA9ICh2b2xhdGlsZSB1NjQgKiko
KCgmdi0+Y291bnRlcikpKTsgYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2Nrcyxc
ImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIg
IjY3MToiICJcblx0bG9jazsgIiAiY21weGNoZ3EgJVtuZXddLCAlW3B0cl0iICJcblx0Lyogb3V0
cHV0IGNvbmRpdGlvbiBjb2RlICIgInoiICIqL1xuIiA6ICI9QGNjIiAieiIgKHN1Y2Nlc3MpLCBb
cHRyXSAiK20iICgqX19wdHIpLCBbb2xkXSAiK2EiIChfX29sZCkgOiBbbmV3XSAiciIgKF9fbmV3
KSA6ICJtZW1vcnkiKTsgYnJlYWs7IH0gZGVmYXVsdDogX19jbXB4Y2hnX3dyb25nX3NpemUoKTsg
fSBpZiAoX19idWlsdGluX2V4cGVjdCghISghc3VjY2VzcyksIDApKSAqX29sZCA9IF9fb2xkOyBf
X2J1aWx0aW5fZXhwZWN0KCEhKHN1Y2Nlc3MpLCAxKTsgfSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHM2NCBhcmNoX2F0b21pYzY0X3hjaGcoYXRvbWljNjRfdCAqdiwgczY0IG5ldykKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4gKHsgX190eXBlb2ZfXyAoKigoJnYtPmNvdW50ZXIpKSkgX19yZXQg
PSAoKG5ldykpOyBzd2l0Y2ggKHNpemVvZigqKCgmdi0+Y291bnRlcikpKSkgeyBjYXNlIDE6IGFz
bSB2b2xhdGlsZSAoIiIgInhjaGciICJiICViMCwgJTFcbiIgOiAiK3EiIChfX3JldCksICIrbSIg
KCooKCZ2LT5jb3VudGVyKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBjYXNlIDI6IGFz
bSB2b2xhdGlsZSAoIiIgInhjaGciICJ3ICV3MCwgJTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIg
KCooKCZ2LT5jb3VudGVyKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBjYXNlIDQ6IGFz
bSB2b2xhdGlsZSAoIiIgInhjaGciICJsICUwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwgIittIiAo
KigoJnYtPmNvdW50ZXIpKSkgOiA6ICJtZW1vcnkiLCAiY2MiKTsgYnJlYWs7IGNhc2UgODogYXNt
IHZvbGF0aWxlICgiIiAieGNoZyIgInEgJXEwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwgIittIiAo
KigoJnYtPmNvdW50ZXIpKSkgOiA6ICJtZW1vcnkiLCAiY2MiKTsgYnJlYWs7IGRlZmF1bHQ6IF9f
eGNoZ193cm9uZ19zaXplKCk7IH0gX19yZXQ7IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGFyY2hfYXRvbWljNjRfYW5kKHM2NCBpLCBhdG9taWM2NF90ICp2KQoxNDQ3NDogewoxNDQ3
NDogIGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxp
Z24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxv
Y2s7ICIgImFuZHEgJTEsJTAiCjE0NDc0OiAgICA6ICIrbSIgKHYtPmNvdW50ZXIpCjE0NDc0OiAg
ICA6ICJlciIgKGkpCjE0NDc0OiAgICA6ICJtZW1vcnkiKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgczY0IGFyY2hfYXRvbWljNjRfZmV0Y2hfYW5kKHM2NCBpLCBhdG9taWM2NF90ICp2KQoxNDQ3
NDogewoxNDQ3NDogIHM2NCB2YWwgPSBhcmNoX2F0b21pYzY0X3JlYWQodik7CjE0NDc0OiAKMTQ0
NzQ6ICBkbyB7CjE0NDc0OiAgfSB3aGlsZSAoIWFyY2hfYXRvbWljNjRfdHJ5X2NtcHhjaGcodiwg
JnZhbCwgdmFsICYgaSkpOwoxNDQ3NDogIHJldHVybiB2YWw7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgYXJjaF9hdG9taWM2NF9vcihzNjQgaSwgYXRvbWljNjRfdCAqdikKMTQ0NzQ6IHsK
MTQ0NzQ6ICBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIu
YmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxu
XHRsb2NrOyAiICJvcnEgJTEsJTAiCjE0NDc0OiAgICA6ICIrbSIgKHYtPmNvdW50ZXIpCjE0NDc0
OiAgICA6ICJlciIgKGkpCjE0NDc0OiAgICA6ICJtZW1vcnkiKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgczY0IGFyY2hfYXRvbWljNjRfZmV0Y2hfb3IoczY0IGksIGF0b21pYzY0X3QgKnYpCjE0
NDc0OiB7CjE0NDc0OiAgczY0IHZhbCA9IGFyY2hfYXRvbWljNjRfcmVhZCh2KTsKMTQ0NzQ6IAox
NDQ3NDogIGRvIHsKMTQ0NzQ6ICB9IHdoaWxlICghYXJjaF9hdG9taWM2NF90cnlfY21weGNoZyh2
LCAmdmFsLCB2YWwgfCBpKSk7CjE0NDc0OiAgcmV0dXJuIHZhbDsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBhcmNoX2F0b21pYzY0X3hvcihzNjQgaSwgYXRvbWljNjRfdCAqdikKMTQ0NzQ6
IHsKMTQ0NzQ6ICBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4i
ICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIg
IlxuXHRsb2NrOyAiICJ4b3JxICUxLCUwIgoxNDQ3NDogICAgOiAiK20iICh2LT5jb3VudGVyKQox
NDQ3NDogICAgOiAiZXIiIChpKQoxNDQ3NDogICAgOiAibWVtb3J5Iik7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHM2NCBhcmNoX2F0b21pYzY0X2ZldGNoX3hvcihzNjQgaSwgYXRvbWljNjRfdCAq
dikKMTQ0NzQ6IHsKMTQ0NzQ6ICBzNjQgdmFsID0gYXJjaF9hdG9taWM2NF9yZWFkKHYpOwoxNDQ3
NDogCjE0NDc0OiAgZG8gewoxNDQ3NDogIH0gd2hpbGUgKCFhcmNoX2F0b21pYzY0X3RyeV9jbXB4
Y2hnKHYsICZ2YWwsIHZhbCBeIGkpKTsKMTQ0NzQ6ICByZXR1cm4gdmFsOwoxNDQ3NDogfQoxNDQ3
NDogIyAyNjMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljLmgiIDIKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVk
LmgiIDEKMTQ0NzQ6ICMgMjAgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVu
dGVkLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9idWlsZF9idWcuaCIgMQoxNDQ3NDog
IyAyMSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaCIgMgoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGludAoxNDQ3NDogYXRvbWljX3JlYWQoY29uc3QgYXRvbWljX3Qg
KnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfcmVhZCh2LCBzaXplb2YoKnYpKTsKMTQ0
NzQ6ICByZXR1cm4gYXJjaF9hdG9taWNfcmVhZCh2KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNDEgIi4v
aW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmgiCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0
NDc0OiBhdG9taWNfc2V0KGF0b21pY190ICp2LCBpbnQgaSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNh
bl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKMTQ0NzQ6ICBhcmNoX2F0b21pY19zZXQodiwg
aSk7CjE0NDc0OiB9CjE0NDc0OiAjIDU5ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWlu
c3RydW1lbnRlZC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogYXRvbWljX2FkZChpbnQgaSwgYXRvbWlj
X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7
CjE0NDc0OiAgYXJjaF9hdG9taWNfYWRkKGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50CjE0NDc0OiBhdG9taWNfYWRkX3JldHVybihpbnQgaSwgYXRvbWlj
X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7
CjE0NDc0OiAgcmV0dXJuIGFyY2hfYXRvbWljX2FkZF9yZXR1cm4oaSwgdik7CjE0NDc0OiB9CjE0
NDc0OiAjIDEwOCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaCIK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGludAoxNDQ3NDogYXRvbWljX2ZldGNoX2FkZChpbnQgaSwgYXRvbWljX3QgKnYpCjE0
NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CjE0NDc0OiAg
cmV0dXJuIGFyY2hfYXRvbWljX2ZldGNoX2FkZChpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTQ3
ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZAoxNDQ3NDogYXRvbWljX3N1YihpbnQgaSwgYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAg
a2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CjE0NDc0OiAgYXJjaF9hdG9taWNfc3Vi
KGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CjE0NDc0
OiBhdG9taWNfc3ViX3JldHVybihpbnQgaSwgYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAg
a2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CjE0NDc0OiAgcmV0dXJuIGFyY2hfYXRv
bWljX3N1Yl9yZXR1cm4oaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAjIDE5NiAiLi9pbmNsdWRlL2Fz
bS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAoxNDQ3NDogYXRvbWlj
X2ZldGNoX3N1YihpbnQgaSwgYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hl
Y2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CjE0NDc0OiAgcmV0dXJuIGFyY2hfYXRvbWljX2ZldGNo
X3N1YihpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjM2ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMv
YXRvbWljLWluc3RydW1lbnRlZC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogYXRvbWljX2luYyhhdG9t
aWNfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYp
KTsKMTQ0NzQ6ICBhcmNoX2F0b21pY19pbmModik7CjE0NDc0OiB9CjE0NDc0OiAjIDMyNiAiLi9p
bmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaCIKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKMTQ0
NzQ6IGF0b21pY19kZWMoYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tf
d3JpdGUodiwgc2l6ZW9mKCp2KSk7CjE0NDc0OiAgYXJjaF9hdG9taWNfZGVjKHYpOwoxNDQ3NDog
fQoxNDQ3NDogIyA0MTUgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVk
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBhdG9taWNfYW5kKGludCBpLCBhdG9taWNfdCAqdikKMTQ0
NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKMTQ0NzQ6ICBh
cmNoX2F0b21pY19hbmQoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBpbnQKMTQ0NzQ6IGF0b21pY19mZXRjaF9hbmQoaW50IGksIGF0b21pY190ICp2KQoxNDQ3
NDogewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwoxNDQ3NDogIHJl
dHVybiBhcmNoX2F0b21pY19mZXRjaF9hbmQoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAjIDUxMyAi
Li9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQK
MTQ0NzQ6IGF0b21pY19vcihpbnQgaSwgYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAga2Fz
YW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CjE0NDc0OiAgYXJjaF9hdG9taWNfb3IoaSwg
dik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKMTQ0NzQ6IGF0
b21pY19mZXRjaF9vcihpbnQgaSwgYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5f
Y2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CjE0NDc0OiAgcmV0dXJuIGFyY2hfYXRvbWljX2Zl
dGNoX29yKGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogIyA1NjEgIi4vaW5jbHVkZS9hc20tZ2VuZXJp
Yy9hdG9taWMtaW5zdHJ1bWVudGVkLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBhdG9taWNfeG9yKGlu
dCBpLCBhdG9taWNfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZSh2LCBz
aXplb2YoKnYpKTsKMTQ0NzQ6ICBhcmNoX2F0b21pY194b3IoaSwgdik7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKMTQ0NzQ6IGF0b21pY19mZXRjaF94b3IoaW50
IGksIGF0b21pY190ICp2KQoxNDQ3NDogewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNp
emVvZigqdikpOwoxNDQ3NDogIHJldHVybiBhcmNoX2F0b21pY19mZXRjaF94b3IoaSwgdik7CjE0
NDc0OiB9CjE0NDc0OiAjIDYxMCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVt
ZW50ZWQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludAoxNDQ3NDogYXRvbWljX3hjaGcoYXRvbWljX3QgKnYsIGludCBp
KQoxNDQ3NDogewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwoxNDQ3
NDogIHJldHVybiBhcmNoX2F0b21pY194Y2hnKHYsIGkpOwoxNDQ3NDogfQoxNDQ3NDogIyA2NTAg
Ii4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmgiCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQK
MTQ0NzQ6IGF0b21pY19jbXB4Y2hnKGF0b21pY190ICp2LCBpbnQgb2xkLCBpbnQgbmV3KQoxNDQ3
NDogewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwoxNDQ3NDogIHJl
dHVybiBhcmNoX2F0b21pY19jbXB4Y2hnKHYsIG9sZCwgbmV3KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMg
NjkwICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbAoxNDQ3NDogYXRvbWljX3RyeV9jbXB4Y2hnKGF0b21pY190ICp2LCBpbnQgKm9sZCwgaW50
IG5ldykKMTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsK
MTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZShvbGQsIHNpemVvZigqb2xkKSk7CjE0NDc0OiAgcmV0
dXJuIGFyY2hfYXRvbWljX3RyeV9jbXB4Y2hnKHYsIG9sZCwgbmV3KTsKMTQ0NzQ6IH0KMTQ0NzQ6
ICMgNzM0ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgYm9vbAoxNDQ3NDogYXRvbWljX3N1Yl9hbmRfdGVzdChpbnQgaSwgYXRvbWljX3QgKnYpCjE0
NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CjE0NDc0OiAg
cmV0dXJuIGFyY2hfYXRvbWljX3N1Yl9hbmRfdGVzdChpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAoxNDQ3NDogYXRvbWljX2RlY19hbmRf
dGVzdChhdG9taWNfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZSh2LCBz
aXplb2YoKnYpKTsKMTQ0NzQ6ICByZXR1cm4gYXJjaF9hdG9taWNfZGVjX2FuZF90ZXN0KHYpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sCjE0NDc0
OiBhdG9taWNfaW5jX2FuZF90ZXN0KGF0b21pY190ICp2KQoxNDQ3NDogewoxNDQ3NDogIGthc2Fu
X2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwoxNDQ3NDogIHJldHVybiBhcmNoX2F0b21pY19p
bmNfYW5kX3Rlc3Qodik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGJvb2wKMTQ0NzQ6IGF0b21pY19hZGRfbmVnYXRpdmUoaW50IGksIGF0b21pY190ICp2
KQoxNDQ3NDogewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwoxNDQ3
NDogIHJldHVybiBhcmNoX2F0b21pY19hZGRfbmVnYXRpdmUoaSwgdik7CjE0NDc0OiB9CjE0NDc0
OiAjIDgzMyAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaCIKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHM2NAoxNDQ3NDogYXRvbWljNjRfcmVhZChjb25zdCBhdG9taWM2NF90ICp2KQoxNDQ3NDog
ewoxNDQ3NDogIGthc2FuX2NoZWNrX3JlYWQodiwgc2l6ZW9mKCp2KSk7CjE0NDc0OiAgcmV0dXJu
IGFyY2hfYXRvbWljNjRfcmVhZCh2KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgODUxICIuL2luY2x1ZGUv
YXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogYXRv
bWljNjRfc2V0KGF0b21pYzY0X3QgKnYsIHM2NCBpKQoxNDQ3NDogewoxNDQ3NDogIGthc2FuX2No
ZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwoxNDQ3NDogIGFyY2hfYXRvbWljNjRfc2V0KHYsIGkp
OwoxNDQ3NDogfQoxNDQ3NDogIyA4NjkgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5z
dHJ1bWVudGVkLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBhdG9taWM2NF9hZGQoczY0IGksIGF0b21p
YzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2
KSk7CjE0NDc0OiAgYXJjaF9hdG9taWM2NF9hZGQoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBzNjQKMTQ0NzQ6IGF0b21pYzY0X2FkZF9yZXR1cm4oczY0IGks
IGF0b21pYzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6
ZW9mKCp2KSk7CjE0NDc0OiAgcmV0dXJuIGFyY2hfYXRvbWljNjRfYWRkX3JldHVybihpLCB2KTsK
MTQ0NzQ6IH0KMTQ0NzQ6ICMgOTE4ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWluc3Ry
dW1lbnRlZC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgczY0CjE0NDc0OiBhdG9taWM2NF9mZXRjaF9hZGQoczY0IGksIGF0
b21pYzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9m
KCp2KSk7CjE0NDc0OiAgcmV0dXJuIGFyY2hfYXRvbWljNjRfZmV0Y2hfYWRkKGksIHYpOwoxNDQ3
NDogfQoxNDQ3NDogIyA5NTcgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVu
dGVkLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBhdG9taWM2NF9zdWIoczY0IGksIGF0b21pYzY0X3Qg
KnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CjE0
NDc0OiAgYXJjaF9hdG9taWM2NF9zdWIoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBzNjQKMTQ0NzQ6IGF0b21pYzY0X3N1Yl9yZXR1cm4oczY0IGksIGF0b21p
YzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2
KSk7CjE0NDc0OiAgcmV0dXJuIGFyY2hfYXRvbWljNjRfc3ViX3JldHVybihpLCB2KTsKMTQ0NzQ6
IH0KMTQ0NzQ6ICMgMTAwNiAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50
ZWQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHM2NAoxNDQ3NDogYXRvbWljNjRfZmV0Y2hfc3ViKHM2NCBpLCBhdG9taWM2
NF90ICp2KQoxNDQ3NDogewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikp
OwoxNDQ3NDogIHJldHVybiBhcmNoX2F0b21pYzY0X2ZldGNoX3N1YihpLCB2KTsKMTQ0NzQ6IH0K
MTQ0NzQ6ICMgMTA0NiAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQu
aCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQKMTQ0NzQ6IGF0b21pYzY0X2luYyhhdG9taWM2NF90ICp2KQoxNDQ3NDog
ewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwoxNDQ3NDogIGFyY2hf
YXRvbWljNjRfaW5jKHYpOwoxNDQ3NDogfQoxNDQ3NDogIyAxMTM2ICIuL2luY2x1ZGUvYXNtLWdl
bmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogYXRvbWljNjRf
ZGVjKGF0b21pYzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfd3JpdGUodiwg
c2l6ZW9mKCp2KSk7CjE0NDc0OiAgYXJjaF9hdG9taWM2NF9kZWModik7CjE0NDc0OiB9CjE0NDc0
OiAjIDEyMjUgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmgiCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkCjE0NDc0OiBhdG9taWM2NF9hbmQoczY0IGksIGF0b21pYzY0X3QgKnYpCjE0NDc0
OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CjE0NDc0OiAgYXJj
aF9hdG9taWM2NF9hbmQoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBzNjQKMTQ0NzQ6IGF0b21pYzY0X2ZldGNoX2FuZChzNjQgaSwgYXRvbWljNjRfdCAqdikK
MTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKMTQ0NzQ6
ICByZXR1cm4gYXJjaF9hdG9taWM2NF9mZXRjaF9hbmQoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAj
IDEzMjMgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkCjE0NDc0OiBhdG9taWM2NF9vcihzNjQgaSwgYXRvbWljNjRfdCAqdikKMTQ0NzQ6IHsK
MTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKMTQ0NzQ6ICBhcmNoX2F0
b21pYzY0X29yKGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
czY0CjE0NDc0OiBhdG9taWM2NF9mZXRjaF9vcihzNjQgaSwgYXRvbWljNjRfdCAqdikKMTQ0NzQ6
IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKMTQ0NzQ6ICByZXR1
cm4gYXJjaF9hdG9taWM2NF9mZXRjaF9vcihpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTM3MSAi
Li9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQK
MTQ0NzQ6IGF0b21pYzY0X3hvcihzNjQgaSwgYXRvbWljNjRfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6
ICBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKMTQ0NzQ6ICBhcmNoX2F0b21pYzY0
X3hvcihpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAox
NDQ3NDogYXRvbWljNjRfZmV0Y2hfeG9yKHM2NCBpLCBhdG9taWM2NF90ICp2KQoxNDQ3NDogewox
NDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwoxNDQ3NDogIHJldHVybiBh
cmNoX2F0b21pYzY0X2ZldGNoX3hvcihpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTQyMCAiLi9p
bmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaCIKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAoxNDQ3
NDogYXRvbWljNjRfeGNoZyhhdG9taWM2NF90ICp2LCBzNjQgaSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBr
YXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKMTQ0NzQ6ICByZXR1cm4gYXJjaF9hdG9t
aWM2NF94Y2hnKHYsIGkpOwoxNDQ3NDogfQoxNDQ3NDogIyAxNDYwICIuL2luY2x1ZGUvYXNtLWdl
bmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CjE0NDc0OiBhdG9taWM2NF9j
bXB4Y2hnKGF0b21pYzY0X3QgKnYsIHM2NCBvbGQsIHM2NCBuZXcpCjE0NDc0OiB7CjE0NDc0OiAg
a2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CjE0NDc0OiAgcmV0dXJuIGFyY2hfYXRv
bWljNjRfY21weGNoZyh2LCBvbGQsIG5ldyk7CjE0NDc0OiB9CjE0NDc0OiAjIDE1MDAgIi4vaW5j
bHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmgiCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sCjE0NDc0
OiBhdG9taWM2NF90cnlfY21weGNoZyhhdG9taWM2NF90ICp2LCBzNjQgKm9sZCwgczY0IG5ldykK
MTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKMTQ0NzQ6
ICBrYXNhbl9jaGVja193cml0ZShvbGQsIHNpemVvZigqb2xkKSk7CjE0NDc0OiAgcmV0dXJuIGFy
Y2hfYXRvbWljNjRfdHJ5X2NtcHhjaGcodiwgb2xkLCBuZXcpOwoxNDQ3NDogfQoxNDQ3NDogIyAx
NTQ0ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbAoxNDQ3NDogYXRvbWljNjRfc3ViX2FuZF90ZXN0KHM2NCBpLCBhdG9taWM2NF90ICp2KQox
NDQ3NDogewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwoxNDQ3NDog
IHJldHVybiBhcmNoX2F0b21pYzY0X3N1Yl9hbmRfdGVzdChpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAoxNDQ3NDogYXRvbWljNjRfZGVj
X2FuZF90ZXN0KGF0b21pYzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfd3Jp
dGUodiwgc2l6ZW9mKCp2KSk7CjE0NDc0OiAgcmV0dXJuIGFyY2hfYXRvbWljNjRfZGVjX2FuZF90
ZXN0KHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBi
b29sCjE0NDc0OiBhdG9taWM2NF9pbmNfYW5kX3Rlc3QoYXRvbWljNjRfdCAqdikKMTQ0NzQ6IHsK
MTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKMTQ0NzQ6ICByZXR1cm4g
YXJjaF9hdG9taWM2NF9pbmNfYW5kX3Rlc3Qodik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKMTQ0NzQ6IGF0b21pYzY0X2FkZF9uZWdhdGl2ZShz
NjQgaSwgYXRvbWljNjRfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZSh2
LCBzaXplb2YoKnYpKTsKMTQ0NzQ6ICByZXR1cm4gYXJjaF9hdG9taWM2NF9hZGRfbmVnYXRpdmUo
aSwgdik7CjE0NDc0OiB9CjE0NDc0OiAjIDI2NiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9t
aWMuaCIgMgoxNDQ3NDogIyA4ICIuL2luY2x1ZGUvbGludXgvYXRvbWljLmgiIDIKMTQ0NzQ6ICMg
NzQgIi4vaW5jbHVkZS9saW51eC9hdG9taWMuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4
L2F0b21pYy1mYWxsYmFjay5oIiAxCjE0NDc0OiAjIDc5ICIuL2luY2x1ZGUvbGludXgvYXRvbWlj
LWZhbGxiYWNrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKMTQ0NzQ6IGF0b21pY19yZWFkX2FjcXVpcmUoY29uc3Qg
YXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IHR5cGVvZigqJih2KS0+Y291
bnRlcikgX19fcDEgPSAoeyB1bmlvbiB7IHR5cGVvZigqJih2KS0+Y291bnRlcikgX192YWw7IGNo
YXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJigqJih2KS0+Y291bnRl
ciksIF9fdS5fX2MsIHNpemVvZigqJih2KS0+Y291bnRlcikpOyBlbHNlIF9fcmVhZF9vbmNlX3Np
emVfbm9jaGVjaygmKComKHYpLT5jb3VudGVyKSwgX191Ll9fYywgc2l6ZW9mKComKHYpLT5jb3Vu
dGVyKSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7IGRvIHsgZXh0ZXJuIHZvaWQg
X19jb21waWxldGltZV9hc3NlcnRfODIodm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJO
ZWVkIG5hdGl2ZSB3b3JkIHNpemVkIHN0b3Jlcy9sb2FkcyBmb3IgYXRvbWljaXR5LiIpKSk7IGlm
ICghKChzaXplb2YoKiYodiktPmNvdW50ZXIpID09IHNpemVvZihjaGFyKSB8fCBzaXplb2YoKiYo
diktPmNvdW50ZXIpID09IHNpemVvZihzaG9ydCkgfHwgc2l6ZW9mKComKHYpLT5jb3VudGVyKSA9
PSBzaXplb2YoaW50KSB8fCBzaXplb2YoKiYodiktPmNvdW50ZXIpID09IHNpemVvZihsb25nKSkp
KSBfX2NvbXBpbGV0aW1lX2Fzc2VydF84MigpOyB9IHdoaWxlICgwKTsgX19hc21fXyBfX3ZvbGF0
aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgX19fcDE7IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBhdG9taWNfc2V0X3JlbGVhc2Uo
YXRvbWljX3QgKnYsIGludCBpKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgZG8geyBleHRlcm4gdm9p
ZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF85MSh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18o
Ik5lZWQgbmF0aXZlIHdvcmQgc2l6ZWQgc3RvcmVzL2xvYWRzIGZvciBhdG9taWNpdHkuIikpKTsg
aWYgKCEoKHNpemVvZigqJih2KS0+Y291bnRlcikgPT0gc2l6ZW9mKGNoYXIpIHx8IHNpemVvZigq
Jih2KS0+Y291bnRlcikgPT0gc2l6ZW9mKHNob3J0KSB8fCBzaXplb2YoKiYodiktPmNvdW50ZXIp
ID09IHNpemVvZihpbnQpIHx8IHNpemVvZigqJih2KS0+Y291bnRlcikgPT0gc2l6ZW9mKGxvbmcp
KSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzkxKCk7IH0gd2hpbGUgKDApOyBfX2FzbV9fIF9fdm9s
YXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyAoeyB1bmlvbiB7IHR5cGVvZigqJih2KS0+Y291bnRl
cikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2YoKiYodikt
PmNvdW50ZXIpKSAoaSkgfTsgX193cml0ZV9vbmNlX3NpemUoJigqJih2KS0+Y291bnRlciksIF9f
dS5fX2MsIHNpemVvZigqJih2KS0+Y291bnRlcikpOyBfX3UuX192YWw7IH0pOyB9IHdoaWxlICgw
KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjgxICIuL2luY2x1ZGUvbGludXgvYXRvbWljLWZhbGxiYWNr
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBpbnQKMTQ0NzQ6IGF0b21pY19pbmNfcmV0dXJuKGF0b21pY190ICp2KQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiBhdG9taWNfYWRkX3JldHVybigxLCB2KTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CjE0NDc0OiBhdG9taWNfaW5j
X3JldHVybl9hY3F1aXJlKGF0b21pY190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9t
aWNfYWRkX3JldHVybigxLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgaW50CjE0NDc0OiBhdG9taWNfaW5jX3JldHVybl9yZWxlYXNlKGF0b21pY190
ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWNfYWRkX3JldHVybigxLCB2KTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CjE0NDc0OiBh
dG9taWNfaW5jX3JldHVybl9yZWxheGVkKGF0b21pY190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiBhdG9taWNfYWRkX3JldHVybigxLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMzYyICIuL2lu
Y2x1ZGUvbGludXgvYXRvbWljLWZhbGxiYWNrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKMTQ0NzQ6IGF0b21pY19m
ZXRjaF9pbmMoYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pY19mZXRj
aF9hZGQoMSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGludAoxNDQ3NDogYXRvbWljX2ZldGNoX2luY19hY3F1aXJlKGF0b21pY190ICp2KQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiBhdG9taWNfZmV0Y2hfYWRkKDEsIHYpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKMTQ0NzQ6IGF0b21pY19mZXRj
aF9pbmNfcmVsZWFzZShhdG9taWNfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWlj
X2ZldGNoX2FkZCgxLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50CjE0NDc0OiBhdG9taWNfZmV0Y2hfaW5jX3JlbGF4ZWQoYXRvbWljX3QgKnYp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pY19mZXRjaF9hZGQoMSwgdik7CjE0NDc0OiB9
CjE0NDc0OiAjIDQ1MiAiLi9pbmNsdWRlL2xpbnV4L2F0b21pYy1mYWxsYmFjay5oIgoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
aW50CjE0NDc0OiBhdG9taWNfZGVjX3JldHVybihhdG9taWNfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gYXRvbWljX3N1Yl9yZXR1cm4oMSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAoxNDQ3NDogYXRvbWljX2RlY19yZXR1cm5fYWNx
dWlyZShhdG9taWNfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljX3N1Yl9yZXR1
cm4oMSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludAoxNDQ3NDogYXRvbWljX2RlY19yZXR1cm5fcmVsZWFzZShhdG9taWNfdCAqdikKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljX3N1Yl9yZXR1cm4oMSwgdik7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAoxNDQ3NDogYXRvbWljX2RlY19y
ZXR1cm5fcmVsYXhlZChhdG9taWNfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWlj
X3N1Yl9yZXR1cm4oMSwgdik7CjE0NDc0OiB9CjE0NDc0OiAjIDUzMyAiLi9pbmNsdWRlL2xpbnV4
L2F0b21pYy1mYWxsYmFjay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CjE0NDc0OiBhdG9taWNfZmV0Y2hfZGVjKGF0
b21pY190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWNfZmV0Y2hfc3ViKDEsIHYp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKMTQ0
NzQ6IGF0b21pY19mZXRjaF9kZWNfYWNxdWlyZShhdG9taWNfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gYXRvbWljX2ZldGNoX3N1YigxLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CjE0NDc0OiBhdG9taWNfZmV0Y2hfZGVjX3JlbGVh
c2UoYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pY19mZXRjaF9zdWIo
MSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dAoxNDQ3NDogYXRvbWljX2ZldGNoX2RlY19yZWxheGVkKGF0b21pY190ICp2KQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiBhdG9taWNfZmV0Y2hfc3ViKDEsIHYpOwoxNDQ3NDogfQoxNDQ3NDogIyA2
NDkgIi4vaW5jbHVkZS9saW51eC9hdG9taWMtZmFsbGJhY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKMTQ0NzQ6
IGF0b21pY19hbmRub3QoaW50IGksIGF0b21pY190ICp2KQoxNDQ3NDogewoxNDQ3NDogIGF0b21p
Y19hbmQofmksIHYpOwoxNDQ3NDogfQoxNDQ3NDogIyA2NjUgIi4vaW5jbHVkZS9saW51eC9hdG9t
aWMtZmFsbGJhY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAoxNDQ3NDogYXRvbWljX2ZldGNoX2FuZG5vdChpbnQg
aSwgYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pY19mZXRjaF9hbmQo
fmksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQKMTQ0NzQ6IGF0b21pY19mZXRjaF9hbmRub3RfYWNxdWlyZShpbnQgaSwgYXRvbWljX3QgKnYp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pY19mZXRjaF9hbmQofmksIHYpOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKMTQ0NzQ6IGF0b21p
Y19mZXRjaF9hbmRub3RfcmVsZWFzZShpbnQgaSwgYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0
OiAgcmV0dXJuIGF0b21pY19mZXRjaF9hbmQofmksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKMTQ0NzQ6IGF0b21pY19mZXRjaF9hbmRub3Rf
cmVsYXhlZChpbnQgaSwgYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21p
Y19mZXRjaF9hbmQofmksIHYpOwoxNDQ3NDogfQoxNDQ3NDogIyAxMDgzICIuL2luY2x1ZGUvbGlu
dXgvYXRvbWljLWZhbGxiYWNrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKMTQ0NzQ6IGF0b21pY19mZXRjaF9hZGRf
dW5sZXNzKGF0b21pY190ICp2LCBpbnQgYSwgaW50IHUpCjE0NDc0OiB7CjE0NDc0OiAgaW50IGMg
PSBhdG9taWNfcmVhZCh2KTsKMTQ0NzQ6IAoxNDQ3NDogIGRvIHsKMTQ0NzQ6ICAgaWYgKF9fYnVp
bHRpbl9leHBlY3QoISEoYyA9PSB1KSwgMCkpCjE0NDc0OiAgICBicmVhazsKMTQ0NzQ6ICB9IHdo
aWxlICghYXRvbWljX3RyeV9jbXB4Y2hnKHYsICZjLCBjICsgYSkpOwoxNDQ3NDogCjE0NDc0OiAg
cmV0dXJuIGM7CjE0NDc0OiB9CjE0NDc0OiAjIDExMDggIi4vaW5jbHVkZS9saW51eC9hdG9taWMt
ZmFsbGJhY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKMTQ0NzQ6IGF0b21pY19hZGRfdW5sZXNzKGF0b21pY190
ICp2LCBpbnQgYSwgaW50IHUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pY19mZXRjaF9h
ZGRfdW5sZXNzKHYsIGEsIHUpICE9IHU7CjE0NDc0OiB9CjE0NDc0OiAjIDExMjQgIi4vaW5jbHVk
ZS9saW51eC9hdG9taWMtZmFsbGJhY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKMTQ0NzQ6IGF0b21pY19pbmNf
bm90X3plcm8oYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pY19hZGRf
dW5sZXNzKHYsIDEsIDApOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBib29sCjE0NDc0OiBhdG9taWNfaW5jX3VubGVzc19uZWdhdGl2ZShhdG9taWNfdCAq
dikKMTQ0NzQ6IHsKMTQ0NzQ6ICBpbnQgYyA9IGF0b21pY19yZWFkKHYpOwoxNDQ3NDogCjE0NDc0
OiAgZG8gewoxNDQ3NDogICBpZiAoX19idWlsdGluX2V4cGVjdCghIShjIDwgMCksIDApKQoxNDQ3
NDogICAgcmV0dXJuIGZhbHNlOwoxNDQ3NDogIH0gd2hpbGUgKCFhdG9taWNfdHJ5X2NtcHhjaGco
diwgJmMsIGMgKyAxKSk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gdHJ1ZTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAoxNDQ3NDogYXRvbWljX2Rl
Y191bmxlc3NfcG9zaXRpdmUoYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgaW50IGMgPSBh
dG9taWNfcmVhZCh2KTsKMTQ0NzQ6IAoxNDQ3NDogIGRvIHsKMTQ0NzQ6ICAgaWYgKF9fYnVpbHRp
bl9leHBlY3QoISEoYyA+IDApLCAwKSkKMTQ0NzQ6ICAgIHJldHVybiBmYWxzZTsKMTQ0NzQ6ICB9
IHdoaWxlICghYXRvbWljX3RyeV9jbXB4Y2hnKHYsICZjLCBjIC0gMSkpOwoxNDQ3NDogCjE0NDc0
OiAgcmV0dXJuIHRydWU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGludAoxNDQ3NDogYXRvbWljX2RlY19pZl9wb3NpdGl2ZShhdG9taWNfdCAqdikKMTQ0
NzQ6IHsKMTQ0NzQ6ICBpbnQgZGVjLCBjID0gYXRvbWljX3JlYWQodik7CjE0NDc0OiAKMTQ0NzQ6
ICBkbyB7CjE0NDc0OiAgIGRlYyA9IGMgLSAxOwoxNDQ3NDogICBpZiAoX19idWlsdGluX2V4cGVj
dCghIShkZWMgPCAwKSwgMCkpCjE0NDc0OiAgICBicmVhazsKMTQ0NzQ6ICB9IHdoaWxlICghYXRv
bWljX3RyeV9jbXB4Y2hnKHYsICZjLCBkZWMpKTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBkZWM7
CjE0NDc0OiB9CjE0NDc0OiAjIDExODkgIi4vaW5jbHVkZS9saW51eC9hdG9taWMtZmFsbGJhY2su
aCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHM2NAoxNDQ3NDogYXRvbWljNjRfcmVhZF9hY3F1aXJlKGNvbnN0IGF0b21pYzY0
X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IHR5cGVvZigqJih2KS0+Y291bnRlcikg
X19fcDEgPSAoeyB1bmlvbiB7IHR5cGVvZigqJih2KS0+Y291bnRlcikgX192YWw7IGNoYXIgX19j
WzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJigqJih2KS0+Y291bnRlciksIF9f
dS5fX2MsIHNpemVvZigqJih2KS0+Y291bnRlcikpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9j
aGVjaygmKComKHYpLT5jb3VudGVyKSwgX191Ll9fYywgc2l6ZW9mKComKHYpLT5jb3VudGVyKSk7
IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21w
aWxldGltZV9hc3NlcnRfMTE5Mih2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oIk5lZWQg
bmF0aXZlIHdvcmQgc2l6ZWQgc3RvcmVzL2xvYWRzIGZvciBhdG9taWNpdHkuIikpKTsgaWYgKCEo
KHNpemVvZigqJih2KS0+Y291bnRlcikgPT0gc2l6ZW9mKGNoYXIpIHx8IHNpemVvZigqJih2KS0+
Y291bnRlcikgPT0gc2l6ZW9mKHNob3J0KSB8fCBzaXplb2YoKiYodiktPmNvdW50ZXIpID09IHNp
emVvZihpbnQpIHx8IHNpemVvZigqJih2KS0+Y291bnRlcikgPT0gc2l6ZW9mKGxvbmcpKSkpIF9f
Y29tcGlsZXRpbWVfYXNzZXJ0XzExOTIoKTsgfSB3aGlsZSAoMCk7IF9fYXNtX18gX192b2xhdGls
ZV9fKCIiOiA6IDoibWVtb3J5Iik7IF9fX3AxOyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogYXRvbWljNjRfc2V0X3JlbGVhc2Uo
YXRvbWljNjRfdCAqdiwgczY0IGkpCjE0NDc0OiB7CjE0NDc0OiAgZG8geyBkbyB7IGV4dGVybiB2
b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzEyMDEodm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJv
cl9fKCJOZWVkIG5hdGl2ZSB3b3JkIHNpemVkIHN0b3Jlcy9sb2FkcyBmb3IgYXRvbWljaXR5LiIp
KSk7IGlmICghKChzaXplb2YoKiYodiktPmNvdW50ZXIpID09IHNpemVvZihjaGFyKSB8fCBzaXpl
b2YoKiYodiktPmNvdW50ZXIpID09IHNpemVvZihzaG9ydCkgfHwgc2l6ZW9mKComKHYpLT5jb3Vu
dGVyKSA9PSBzaXplb2YoaW50KSB8fCBzaXplb2YoKiYodiktPmNvdW50ZXIpID09IHNpemVvZihs
b25nKSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF8xMjAxKCk7IH0gd2hpbGUgKDApOyBfX2FzbV9f
IF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyAoeyB1bmlvbiB7IHR5cGVvZigqJih2KS0+
Y291bnRlcikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2Yo
KiYodiktPmNvdW50ZXIpKSAoaSkgfTsgX193cml0ZV9vbmNlX3NpemUoJigqJih2KS0+Y291bnRl
ciksIF9fdS5fX2MsIHNpemVvZigqJih2KS0+Y291bnRlcikpOyBfX3UuX192YWw7IH0pOyB9IHdo
aWxlICgwKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTM5MSAiLi9pbmNsdWRlL2xpbnV4L2F0b21pYy1m
YWxsYmFjay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgczY0CjE0NDc0OiBhdG9taWM2NF9pbmNfcmV0dXJuKGF0b21pYzY0
X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2FkZF9yZXR1cm4oMSwgdik7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAoxNDQ3
NDogYXRvbWljNjRfaW5jX3JldHVybl9hY3F1aXJlKGF0b21pYzY0X3QgKnYpCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuIGF0b21pYzY0X2FkZF9yZXR1cm4oMSwgdik7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAoxNDQ3NDogYXRvbWljNjRfaW5jX3Jl
dHVybl9yZWxlYXNlKGF0b21pYzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21p
YzY0X2FkZF9yZXR1cm4oMSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHM2NAoxNDQ3NDogYXRvbWljNjRfaW5jX3JldHVybl9yZWxheGVkKGF0b21p
YzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2FkZF9yZXR1cm4oMSwg
dik7CjE0NDc0OiB9CjE0NDc0OiAjIDE0NzIgIi4vaW5jbHVkZS9saW51eC9hdG9taWMtZmFsbGJh
Y2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHM2NAoxNDQ3NDogYXRvbWljNjRfZmV0Y2hfaW5jKGF0b21pYzY0X3QgKnYp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2ZldGNoX2FkZCgxLCB2KTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CjE0NDc0OiBhdG9t
aWM2NF9mZXRjaF9pbmNfYWNxdWlyZShhdG9taWM2NF90ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiBhdG9taWM2NF9mZXRjaF9hZGQoMSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAoxNDQ3NDogYXRvbWljNjRfZmV0Y2hfaW5jX3JlbGVh
c2UoYXRvbWljNjRfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRfZmV0Y2hf
YWRkKDEsIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBzNjQKMTQ0NzQ6IGF0b21pYzY0X2ZldGNoX2luY19yZWxheGVkKGF0b21pYzY0X3QgKnYpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2ZldGNoX2FkZCgxLCB2KTsKMTQ0NzQ6IH0K
MTQ0NzQ6ICMgMTU2MiAiLi9pbmNsdWRlL2xpbnV4L2F0b21pYy1mYWxsYmFjay5oIgoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
czY0CjE0NDc0OiBhdG9taWM2NF9kZWNfcmV0dXJuKGF0b21pYzY0X3QgKnYpCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuIGF0b21pYzY0X3N1Yl9yZXR1cm4oMSwgdik7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAoxNDQ3NDogYXRvbWljNjRfZGVjX3Jl
dHVybl9hY3F1aXJlKGF0b21pYzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21p
YzY0X3N1Yl9yZXR1cm4oMSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHM2NAoxNDQ3NDogYXRvbWljNjRfZGVjX3JldHVybl9yZWxlYXNlKGF0b21p
YzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X3N1Yl9yZXR1cm4oMSwg
dik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAox
NDQ3NDogYXRvbWljNjRfZGVjX3JldHVybl9yZWxheGVkKGF0b21pYzY0X3QgKnYpCjE0NDc0OiB7
CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X3N1Yl9yZXR1cm4oMSwgdik7CjE0NDc0OiB9CjE0NDc0
OiAjIDE2NDMgIi4vaW5jbHVkZS9saW51eC9hdG9taWMtZmFsbGJhY2suaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAox
NDQ3NDogYXRvbWljNjRfZmV0Y2hfZGVjKGF0b21pYzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIGF0b21pYzY0X2ZldGNoX3N1YigxLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CjE0NDc0OiBhdG9taWM2NF9mZXRjaF9kZWNfYWNx
dWlyZShhdG9taWM2NF90ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRj
aF9zdWIoMSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHM2NAoxNDQ3NDogYXRvbWljNjRfZmV0Y2hfZGVjX3JlbGVhc2UoYXRvbWljNjRfdCAqdikK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRfZmV0Y2hfc3ViKDEsIHYpOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQKMTQ0NzQ6IGF0b21p
YzY0X2ZldGNoX2RlY19yZWxheGVkKGF0b21pYzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuIGF0b21pYzY0X2ZldGNoX3N1YigxLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTc1OSAiLi9p
bmNsdWRlL2xpbnV4L2F0b21pYy1mYWxsYmFjay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogYXRvbWlj
NjRfYW5kbm90KHM2NCBpLCBhdG9taWM2NF90ICp2KQoxNDQ3NDogewoxNDQ3NDogIGF0b21pYzY0
X2FuZCh+aSwgdik7CjE0NDc0OiB9CjE0NDc0OiAjIDE3NzUgIi4vaW5jbHVkZS9saW51eC9hdG9t
aWMtZmFsbGJhY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAoxNDQ3NDogYXRvbWljNjRfZmV0Y2hfYW5kbm90KHM2
NCBpLCBhdG9taWM2NF90ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRj
aF9hbmQofmksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBzNjQKMTQ0NzQ6IGF0b21pYzY0X2ZldGNoX2FuZG5vdF9hY3F1aXJlKHM2NCBpLCBhdG9t
aWM2NF90ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRjaF9hbmQofmks
IHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQK
MTQ0NzQ6IGF0b21pYzY0X2ZldGNoX2FuZG5vdF9yZWxlYXNlKHM2NCBpLCBhdG9taWM2NF90ICp2
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRjaF9hbmQofmksIHYpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQKMTQ0NzQ6IGF0
b21pYzY0X2ZldGNoX2FuZG5vdF9yZWxheGVkKHM2NCBpLCBhdG9taWM2NF90ICp2KQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRjaF9hbmQofmksIHYpOwoxNDQ3NDogfQoxNDQ3
NDogIyAyMTkzICIuL2luY2x1ZGUvbGludXgvYXRvbWljLWZhbGxiYWNrLmgiCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQK
MTQ0NzQ6IGF0b21pYzY0X2ZldGNoX2FkZF91bmxlc3MoYXRvbWljNjRfdCAqdiwgczY0IGEsIHM2
NCB1KQoxNDQ3NDogewoxNDQ3NDogIHM2NCBjID0gYXRvbWljNjRfcmVhZCh2KTsKMTQ0NzQ6IAox
NDQ3NDogIGRvIHsKMTQ0NzQ6ICAgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoYyA9PSB1KSwgMCkp
CjE0NDc0OiAgICBicmVhazsKMTQ0NzQ6ICB9IHdoaWxlICghYXRvbWljNjRfdHJ5X2NtcHhjaGco
diwgJmMsIGMgKyBhKSk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gYzsKMTQ0NzQ6IH0KMTQ0NzQ6
ICMgMjIxOCAiLi9pbmNsdWRlL2xpbnV4L2F0b21pYy1mYWxsYmFjay5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAox
NDQ3NDogYXRvbWljNjRfYWRkX3VubGVzcyhhdG9taWM2NF90ICp2LCBzNjQgYSwgczY0IHUpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2ZldGNoX2FkZF91bmxlc3ModiwgYSwgdSkg
IT0gdTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjIzNCAiLi9pbmNsdWRlL2xpbnV4L2F0b21pYy1mYWxs
YmFjay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgYm9vbAoxNDQ3NDogYXRvbWljNjRfaW5jX25vdF96ZXJvKGF0b21pYzY0
X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2FkZF91bmxlc3ModiwgMSwg
MCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wK
MTQ0NzQ6IGF0b21pYzY0X2luY191bmxlc3NfbmVnYXRpdmUoYXRvbWljNjRfdCAqdikKMTQ0NzQ6
IHsKMTQ0NzQ6ICBzNjQgYyA9IGF0b21pYzY0X3JlYWQodik7CjE0NDc0OiAKMTQ0NzQ6ICBkbyB7
CjE0NDc0OiAgIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKGMgPCAwKSwgMCkpCjE0NDc0OiAgICBy
ZXR1cm4gZmFsc2U7CjE0NDc0OiAgfSB3aGlsZSAoIWF0b21pYzY0X3RyeV9jbXB4Y2hnKHYsICZj
LCBjICsgMSkpOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIHRydWU7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKMTQ0NzQ6IGF0b21pYzY0X2RlY191
bmxlc3NfcG9zaXRpdmUoYXRvbWljNjRfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBzNjQgYyA9IGF0
b21pYzY0X3JlYWQodik7CjE0NDc0OiAKMTQ0NzQ6ICBkbyB7CjE0NDc0OiAgIGlmIChfX2J1aWx0
aW5fZXhwZWN0KCEhKGMgPiAwKSwgMCkpCjE0NDc0OiAgICByZXR1cm4gZmFsc2U7CjE0NDc0OiAg
fSB3aGlsZSAoIWF0b21pYzY0X3RyeV9jbXB4Y2hnKHYsICZjLCBjIC0gMSkpOwoxNDQ3NDogCjE0
NDc0OiAgcmV0dXJuIHRydWU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHM2NAoxNDQ3NDogYXRvbWljNjRfZGVjX2lmX3Bvc2l0aXZlKGF0b21pYzY0X3Qg
KnYpCjE0NDc0OiB7CjE0NDc0OiAgczY0IGRlYywgYyA9IGF0b21pYzY0X3JlYWQodik7CjE0NDc0
OiAKMTQ0NzQ6ICBkbyB7CjE0NDc0OiAgIGRlYyA9IGMgLSAxOwoxNDQ3NDogICBpZiAoX19idWls
dGluX2V4cGVjdCghIShkZWMgPCAwKSwgMCkpCjE0NDc0OiAgICBicmVhazsKMTQ0NzQ6ICB9IHdo
aWxlICghYXRvbWljNjRfdHJ5X2NtcHhjaGcodiwgJmMsIGRlYykpOwoxNDQ3NDogCjE0NDc0OiAg
cmV0dXJuIGRlYzsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNzUgIi4vaW5jbHVkZS9saW51eC9hdG9taWMu
aCIgMgoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtbG9u
Zy5oIiAxCjE0NDc0OiAjIDkgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtbG9uZy5oIgox
NDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL3R5cGVzLmgi
IDEKMTQ0NzQ6ICMgMTAgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtbG9uZy5oIiAyCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBhdG9taWM2NF90IGF0b21pY19sb25nX3Q7CjE0
NDc0OiAjIDI1ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWxvbmcuaCIKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxv
bmcKMTQ0NzQ6IGF0b21pY19sb25nX3JlYWQoY29uc3QgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRfcmVhZCh2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgbG9uZwoxNDQ3NDogYXRvbWljX2xvbmdfcmVhZF9hY3F1aXJlKGNvbnN0IGF0b21pY19sb25n
X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X3JlYWRfYWNxdWlyZSh2KTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogYXRvbWljX2xvbmdfc2V0KGF0b21p
Y19sb25nX3QgKnYsIGxvbmcgaSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBhdG9taWM2NF9zZXQodiwgaSk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKMTQ0NzQ6IGF0b21pY19sb25nX3NldF9yZWxl
YXNlKGF0b21pY19sb25nX3QgKnYsIGxvbmcgaSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBhdG9taWM2NF9z
ZXRfcmVsZWFzZSh2LCBpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogYXRv
bWljX2xvbmdfYWRkKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBh
dG9taWM2NF9hZGQoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0
b21pY19sb25nX2FkZF9yZXR1cm4obG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiBhdG9taWM2NF9hZGRfcmV0dXJuKGksIHYpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBsb25nCjE0NDc0OiBhdG9taWNfbG9uZ19hZGRfcmV0dXJuX2FjcXVpcmUobG9uZyBp
LCBhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9hZGRf
cmV0dXJuKGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCjE0NDc0OiBhdG9taWNf
bG9uZ19hZGRfcmV0dXJuX3JlbGVhc2UobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9hZGRfcmV0dXJuKGksIHYpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBsb25nCjE0NDc0OiBhdG9taWNfbG9uZ19hZGRfcmV0dXJuX3JlbGF4ZWQobG9u
ZyBpLCBhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9h
ZGRfcmV0dXJuKGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCjE0NDc0OiBhdG9t
aWNfbG9uZ19mZXRjaF9hZGQobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiBhdG9taWM2NF9mZXRjaF9hZGQoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX2ZldGNoX2FkZF9hY3F1aXJlKGxvbmcgaSwgYXRv
bWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRfZmV0Y2hfYWRk
KGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCjE0NDc0OiBhdG9taWNfbG9uZ19m
ZXRjaF9hZGRfcmVsZWFzZShsb25nIGksIGF0b21pY19sb25nX3QgKnYpCjE0NDc0OiB7CjE0NDc0
OiAgcmV0dXJuIGF0b21pYzY0X2ZldGNoX2FkZChpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgbG9uZwoxNDQ3NDogYXRvbWljX2xvbmdfZmV0Y2hfYWRkX3JlbGF4ZWQobG9uZyBpLCBhdG9t
aWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRjaF9hZGQo
aSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKMTQ0NzQ6IGF0b21pY19sb25nX3N1
Yihsb25nIGksIGF0b21pY19sb25nX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgYXRvbWljNjRfc3Vi
KGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCjE0NDc0OiBhdG9taWNfbG9uZ19z
dWJfcmV0dXJuKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gYXRvbWljNjRfc3ViX3JldHVybihpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9u
ZwoxNDQ3NDogYXRvbWljX2xvbmdfc3ViX3JldHVybl9hY3F1aXJlKGxvbmcgaSwgYXRvbWljX2xv
bmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRfc3ViX3JldHVybihpLCB2
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwoxNDQ3NDogYXRvbWljX2xvbmdfc3ViX3Jl
dHVybl9yZWxlYXNlKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4gYXRvbWljNjRfc3ViX3JldHVybihpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
bG9uZwoxNDQ3NDogYXRvbWljX2xvbmdfc3ViX3JldHVybl9yZWxheGVkKGxvbmcgaSwgYXRvbWlj
X2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRfc3ViX3JldHVybihp
LCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwoxNDQ3NDogYXRvbWljX2xvbmdfZmV0
Y2hfc3ViKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
YXRvbWljNjRfZmV0Y2hfc3ViKGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCjE0
NDc0OiBhdG9taWNfbG9uZ19mZXRjaF9zdWJfYWNxdWlyZShsb25nIGksIGF0b21pY19sb25nX3Qg
KnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2ZldGNoX3N1YihpLCB2KTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwoxNDQ3NDogYXRvbWljX2xvbmdfZmV0Y2hfc3ViX3Jl
bGVhc2UobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBh
dG9taWM2NF9mZXRjaF9zdWIoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0
NzQ6IGF0b21pY19sb25nX2ZldGNoX3N1Yl9yZWxheGVkKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAq
dikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRfZmV0Y2hfc3ViKGksIHYpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBhdG9taWNfbG9uZ19pbmMoYXRvbWljX2xv
bmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBhdG9taWM2NF9pbmModik7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX2luY19yZXR1cm4oYXRvbWljX2xvbmdf
dCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRfaW5jX3JldHVybih2KTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwoxNDQ3NDogYXRvbWljX2xvbmdfaW5jX3JldHVybl9h
Y3F1aXJlKGF0b21pY19sb25nX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0
X2luY19yZXR1cm5fYWNxdWlyZSh2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwoxNDQ3
NDogYXRvbWljX2xvbmdfaW5jX3JldHVybl9yZWxlYXNlKGF0b21pY19sb25nX3QgKnYpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2luY19yZXR1cm5fcmVsZWFzZSh2KTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwoxNDQ3NDogYXRvbWljX2xvbmdfaW5jX3JldHVybl9yZWxh
eGVkKGF0b21pY19sb25nX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2lu
Y19yZXR1cm5fcmVsYXhlZCh2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwoxNDQ3NDog
YXRvbWljX2xvbmdfZmV0Y2hfaW5jKGF0b21pY19sb25nX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIGF0b21pYzY0X2ZldGNoX2luYyh2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9u
ZwoxNDQ3NDogYXRvbWljX2xvbmdfZmV0Y2hfaW5jX2FjcXVpcmUoYXRvbWljX2xvbmdfdCAqdikK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRfZmV0Y2hfaW5jX2FjcXVpcmUodik7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX2ZldGNoX2luY19y
ZWxlYXNlKGF0b21pY19sb25nX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0
X2ZldGNoX2luY19yZWxlYXNlKHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCjE0NDc0
OiBhdG9taWNfbG9uZ19mZXRjaF9pbmNfcmVsYXhlZChhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRjaF9pbmNfcmVsYXhlZCh2KTsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogYXRvbWljX2xvbmdfZGVjKGF0b21pY19sb25nX3Qg
KnYpCjE0NDc0OiB7CjE0NDc0OiAgYXRvbWljNjRfZGVjKHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBsb25nCjE0NDc0OiBhdG9taWNfbG9uZ19kZWNfcmV0dXJuKGF0b21pY19sb25nX3QgKnYp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2RlY19yZXR1cm4odik7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX2RlY19yZXR1cm5fYWNxdWly
ZShhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9kZWNf
cmV0dXJuX2FjcXVpcmUodik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0
b21pY19sb25nX2RlY19yZXR1cm5fcmVsZWFzZShhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiBhdG9taWM2NF9kZWNfcmV0dXJuX3JlbGVhc2Uodik7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX2RlY19yZXR1cm5fcmVsYXhlZChh
dG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9kZWNfcmV0
dXJuX3JlbGF4ZWQodik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21p
Y19sb25nX2ZldGNoX2RlYyhhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVy
biBhdG9taWM2NF9mZXRjaF9kZWModik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0
NzQ6IGF0b21pY19sb25nX2ZldGNoX2RlY19hY3F1aXJlKGF0b21pY19sb25nX3QgKnYpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2ZldGNoX2RlY19hY3F1aXJlKHYpOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBsb25nCjE0NDc0OiBhdG9taWNfbG9uZ19mZXRjaF9kZWNfcmVsZWFz
ZShhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRj
aF9kZWNfcmVsZWFzZSh2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwoxNDQ3NDogYXRv
bWljX2xvbmdfZmV0Y2hfZGVjX3JlbGF4ZWQoYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gYXRvbWljNjRfZmV0Y2hfZGVjX3JlbGF4ZWQodik7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQKMTQ0NzQ6IGF0b21pY19sb25nX2FuZChsb25nIGksIGF0b21pY19sb25n
X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgYXRvbWljNjRfYW5kKGksIHYpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBsb25nCjE0NDc0OiBhdG9taWNfbG9uZ19mZXRjaF9hbmQobG9uZyBpLCBhdG9t
aWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRjaF9hbmQo
aSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX2Zl
dGNoX2FuZF9hY3F1aXJlKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gYXRvbWljNjRfZmV0Y2hfYW5kKGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBsb25nCjE0NDc0OiBhdG9taWNfbG9uZ19mZXRjaF9hbmRfcmVsZWFzZShsb25nIGksIGF0b21p
Y19sb25nX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2ZldGNoX2FuZChp
LCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwoxNDQ3NDogYXRvbWljX2xvbmdfZmV0
Y2hfYW5kX3JlbGF4ZWQobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDog
IHJldHVybiBhdG9taWM2NF9mZXRjaF9hbmQoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQKMTQ0NzQ6IGF0b21pY19sb25nX2FuZG5vdChsb25nIGksIGF0b21pY19sb25nX3QgKnYp
CjE0NDc0OiB7CjE0NDc0OiAgYXRvbWljNjRfYW5kbm90KGksIHYpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBsb25nCjE0NDc0OiBhdG9taWNfbG9uZ19mZXRjaF9hbmRub3QobG9uZyBpLCBhdG9t
aWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRjaF9hbmRu
b3QoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25n
X2ZldGNoX2FuZG5vdF9hY3F1aXJlKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsK
MTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRfZmV0Y2hfYW5kbm90X2FjcXVpcmUoaSwgdik7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX2ZldGNoX2FuZG5vdF9y
ZWxlYXNlKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
YXRvbWljNjRfZmV0Y2hfYW5kbm90X3JlbGVhc2UoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX2ZldGNoX2FuZG5vdF9yZWxheGVkKGxvbmcgaSwg
YXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRfZmV0Y2hf
YW5kbm90X3JlbGF4ZWQoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKMTQ0NzQ6
IGF0b21pY19sb25nX29yKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6
ICBhdG9taWM2NF9vcihpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwoxNDQ3NDog
YXRvbWljX2xvbmdfZmV0Y2hfb3IobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRjaF9vcihpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgbG9uZwoxNDQ3NDogYXRvbWljX2xvbmdfZmV0Y2hfb3JfYWNxdWlyZShsb25nIGksIGF0
b21pY19sb25nX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2ZldGNoX29y
KGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCjE0NDc0OiBhdG9taWNfbG9uZ19m
ZXRjaF9vcl9yZWxlYXNlKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gYXRvbWljNjRfZmV0Y2hfb3IoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX2ZldGNoX29yX3JlbGF4ZWQobG9uZyBpLCBhdG9taWNf
bG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRjaF9vcihpLCB2
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogYXRvbWljX2xvbmdfeG9yKGxv
bmcgaSwgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBhdG9taWM2NF94b3IoaSwg
dik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX2ZldGNo
X3hvcihsb25nIGksIGF0b21pY19sb25nX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0
b21pYzY0X2ZldGNoX3hvcihpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwoxNDQ3
NDogYXRvbWljX2xvbmdfZmV0Y2hfeG9yX2FjcXVpcmUobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRjaF94b3IoaSwgdik7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX2ZldGNoX3hvcl9yZWxl
YXNlKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRv
bWljNjRfZmV0Y2hfeG9yKGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCjE0NDc0
OiBhdG9taWNfbG9uZ19mZXRjaF94b3JfcmVsYXhlZChsb25nIGksIGF0b21pY19sb25nX3QgKnYp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2ZldGNoX3hvcihpLCB2KTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwoxNDQ3NDogYXRvbWljX2xvbmdfeGNoZyhhdG9taWNfbG9u
Z190ICp2LCBsb25nIGkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X3hjaGcodiwg
aSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX3hjaGdf
YWNxdWlyZShhdG9taWNfbG9uZ190ICp2LCBsb25nIGkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
IGF0b21pYzY0X3hjaGcodiwgaSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6
IGF0b21pY19sb25nX3hjaGdfcmVsZWFzZShhdG9taWNfbG9uZ190ICp2LCBsb25nIGkpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X3hjaGcodiwgaSk7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX3hjaGdfcmVsYXhlZChhdG9taWNfbG9uZ190
ICp2LCBsb25nIGkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X3hjaGcodiwgaSk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX2NtcHhjaGco
YXRvbWljX2xvbmdfdCAqdiwgbG9uZyBvbGQsIGxvbmcgbmV3KQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiBhdG9taWM2NF9jbXB4Y2hnKHYsIG9sZCwgbmV3KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgbG9uZwoxNDQ3NDogYXRvbWljX2xvbmdfY21weGNoZ19hY3F1aXJlKGF0b21pY19sb25nX3Qg
KnYsIGxvbmcgb2xkLCBsb25nIG5ldykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRf
Y21weGNoZyh2LCBvbGQsIG5ldyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6
IGF0b21pY19sb25nX2NtcHhjaGdfcmVsZWFzZShhdG9taWNfbG9uZ190ICp2LCBsb25nIG9sZCwg
bG9uZyBuZXcpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2NtcHhjaGcodiwgb2xk
LCBuZXcpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCjE0NDc0OiBhdG9taWNfbG9uZ19j
bXB4Y2hnX3JlbGF4ZWQoYXRvbWljX2xvbmdfdCAqdiwgbG9uZyBvbGQsIGxvbmcgbmV3KQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9jbXB4Y2hnKHYsIG9sZCwgbmV3KTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAoxNDQ3NDogYXRvbWljX2xvbmdfdHJ5X2NtcHhjaGcoYXRv
bWljX2xvbmdfdCAqdiwgbG9uZyAqb2xkLCBsb25nIG5ldykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gYXRvbWljNjRfdHJ5X2NtcHhjaGcodiwgKHM2NCAqKW9sZCwgbmV3KTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbAoxNDQ3NDogYXRvbWljX2xvbmdfdHJ5X2NtcHhjaGdfYWNxdWlyZShh
dG9taWNfbG9uZ190ICp2LCBsb25nICpvbGQsIGxvbmcgbmV3KQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiBhdG9taWM2NF90cnlfY21weGNoZyh2LCAoczY0ICopb2xkLCBuZXcpOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBib29sCjE0NDc0OiBhdG9taWNfbG9uZ190cnlfY21weGNoZ19yZWxlYXNl
KGF0b21pY19sb25nX3QgKnYsIGxvbmcgKm9sZCwgbG9uZyBuZXcpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIGF0b21pYzY0X3RyeV9jbXB4Y2hnKHYsIChzNjQgKilvbGQsIG5ldyk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGJvb2wKMTQ0NzQ6IGF0b21pY19sb25nX3RyeV9jbXB4Y2hnX3JlbGF4
ZWQoYXRvbWljX2xvbmdfdCAqdiwgbG9uZyAqb2xkLCBsb25nIG5ldykKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gYXRvbWljNjRfdHJ5X2NtcHhjaGcodiwgKHM2NCAqKW9sZCwgbmV3KTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAoxNDQ3NDogYXRvbWljX2xvbmdfc3ViX2FuZF90ZXN0KGxv
bmcgaSwgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRf
c3ViX2FuZF90ZXN0KGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sCjE0NDc0OiBh
dG9taWNfbG9uZ19kZWNfYW5kX3Rlc3QoYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gYXRvbWljNjRfZGVjX2FuZF90ZXN0KHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBib29sCjE0NDc0OiBhdG9taWNfbG9uZ19pbmNfYW5kX3Rlc3QoYXRvbWljX2xvbmdfdCAqdikK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRfaW5jX2FuZF90ZXN0KHYpOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBib29sCjE0NDc0OiBhdG9taWNfbG9uZ19hZGRfbmVnYXRpdmUobG9u
ZyBpLCBhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9h
ZGRfbmVnYXRpdmUoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0
b21pY19sb25nX2ZldGNoX2FkZF91bmxlc3MoYXRvbWljX2xvbmdfdCAqdiwgbG9uZyBhLCBsb25n
IHUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2ZldGNoX2FkZF91bmxlc3Modiwg
YSwgdSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKMTQ0NzQ6IGF0b21pY19sb25nX2Fk
ZF91bmxlc3MoYXRvbWljX2xvbmdfdCAqdiwgbG9uZyBhLCBsb25nIHUpCjE0NDc0OiB7CjE0NDc0
OiAgcmV0dXJuIGF0b21pYzY0X2FkZF91bmxlc3ModiwgYSwgdSk7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGJvb2wKMTQ0NzQ6IGF0b21pY19sb25nX2luY19ub3RfemVybyhhdG9taWNfbG9uZ190
ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9pbmNfbm90X3plcm8odik7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKMTQ0NzQ6IGF0b21pY19sb25nX2luY191bmxlc3Nf
bmVnYXRpdmUoYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWlj
NjRfaW5jX3VubGVzc19uZWdhdGl2ZSh2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAox
NDQ3NDogYXRvbWljX2xvbmdfZGVjX3VubGVzc19wb3NpdGl2ZShhdG9taWNfbG9uZ190ICp2KQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9kZWNfdW5sZXNzX3Bvc2l0aXZlKHYpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCjE0NDc0OiBhdG9taWNfbG9uZ19kZWNfaWZfcG9z
aXRpdmUoYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRf
ZGVjX2lmX3Bvc2l0aXZlKHYpOwoxNDQ3NDogfQoxNDQ3NDogIyA3NyAiLi9pbmNsdWRlL2xpbnV4
L2F0b21pYy5oIiAyCjE0NDc0OiAjIDE5ICIuL2luY2x1ZGUvbGludXgva2dkYi5oIiAyCjE0NDc0
OiAKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rZ2RiLmgiIDEKMTQ0NzQ6ICMg
MTAgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20va2dkYi5oIgoxNDQ3NDogIyAxICIuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL3B0cmFjZS5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zZWdtZW50LmgiIDEKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvY29uc3Qu
aCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9s
aW51eC9jb25zdC5oIiAxCjE0NDc0OiAjIDUgIi4vaW5jbHVkZS9saW51eC9jb25zdC5oIiAyCjE0
NDc0OiAjIDYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vc2VnbWVudC5oIiAyCjE0NDc0OiAjIDE2
OSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zZWdtZW50LmgiCjE0NDc0OiAjIDEgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vY2FjaGUuaCIgMQoxNDQ3NDogIyAxNzAgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vc2VnbWVudC5oIiAyCjE0NDc0OiAjIDI0OSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9z
ZWdtZW50LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIHZkc29fZW5jb2RlX2NwdW5vZGUoaW50IGNw
dSwgdW5zaWduZWQgbG9uZyBub2RlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAobm9kZSA8PCAx
MikgfCBjcHU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdmRzb19yZWFkX2NwdW5vZGUo
dW5zaWduZWQgKmNwdSwgdW5zaWduZWQgKm5vZGUpCjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQg
aW50IHA7CjE0NDc0OiAjIDI2NiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zZWdtZW50LmgiCjE0
NDc0OiAgYXNtIF9faW5saW5lIHZvbGF0aWxlICgiIyBBTFQ6IG9sZG5zdHJcbiIgIjY2MTpcblx0
IiAibHNsICVbc2VnXSwlW3BdIiAiXG42NjI6XG4iICIjIEFMVDogcGFkZGluZ1xuIiAiLnNraXAg
LSgoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIiktKCIgIjY2MmItNjYxYiIgIikpID4gMCkg
KiAiICIoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIiktKCIgIjY2MmItNjYxYiIgIikpLDB4
OTBcbiIgIjY2MyIgIjpcbiIgIi5wdXNoc2VjdGlvbiAuYWx0aW5zdHJ1Y3Rpb25zLFwiYVwiXG4i
ICIgLmxvbmcgNjYxYiAtIC5cbiIgIiAubG9uZyAiICI2NjQiIjEiImYgLSAuXG4iICIgLndvcmQg
IiAiKDE2KjMyKzIyKSIgIlxuIiAiIC5ieXRlICIgIjY2MyIiYi02NjFiIiAiXG4iICIgLmJ5dGUg
IiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiXG4iICIgLmJ5dGUgIiAiNjYzIiJiLTY2MmIiICJc
biIgIi5wb3BzZWN0aW9uXG4iICIucHVzaHNlY3Rpb24gLmFsdGluc3RyX3JlcGxhY2VtZW50LCBc
ImF4XCJcbiIgIiMgQUxUOiByZXBsYWNlbWVudCAiICIxIiAiXG4iICI2NjQiIjEiIjpcblx0IiAi
LmJ5dGUgMHhmMywweDBmLDB4YzcsMHhmOCIgIlxuIiAiNjY1IiIxIiAiOlxuIiAiLnBvcHNlY3Rp
b25cbiIgOiBbcF0gIj1hIiAocCkgOiAiaSIgKDApLCBbc2VnXSAiciIgKCgxNSo4ICsgMykpKQox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoY3B1KQoxNDQ3NDogICAqY3B1ID0gKHAgJiAw
eGZmZik7CjE0NDc0OiAgaWYgKG5vZGUpCjE0NDc0OiAgICpub2RlID0gKHAgPj4gMTIpOwoxNDQ3
NDogfQoxNDQ3NDogIyAzMDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vc2VnbWVudC5oIgoxNDQ3
NDogZXh0ZXJuIGNvbnN0IGNoYXIgZWFybHlfaWR0X2hhbmRsZXJfYXJyYXlbMzJdWzldOwoxNDQ3
NDogZXh0ZXJuIHZvaWQgZWFybHlfaWdub3JlX2lycSh2b2lkKTsKMTQ0NzQ6ICMgMzQ3ICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL3NlZ21lbnQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19sb2Fkc2VnbWVudF9m
cyh1bnNpZ25lZCBzaG9ydCB2YWx1ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBhc20gdm9sYXRpbGUoIgkJ
CQkJCVxuIgoxNDQ3NDogICAgICAgICIxOgltb3Z3ICUwLCAlJWZzCQkJXG4iCjE0NDc0OiAgICAg
ICAgIjI6CQkJCQlcbiIKMTQ0NzQ6IAoxNDQ3NDogICAgICAgICIgLnB1c2hzZWN0aW9uIFwiX19l
eF90YWJsZVwiLFwiYVwiXG4iICIgLmJhbGlnbiA0XG4iICIgLmxvbmcgKCIgIjFiIiAiKSAtIC5c
biIgIiAubG9uZyAoIiAiMmIiICIpIC0gLlxuIiAiIC5sb25nICgiICJleF9oYW5kbGVyX2NsZWFy
X2ZzIiAiKSAtIC5cbiIgIiAucG9wc2VjdGlvblxuIgoxNDQ3NDogCjE0NDc0OiAgICAgICAgOiA6
ICJybSIgKHZhbHVlKSA6ICJtZW1vcnkiKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNiAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9wdHJhY2UuaCIgMgoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL3BhZ2VfdHlwZXMuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvbWVtX2VuY3J5cHQuaCIgMQox
NDQ3NDogIyAxNyAiLi9pbmNsdWRlL2xpbnV4L21lbV9lbmNyeXB0LmgiCjE0NDc0OiAjIDEgIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vbWVtX2VuY3J5cHQuaCIgMQoxNDQ3NDogIyAxNyAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9tZW1fZW5jcnlwdC5oIgoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2lu
Y2x1ZGUvdWFwaS9hc20vYm9vdHBhcmFtLmgiIDEKMTQ0NzQ6ICMgNDMgIi4vYXJjaC94ODYvaW5j
bHVkZS91YXBpL2FzbS9ib290cGFyYW0uaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3Nj
cmVlbl9pbmZvLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAx
ICIuL2luY2x1ZGUvdWFwaS9saW51eC9zY3JlZW5faW5mby5oIiAxCjE0NDc0OiAjIDExICIuL2lu
Y2x1ZGUvdWFwaS9saW51eC9zY3JlZW5faW5mby5oIgoxNDQ3NDogc3RydWN0IHNjcmVlbl9pbmZv
IHsKMTQ0NzQ6ICBfX3U4IG9yaWdfeDsKMTQ0NzQ6ICBfX3U4IG9yaWdfeTsKMTQ0NzQ6ICBfX3Ux
NiBleHRfbWVtX2s7CjE0NDc0OiAgX191MTYgb3JpZ192aWRlb19wYWdlOwoxNDQ3NDogIF9fdTgg
b3JpZ192aWRlb19tb2RlOwoxNDQ3NDogIF9fdTggb3JpZ192aWRlb19jb2xzOwoxNDQ3NDogIF9f
dTggZmxhZ3M7CjE0NDc0OiAgX191OCB1bnVzZWQyOwoxNDQ3NDogIF9fdTE2IG9yaWdfdmlkZW9f
ZWdhX2J4OwoxNDQ3NDogIF9fdTE2IHVudXNlZDM7CjE0NDc0OiAgX191OCBvcmlnX3ZpZGVvX2xp
bmVzOwoxNDQ3NDogIF9fdTggb3JpZ192aWRlb19pc1ZHQTsKMTQ0NzQ6ICBfX3UxNiBvcmlnX3Zp
ZGVvX3BvaW50czsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191MTYgbGZiX3dpZHRoOwoxNDQ3
NDogIF9fdTE2IGxmYl9oZWlnaHQ7CjE0NDc0OiAgX191MTYgbGZiX2RlcHRoOwoxNDQ3NDogIF9f
dTMyIGxmYl9iYXNlOwoxNDQ3NDogIF9fdTMyIGxmYl9zaXplOwoxNDQ3NDogIF9fdTE2IGNsX21h
Z2ljLCBjbF9vZmZzZXQ7CjE0NDc0OiAgX191MTYgbGZiX2xpbmVsZW5ndGg7CjE0NDc0OiAgX191
OCByZWRfc2l6ZTsKMTQ0NzQ6ICBfX3U4IHJlZF9wb3M7CjE0NDc0OiAgX191OCBncmVlbl9zaXpl
OwoxNDQ3NDogIF9fdTggZ3JlZW5fcG9zOwoxNDQ3NDogIF9fdTggYmx1ZV9zaXplOwoxNDQ3NDog
IF9fdTggYmx1ZV9wb3M7CjE0NDc0OiAgX191OCByc3ZkX3NpemU7CjE0NDc0OiAgX191OCByc3Zk
X3BvczsKMTQ0NzQ6ICBfX3UxNiB2ZXNhcG1fc2VnOwoxNDQ3NDogIF9fdTE2IHZlc2FwbV9vZmY7
CjE0NDc0OiAgX191MTYgcGFnZXM7CjE0NDc0OiAgX191MTYgdmVzYV9hdHRyaWJ1dGVzOwoxNDQ3
NDogIF9fdTMyIGNhcGFiaWxpdGllczsKMTQ0NzQ6ICBfX3UzMiBleHRfbGZiX2Jhc2U7CjE0NDc0
OiAgX191OCBfcmVzZXJ2ZWRbMl07CjE0NDc0OiB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwox
NDQ3NDogIyA2ICIuL2luY2x1ZGUvbGludXgvc2NyZWVuX2luZm8uaCIgMgoxNDQ3NDogCjE0NDc0
OiBleHRlcm4gc3RydWN0IHNjcmVlbl9pbmZvIHNjcmVlbl9pbmZvOwoxNDQ3NDogIyA0NCAiLi9h
cmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2Jvb3RwYXJhbS5oIiAyCjE0NDc0OiAjIDEgIi4vaW5j
bHVkZS9saW51eC9hcG1fYmlvcy5oIiAxCjE0NDc0OiAjIDkgIi4vaW5jbHVkZS9saW51eC9hcG1f
Ymlvcy5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9hcG1fYmlvcy5oIiAxCjE0
NDc0OiAjIDIyICIuL2luY2x1ZGUvdWFwaS9saW51eC9hcG1fYmlvcy5oIgoxNDQ3NDogdHlwZWRl
ZiB1bnNpZ25lZCBzaG9ydCBhcG1fZXZlbnRfdDsKMTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgc2hv
cnQgYXBtX2V2ZW50aW5mb190OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXBtX2Jpb3NfaW5mbyB7
CjE0NDc0OiAgX191MTYgdmVyc2lvbjsKMTQ0NzQ6ICBfX3UxNiBjc2VnOwoxNDQ3NDogIF9fdTMy
IG9mZnNldDsKMTQ0NzQ6ICBfX3UxNiBjc2VnXzE2OwoxNDQ3NDogIF9fdTE2IGRzZWc7CjE0NDc0
OiAgX191MTYgZmxhZ3M7CjE0NDc0OiAgX191MTYgY3NlZ19sZW47CjE0NDc0OiAgX191MTYgY3Nl
Z18xNl9sZW47CjE0NDc0OiAgX191MTYgZHNlZ19sZW47CjE0NDc0OiB9OwoxNDQ3NDogIyAxMzMg
Ii4vaW5jbHVkZS91YXBpL2xpbnV4L2FwbV9iaW9zLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91
YXBpL2xpbnV4L2lvY3RsLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL2lvY3RsLmgiIDEK
MTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2lvY3RsLmgiIDEKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJp
Yy9pb2N0bC5oIiAxCjE0NDc0OiAjIDYgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9pb2N0bC5oIiAy
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHVu
c2lnbmVkIGludCBfX2ludmFsaWRfc2l6ZV9hcmd1bWVudF9mb3JfSU9DOwoxNDQ3NDogIyAyICIu
L2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL2lvY3RsLmgiIDIKMTQ0NzQ6ICMg
NiAiLi9pbmNsdWRlL3VhcGkvbGludXgvaW9jdGwuaCIgMgoxNDQ3NDogIyAxMzQgIi4vaW5jbHVk
ZS91YXBpL2xpbnV4L2FwbV9iaW9zLmgiIDIKMTQ0NzQ6ICMgMTAgIi4vaW5jbHVkZS9saW51eC9h
cG1fYmlvcy5oIiAyCjE0NDc0OiAjIDI2ICIuL2luY2x1ZGUvbGludXgvYXBtX2Jpb3MuaCIKMTQ0
NzQ6IHN0cnVjdCBhcG1faW5mbyB7CjE0NDc0OiAgc3RydWN0IGFwbV9iaW9zX2luZm8gYmlvczsK
MTQ0NzQ6ICB1bnNpZ25lZCBzaG9ydCBjb25uZWN0aW9uX3ZlcnNpb247CjE0NDc0OiAgaW50IGdl
dF9wb3dlcl9zdGF0dXNfYnJva2VuOwoxNDQ3NDogIGludCBnZXRfcG93ZXJfc3RhdHVzX3N3YWJp
bm1pbnV0ZXM7CjE0NDc0OiAgaW50IGFsbG93X2ludHM7CjE0NDc0OiAgaW50IGZvcmJpZF9pZGxl
OwoxNDQ3NDogIGludCByZWFsbW9kZV9wb3dlcl9vZmY7CjE0NDc0OiAgaW50IGRpc2FibGVkOwox
NDQ3NDogfTsKMTQ0NzQ6ICMgODUgIi4vaW5jbHVkZS9saW51eC9hcG1fYmlvcy5oIgoxNDQ3NDog
ZXh0ZXJuIHN0cnVjdCBhcG1faW5mbyBhcG1faW5mbzsKMTQ0NzQ6ICMgNDUgIi4vYXJjaC94ODYv
aW5jbHVkZS91YXBpL2FzbS9ib290cGFyYW0uaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGlu
dXgvZWRkLmgiIDEKMTQ0NzQ6ICMgMjQgIi4vaW5jbHVkZS9saW51eC9lZGQuaCIKMTQ0NzQ6ICMg
MSAiLi9pbmNsdWRlL3VhcGkvbGludXgvZWRkLmgiIDEKMTQ0NzQ6ICMgNzIgIi4vaW5jbHVkZS91
YXBpL2xpbnV4L2VkZC5oIgoxNDQ3NDogc3RydWN0IGVkZF9kZXZpY2VfcGFyYW1zIHsKMTQ0NzQ6
ICBfX3UxNiBsZW5ndGg7CjE0NDc0OiAgX191MTYgaW5mb19mbGFnczsKMTQ0NzQ6ICBfX3UzMiBu
dW1fZGVmYXVsdF9jeWxpbmRlcnM7CjE0NDc0OiAgX191MzIgbnVtX2RlZmF1bHRfaGVhZHM7CjE0
NDc0OiAgX191MzIgc2VjdG9yc19wZXJfdHJhY2s7CjE0NDc0OiAgX191NjQgbnVtYmVyX29mX3Nl
Y3RvcnM7CjE0NDc0OiAgX191MTYgYnl0ZXNfcGVyX3NlY3RvcjsKMTQ0NzQ6ICBfX3UzMiBkcHRl
X3B0cjsKMTQ0NzQ6ICBfX3UxNiBrZXk7CjE0NDc0OiAgX191OCBkZXZpY2VfcGF0aF9pbmZvX2xl
bmd0aDsKMTQ0NzQ6ICBfX3U4IHJlc2VydmVkMjsKMTQ0NzQ6ICBfX3UxNiByZXNlcnZlZDM7CjE0
NDc0OiAgX191OCBob3N0X2J1c190eXBlWzRdOwoxNDQ3NDogIF9fdTggaW50ZXJmYWNlX3R5cGVb
OF07CjE0NDc0OiAgdW5pb24gewoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogICAgX191MTYgYmFz
ZV9hZGRyZXNzOwoxNDQ3NDogICAgX191MTYgcmVzZXJ2ZWQxOwoxNDQ3NDogICAgX191MzIgcmVz
ZXJ2ZWQyOwoxNDQ3NDogICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSBpc2E7CjE0NDc0OiAg
IHN0cnVjdCB7CjE0NDc0OiAgICBfX3U4IGJ1czsKMTQ0NzQ6ICAgIF9fdTggc2xvdDsKMTQ0NzQ6
ICAgIF9fdTggZnVuY3Rpb247CjE0NDc0OiAgICBfX3U4IGNoYW5uZWw7CjE0NDc0OiAgICBfX3Uz
MiByZXNlcnZlZDsKMTQ0NzQ6ICAgfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgcGNpOwoxNDQ3
NDogCjE0NDc0OiAgIHN0cnVjdCB7CjE0NDc0OiAgICBfX3U2NCByZXNlcnZlZDsKMTQ0NzQ6ICAg
fSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgaWJuZDsKMTQ0NzQ6ICAgc3RydWN0IHsKMTQ0NzQ6
ICAgIF9fdTY0IHJlc2VydmVkOwoxNDQ3NDogICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSB4
cHJzOwoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogICAgX191NjQgcmVzZXJ2ZWQ7CjE0NDc0OiAg
IH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpIGh0cHQ7CjE0NDc0OiAgIHN0cnVjdCB7CjE0NDc0
OiAgICBfX3U2NCByZXNlcnZlZDsKMTQ0NzQ6ICAgfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkg
dW5rbm93bjsKMTQ0NzQ6ICB9IGludGVyZmFjZV9wYXRoOwoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6
ICAgc3RydWN0IHsKMTQ0NzQ6ICAgIF9fdTggZGV2aWNlOwoxNDQ3NDogICAgX191OCByZXNlcnZl
ZDE7CjE0NDc0OiAgICBfX3UxNiByZXNlcnZlZDI7CjE0NDc0OiAgICBfX3UzMiByZXNlcnZlZDM7
CjE0NDc0OiAgICBfX3U2NCByZXNlcnZlZDQ7CjE0NDc0OiAgIH0gX19hdHRyaWJ1dGVfXyAoKHBh
Y2tlZCkpIGF0YTsKMTQ0NzQ6ICAgc3RydWN0IHsKMTQ0NzQ6ICAgIF9fdTggZGV2aWNlOwoxNDQ3
NDogICAgX191OCBsdW47CjE0NDc0OiAgICBfX3U4IHJlc2VydmVkMTsKMTQ0NzQ6ICAgIF9fdTgg
cmVzZXJ2ZWQyOwoxNDQ3NDogICAgX191MzIgcmVzZXJ2ZWQzOwoxNDQ3NDogICAgX191NjQgcmVz
ZXJ2ZWQ0OwoxNDQ3NDogICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSBhdGFwaTsKMTQ0NzQ6
ICAgc3RydWN0IHsKMTQ0NzQ6ICAgIF9fdTE2IGlkOwoxNDQ3NDogICAgX191NjQgbHVuOwoxNDQ3
NDogICAgX191MTYgcmVzZXJ2ZWQxOwoxNDQ3NDogICAgX191MzIgcmVzZXJ2ZWQyOwoxNDQ3NDog
ICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSBzY3NpOwoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3
NDogICAgX191NjQgc2VyaWFsX251bWJlcjsKMTQ0NzQ6ICAgIF9fdTY0IHJlc2VydmVkOwoxNDQ3
NDogICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSB1c2I7CjE0NDc0OiAgIHN0cnVjdCB7CjE0
NDc0OiAgICBfX3U2NCBldWk7CjE0NDc0OiAgICBfX3U2NCByZXNlcnZlZDsKMTQ0NzQ6ICAgfSBf
X2F0dHJpYnV0ZV9fICgocGFja2VkKSkgaTEzOTQ7CjE0NDc0OiAgIHN0cnVjdCB7CjE0NDc0OiAg
ICBfX3U2NCB3d2lkOwoxNDQ3NDogICAgX191NjQgbHVuOwoxNDQ3NDogICB9IF9fYXR0cmlidXRl
X18gKChwYWNrZWQpKSBmaWJyZTsKMTQ0NzQ6ICAgc3RydWN0IHsKMTQ0NzQ6ICAgIF9fdTY0IGlk
ZW50aXR5X3RhZzsKMTQ0NzQ6ICAgIF9fdTY0IHJlc2VydmVkOwoxNDQ3NDogICB9IF9fYXR0cmli
dXRlX18gKChwYWNrZWQpKSBpMm87CjE0NDc0OiAgIHN0cnVjdCB7CjE0NDc0OiAgICBfX3UzMiBh
cnJheV9udW1iZXI7CjE0NDc0OiAgICBfX3UzMiByZXNlcnZlZDE7CjE0NDc0OiAgICBfX3U2NCBy
ZXNlcnZlZDI7CjE0NDc0OiAgIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpIHJhaWQ7CjE0NDc0
OiAgIHN0cnVjdCB7CjE0NDc0OiAgICBfX3U4IGRldmljZTsKMTQ0NzQ6ICAgIF9fdTggcmVzZXJ2
ZWQxOwoxNDQ3NDogICAgX191MTYgcmVzZXJ2ZWQyOwoxNDQ3NDogICAgX191MzIgcmVzZXJ2ZWQz
OwoxNDQ3NDogICAgX191NjQgcmVzZXJ2ZWQ0OwoxNDQ3NDogICB9IF9fYXR0cmlidXRlX18gKChw
YWNrZWQpKSBzYXRhOwoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogICAgX191NjQgcmVzZXJ2ZWQx
OwoxNDQ3NDogICAgX191NjQgcmVzZXJ2ZWQyOwoxNDQ3NDogICB9IF9fYXR0cmlidXRlX18gKChw
YWNrZWQpKSB1bmtub3duOwoxNDQ3NDogIH0gZGV2aWNlX3BhdGg7CjE0NDc0OiAgX191OCByZXNl
cnZlZDQ7CjE0NDc0OiAgX191OCBjaGVja3N1bTsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXyAoKHBh
Y2tlZCkpOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZWRkX2luZm8gewoxNDQ3NDogIF9fdTggZGV2
aWNlOwoxNDQ3NDogIF9fdTggdmVyc2lvbjsKMTQ0NzQ6ICBfX3UxNiBpbnRlcmZhY2Vfc3VwcG9y
dDsKMTQ0NzQ6ICBfX3UxNiBsZWdhY3lfbWF4X2N5bGluZGVyOwoxNDQ3NDogIF9fdTggbGVnYWN5
X21heF9oZWFkOwoxNDQ3NDogIF9fdTggbGVnYWN5X3NlY3RvcnNfcGVyX3RyYWNrOwoxNDQ3NDog
IHN0cnVjdCBlZGRfZGV2aWNlX3BhcmFtcyBwYXJhbXM7CjE0NDc0OiB9IF9fYXR0cmlidXRlX18g
KChwYWNrZWQpKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGVkZCB7CjE0NDc0OiAgdW5zaWduZWQg
aW50IG1icl9zaWduYXR1cmVbMTZdOwoxNDQ3NDogIHN0cnVjdCBlZGRfaW5mbyBlZGRfaW5mb1s2
XTsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIG1icl9zaWduYXR1cmVfbnI7CjE0NDc0OiAgdW5zaWdu
ZWQgY2hhciBlZGRfaW5mb19ucjsKMTQ0NzQ6IH07CjE0NDc0OiAjIDI1ICIuL2luY2x1ZGUvbGlu
dXgvZWRkLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IGVkZCBlZGQ7
CjE0NDc0OiAjIDQ2ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYm9vdHBhcmFtLmgiIDIK
MTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pc3QuaCIgMQoxNDQ3NDogIyA5ICIu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL2lzdC5oIgoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1
ZGUvdWFwaS9hc20vaXN0LmgiIDEKMTQ0NzQ6ICMgMjMgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBp
L2FzbS9pc3QuaCIKMTQ0NzQ6IHN0cnVjdCBpc3RfaW5mbyB7CjE0NDc0OiAgX191MzIgc2lnbmF0
dXJlOwoxNDQ3NDogIF9fdTMyIGNvbW1hbmQ7CjE0NDc0OiAgX191MzIgZXZlbnQ7CjE0NDc0OiAg
X191MzIgcGVyZl9sZXZlbDsKMTQ0NzQ6IH07CjE0NDc0OiAjIDEwICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL2lzdC5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBpc3Rf
aW5mbyBpc3RfaW5mbzsKMTQ0NzQ6ICMgNDcgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9i
b290cGFyYW0uaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdmlkZW8vZWRpZC5oIiAxCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL3VhcGkvdmlk
ZW8vZWRpZC5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCBlZGlkX2luZm8gewoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgZHVtbXlbMTI4XTsKMTQ0NzQ6IH07
CjE0NDc0OiAjIDYgIi4vaW5jbHVkZS92aWRlby9lZGlkLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBleHRlcm4gc3RydWN0IGVkaWRfaW5mbyBlZGlkX2luZm87CjE0NDc0OiAjIDQ4ICIuL2Fy
Y2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYm9vdHBhcmFtLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3Qgc2V0dXBfZGF0YSB7CjE0NDc0OiAgX191NjQgbmV4dDsKMTQ0NzQ6ICBfX3Uz
MiB0eXBlOwoxNDQ3NDogIF9fdTMyIGxlbjsKMTQ0NzQ6ICBfX3U4IGRhdGFbMF07CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzZXR1cF9pbmRpcmVjdCB7CjE0NDc0OiAg
X191MzIgdHlwZTsKMTQ0NzQ6ICBfX3UzMiByZXNlcnZlZDsKMTQ0NzQ6ICBfX3U2NCBsZW47CjE0
NDc0OiAgX191NjQgYWRkcjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzZXR1cF9o
ZWFkZXIgewoxNDQ3NDogIF9fdTggc2V0dXBfc2VjdHM7CjE0NDc0OiAgX191MTYgcm9vdF9mbGFn
czsKMTQ0NzQ6ICBfX3UzMiBzeXNzaXplOwoxNDQ3NDogIF9fdTE2IHJhbV9zaXplOwoxNDQ3NDog
IF9fdTE2IHZpZF9tb2RlOwoxNDQ3NDogIF9fdTE2IHJvb3RfZGV2OwoxNDQ3NDogIF9fdTE2IGJv
b3RfZmxhZzsKMTQ0NzQ6ICBfX3UxNiBqdW1wOwoxNDQ3NDogIF9fdTMyIGhlYWRlcjsKMTQ0NzQ6
ICBfX3UxNiB2ZXJzaW9uOwoxNDQ3NDogIF9fdTMyIHJlYWxtb2RlX3N3dGNoOwoxNDQ3NDogIF9f
dTE2IHN0YXJ0X3N5c19zZWc7CjE0NDc0OiAgX191MTYga2VybmVsX3ZlcnNpb247CjE0NDc0OiAg
X191OCB0eXBlX29mX2xvYWRlcjsKMTQ0NzQ6ICBfX3U4IGxvYWRmbGFnczsKMTQ0NzQ6ICBfX3Ux
NiBzZXR1cF9tb3ZlX3NpemU7CjE0NDc0OiAgX191MzIgY29kZTMyX3N0YXJ0OwoxNDQ3NDogIF9f
dTMyIHJhbWRpc2tfaW1hZ2U7CjE0NDc0OiAgX191MzIgcmFtZGlza19zaXplOwoxNDQ3NDogIF9f
dTMyIGJvb3RzZWN0X2tsdWRnZTsKMTQ0NzQ6ICBfX3UxNiBoZWFwX2VuZF9wdHI7CjE0NDc0OiAg
X191OCBleHRfbG9hZGVyX3ZlcjsKMTQ0NzQ6ICBfX3U4IGV4dF9sb2FkZXJfdHlwZTsKMTQ0NzQ6
ICBfX3UzMiBjbWRfbGluZV9wdHI7CjE0NDc0OiAgX191MzIgaW5pdHJkX2FkZHJfbWF4OwoxNDQ3
NDogIF9fdTMyIGtlcm5lbF9hbGlnbm1lbnQ7CjE0NDc0OiAgX191OCByZWxvY2F0YWJsZV9rZXJu
ZWw7CjE0NDc0OiAgX191OCBtaW5fYWxpZ25tZW50OwoxNDQ3NDogIF9fdTE2IHhsb2FkZmxhZ3M7
CjE0NDc0OiAgX191MzIgY21kbGluZV9zaXplOwoxNDQ3NDogIF9fdTMyIGhhcmR3YXJlX3N1YmFy
Y2g7CjE0NDc0OiAgX191NjQgaGFyZHdhcmVfc3ViYXJjaF9kYXRhOwoxNDQ3NDogIF9fdTMyIHBh
eWxvYWRfb2Zmc2V0OwoxNDQ3NDogIF9fdTMyIHBheWxvYWRfbGVuZ3RoOwoxNDQ3NDogIF9fdTY0
IHNldHVwX2RhdGE7CjE0NDc0OiAgX191NjQgcHJlZl9hZGRyZXNzOwoxNDQ3NDogIF9fdTMyIGlu
aXRfc2l6ZTsKMTQ0NzQ6ICBfX3UzMiBoYW5kb3Zlcl9vZmZzZXQ7CjE0NDc0OiAgX191MzIga2Vy
bmVsX2luZm9fb2Zmc2V0OwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IHN5c19kZXNjX3RhYmxlIHsKMTQ0NzQ6ICBfX3UxNiBsZW5ndGg7CjE0
NDc0OiAgX191OCB0YWJsZVsxNF07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBvbHBjX29md19oZWFkZXIgewoxNDQ3NDogIF9fdTMyIG9md19tYWdpYzsKMTQ0NzQ6ICBf
X3UzMiBvZndfdmVyc2lvbjsKMTQ0NzQ6ICBfX3UzMiBjaWZfaGFuZGxlcjsKMTQ0NzQ6ICBfX3Uz
MiBpcnFfZGVzY190YWJsZTsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBlZmlfaW5mbyB7CjE0NDc0OiAgX191MzIgZWZpX2xvYWRlcl9zaWdu
YXR1cmU7CjE0NDc0OiAgX191MzIgZWZpX3N5c3RhYjsKMTQ0NzQ6ICBfX3UzMiBlZmlfbWVtZGVz
Y19zaXplOwoxNDQ3NDogIF9fdTMyIGVmaV9tZW1kZXNjX3ZlcnNpb247CjE0NDc0OiAgX191MzIg
ZWZpX21lbW1hcDsKMTQ0NzQ6ICBfX3UzMiBlZmlfbWVtbWFwX3NpemU7CjE0NDc0OiAgX191MzIg
ZWZpX3N5c3RhYl9oaTsKMTQ0NzQ6ICBfX3UzMiBlZmlfbWVtbWFwX2hpOwoxNDQ3NDogfTsKMTQ0
NzQ6ICMgMTQwICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYm9vdHBhcmFtLmgiCjE0NDc0
OiBzdHJ1Y3QgYm9vdF9lODIwX2VudHJ5IHsKMTQ0NzQ6ICBfX3U2NCBhZGRyOwoxNDQ3NDogIF9f
dTY0IHNpemU7CjE0NDc0OiAgX191MzIgdHlwZTsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygocGFj
a2VkKSk7CjE0NDc0OiAjIDE1NSAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2Jvb3RwYXJh
bS5oIgoxNDQ3NDogc3RydWN0IGphaWxob3VzZV9zZXR1cF9kYXRhIHsKMTQ0NzQ6ICBzdHJ1Y3Qg
ewoxNDQ3NDogICBfX3UxNiB2ZXJzaW9uOwoxNDQ3NDogICBfX3UxNiBjb21wYXRpYmxlX3ZlcnNp
b247CjE0NDc0OiAgfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKSBoZHI7CjE0NDc0OiAgc3RydWN0
IHsKMTQ0NzQ6ICAgX191MTYgcG1fdGltZXJfYWRkcmVzczsKMTQ0NzQ6ICAgX191MTYgbnVtX2Nw
dXM7CjE0NDc0OiAgIF9fdTY0IHBjaV9tbWNvbmZpZ19iYXNlOwoxNDQ3NDogICBfX3UzMiB0c2Nf
a2h6OwoxNDQ3NDogICBfX3UzMiBhcGljX2toejsKMTQ0NzQ6ICAgX191OCBzdGFuZGFyZF9pb2Fw
aWM7CjE0NDc0OiAgIF9fdTggY3B1X2lkc1syNTVdOwoxNDQ3NDogIH0gX19hdHRyaWJ1dGVfXygo
cGFja2VkKSkgdjE7CjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6ICAgX191MzIgZmxhZ3M7CjE0NDc0
OiAgfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKSB2MjsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygo
cGFja2VkKSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGJvb3RfcGFyYW1zIHsKMTQ0
NzQ6ICBzdHJ1Y3Qgc2NyZWVuX2luZm8gc2NyZWVuX2luZm87CjE0NDc0OiAgc3RydWN0IGFwbV9i
aW9zX2luZm8gYXBtX2Jpb3NfaW5mbzsKMTQ0NzQ6ICBfX3U4IF9wYWQyWzRdOwoxNDQ3NDogIF9f
dTY0IHRib290X2FkZHI7CjE0NDc0OiAgc3RydWN0IGlzdF9pbmZvIGlzdF9pbmZvOwoxNDQ3NDog
IF9fdTY0IGFjcGlfcnNkcF9hZGRyOwoxNDQ3NDogIF9fdTggX3BhZDNbOF07CjE0NDc0OiAgX191
OCBoZDBfaW5mb1sxNl07CjE0NDc0OiAgX191OCBoZDFfaW5mb1sxNl07CjE0NDc0OiAgc3RydWN0
IHN5c19kZXNjX3RhYmxlIHN5c19kZXNjX3RhYmxlOwoxNDQ3NDogIHN0cnVjdCBvbHBjX29md19o
ZWFkZXIgb2xwY19vZndfaGVhZGVyOwoxNDQ3NDogIF9fdTMyIGV4dF9yYW1kaXNrX2ltYWdlOwox
NDQ3NDogIF9fdTMyIGV4dF9yYW1kaXNrX3NpemU7CjE0NDc0OiAgX191MzIgZXh0X2NtZF9saW5l
X3B0cjsKMTQ0NzQ6ICBfX3U4IF9wYWQ0WzExNl07CjE0NDc0OiAgc3RydWN0IGVkaWRfaW5mbyBl
ZGlkX2luZm87CjE0NDc0OiAgc3RydWN0IGVmaV9pbmZvIGVmaV9pbmZvOwoxNDQ3NDogIF9fdTMy
IGFsdF9tZW1fazsKMTQ0NzQ6ICBfX3UzMiBzY3JhdGNoOwoxNDQ3NDogIF9fdTggZTgyMF9lbnRy
aWVzOwoxNDQ3NDogIF9fdTggZWRkYnVmX2VudHJpZXM7CjE0NDc0OiAgX191OCBlZGRfbWJyX3Np
Z19idWZfZW50cmllczsKMTQ0NzQ6ICBfX3U4IGtiZF9zdGF0dXM7CjE0NDc0OiAgX191OCBzZWN1
cmVfYm9vdDsKMTQ0NzQ6ICBfX3U4IF9wYWQ1WzJdOwoxNDQ3NDogIyAyMTIgIi4vYXJjaC94ODYv
aW5jbHVkZS91YXBpL2FzbS9ib290cGFyYW0uaCIKMTQ0NzQ6ICBfX3U4IHNlbnRpbmVsOwoxNDQ3
NDogIF9fdTggX3BhZDZbMV07CjE0NDc0OiAgc3RydWN0IHNldHVwX2hlYWRlciBoZHI7CjE0NDc0
OiAgX191OCBfcGFkN1sweDI5MC0weDFmMS1zaXplb2Yoc3RydWN0IHNldHVwX2hlYWRlcildOwox
NDQ3NDogIF9fdTMyIGVkZF9tYnJfc2lnX2J1ZmZlclsxNl07CjE0NDc0OiAgc3RydWN0IGJvb3Rf
ZTgyMF9lbnRyeSBlODIwX3RhYmxlWzEyOF07CjE0NDc0OiAgX191OCBfcGFkOFs0OF07CjE0NDc0
OiAgc3RydWN0IGVkZF9pbmZvIGVkZGJ1Zls2XTsKMTQ0NzQ6ICBfX3U4IF9wYWQ5WzI3Nl07CjE0
NDc0OiB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwoxNDQ3NDogIyAyNjIgIi4vYXJjaC94ODYv
aW5jbHVkZS91YXBpL2FzbS9ib290cGFyYW0uaCIKMTQ0NzQ6IGVudW0geDg2X2hhcmR3YXJlX3N1
YmFyY2ggewoxNDQ3NDogIFg4Nl9TVUJBUkNIX1BDID0gMCwKMTQ0NzQ6ICBYODZfU1VCQVJDSF9M
R1VFU1QsCjE0NDc0OiAgWDg2X1NVQkFSQ0hfWEVOLAoxNDQ3NDogIFg4Nl9TVUJBUkNIX0lOVEVM
X01JRCwKMTQ0NzQ6ICBYODZfU1VCQVJDSF9DRTQxMDAsCjE0NDc0OiAgWDg2X05SX1NVQkFSQ0hT
LAoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbWVtX2VuY3J5
cHQuaCIgMgoxNDQ3NDogIyA1OSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tZW1fZW5jcnlwdC5o
IgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkg
X19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBzbWVfZWFybHlfZW5jcnlwdChyZXNvdXJjZV9zaXpl
X3QgcGFkZHIsCjE0NDc0OiAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUpIHsgfQoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1
dGVfXygoX19jb2xkX18pKSBzbWVfZWFybHlfZGVjcnlwdChyZXNvdXJjZV9zaXplX3QgcGFkZHIs
CjE0NDc0OiAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUpIHsgfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0
ZV9fKChfX2NvbGRfXykpIHNtZV9tYXBfYm9vdGRhdGEoY2hhciAqcmVhbF9tb2RlX2RhdGEpIHsg
fQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkg
X19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBzbWVfdW5tYXBfYm9vdGRhdGEoY2hhciAqcmVhbF9t
b2RlX2RhdGEpIHsgfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlv
bl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIHNtZV9lYXJseV9p
bml0KHZvaWQpIHsgfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlv
bl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIHNtZV9lbmNyeXB0
X2tlcm5lbChzdHJ1Y3QgYm9vdF9wYXJhbXMgKmJwKSB7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19hdHRyaWJ1
dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9f
KSkgc21lX2VuYWJsZShzdHJ1Y3QgYm9vdF9wYXJhbXMgKmJwKSB7IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBzbWVfYWN0aXZlKHZvaWQpIHsgcmV0dXJuIGZhbHNlOyB9CjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHNldl9h
Y3RpdmUodm9pZCkgeyByZXR1cm4gZmFsc2U7IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fYXR0cmli
dXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRf
XykpCjE0NDc0OiBlYXJseV9zZXRfbWVtb3J5X2RlY3J5cHRlZCh1bnNpZ25lZCBsb25nIHZhZGRy
LCB1bnNpZ25lZCBsb25nIHNpemUpIHsgcmV0dXJuIDA7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX2F0dHJpYnV0
ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18p
KQoxNDQ3NDogZWFybHlfc2V0X21lbW9yeV9lbmNyeXB0ZWQodW5zaWduZWQgbG9uZyB2YWRkciwg
dW5zaWduZWQgbG9uZyBzaXplKSB7IHJldHVybiAwOyB9CjE0NDc0OiAjIDkzICIuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL21lbV9lbmNyeXB0LmgiCjE0NDc0OiBleHRlcm4gY2hhciBfX3N0YXJ0X2Jz
c19kZWNyeXB0ZWRbXSwgX19lbmRfYnNzX2RlY3J5cHRlZFtdLCBfX3N0YXJ0X2Jzc19kZWNyeXB0
ZWRfdW51c2VkW107CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgbWVtX2VuY3J5cHRfYWN0aXZlKHZvaWQp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIDBVTEw7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2
NCBzbWVfZ2V0X21lX21hc2sodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gMFVMTDsKMTQ0
NzQ6IH0KMTQ0NzQ6ICMgMTggIi4vaW5jbHVkZS9saW51eC9tZW1fZW5jcnlwdC5oIiAyCjE0NDc0
OiAjIDggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFnZV90eXBlcy5oIiAyCjE0NDc0OiAjIDQ4
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2VfdHlwZXMuaCIKMTQ0NzQ6ICMgMSAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9wYWdlXzY0X3R5cGVzLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20va2Fz
bHIuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB1bnNpZ25lZCBs
b25nIGthc2xyX2dldF9yYW5kb21fbG9uZyhjb25zdCBjaGFyICpwdXJwb3NlKTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiB2b2lkIGtlcm5lbF9yYW5kb21pemVfbWVtb3J5KHZvaWQpOwoxNDQ3NDog
IyA3ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2VfNjRfdHlwZXMuaCIgMgoxNDQ3NDogIyA0
OSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYWdlX3R5cGVzLmgiIDIKMTQ0NzQ6ICMgNjQgIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vcGFnZV90eXBlcy5oIgoxNDQ3NDogZXh0ZXJuIGludCBkZXZt
ZW1faXNfYWxsb3dlZCh1bnNpZ25lZCBsb25nIHBhZ2Vucik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVy
biB1bnNpZ25lZCBsb25nIG1heF9sb3dfcGZuX21hcHBlZDsKMTQ0NzQ6IGV4dGVybiB1bnNpZ25l
ZCBsb25nIG1heF9wZm5fbWFwcGVkOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwaHlzX2FkZHJfdCBnZXRfbWF4
X21hcHBlZCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAocGh5c19hZGRyX3QpbWF4X3Bm
bl9tYXBwZWQgPDwgMTI7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgcGZuX3JhbmdlX2lz
X21hcHBlZCh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyBlbmRfcGZuKTsK
MTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW5pdF9tZW1vcnlfbWFwcGluZyh1
bnNpZ25lZCBsb25nIHN0YXJ0LAoxNDQ3NDogICAgICAgdW5zaWduZWQgbG9uZyBlbmQpOwoxNDQ3
NDogCjE0NDc0OiBleHRlcm4gdm9pZCBpbml0bWVtX2luaXQodm9pZCk7CjE0NDc0OiAjIDcgIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vcHRyYWNlLmgiIDIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9p
bmNsdWRlL3VhcGkvYXNtL3B0cmFjZS5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vcHRyYWNl
LWFiaS5oIiAxCjE0NDc0OiAjIDcgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9wdHJhY2Uu
aCIgMgoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci1mbGFncy5o
IiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4
Ni9pbmNsdWRlL3VhcGkvYXNtL3Byb2Nlc3Nvci1mbGFncy5oIiAxCjE0NDc0OiAjIDYgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLWZsYWdzLmgiIDIKMTQ0NzQ6ICMgOCAiLi9hcmNo
L3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3B0cmFjZS5oIiAyCjE0NDc0OiAjIDggIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vcHRyYWNlLmgiIDIKMTQ0NzQ6ICMgNTYgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vcHRyYWNlLmgiCjE0NDc0OiBzdHJ1Y3QgcHRfcmVncyB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHIxNTsKMTQ0NzQ6ICB1bnNpZ25lZCBs
b25nIHIxNDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHIxMzsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25n
IHIxMjsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGJwOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgYng7
CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHIxMTsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25n
IHIxMDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHI5OwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgcjg7
CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBheDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGN4OwoxNDQ3
NDogIHVuc2lnbmVkIGxvbmcgZHg7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBzaTsKMTQ0NzQ6ICB1
bnNpZ25lZCBsb25nIGRpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
dW5zaWduZWQgbG9uZyBvcmlnX2F4OwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBpcDsK
MTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGNzOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CjE0
NDc0OiAgdW5zaWduZWQgbG9uZyBzcDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHNzOwoxNDQ3NDog
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnRfdHlwZXMuaCIgMQoxNDQ3NDogIyA0MyAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oIgoxNDQ3NDogIyAxICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL2Rlc2NfZGVmcy5oIiAxCjE0NDc0OiAjIDE2ICIuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL2Rlc2NfZGVmcy5oIgoxNDQ3NDogc3RydWN0IGRlc2Nfc3RydWN0IHsKMTQ0NzQ6
ICB1MTYgbGltaXQwOwoxNDQ3NDogIHUxNiBiYXNlMDsKMTQ0NzQ6ICB1MTYgYmFzZTE6IDgsIHR5
cGU6IDQsIHM6IDEsIGRwbDogMiwgcDogMTsKMTQ0NzQ6ICB1MTYgbGltaXQxOiA0LCBhdmw6IDEs
IGw6IDEsIGQ6IDEsIGc6IDEsIGJhc2UyOiA4OwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChwYWNr
ZWQpKTsKMTQ0NzQ6ICMgNDAgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZGVzY19kZWZzLmgiCjE0
NDc0OiBlbnVtIHsKMTQ0NzQ6ICBHQVRFX0lOVEVSUlVQVCA9IDB4RSwKMTQ0NzQ6ICBHQVRFX1RS
QVAgPSAweEYsCjE0NDc0OiAgR0FURV9DQUxMID0gMHhDLAoxNDQ3NDogIEdBVEVfVEFTSyA9IDB4
NSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIERFU0NfVFNTID0gMHg5
LAoxNDQ3NDogIERFU0NfTERUID0gMHgyLAoxNDQ3NDogIERFU0NUWVBFX1MgPSAweDEwLAoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgbGR0dHNzX2Rlc2MgewoxNDQ3NDog
IHUxNiBsaW1pdDA7CjE0NDc0OiAgdTE2IGJhc2UwOwoxNDQ3NDogCjE0NDc0OiAgdTE2IGJhc2Ux
IDogOCwgdHlwZSA6IDUsIGRwbCA6IDIsIHAgOiAxOwoxNDQ3NDogIHUxNiBsaW1pdDEgOiA0LCB6
ZXJvMCA6IDMsIGcgOiAxLCBiYXNlMiA6IDg7CjE0NDc0OiAKMTQ0NzQ6ICB1MzIgYmFzZTM7CjE0
NDc0OiAgdTMyIHplcm8xOwoxNDQ3NDogCjE0NDc0OiB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkp
OwoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHN0cnVjdCBsZHR0c3NfZGVzYyBsZHRfZGVzYzsKMTQ0
NzQ6IHR5cGVkZWYgc3RydWN0IGxkdHRzc19kZXNjIHRzc19kZXNjOwoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3QgaWR0X2JpdHMgewoxNDQ3NDogIHUxNiBpc3QgOiAzLAoxNDQ3NDogICAgemVybyA6IDUs
CjE0NDc0OiAgICB0eXBlIDogNSwKMTQ0NzQ6ICAgIGRwbCA6IDIsCjE0NDc0OiAgICBwIDogMTsK
MTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBn
YXRlX3N0cnVjdCB7CjE0NDc0OiAgdTE2IG9mZnNldF9sb3c7CjE0NDc0OiAgdTE2IHNlZ21lbnQ7
CjE0NDc0OiAgc3RydWN0IGlkdF9iaXRzIGJpdHM7CjE0NDc0OiAgdTE2IG9mZnNldF9taWRkbGU7
CjE0NDc0OiAKMTQ0NzQ6ICB1MzIgb2Zmc2V0X2hpZ2g7CjE0NDc0OiAgdTMyIHJlc2VydmVkOwox
NDQ3NDogCjE0NDc0OiB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwoxNDQ3NDogCjE0NDc0OiB0
eXBlZGVmIHN0cnVjdCBnYXRlX3N0cnVjdCBnYXRlX2Rlc2M7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2ln
bmVkIGxvbmcgZ2F0ZV9vZmZzZXQoY29uc3QgZ2F0ZV9kZXNjICpnKQoxNDQ3NDogewoxNDQ3NDog
CjE0NDc0OiAgcmV0dXJuIGctPm9mZnNldF9sb3cgfCAoKHVuc2lnbmVkIGxvbmcpZy0+b2Zmc2V0
X21pZGRsZSA8PCAxNikgfAoxNDQ3NDogICAoKHVuc2lnbmVkIGxvbmcpIGctPm9mZnNldF9oaWdo
IDw8IDMyKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dW5zaWduZWQgbG9uZyBnYXRlX3NlZ21lbnQoY29uc3QgZ2F0ZV9kZXNjICpnKQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiBnLT5zZWdtZW50OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
ZGVzY19wdHIgewoxNDQ3NDogIHVuc2lnbmVkIHNob3J0IHNpemU7CjE0NDc0OiAgdW5zaWduZWQg
bG9uZyBhZGRyZXNzOwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKSA7CjE0NDc0OiAj
IDQ0ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0X3R5cGVzLmgiIDIKMTQ0NzQ6ICMg
MSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rbWFwX3R5cGVzLmgiIDEKMTQ0NzQ6ICMgOSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9rbWFwX3R5cGVzLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9h
c20tZ2VuZXJpYy9rbWFwX3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMTAgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20va21hcF90eXBlcy5oIiAyCjE0NDc0OiAjIDQ1ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L3BhcmF2aXJ0X3R5cGVzLmgiIDIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w
Z3RhYmxlX3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMTMzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Bn
dGFibGVfdHlwZXMuaCIKMTQ0NzQ6IGVudW0gcGFnZV9jYWNoZV9tb2RlIHsKMTQ0NzQ6ICBfUEFH
RV9DQUNIRV9NT0RFX1dCID0gMCwKMTQ0NzQ6ICBfUEFHRV9DQUNIRV9NT0RFX1dDID0gMSwKMTQ0
NzQ6ICBfUEFHRV9DQUNIRV9NT0RFX1VDX01JTlVTID0gMiwKMTQ0NzQ6ICBfUEFHRV9DQUNIRV9N
T0RFX1VDID0gMywKMTQ0NzQ6ICBfUEFHRV9DQUNIRV9NT0RFX1dUID0gNCwKMTQ0NzQ6ICBfUEFH
RV9DQUNIRV9NT0RFX1dQID0gNSwKMTQ0NzQ6IAoxNDQ3NDogIF9QQUdFX0NBQ0hFX01PREVfTlVN
ID0gOAoxNDQ3NDogfTsKMTQ0NzQ6ICMgMjU3ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFi
bGVfdHlwZXMuaCIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0
X3R5cGVzLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL3NwYXJzZW1lbS5oIiAxCjE0NDc0OiAjIDYgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vcGd0YWJsZV82NF90eXBlcy5oIiAyCjE0NDc0OiAjIDE0ICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL3BndGFibGVfNjRfdHlwZXMuaCIKMTQ0NzQ6IHR5cGVkZWYgdW5zaWdu
ZWQgbG9uZyBwdGV2YWxfdDsKMTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgbG9uZyBwbWR2YWxfdDsK
MTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgbG9uZyBwdWR2YWxfdDsKMTQ0NzQ6IHR5cGVkZWYgdW5z
aWduZWQgbG9uZyBwNGR2YWxfdDsKMTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgbG9uZyBwZ2R2YWxf
dDsKMTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgbG9uZyBwZ3Byb3R2YWxfdDsKMTQ0NzQ6IAoxNDQ3
NDogdHlwZWRlZiBzdHJ1Y3QgeyBwdGV2YWxfdCBwdGU7IH0gcHRlX3Q7CjE0NDc0OiAjIDQzICIu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVfNjRfdHlwZXMuaCIKMTQ0NzQ6IGV4dGVybiB1
bnNpZ25lZCBpbnQgcGdkaXJfc2hpZnQ7CjE0NDc0OiBleHRlcm4gdW5zaWduZWQgaW50IHB0cnNf
cGVyX3A0ZDsKMTQ0NzQ6ICMgMjU4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVfdHlw
ZXMuaCIgMgoxNDQ3NDogIyAyNzMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGd0YWJsZV90eXBl
cy5oIgoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgcGdwcm90IHsgcGdwcm90dmFsX3QgcGdwcm90OyB9
IHBncHJvdF90OwoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHN0cnVjdCB7IHBnZHZhbF90IHBnZDsg
fSBwZ2RfdDsKMTQ0NzQ6ICMgMzAwICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVfdHlw
ZXMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHBnZF90IG5hdGl2ZV9tYWtlX3BnZChwZ2R2YWxfdCB2YWwpCjE0NDc0OiB7
CjE0NDc0OiAgcmV0dXJuIChwZ2RfdCkgeyB2YWwgJiAofjBVTEwpIH07CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHBnZHZhbF90IG5hdGl2ZV9wZ2RfdmFsKHBnZF90IHBnZCkKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gcGdkLnBnZCAmICh+MFVMTCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHBn
ZHZhbF90IHBnZF9mbGFncyhwZ2RfdCBwZ2QpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIG5hdGl2
ZV9wZ2RfdmFsKHBnZCkgJiAofigocHRldmFsX3QpKCgoc2lnbmVkIGxvbmcpKH4oKCgxVUwpIDw8
IDEyKS0xKSkpICYgKChwaHlzX2FkZHJfdCkoKDFVTEwgPDwgNTIpIC0gMSkpKSkpOwoxNDQ3NDog
fQoxNDQ3NDogIyAzMjggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGd0YWJsZV90eXBlcy5oIgox
NDQ3NDogIyAxICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGd0YWJsZS1ub3A0ZC5oIiAxCjE0NDc0
OiAjIDkgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9wZ3RhYmxlLW5vcDRkLmgiCjE0NDc0OiB0eXBl
ZGVmIHN0cnVjdCB7IHBnZF90IHBnZDsgfSBwNGRfdDsKMTQ0NzQ6ICMgMjIgIi4vaW5jbHVkZS9h
c20tZ2VuZXJpYy9wZ3RhYmxlLW5vcDRkLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcGdkX25vbmUocGdkX3QgcGdk
KSB7IHJldHVybiAwOyB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcGdkX2JhZChwZ2RfdCBwZ2QpIHsgcmV0dXJuIDA7
IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGludCBwZ2RfcHJlc2VudChwZ2RfdCBwZ2QpIHsgcmV0dXJuIDE7IH0KMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgcGdkX2NsZWFyKHBnZF90ICpwZ2QpIHsgfQoxNDQ3NDogIyAzNiAiLi9pbmNsdWRlL2Fz
bS1nZW5lcmljL3BndGFibGUtbm9wNGQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHA0ZF90ICpwNGRfb2Zmc2V0KHBnZF90
ICpwZ2QsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHA0
ZF90ICopcGdkOwoxNDQ3NDogfQoxNDQ3NDogIyAzMjkgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
cGd0YWJsZV90eXBlcy5oIiAyCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHA0ZF90IG5hdGl2ZV9tYWtlX3A0ZChw
dWR2YWxfdCB2YWwpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIChwNGRfdCkgeyAucGdkID0gbmF0
aXZlX21ha2VfcGdkKChwZ2R2YWxfdCl2YWwpIH07CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHA0
ZHZhbF90IG5hdGl2ZV9wNGRfdmFsKHA0ZF90IHA0ZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
bmF0aXZlX3BnZF92YWwocDRkLnBnZCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiB0eXBlZGVmIHN0cnVjdCB7IHB1ZHZhbF90IHB1ZDsgfSBwdWRfdDsKMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgcHVkX3QgbmF0aXZlX21ha2VfcHVkKHBtZHZhbF90IHZhbCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gKHB1ZF90KSB7IHZhbCB9OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwdWR2YWxf
dCBuYXRpdmVfcHVkX3ZhbChwdWRfdCBwdWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHB1ZC5w
dWQ7CjE0NDc0OiB9CjE0NDc0OiAjIDM2OCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxl
X3R5cGVzLmgiCjE0NDc0OiB0eXBlZGVmIHN0cnVjdCB7IHBtZHZhbF90IHBtZDsgfSBwbWRfdDsK
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgcG1kX3QgbmF0aXZlX21ha2VfcG1kKHBtZHZhbF90IHZhbCkKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4gKHBtZF90KSB7IHZhbCB9OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBwbWR2YWxfdCBuYXRpdmVfcG1kX3ZhbChwbWRfdCBwbWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuIHBtZC5wbWQ7CjE0NDc0OiB9CjE0NDc0OiAjIDM5MyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9wZ3RhYmxlX3R5cGVzLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwNGR2YWxfdCBwNGRfcGZuX21hc2socDRkX3QgcDRk
KQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuICgocHRldmFsX3QpKCgoc2lnbmVkIGxv
bmcpKH4oKCgxVUwpIDw8IDEyKS0xKSkpICYgKChwaHlzX2FkZHJfdCkoKDFVTEwgPDwgNTIpIC0g
MSkpKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHA0ZHZhbF90IHA0ZF9mbGFnc19tYXNrKHA0
ZF90IHA0ZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gfnA0ZF9wZm5fbWFzayhwNGQpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBwNGR2YWxfdCBwNGRfZmxhZ3MocDRkX3QgcDRkKQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiBuYXRpdmVfcDRkX3ZhbChwNGQpICYgcDRkX2ZsYWdzX21hc2socDRk
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcHVkdmFsX3QgcHVkX3Bmbl9tYXNrKHB1ZF90IHB1
ZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAobmF0aXZlX3B1ZF92YWwocHVkKSAmICgoKHB0ZXZhbF90
KSgxKSkgPDwgNykpCjE0NDc0OiAgIHJldHVybiAoKChzaWduZWQgbG9uZykofigoKDFVTCkgPDwg
MzApLTEpKSkgJiAoKHBoeXNfYWRkcl90KSgoMVVMTCA8PCA1MikgLSAxKSkpOwoxNDQ3NDogIGVs
c2UKMTQ0NzQ6ICAgcmV0dXJuICgocHRldmFsX3QpKCgoc2lnbmVkIGxvbmcpKH4oKCgxVUwpIDw8
IDEyKS0xKSkpICYgKChwaHlzX2FkZHJfdCkoKDFVTEwgPDwgNTIpIC0gMSkpKSk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHB1ZHZhbF90IHB1ZF9mbGFnc19tYXNrKHB1ZF90IHB1ZCkKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4gfnB1ZF9wZm5fbWFzayhwdWQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBwdWR2YWxfdCBwdWRfZmxhZ3MocHVkX3QgcHVkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVy
biBuYXRpdmVfcHVkX3ZhbChwdWQpICYgcHVkX2ZsYWdzX21hc2socHVkKTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgcG1kdmFsX3QgcG1kX3Bmbl9tYXNrKHBtZF90IHBtZCkKMTQ0NzQ6IHsKMTQ0
NzQ6ICBpZiAobmF0aXZlX3BtZF92YWwocG1kKSAmICgoKHB0ZXZhbF90KSgxKSkgPDwgNykpCjE0
NDc0OiAgIHJldHVybiAoKChzaWduZWQgbG9uZykofigoKDFVTCkgPDwgMjEpLTEpKSkgJiAoKHBo
eXNfYWRkcl90KSgoMVVMTCA8PCA1MikgLSAxKSkpOwoxNDQ3NDogIGVsc2UKMTQ0NzQ6ICAgcmV0
dXJuICgocHRldmFsX3QpKCgoc2lnbmVkIGxvbmcpKH4oKCgxVUwpIDw8IDEyKS0xKSkpICYgKChw
aHlzX2FkZHJfdCkoKDFVTEwgPDwgNTIpIC0gMSkpKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHBtZHZhbF90IHBtZF9mbGFnc19tYXNrKHBtZF90IHBtZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gfnBtZF9wZm5fbWFzayhwbWQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwbWR2YWxfdCBw
bWRfZmxhZ3MocG1kX3QgcG1kKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBuYXRpdmVfcG1kX3Zh
bChwbWQpICYgcG1kX2ZsYWdzX21hc2socG1kKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcHRl
X3QgbmF0aXZlX21ha2VfcHRlKHB0ZXZhbF90IHZhbCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
KHB0ZV90KSB7IC5wdGUgPSB2YWwgfTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcHRldmFsX3Qg
bmF0aXZlX3B0ZV92YWwocHRlX3QgcHRlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBwdGUucHRl
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwdGV2YWxfdCBwdGVfZmxhZ3MocHRlX3QgcHRlKQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiBuYXRpdmVfcHRlX3ZhbChwdGUpICYgKH4oKHB0ZXZhbF90
KSgoKHNpZ25lZCBsb25nKSh+KCgoMVVMKSA8PCAxMiktMSkpKSAmICgocGh5c19hZGRyX3QpKCgx
VUxMIDw8IDUyKSAtIDEpKSkpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHVpbnQx
Nl90IF9fY2FjaGVtb2RlMnB0ZV90YmxbX1BBR0VfQ0FDSEVfTU9ERV9OVU1dOwoxNDQ3NDogZXh0
ZXJuIHVpbnQ4X3QgX19wdGUyY2FjaGVtb2RlX3RibFs4XTsKMTQ0NzQ6ICMgNDcyICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL3BndGFibGVfdHlwZXMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgY2Fj
aGVtb2RlMnByb3R2YWwoZW51bSBwYWdlX2NhY2hlX21vZGUgcGNtKQoxNDQ3NDogewoxNDQ3NDog
IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKHBjbSA9PSAwKSwgMSkpCjE0NDc0OiAgIHJldHVybiAw
OwoxNDQ3NDogIHJldHVybiBfX2NhY2hlbW9kZTJwdGVfdGJsW3BjbV07CjE0NDc0OiB9CjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBwZ3Byb3RfdCBjYWNoZW1vZGUycGdwcm90KGVudW0gcGFnZV9jYWNoZV9tb2RlIHBjbSkKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKChwZ3Byb3RfdCkgeyAoY2FjaGVtb2RlMnByb3R2YWwocGNt
KSkgfSApOwoxNDQ3NDogfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgZW51bSBwYWdlX2NhY2hlX21vZGUgcGdwcm90MmNhY2hl
bW9kZShwZ3Byb3RfdCBwZ3Byb3QpCjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBtYXNr
ZWQ7CjE0NDc0OiAKMTQ0NzQ6ICBtYXNrZWQgPSAoKHBncHJvdCkucGdwcm90KSAmICgoKChwdGV2
YWxfdCkoMSkpIDw8IDMpIHwgKCgocHRldmFsX3QpKDEpKSA8PCA0KSB8ICgoKHB0ZXZhbF90KSgx
KSkgPDwgNykpOwoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKG1hc2tlZCA9PSAwKSwg
MSkpCjE0NDc0OiAgIHJldHVybiAwOwoxNDQ3NDogIHJldHVybiBfX3B0ZTJjYWNoZW1vZGVfdGJs
WygoKChtYXNrZWQpID4+ICg3IC0gMikpICYgNCkgfCAoKChtYXNrZWQpID4+ICg0IC0gMSkpICYg
MikgfCAoKChtYXNrZWQpID4+IDMpICYgMSkpXTsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHBncHJvdF90IHBn
cHJvdF80a18yX2xhcmdlKHBncHJvdF90IHBncHJvdCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBwZ3Byb3R2
YWxfdCB2YWwgPSAoKHBncHJvdCkucGdwcm90KTsKMTQ0NzQ6ICBwZ3Byb3RfdCBuZXc7CjE0NDc0
OiAKMTQ0NzQ6ICAoKG5ldykucGdwcm90KSA9ICh2YWwgJiB+KCgoKHB0ZXZhbF90KSgxKSkgPDwg
NykgfCAoKChwdGV2YWxfdCkoMSkpIDw8IDEyKSkpIHwKMTQ0NzQ6ICAgKCh2YWwgJiAoKChwdGV2
YWxfdCkoMSkpIDw8IDcpKSA8PCAoMTIgLSA3KSk7CjE0NDc0OiAgcmV0dXJuIG5ldzsKMTQ0NzQ6
IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHBncHJvdF90IHBncHJvdF9sYXJnZV8yXzRrKHBncHJvdF90IHBncHJvdCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICBwZ3Byb3R2YWxfdCB2YWwgPSAoKHBncHJvdCkucGdwcm90KTsKMTQ0NzQ6
ICBwZ3Byb3RfdCBuZXc7CjE0NDc0OiAKMTQ0NzQ6ICAoKG5ldykucGdwcm90KSA9ICh2YWwgJiB+
KCgoKHB0ZXZhbF90KSgxKSkgPDwgNykgfCAoKChwdGV2YWxfdCkoMSkpIDw8IDEyKSkpIHwKMTQ0
NzQ6ICAgICAgKCh2YWwgJiAoKChwdGV2YWxfdCkoMSkpIDw8IDEyKSkgPj4KMTQ0NzQ6ICAgICAg
ICgxMiAtIDcpKTsKMTQ0NzQ6ICByZXR1cm4gbmV3OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHR5cGVkZWYgc3RydWN0IHBhZ2UgKnBndGFibGVfdDsKMTQ0NzQ6IAoxNDQ3NDogZXh0
ZXJuIHB0ZXZhbF90IF9fc3VwcG9ydGVkX3B0ZV9tYXNrOwoxNDQ3NDogZXh0ZXJuIHB0ZXZhbF90
IF9fZGVmYXVsdF9rZXJuZWxfcHRlX21hc2s7CjE0NDc0OiBleHRlcm4gdm9pZCBzZXRfbngodm9p
ZCk7CjE0NDc0OiBleHRlcm4gaW50IG54X2VuYWJsZWQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIHBncHJvdF90IHBncHJvdF93cml0ZWNvbWJpbmUocGdwcm90X3QgcHJvdCk7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHBncHJvdF90IHBncHJvdF93cml0ZXRocm91Z2gocGdw
cm90X3QgcHJvdCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IGZpbGU7CjE0NDc0OiBwZ3Byb3RfdCBwaHlzX21lbV9hY2Nlc3NfcHJvdChzdHJ1
Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgbG9uZyBwZm4sCjE0NDc0OiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUsIHBncHJvdF90IHZtYV9wcm90KTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lkIHNldF9wdGVfdmFkZHIodW5zaWduZWQgbG9uZyB2YWRk
ciwgcHRlX3QgcHRlKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHNlcV9maWxlOwoxNDQ3NDogZXh0ZXJuIHZvaWQg
YXJjaF9yZXBvcnRfbWVtaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0pOwoxNDQ3NDogCjE0NDc0OiBl
bnVtIHBnX2xldmVsIHsKMTQ0NzQ6ICBQR19MRVZFTF9OT05FLAoxNDQ3NDogIFBHX0xFVkVMXzRL
LAoxNDQ3NDogIFBHX0xFVkVMXzJNLAoxNDQ3NDogIFBHX0xFVkVMXzFHLAoxNDQ3NDogIFBHX0xF
VkVMXzUxMkcsCjE0NDc0OiAgUEdfTEVWRUxfTlVNCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IGV4dGVybiB2b2lkIHVwZGF0ZV9wYWdlX2NvdW50KGludCBsZXZlbCwgdW5zaWduZWQg
bG9uZyBwYWdlcyk7CjE0NDc0OiAjIDU2NiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxl
X3R5cGVzLmgiCjE0NDc0OiBleHRlcm4gcHRlX3QgKmxvb2t1cF9hZGRyZXNzKHVuc2lnbmVkIGxv
bmcgYWRkcmVzcywgdW5zaWduZWQgaW50ICpsZXZlbCk7CjE0NDc0OiBleHRlcm4gcHRlX3QgKmxv
b2t1cF9hZGRyZXNzX2luX3BnZChwZ2RfdCAqcGdkLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsCjE0
NDc0OiAgICAgICAgIHVuc2lnbmVkIGludCAqbGV2ZWwpOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
bW1fc3RydWN0OwoxNDQ3NDogZXh0ZXJuIHB0ZV90ICpsb29rdXBfYWRkcmVzc19pbl9tbShzdHJ1
Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLAoxNDQ3NDogICAgICAgIHVu
c2lnbmVkIGludCAqbGV2ZWwpOwoxNDQ3NDogZXh0ZXJuIHBtZF90ICpsb29rdXBfcG1kX2FkZHJl
c3ModW5zaWduZWQgbG9uZyBhZGRyZXNzKTsKMTQ0NzQ6IGV4dGVybiBwaHlzX2FkZHJfdCBzbG93
X3ZpcnRfdG9fcGh5cyh2b2lkICpfX2FkZHJlc3MpOwoxNDQ3NDogZXh0ZXJuIGludCBfX2F0dHJp
YnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xk
X18pKSBrZXJuZWxfbWFwX3BhZ2VzX2luX3BnZChwZ2RfdCAqcGdkLCB1NjQgcGZuLAoxNDQ3NDog
ICAgICAgIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKMTQ0NzQ6ICAgICAgICB1bnNpZ25lZCBudW1w
YWdlcywKMTQ0NzQ6ICAgICAgICB1bnNpZ25lZCBsb25nIHBhZ2VfZmxhZ3MpOwoxNDQ3NDogZXh0
ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRy
aWJ1dGVfXygoX19jb2xkX18pKSBrZXJuZWxfdW5tYXBfcGFnZXNfaW5fcGdkKHBnZF90ICpwZ2Qs
IHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKMTQ0NzQ6ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbnVt
cGFnZXMpOwoxNDQ3NDogIyA0NiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBl
cy5oIiAyCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbm9zcGVjLWJyYW5jaC5o
IiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIu
L2luY2x1ZGUvbGludXgvc3RhdGljX2tleS5oIiAxCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51
eC9qdW1wX2xhYmVsLmgiIDEKMTQ0NzQ6ICMgNzkgIi4vaW5jbHVkZS9saW51eC9qdW1wX2xhYmVs
LmgiCjE0NDc0OiBleHRlcm4gYm9vbCBzdGF0aWNfa2V5X2luaXRpYWxpemVkOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3Qgc3RhdGljX2tleSB7CjE0NDc0OiAgYXRvbWljX3QgZW5hYmxlZDsKMTQ0NzQ6ICMgMTAyICIu
L2luY2x1ZGUvbGludXgvanVtcF9sYWJlbC5oIgoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgdW5z
aWduZWQgbG9uZyB0eXBlOwoxNDQ3NDogICBzdHJ1Y3QganVtcF9lbnRyeSAqZW50cmllczsKMTQ0
NzQ6ICAgc3RydWN0IHN0YXRpY19rZXlfbW9kICpuZXh0OwoxNDQ3NDogIH07CjE0NDc0OiB9Owox
NDQ3NDogIyAxMTcgIi4vaW5jbHVkZS9saW51eC9qdW1wX2xhYmVsLmgiCjE0NDc0OiAjIDEgIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vanVtcF9sYWJlbC5oIiAxCjE0NDc0OiAjIDIzICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL2p1bXBfbGFiZWwuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgYm9vbCBhcmNoX3N0YXRpY19icmFuY2goc3RydWN0IHN0YXRpY19rZXkg
KmtleSwgYm9vbCBicmFuY2gpCjE0NDc0OiB7CjE0NDc0OiAgZG8geyBhc20gZ290bygiMToiICIu
Ynl0ZSAiICIweDBmLDB4MWYsMHg0NCwweDAwLDAiICJcblx0IiAiLnB1c2hzZWN0aW9uIF9fanVt
cF90YWJsZSwgIFwiYXdcIiBcblx0IiAiICIgIi5iYWxpZ24gOCIgIiAiICJcblx0IiAiLmxvbmcg
MWIgLSAuLCAlbFtsX3llc10gLSAuIFxuXHQiICIgIiAiLnF1YWQiICIgIiAiJWMwICsgJWMxIC0g
LlxuXHQiICIucG9wc2VjdGlvbiBcblx0IiA6IDogImkiIChrZXkpLCAiaSIgKGJyYW5jaCkgOiA6
IGxfeWVzKTsgYXNtICgiIik7IH0gd2hpbGUgKDApCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBmYWxzZTsKMTQ0NzQ6IGxfeWVz
OgoxNDQ3NDogIHJldHVybiB0cnVlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0
ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGJvb2wgYXJjaF9zdGF0aWNfYnJhbmNoX2p1bXAoc3Ry
dWN0IHN0YXRpY19rZXkgKmtleSwgYm9vbCBicmFuY2gpCjE0NDc0OiB7CjE0NDc0OiAgZG8geyBh
c20gZ290bygiMToiICIuYnl0ZSAweGU5XG5cdCAubG9uZyAlbFtsX3llc10gLSAyZlxuXHQiICIy
OlxuXHQiICIucHVzaHNlY3Rpb24gX19qdW1wX3RhYmxlLCAgXCJhd1wiIFxuXHQiICIgIiAiLmJh
bGlnbiA4IiAiICIgIlxuXHQiICIubG9uZyAxYiAtIC4sICVsW2xfeWVzXSAtIC4gXG5cdCIgIiAi
ICIucXVhZCIgIiAiICIlYzAgKyAlYzEgLSAuXG5cdCIgIi5wb3BzZWN0aW9uIFxuXHQiIDogOiAi
aSIgKGtleSksICJpIiAoYnJhbmNoKSA6IDogbF95ZXMpOyBhc20gKCIiKTsgfSB3aGlsZSAoMCkK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7CjE0NDc0OiAK
MTQ0NzQ6ICByZXR1cm4gZmFsc2U7CjE0NDc0OiBsX3llczoKMTQ0NzQ6ICByZXR1cm4gdHJ1ZTsK
MTQ0NzQ6IH0KMTQ0NzQ6ICMgMTE4ICIuL2luY2x1ZGUvbGludXgvanVtcF9sYWJlbC5oIiAyCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBqdW1wX2VudHJ5IHsK
MTQ0NzQ6ICBzMzIgY29kZTsKMTQ0NzQ6ICBzMzIgdGFyZ2V0OwoxNDQ3NDogIGxvbmcga2V5Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBqdW1wX2VudHJ5X2NvZGUoY29u
c3Qgc3RydWN0IGp1bXBfZW50cnkgKmVudHJ5KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAodW5z
aWduZWQgbG9uZykmZW50cnktPmNvZGUgKyBlbnRyeS0+Y29kZTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdW5zaWduZWQgbG9uZyBqdW1wX2VudHJ5X3RhcmdldChjb25zdCBzdHJ1Y3QganVtcF9l
bnRyeSAqZW50cnkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh1bnNpZ25lZCBsb25nKSZlbnRy
eS0+dGFyZ2V0ICsgZW50cnktPnRhcmdldDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0
IHN0YXRpY19rZXkgKmp1bXBfZW50cnlfa2V5KGNvbnN0IHN0cnVjdCBqdW1wX2VudHJ5ICplbnRy
eSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBsb25nIG9mZnNldCA9IGVudHJ5LT5rZXkgJiB+M0w7CjE0NDc0
OiAKMTQ0NzQ6ICByZXR1cm4gKHN0cnVjdCBzdGF0aWNfa2V5ICopKCh1bnNpZ25lZCBsb25nKSZl
bnRyeS0+a2V5ICsgb2Zmc2V0KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTY0ICIuL2luY2x1ZGUvbGlu
dXgvanVtcF9sYWJlbC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBqdW1wX2VudHJ5X2lzX2JyYW5jaChjb25zdCBz
dHJ1Y3QganVtcF9lbnRyeSAqZW50cnkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh1bnNpZ25l
ZCBsb25nKWVudHJ5LT5rZXkgJiAxVUw7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wganVt
cF9lbnRyeV9pc19pbml0KGNvbnN0IHN0cnVjdCBqdW1wX2VudHJ5ICplbnRyeSkKMTQ0NzQ6IHsK
MTQ0NzQ6ICByZXR1cm4gKHVuc2lnbmVkIGxvbmcpZW50cnktPmtleSAmIDJVTDsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBqdW1wX2VudHJ5X3NldF9pbml0KHN0cnVjdCBqdW1wX2VudHJ5
ICplbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBlbnRyeS0+a2V5IHw9IDI7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGp1
bXBfbGFiZWxfdHlwZSB7CjE0NDc0OiAgSlVNUF9MQUJFTF9OT1AgPSAwLAoxNDQ3NDogIEpVTVBf
TEFCRUxfSk1QLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG1vZHVsZTsKMTQ0NzQ6
ICMgMTk4ICIuL2luY2x1ZGUvbGludXgvanVtcF9sYWJlbC5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVf
XygoX19hbHdheXNfaW5saW5lX18pKSBib29sIHN0YXRpY19rZXlfZmFsc2Uoc3RydWN0IHN0YXRp
Y19rZXkgKmtleSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXJjaF9zdGF0aWNfYnJhbmNoKGtl
eSwgZmFsc2UpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5
c19pbmxpbmVfXykpIGJvb2wgc3RhdGljX2tleV90cnVlKHN0cnVjdCBzdGF0aWNfa2V5ICprZXkp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICFhcmNoX3N0YXRpY19icmFuY2goa2V5LCB0cnVlKTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBqdW1wX2VudHJ5IF9fc3RhcnRf
X19qdW1wX3RhYmxlW107CjE0NDc0OiBleHRlcm4gc3RydWN0IGp1bXBfZW50cnkgX19zdG9wX19f
anVtcF90YWJsZVtdOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBqdW1wX2xhYmVsX2luaXQo
dm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBqdW1wX2xhYmVsX2xvY2sodm9pZCk7CjE0NDc0OiBl
eHRlcm4gdm9pZCBqdW1wX2xhYmVsX3VubG9jayh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGFy
Y2hfanVtcF9sYWJlbF90cmFuc2Zvcm0oc3RydWN0IGp1bXBfZW50cnkgKmVudHJ5LAoxNDQ3NDog
ICAgICAgICAgIGVudW0ganVtcF9sYWJlbF90eXBlIHR5cGUpOwoxNDQ3NDogZXh0ZXJuIHZvaWQg
YXJjaF9qdW1wX2xhYmVsX3RyYW5zZm9ybV9zdGF0aWMoc3RydWN0IGp1bXBfZW50cnkgKmVudHJ5
LAoxNDQ3NDogICAgICAgICAgIGVudW0ganVtcF9sYWJlbF90eXBlIHR5cGUpOwoxNDQ3NDogZXh0
ZXJuIGJvb2wgYXJjaF9qdW1wX2xhYmVsX3RyYW5zZm9ybV9xdWV1ZShzdHJ1Y3QganVtcF9lbnRy
eSAqZW50cnksCjE0NDc0OiAgICAgICAgICBlbnVtIGp1bXBfbGFiZWxfdHlwZSB0eXBlKTsKMTQ0
NzQ6IGV4dGVybiB2b2lkIGFyY2hfanVtcF9sYWJlbF90cmFuc2Zvcm1fYXBwbHkodm9pZCk7CjE0
NDc0OiBleHRlcm4gaW50IGp1bXBfbGFiZWxfdGV4dF9yZXNlcnZlZCh2b2lkICpzdGFydCwgdm9p
ZCAqZW5kKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHN0YXRpY19rZXlfc2xvd19pbmMoc3RydWN0IHN0
YXRpY19rZXkgKmtleSk7CjE0NDc0OiBleHRlcm4gdm9pZCBzdGF0aWNfa2V5X3Nsb3dfZGVjKHN0
cnVjdCBzdGF0aWNfa2V5ICprZXkpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgc3RhdGljX2tleV9zbG93
X2luY19jcHVzbG9ja2VkKHN0cnVjdCBzdGF0aWNfa2V5ICprZXkpOwoxNDQ3NDogZXh0ZXJuIHZv
aWQgc3RhdGljX2tleV9zbG93X2RlY19jcHVzbG9ja2VkKHN0cnVjdCBzdGF0aWNfa2V5ICprZXkp
OwoxNDQ3NDogZXh0ZXJuIHZvaWQganVtcF9sYWJlbF9hcHBseV9ub3BzKHN0cnVjdCBtb2R1bGUg
Km1vZCk7CjE0NDc0OiBleHRlcm4gaW50IHN0YXRpY19rZXlfY291bnQoc3RydWN0IHN0YXRpY19r
ZXkgKmtleSk7CjE0NDc0OiBleHRlcm4gdm9pZCBzdGF0aWNfa2V5X2VuYWJsZShzdHJ1Y3Qgc3Rh
dGljX2tleSAqa2V5KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHN0YXRpY19rZXlfZGlzYWJsZShzdHJ1
Y3Qgc3RhdGljX2tleSAqa2V5KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHN0YXRpY19rZXlfZW5hYmxl
X2NwdXNsb2NrZWQoc3RydWN0IHN0YXRpY19rZXkgKmtleSk7CjE0NDc0OiBleHRlcm4gdm9pZCBz
dGF0aWNfa2V5X2Rpc2FibGVfY3B1c2xvY2tlZChzdHJ1Y3Qgc3RhdGljX2tleSAqa2V5KTsKMTQ0
NzQ6ICMgMzQ2ICIuL2luY2x1ZGUvbGludXgvanVtcF9sYWJlbC5oIgoxNDQ3NDogc3RydWN0IHN0
YXRpY19rZXlfdHJ1ZSB7CjE0NDc0OiAgc3RydWN0IHN0YXRpY19rZXkga2V5OwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHN0YXRpY19rZXlfZmFsc2UgewoxNDQ3NDogIHN0cnVjdCBz
dGF0aWNfa2V5IGtleTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDM4NSAiLi9pbmNsdWRlL2xpbnV4L2p1
bXBfbGFiZWwuaCIKMTQ0NzQ6IGV4dGVybiBib29sIF9fX193cm9uZ19icmFuY2hfZXJyb3Iodm9p
ZCk7CjE0NDc0OiAjIDIgIi4vaW5jbHVkZS9saW51eC9zdGF0aWNfa2V5LmgiIDIKMTQ0NzQ6ICMg
NyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9ub3NwZWMtYnJhbmNoLmgiIDIKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYWx0ZXJuYXRpdmUtYXNtLmgi
IDEKMTQ0NzQ6ICMgMTAgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbm9zcGVjLWJyYW5jaC5oIiAy
CjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3ItaW5kZXguaCIg
MQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9s
aW51eC9iaXRzLmgiIDEKMTQ0NzQ6ICMgNiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3ItaW5k
ZXguaCIgMgoxNDQ3NDogIyAxMiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9ub3NwZWMtYnJhbmNo
LmgiIDIKMTQ0NzQ6ICMgMjEzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL25vc3BlYy1icmFuY2gu
aCIKMTQ0NzQ6IGVudW0gc3BlY3RyZV92Ml9taXRpZ2F0aW9uIHsKMTQ0NzQ6ICBTUEVDVFJFX1Yy
X05PTkUsCjE0NDc0OiAgU1BFQ1RSRV9WMl9SRVRQT0xJTkVfR0VORVJJQywKMTQ0NzQ6ICBTUEVD
VFJFX1YyX1JFVFBPTElORV9BTUQsCjE0NDc0OiAgU1BFQ1RSRV9WMl9JQlJTX0VOSEFOQ0VELAox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHNwZWN0cmVfdjJfdXNlcl9taXRp
Z2F0aW9uIHsKMTQ0NzQ6ICBTUEVDVFJFX1YyX1VTRVJfTk9ORSwKMTQ0NzQ6ICBTUEVDVFJFX1Yy
X1VTRVJfU1RSSUNULAoxNDQ3NDogIFNQRUNUUkVfVjJfVVNFUl9TVFJJQ1RfUFJFRkVSUkVELAox
NDQ3NDogIFNQRUNUUkVfVjJfVVNFUl9QUkNUTCwKMTQ0NzQ6ICBTUEVDVFJFX1YyX1VTRVJfU0VD
Q09NUCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBzc2JfbWl0aWdhdGlv
biB7CjE0NDc0OiAgU1BFQ19TVE9SRV9CWVBBU1NfTk9ORSwKMTQ0NzQ6ICBTUEVDX1NUT1JFX0JZ
UEFTU19ESVNBQkxFLAoxNDQ3NDogIFNQRUNfU1RPUkVfQllQQVNTX1BSQ1RMLAoxNDQ3NDogIFNQ
RUNfU1RPUkVfQllQQVNTX1NFQ0NPTVAsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBleHRlcm4g
Y2hhciBfX2luZGlyZWN0X3RodW5rX3N0YXJ0W107CjE0NDc0OiBleHRlcm4gY2hhciBfX2luZGly
ZWN0X3RodW5rX2VuZFtdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHZtZXhpdF9maWxsX1JTQih2b2lkKQoxNDQ3NDog
ewoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBsb29wczsKMTQ0NzQ6IAoxNDQ3NDogIGFz
bSB2b2xhdGlsZSAoIjk5OTpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLmlnbm9yZV9hbHRz
XG5cdCIgIi5sb25nIDk5OWIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIKMTQ0NzQ6ICAgICAg
ICAgIiMgQUxUOiBvbGRuc3RyXG4iICI2NjE6XG5cdCIgImptcCA5MTBmIiAiXG42NjI6XG4iICIj
IEFMVDogcGFkZGluZ1xuIiAiLnNraXAgLSgoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIikt
KCIgIjY2MmItNjYxYiIgIikpID4gMCkgKiAiICIoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIg
IiktKCIgIjY2MmItNjYxYiIgIikpLDB4OTBcbiIgIjY2MyIgIjpcbiIgIi5wdXNoc2VjdGlvbiAu
YWx0aW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgLmxvbmcgNjYxYiAtIC5cbiIgIiAubG9uZyAiICI2
NjQiIjEiImYgLSAuXG4iICIgLndvcmQgIiAiKCA3KjMyKzEyKSIgIlxuIiAiIC5ieXRlICIgIjY2
MyIiYi02NjFiIiAiXG4iICIgLmJ5dGUgIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiXG4iICIg
LmJ5dGUgIiAiNjYzIiJiLTY2MmIiICJcbiIgIi5wb3BzZWN0aW9uXG4iICIucHVzaHNlY3Rpb24g
LmFsdGluc3RyX3JlcGxhY2VtZW50LCBcImF4XCJcbiIgIiMgQUxUOiByZXBsYWNlbWVudCAiICIx
IiAiXG4iICI2NjQiIjEiIjpcblx0IiAibW92ICQoMzIvMiksICUwOyA3NzE6IGNhbGwgNzcyZjsg
NzczOiBwYXVzZTsgbGZlbmNlOyBqbXAgNzczYjsgNzcyOiBjYWxsIDc3NGY7IDc3NTogcGF1c2U7
IGxmZW5jZTsgam1wIDc3NWI7IDc3NDogZGVjICUwOyBqbnogNzcxYjsgYWRkICQoNjQvOCkgKiAz
MiwgJTE7IiAiXG4iICI2NjUiIjEiICI6XG4iICIucG9wc2VjdGlvblxuIgoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICAgICAgICAgIjkxMDoiCjE0NDc0OiAgICAgICAgIDogIj1yIiAobG9vcHMpLCAi
K3IiIChjdXJyZW50X3N0YWNrX3BvaW50ZXIpCjE0NDc0OiAgICAgICAgIDogOiAibWVtb3J5IiAp
OwoxNDQ3NDogCjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlz
X2lubGluZV9fKSkKMTQ0NzQ6IHZvaWQgYWx0ZXJuYXRpdmVfbXNyX3dyaXRlKHVuc2lnbmVkIGlu
dCBtc3IsIHU2NCB2YWwsIHVuc2lnbmVkIGludCBmZWF0dXJlKQoxNDQ3NDogewoxNDQ3NDogIGFz
bSB2b2xhdGlsZSgiIyBBTFQ6IG9sZG5zdHJcbiIgIjY2MTpcblx0IiAiIiAiXG42NjI6XG4iICIj
IEFMVDogcGFkZGluZ1xuIiAiLnNraXAgLSgoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIikt
KCIgIjY2MmItNjYxYiIgIikpID4gMCkgKiAiICIoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIg
IiktKCIgIjY2MmItNjYxYiIgIikpLDB4OTBcbiIgIjY2MyIgIjpcbiIgIi5wdXNoc2VjdGlvbiAu
YWx0aW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgLmxvbmcgNjYxYiAtIC5cbiIgIiAubG9uZyAiICI2
NjQiIjEiImYgLSAuXG4iICIgLndvcmQgIiAiJWNbZmVhdHVyZV0iICJcbiIgIiAuYnl0ZSAiICI2
NjMiImItNjYxYiIgIlxuIiAiIC5ieXRlICIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIlxuIiAi
IC5ieXRlICIgIjY2MyIiYi02NjJiIiAiXG4iICIucG9wc2VjdGlvblxuIiAiLnB1c2hzZWN0aW9u
IC5hbHRpbnN0cl9yZXBsYWNlbWVudCwgXCJheFwiXG4iICIjIEFMVDogcmVwbGFjZW1lbnQgIiAi
MSIgIlxuIiAiNjY0IiIxIiI6XG5cdCIgIndybXNyIiAiXG4iICI2NjUiIjEiICI6XG4iICIucG9w
c2VjdGlvblxuIgoxNDQ3NDogICA6IDogImMiIChtc3IpLAoxNDQ3NDogICAgICAgImEiICgodTMy
KXZhbCksCjE0NDc0OiAgICAgICAiZCIgKCh1MzIpKHZhbCA+PiAzMikpLAoxNDQ3NDogICAgICAg
W2ZlYXR1cmVdICJpIiAoZmVhdHVyZSkKMTQ0NzQ6ICAgOiAibWVtb3J5Iik7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgaW5kaXJlY3RfYnJhbmNoX3ByZWRpY3Rpb25fYmFycmllcih2b2lk
KQoxNDQ3NDogewoxNDQ3NDogIHU2NCB2YWwgPSAoKCgoMVVMKSkpIDw8ICgwKSk7CjE0NDc0OiAK
MTQ0NzQ6ICBhbHRlcm5hdGl2ZV9tc3Jfd3JpdGUoMHgwMDAwMDA0OSwgdmFsLCAoIDcqMzIrMjEp
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdTY0IHg4Nl9zcGVjX2N0
cmxfYmFzZTsKMTQ0NzQ6ICMgMzA2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL25vc3BlYy1icmFu
Y2guaCIKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qgc3RhdGljX2tleV9mYWxzZSBzd2l0Y2hfdG9fY29u
ZF9zdGlicDsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qgc3RhdGljX2tleV9mYWxzZSBzd2l0Y2hfbW1f
Y29uZF9pYnBiOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBzdGF0aWNfa2V5X2ZhbHNlIHN3aXRjaF9t
bV9hbHdheXNfaWJwYjsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBzdGF0aWNfa2V5X2Zh
bHNlIG1kc191c2VyX2NsZWFyOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBzdGF0aWNfa2V5X2ZhbHNl
IG1kc19pZGxlX2NsZWFyOwoxNDQ3NDogIyAzMjIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbm9z
cGVjLWJyYW5jaC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBtZHNfY2xlYXJfY3B1X2J1ZmZlcnModm9pZCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICBzdGF0aWMgY29uc3QgdTE2IGRzID0gKDMqOCk7CjE0NDc0OiAjIDMzNSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9ub3NwZWMtYnJhbmNoLmgiCjE0NDc0OiAgYXNtIHZvbGF0
aWxlKCJ2ZXJ3ICVbZHNdIiA6IDogW2RzXSAibSIgKGRzKSA6ICJjYyIpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBt
ZHNfdXNlcl9jbGVhcl9jcHVfYnVmZmVycyh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIGlmICgoeyBi
b29sIGJyYW5jaDsgaWYgKF9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCombWRz
X3VzZXJfY2xlYXIpLCBzdHJ1Y3Qgc3RhdGljX2tleV90cnVlKSkgYnJhbmNoID0gIWFyY2hfc3Rh
dGljX2JyYW5jaCgmKCZtZHNfdXNlcl9jbGVhciktPmtleSwgdHJ1ZSk7IGVsc2UgaWYgKF9fYnVp
bHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCombWRzX3VzZXJfY2xlYXIpLCBzdHJ1Y3Qg
c3RhdGljX2tleV9mYWxzZSkpIGJyYW5jaCA9ICFhcmNoX3N0YXRpY19icmFuY2hfanVtcCgmKCZt
ZHNfdXNlcl9jbGVhciktPmtleSwgdHJ1ZSk7IGVsc2UgYnJhbmNoID0gX19fX3dyb25nX2JyYW5j
aF9lcnJvcigpOyBfX2J1aWx0aW5fZXhwZWN0KCEhKGJyYW5jaCksIDEpOyB9KSkKMTQ0NzQ6ICAg
bWRzX2NsZWFyX2NwdV9idWZmZXJzKCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIG1kc19pZGxlX2NsZWFyX2NwdV9i
dWZmZXJzKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKCh7IGJvb2wgYnJhbmNoOyBpZiAoX19i
dWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0eXBlb2YoKiZtZHNfaWRsZV9jbGVhciksIHN0cnVj
dCBzdGF0aWNfa2V5X3RydWUpKSBicmFuY2ggPSAhYXJjaF9zdGF0aWNfYnJhbmNoKCYoJm1kc19p
ZGxlX2NsZWFyKS0+a2V5LCB0cnVlKTsgZWxzZSBpZiAoX19idWlsdGluX3R5cGVzX2NvbXBhdGli
bGVfcCh0eXBlb2YoKiZtZHNfaWRsZV9jbGVhciksIHN0cnVjdCBzdGF0aWNfa2V5X2ZhbHNlKSkg
YnJhbmNoID0gIWFyY2hfc3RhdGljX2JyYW5jaF9qdW1wKCYoJm1kc19pZGxlX2NsZWFyKS0+a2V5
LCB0cnVlKTsgZWxzZSBicmFuY2ggPSBfX19fd3JvbmdfYnJhbmNoX2Vycm9yKCk7IF9fYnVpbHRp
bl9leHBlY3QoISEoYnJhbmNoKSwgMSk7IH0pKQoxNDQ3NDogICBtZHNfY2xlYXJfY3B1X2J1ZmZl
cnMoKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNDcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZp
cnRfdHlwZXMuaCIgMgoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcGFnZTsKMTQ0NzQ6IHN0cnVjdCB0
aHJlYWRfc3RydWN0OwoxNDQ3NDogc3RydWN0IGRlc2NfcHRyOwoxNDQ3NDogc3RydWN0IHRzc19z
dHJ1Y3Q7CjE0NDc0OiBzdHJ1Y3QgbW1fc3RydWN0OwoxNDQ3NDogc3RydWN0IGRlc2Nfc3RydWN0
OwoxNDQ3NDogc3RydWN0IHRhc2tfc3RydWN0OwoxNDQ3NDogc3RydWN0IGNwdW1hc2s7CjE0NDc0
OiBzdHJ1Y3QgZmx1c2hfdGxiX2luZm87CjE0NDc0OiBzdHJ1Y3QgbW11X2dhdGhlcjsKMTQ0NzQ6
IHN0cnVjdCB2bV9hcmVhX3N0cnVjdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcGFyYXZpcnRfY2FsbGVlX3NhdmUgewoxNDQ3NDogIHZvaWQg
KmZ1bmM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBwdl9pbmZvIHsK
MTQ0NzQ6ICMgNzkgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnRfdHlwZXMuaCIKMTQ0
NzQ6ICBjb25zdCBjaGFyICpuYW1lOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHB2
X2luaXRfb3BzIHsKMTQ0NzQ6ICMgOTEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnRf
dHlwZXMuaCIKMTQ0NzQ6ICB1bnNpZ25lZCAoKnBhdGNoKSh1OCB0eXBlLCB2b2lkICppbnNuX2J1
ZmYsCjE0NDc0OiAgICAgIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbGVuKTsKMTQ0NzQ6
IH0gOwoxNDQ3NDogIyAxMDQgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnRfdHlwZXMu
aCIKMTQ0NzQ6IHN0cnVjdCBwdl90aW1lX29wcyB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBsb25n
ICgqc2NoZWRfY2xvY2spKHZvaWQpOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgbG9uZyAoKnN0ZWFs
X2Nsb2NrKShpbnQgY3B1KTsKMTQ0NzQ6IH0gOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcHZfY3B1
X29wcyB7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqaW9fZGVsYXkpKHZvaWQpOwoxNDQ3NDogIyAx
ODMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnRfdHlwZXMuaCIKMTQ0NzQ6IH0gOwox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcHZfaXJxX29wcyB7CjE0NDc0OiAjIDIwNCAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oIgoxNDQ3NDogfSA7CjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBwdl9tbXVfb3BzIHsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpmbHVzaF90bGJfdXNl
cikodm9pZCk7CjE0NDc0OiAgdm9pZCAoKmZsdXNoX3RsYl9rZXJuZWwpKHZvaWQpOwoxNDQ3NDog
IHZvaWQgKCpmbHVzaF90bGJfb25lX3VzZXIpKHVuc2lnbmVkIGxvbmcgYWRkcik7CjE0NDc0OiAg
dm9pZCAoKmZsdXNoX3RsYl9vdGhlcnMpKGNvbnN0IHN0cnVjdCBjcHVtYXNrICpjcHVzLAoxNDQ3
NDogICAgICBjb25zdCBzdHJ1Y3QgZmx1c2hfdGxiX2luZm8gKmluZm8pOwoxNDQ3NDogCjE0NDc0
OiAgdm9pZCAoKnRsYl9yZW1vdmVfdGFibGUpKHN0cnVjdCBtbXVfZ2F0aGVyICp0bGIsIHZvaWQg
KnRhYmxlKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmV4aXRfbW1hcCkoc3RydWN0
IG1tX3N0cnVjdCAqbW0pOwoxNDQ3NDogIyAzMDYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFy
YXZpcnRfdHlwZXMuaCIKMTQ0NzQ6IH0gOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXJjaF9zcGlu
bG9jazsKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NwaW5sb2Nr
X3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMTYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vc3BpbmxvY2tf
dHlwZXMuaCIKMTQ0NzQ6IHR5cGVkZWYgdTggX190aWNrZXRfdDsKMTQ0NzQ6IHR5cGVkZWYgdTE2
IF9fdGlja2V0cGFpcl90OwoxNDQ3NDogIyAyNyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zcGlu
bG9ja190eXBlcy5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvcXNwaW5sb2Nr
X3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMjIgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9xc3BpbmxvY2tf
dHlwZXMuaCIKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IHFzcGlubG9jayB7CjE0NDc0OiAgdW5pb24g
ewoxNDQ3NDogICBhdG9taWNfdCB2YWw7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgc3RydWN0IHsKMTQ0NzQ6ICAgIHU4IGxv
Y2tlZDsKMTQ0NzQ6ICAgIHU4IHBlbmRpbmc7CjE0NDc0OiAgIH07CjE0NDc0OiAgIHN0cnVjdCB7
CjE0NDc0OiAgICB1MTYgbG9ja2VkX3BlbmRpbmc7CjE0NDc0OiAgICB1MTYgdGFpbDsKMTQ0NzQ6
ICAgfTsKMTQ0NzQ6ICMgNTEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9xc3BpbmxvY2tfdHlwZXMu
aCIKMTQ0NzQ6ICB9OwoxNDQ3NDogfSBhcmNoX3NwaW5sb2NrX3Q7CjE0NDc0OiAjIDI4ICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL3NwaW5sb2NrX3R5cGVzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAx
ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvcXJ3bG9ja190eXBlcy5oIiAxCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUv
dWFwaS9hc20vYnl0ZW9yZGVyLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvYnl0ZW9yZGVyL2xpdHRsZV9lbmRpYW4uaCIgMQox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBp
L2xpbnV4L2J5dGVvcmRlci9saXR0bGVfZW5kaWFuLmgiIDEKMTQ0NzQ6ICMgMTMgIi4vaW5jbHVk
ZS91YXBpL2xpbnV4L2J5dGVvcmRlci9saXR0bGVfZW5kaWFuLmgiCjE0NDc0OiAjIDEgIi4vaW5j
bHVkZS9saW51eC9zd2FiLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9zd2FiLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gv
eDg2L2luY2x1ZGUvdWFwaS9hc20vc3dhYi5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fY29u
c3RfXykpIF9fdTMyIF9fYXJjaF9zd2FiMzIoX191MzIgdmFsKQoxNDQ3NDogewoxNDQ3NDogIGFz
bSgiYnN3YXBsICUwIiA6ICI9ciIgKHZhbCkgOiAiMCIgKHZhbCkpOwoxNDQ3NDogIHJldHVybiB2
YWw7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19jb25z
dF9fKSkgX191NjQgX19hcmNoX3N3YWI2NChfX3U2NCB2YWwpCjE0NDc0OiB7CjE0NDc0OiAjIDMx
ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vc3dhYi5oIgoxNDQ3NDogIGFzbSgiYnN3YXBx
ICUwIiA6ICI9ciIgKHZhbCkgOiAiMCIgKHZhbCkpOwoxNDQ3NDogIHJldHVybiB2YWw7CjE0NDc0
OiAKMTQ0NzQ6IH0KMTQ0NzQ6ICMgOSAiLi9pbmNsdWRlL3VhcGkvbGludXgvc3dhYi5oIiAyCjE0
NDc0OiAjIDQ4ICIuL2luY2x1ZGUvdWFwaS9saW51eC9zd2FiLmgiCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0
ZV9fKChfX2NvbnN0X18pKSBfX3UxNiBfX2Zzd2FiMTYoX191MTYgdmFsKQoxNDQ3NDogewoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiAoKF9fdTE2KSggKCgoX191MTYpKHZh
bCkgJiAoX191MTYpMHgwMGZmVSkgPDwgOCkgfCAoKChfX3UxNikodmFsKSAmIChfX3UxNikweGZm
MDBVKSA+PiA4KSkpOwoxNDQ3NDogCjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRl
X18oKF9fY29uc3RfXykpIF9fdTMyIF9fZnN3YWIzMihfX3UzMiB2YWwpCjE0NDc0OiB7CjE0NDc0
OiAKMTQ0NzQ6ICByZXR1cm4gX19hcmNoX3N3YWIzMih2YWwpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2NvbnN0X18pKSBf
X3U2NCBfX2Zzd2FiNjQoX191NjQgdmFsKQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAgcmV0dXJu
IF9fYXJjaF9zd2FiNjQodmFsKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2NvbnN0X18pKSBfX3UzMiBfX2Zzd2FodzMyKF9fdTMyIHZhbCkKMTQ0NzQ6IHsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gKChfX3UzMikoICgoKF9fdTMyKSh2YWwp
ICYgKF9fdTMyKTB4MDAwMGZmZmZVTCkgPDwgMTYpIHwgKCgoX191MzIpKHZhbCkgJiAoX191MzIp
MHhmZmZmMDAwMFVMKSA+PiAxNikpKTsKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBf
X2F0dHJpYnV0ZV9fKChfX2NvbnN0X18pKSBfX3UzMiBfX2Zzd2FoYjMyKF9fdTMyIHZhbCkKMTQ0
NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gKChfX3UzMikoICgo
KF9fdTMyKSh2YWwpICYgKF9fdTMyKTB4MDBmZjAwZmZVTCkgPDwgOCkgfCAoKChfX3UzMikodmFs
KSAmIChfX3UzMikweGZmMDBmZjAwVUwpID4+IDgpKSk7CjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6
ICMgMTM2ICIuL2luY2x1ZGUvdWFwaS9saW51eC9zd2FiLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIHVuc2lnbmVkIGxvbmcgX19zd2FiKGNvbnN0IHVuc2lnbmVk
IGxvbmcgeSkKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiAoX191NjQpX19idWlsdGlu
X2Jzd2FwNjQoKF9fdTY0KSh5KSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB9CjE0
NDc0OiAjIDE3MSAiLi9pbmNsdWRlL3VhcGkvbGludXgvc3dhYi5oIgoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBfX3UxNiBfX3N3YWIxNnAoY29uc3QgX191MTYgKnAp
CjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIChfX3UxNilf
X2J1aWx0aW5fYnN3YXAxNigoX191MTYpKCpwKSk7CjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIF9fdTMyIF9fc3dhYjMycChjb25zdCBfX3UzMiAqcCkKMTQ0NzQ6IHsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gKF9fdTMyKV9fYnVpbHRpbl9i
c3dhcDMyKChfX3UzMikoKnApKTsKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgX191NjQgX19zd2FiNjRwKGNvbnN0IF9fdTY0ICpwKQoxNDQ3NDogewoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiAoX191NjQpX19idWlsdGluX2Jzd2FwNjQoKF9f
dTY0KSgqcCkpOwoxNDQ3NDogCjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fdTMyIF9fc3dhaHczMnAoY29uc3Qg
X191MzIgKnApCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgcmV0dXJu
IChfX2J1aWx0aW5fY29uc3RhbnRfcCgoX191MzIpKCpwKSkgPyAoKF9fdTMyKSggKCgoX191MzIp
KCpwKSAmIChfX3UzMikweDAwMDBmZmZmVUwpIDw8IDE2KSB8ICgoKF9fdTMyKSgqcCkgJiAoX191
MzIpMHhmZmZmMDAwMFVMKSA+PiAxNikpKSA6IF9fZnN3YWh3MzIoKnApKTsKMTQ0NzQ6IAoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBfX3UzMiBfX3N3YWhiMzJwKGNvbnN0IF9fdTMyICpwKQoxNDQ3NDogewoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiAoX19idWlsdGluX2NvbnN0YW50X3Ao
KF9fdTMyKSgqcCkpID8gKChfX3UzMikoICgoKF9fdTMyKSgqcCkgJiAoX191MzIpMHgwMGZmMDBm
ZlVMKSA8PCA4KSB8ICgoKF9fdTMyKSgqcCkgJiAoX191MzIpMHhmZjAwZmYwMFVMKSA+PiA4KSkp
IDogX19mc3dhaGIzMigqcCkpOwoxNDQ3NDogCjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX3N3YWIxNnMoX191MTYgKnApCjE0NDc0
OiB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgKnAgPSBfX3N3YWIxNnAocCk7CjE0
NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fc3dhYjMycyhfX3UzMiAqcCkK
MTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAqcCA9IF9fc3dhYjMycChw
KTsKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX3N3YWI2
NHMoX191NjQgKnApCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgKnAg
PSBfX3N3YWI2NHAocCk7CjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX3N3YWh3MzJzKF9f
dTMyICpwKQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICpwID0gX19z
d2FodzMycChwKTsKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fc3dhaGIzMnMoX191MzIg
KnApCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgKnAgPSBfX3N3YWhi
MzJwKHApOwoxNDQ3NDogCjE0NDc0OiB9CjE0NDc0OiAjIDYgIi4vaW5jbHVkZS9saW51eC9zd2Fi
LmgiIDIKMTQ0NzQ6ICMgMTQgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2J5dGVvcmRlci9saXR0bGVf
ZW5kaWFuLmgiIDIKMTQ0NzQ6ICMgNDQgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2J5dGVvcmRlci9s
aXR0bGVfZW5kaWFuLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykp
IF9fbGU2NCBfX2NwdV90b19sZTY0cChjb25zdCBfX3U2NCAqcCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4gKCBfX2xlNjQpKnA7CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5
c19pbmxpbmVfXykpIF9fdTY0IF9fbGU2NF90b19jcHVwKGNvbnN0IF9fbGU2NCAqcCkKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4gKCBfX3U2NCkqcDsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRl
X18oKF9fYWx3YXlzX2lubGluZV9fKSkgX19sZTMyIF9fY3B1X3RvX2xlMzJwKGNvbnN0IF9fdTMy
ICpwKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoIF9fbGUzMikqcDsKMTQ0NzQ6IH0KMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgX191MzIgX19sZTMyX3RvX2NwdXAo
Y29uc3QgX19sZTMyICpwKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoIF9fdTMyKSpwOwoxNDQ3
NDogfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBfX2xlMTYgX19j
cHVfdG9fbGUxNnAoY29uc3QgX191MTYgKnApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICggX19s
ZTE2KSpwOwoxNDQ3NDogfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSBfX3UxNiBfX2xlMTZfdG9fY3B1cChjb25zdCBfX2xlMTYgKnApCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuICggX191MTYpKnA7CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5
c19pbmxpbmVfXykpIF9fYmU2NCBfX2NwdV90b19iZTY0cChjb25zdCBfX3U2NCAqcCkKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4gKCBfX2JlNjQpX19zd2FiNjRwKHApOwoxNDQ3NDogfQoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBfX3U2NCBfX2JlNjRfdG9fY3B1cChj
b25zdCBfX2JlNjQgKnApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIF9fc3dhYjY0cCgoX191NjQg
KilwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
X19iZTMyIF9fY3B1X3RvX2JlMzJwKGNvbnN0IF9fdTMyICpwKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiAoIF9fYmUzMilfX3N3YWIzMnAocCk7CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIF9fdTMyIF9fYmUzMl90b19jcHVwKGNvbnN0IF9fYmUzMiAq
cCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19zd2FiMzJwKChfX3UzMiAqKXApOwoxNDQ3NDog
fQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBfX2JlMTYgX19jcHVf
dG9fYmUxNnAoY29uc3QgX191MTYgKnApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICggX19iZTE2
KV9fc3dhYjE2cChwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lu
bGluZV9fKSkgX191MTYgX19iZTE2X3RvX2NwdXAoY29uc3QgX19iZTE2ICpwKQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiBfX3N3YWIxNnAoKF9fdTE2ICopcCk7CjE0NDc0OiB9CjE0NDc0OiAjIDYg
Ii4vaW5jbHVkZS9saW51eC9ieXRlb3JkZXIvbGl0dGxlX2VuZGlhbi5oIiAyCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgv
Ynl0ZW9yZGVyL2dlbmVyaWMuaCIgMQoxNDQ3NDogIyAxNDQgIi4vaW5jbHVkZS9saW51eC9ieXRl
b3JkZXIvZ2VuZXJpYy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsZTE2X2FkZF9jcHUoX19sZTE2ICp2YXIsIHUx
NiB2YWwpCjE0NDc0OiB7CjE0NDc0OiAgKnZhciA9ICgoIF9fbGUxNikoX191MTYpKCgoIF9fdTE2
KShfX2xlMTYpKCp2YXIpKSArIHZhbCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxl
MzJfYWRkX2NwdShfX2xlMzIgKnZhciwgdTMyIHZhbCkKMTQ0NzQ6IHsKMTQ0NzQ6ICAqdmFyID0g
KCggX19sZTMyKShfX3UzMikoKCggX191MzIpKF9fbGUzMikoKnZhcikpICsgdmFsKSk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbGU2NF9hZGRfY3B1KF9fbGU2NCAqdmFyLCB1NjQgdmFs
KQoxNDQ3NDogewoxNDQ3NDogICp2YXIgPSAoKCBfX2xlNjQpKF9fdTY0KSgoKCBfX3U2NCkoX19s
ZTY0KSgqdmFyKSkgKyB2YWwpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IGxlMzJfdG9fY3B1X2FycmF5KHUzMiAqYnVmLCB1bnNpZ25lZCBpbnQgd29yZHMpCjE0NDc0OiB7
CjE0NDc0OiAgd2hpbGUgKHdvcmRzLS0pIHsKMTQ0NzQ6ICAgZG8geyAodm9pZCkoYnVmKTsgfSB3
aGlsZSAoMCk7CjE0NDc0OiAgIGJ1ZisrOwoxNDQ3NDogIH0KMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBjcHVfdG9fbGUzMl9hcnJheSh1MzIgKmJ1ZiwgdW5zaWduZWQgaW50IHdvcmRzKQox
NDQ3NDogewoxNDQ3NDogIHdoaWxlICh3b3Jkcy0tKSB7CjE0NDc0OiAgIGRvIHsgKHZvaWQpKGJ1
Zik7IH0gd2hpbGUgKDApOwoxNDQ3NDogICBidWYrKzsKMTQ0NzQ6ICB9CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgYmUxNl9hZGRfY3B1KF9fYmUxNiAqdmFyLCB1MTYgdmFsKQoxNDQ3NDog
ewoxNDQ3NDogICp2YXIgPSAoKCBfX2JlMTYpKF9fdTE2KV9fYnVpbHRpbl9ic3dhcDE2KChfX3Ux
NikoKChfX3UxNilfX2J1aWx0aW5fYnN3YXAxNigoX191MTYpKCggX191MTYpKF9fYmUxNikoKnZh
cikpKSArIHZhbCkpKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYmUzMl9hZGRfY3B1
KF9fYmUzMiAqdmFyLCB1MzIgdmFsKQoxNDQ3NDogewoxNDQ3NDogICp2YXIgPSAoKCBfX2JlMzIp
KF9fdTMyKV9fYnVpbHRpbl9ic3dhcDMyKChfX3UzMikoKChfX3UzMilfX2J1aWx0aW5fYnN3YXAz
MigoX191MzIpKCggX191MzIpKF9fYmUzMikoKnZhcikpKSArIHZhbCkpKSk7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgYmU2NF9hZGRfY3B1KF9fYmU2NCAqdmFyLCB1NjQgdmFsKQoxNDQ3
NDogewoxNDQ3NDogICp2YXIgPSAoKCBfX2JlNjQpKF9fdTY0KV9fYnVpbHRpbl9ic3dhcDY0KChf
X3U2NCkoKChfX3U2NClfX2J1aWx0aW5fYnN3YXA2NCgoX191NjQpKCggX191NjQpKF9fYmU2NCko
KnZhcikpKSArIHZhbCkpKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY3B1X3RvX2Jl
MzJfYXJyYXkoX19iZTMyICpkc3QsIGNvbnN0IHUzMiAqc3JjLCBzaXplX3QgbGVuKQoxNDQ3NDog
ewoxNDQ3NDogIGludCBpOwoxNDQ3NDogCjE0NDc0OiAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsr
KQoxNDQ3NDogICBkc3RbaV0gPSAoKCBfX2JlMzIpKF9fdTMyKV9fYnVpbHRpbl9ic3dhcDMyKChf
X3UzMikoKHNyY1tpXSkpKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYmUzMl90b19j
cHVfYXJyYXkodTMyICpkc3QsIGNvbnN0IF9fYmUzMiAqc3JjLCBzaXplX3QgbGVuKQoxNDQ3NDog
ewoxNDQ3NDogIGludCBpOwoxNDQ3NDogCjE0NDc0OiAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsr
KQoxNDQ3NDogICBkc3RbaV0gPSAoX191MzIpX19idWlsdGluX2Jzd2FwMzIoKF9fdTMyKSgoIF9f
dTMyKShfX2JlMzIpKHNyY1tpXSkpKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTIgIi4vaW5jbHVkZS9s
aW51eC9ieXRlb3JkZXIvbGl0dGxlX2VuZGlhbi5oIiAyCjE0NDc0OiAjIDYgIi4vYXJjaC94ODYv
aW5jbHVkZS91YXBpL2FzbS9ieXRlb3JkZXIuaCIgMgoxNDQ3NDogIyA3ICIuL2luY2x1ZGUvYXNt
LWdlbmVyaWMvcXJ3bG9ja190eXBlcy5oIiAyCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vc3BpbmxvY2tfdHlwZXMuaCIgMQoxNDQ3NDogIyA4ICIuL2luY2x1ZGUvYXNtLWdlbmVy
aWMvcXJ3bG9ja190eXBlcy5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgcXJ3bG9jayB7CjE0NDc0OiAgdW5pb24gewoxNDQ3
NDogICBhdG9taWNfdCBjbnRzOwoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogCjE0NDc0OiAgICB1
OCB3bG9ja2VkOwoxNDQ3NDogICAgdTggX19sc3RhdGVbM107CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICAgfTsKMTQ0NzQ6ICB9OwoxNDQ3NDogIGFyY2hfc3BpbmxvY2tf
dCB3YWl0X2xvY2s7CjE0NDc0OiB9IGFyY2hfcndsb2NrX3Q7CjE0NDc0OiAjIDMwICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL3NwaW5sb2NrX3R5cGVzLmgiIDIKMTQ0NzQ6ICMgMzExICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0X3R5cGVzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgcXNwaW5sb2NrOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcHZfbG9ja19vcHMgewox
NDQ3NDogIHZvaWQgKCpxdWV1ZWRfc3Bpbl9sb2NrX3Nsb3dwYXRoKShzdHJ1Y3QgcXNwaW5sb2Nr
ICpsb2NrLCB1MzIgdmFsKTsKMTQ0NzQ6ICBzdHJ1Y3QgcGFyYXZpcnRfY2FsbGVlX3NhdmUgcXVl
dWVkX3NwaW5fdW5sb2NrOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKndhaXQpKHU4ICpwdHIsIHU4
IHZhbCk7CjE0NDc0OiAgdm9pZCAoKmtpY2spKGludCBjcHUpOwoxNDQ3NDogCjE0NDc0OiAgc3Ry
dWN0IHBhcmF2aXJ0X2NhbGxlZV9zYXZlIHZjcHVfaXNfcHJlZW1wdGVkOwoxNDQ3NDogfSA7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBwYXJhdmlydF9wYXRj
aF90ZW1wbGF0ZSB7CjE0NDc0OiAgc3RydWN0IHB2X2luaXRfb3BzIGluaXQ7CjE0NDc0OiAgc3Ry
dWN0IHB2X3RpbWVfb3BzIHRpbWU7CjE0NDc0OiAgc3RydWN0IHB2X2NwdV9vcHMgY3B1OwoxNDQ3
NDogIHN0cnVjdCBwdl9pcnFfb3BzIGlycTsKMTQ0NzQ6ICBzdHJ1Y3QgcHZfbW11X29wcyBtbXU7
CjE0NDc0OiAgc3RydWN0IHB2X2xvY2tfb3BzIGxvY2s7CjE0NDc0OiB9IDsKMTQ0NzQ6IAoxNDQ3
NDogZXh0ZXJuIHN0cnVjdCBwdl9pbmZvIHB2X2luZm87CjE0NDc0OiBleHRlcm4gc3RydWN0IHBh
cmF2aXJ0X3BhdGNoX3RlbXBsYXRlIHB2X29wczsKMTQ0NzQ6ICMgMzcwICIuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL3BhcmF2aXJ0X3R5cGVzLmgiCjE0NDc0OiB1bnNpZ25lZCBwYXJhdmlydF9wYXRj
aF9pZGVudF82NCh2b2lkICppbnNuX2J1ZmYsIHVuc2lnbmVkIGxlbik7CjE0NDc0OiB1bnNpZ25l
ZCBwYXJhdmlydF9wYXRjaF9kZWZhdWx0KHU4IHR5cGUsIHZvaWQgKmluc25fYnVmZiwgdW5zaWdu
ZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsZW4pOwoxNDQ3NDogdW5zaWduZWQgcGFyYXZpcnRfcGF0
Y2hfaW5zbnModm9pZCAqaW5zbl9idWZmLCB1bnNpZ25lZCBsZW4sIGNvbnN0IGNoYXIgKnN0YXJ0
LCBjb25zdCBjaGFyICplbmQpOwoxNDQ3NDogCjE0NDc0OiB1bnNpZ25lZCBuYXRpdmVfcGF0Y2go
dTggdHlwZSwgdm9pZCAqaW5zbl9idWZmLCB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxl
bik7CjE0NDc0OiAKMTQ0NzQ6IGludCBwYXJhdmlydF9kaXNhYmxlX2lvc3BhY2Uodm9pZCk7CjE0
NDc0OiAjIDY1MSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oIgoxNDQ3
NDogZW51bSBwYXJhdmlydF9sYXp5X21vZGUgewoxNDQ3NDogIFBBUkFWSVJUX0xBWllfTk9ORSwK
MTQ0NzQ6ICBQQVJBVklSVF9MQVpZX01NVSwKMTQ0NzQ6ICBQQVJBVklSVF9MQVpZX0NQVSwKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gcGFyYXZpcnRfbGF6eV9tb2RlIHBhcmF2aXJ0X2dl
dF9sYXp5X21vZGUodm9pZCk7CjE0NDc0OiB2b2lkIHBhcmF2aXJ0X3N0YXJ0X2NvbnRleHRfc3dp
dGNoKHN0cnVjdCB0YXNrX3N0cnVjdCAqcHJldik7CjE0NDc0OiB2b2lkIHBhcmF2aXJ0X2VuZF9j
b250ZXh0X3N3aXRjaChzdHJ1Y3QgdGFza19zdHJ1Y3QgKm5leHQpOwoxNDQ3NDogCjE0NDc0OiB2
b2lkIHBhcmF2aXJ0X2VudGVyX2xhenlfbW11KHZvaWQpOwoxNDQ3NDogdm9pZCBwYXJhdmlydF9s
ZWF2ZV9sYXp5X21tdSh2b2lkKTsKMTQ0NzQ6IHZvaWQgcGFyYXZpcnRfZmx1c2hfbGF6eV9tbXUo
dm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgX3BhcmF2aXJ0X25vcCh2b2lkKTsKMTQ0NzQ6IHU2
NCBfcGFyYXZpcnRfaWRlbnRfNjQodTY0KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IHBhcmF2aXJ0X3BhdGNoX3NpdGUgewoxNDQ3NDogIHU4ICppbnN0cjsK
MTQ0NzQ6ICB1OCB0eXBlOwoxNDQ3NDogIHU4IGxlbjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IGV4dGVybiBzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfc2l0ZSBfX3BhcmFpbnN0cnVjdGlvbnNbXSwK
MTQ0NzQ6ICBfX3BhcmFpbnN0cnVjdGlvbnNfZW5kW107CjE0NDc0OiAjIDk1ICIuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL3B0cmFjZS5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNw
dWluZm9feDg2OwoxNDQ3NDogc3RydWN0IHRhc2tfc3RydWN0OwoxNDQ3NDogCjE0NDc0OiBleHRl
cm4gdW5zaWduZWQgbG9uZyBwcm9maWxlX3BjKHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKMTQ0NzQ6
IAoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGxvbmcKMTQ0NzQ6IGNvbnZlcnRfaXBfdG9fbGluZWFy
KHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKMTQ0NzQ6
IGV4dGVybiB2b2lkIHNlbmRfc2lndHJhcChzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IGVycm9y
X2NvZGUsIGludCBzaV9jb2RlKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25n
IHJlZ3NfcmV0dXJuX3ZhbHVlKHN0cnVjdCBwdF9yZWdzICpyZWdzKQoxNDQ3NDogewoxNDQ3NDog
IHJldHVybiByZWdzLT5heDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByZWdzX3NldF9y
ZXR1cm5fdmFsdWUoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGxvbmcgcmMpCjE0NDc0
OiB7CjE0NDc0OiAgcmVncy0+YXggPSByYzsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTI2ICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL3B0cmFjZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHVzZXJfbW9kZShzdHJ1Y3QgcHRf
cmVncyAqcmVncykKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICByZXR1
cm4gISEocmVncy0+Y3MgJiAzKTsKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
djgwODZfbW9kZShzdHJ1Y3QgcHRfcmVncyAqcmVncykKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gMDsKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBib29sIHVzZXJfNjRiaXRfbW9kZShzdHJ1Y3QgcHRfcmVncyAqcmVncykKMTQ0NzQ6IHsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICByZXR1
cm4gcmVncy0+Y3MgPT0gKDYqOCArIDMpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBhbnlfNjRiaXRfbW9kZShzdHJ1Y3QgcHRfcmVn
cyAqcmVncykKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiAhdXNlcl9tb2RlKHJlZ3Mp
IHx8IHVzZXJfNjRiaXRfbW9kZShyZWdzKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHVuc2lnbmVkIGxvbmcga2VybmVsX3N0YWNrX3BvaW50ZXIoc3RydWN0IHB0X3JlZ3MgKnJlZ3Mp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHJlZ3MtPnNwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB1bnNpZ25lZCBsb25nIGluc3RydWN0aW9uX3BvaW50ZXIoc3RydWN0IHB0X3JlZ3MgKnJlZ3Mp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHJlZ3MtPmlwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGluc3RydWN0aW9uX3BvaW50ZXJfc2V0KHN0cnVjdCBwdF9yZWdzICpyZWdzLAoxNDQ3
NDogICB1bnNpZ25lZCBsb25nIHZhbCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZWdzLT5pcCA9IHZhbDsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBmcmFtZV9wb2ludGVyKHN0cnVj
dCBwdF9yZWdzICpyZWdzKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiByZWdzLT5icDsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyB1c2VyX3N0YWNrX3BvaW50ZXIoc3RydWN0
IHB0X3JlZ3MgKnJlZ3MpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHJlZ3MtPnNwOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIHVzZXJfc3RhY2tfcG9pbnRlcl9zZXQoc3RydWN0IHB0X3Jl
Z3MgKnJlZ3MsCjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcgdmFsKQoxNDQ3NDogewoxNDQ3NDogIHJl
Z3MtPnNwID0gdmFsOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQg
cmVnc19xdWVyeV9yZWdpc3Rlcl9vZmZzZXQoY29uc3QgY2hhciAqbmFtZSk7CjE0NDc0OiBleHRl
cm4gY29uc3QgY2hhciAqcmVnc19xdWVyeV9yZWdpc3Rlcl9uYW1lKHVuc2lnbmVkIGludCBvZmZz
ZXQpOwoxNDQ3NDogIyAyMjYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHRyYWNlLmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB1bnNpZ25lZCBsb25nIHJlZ3NfZ2V0X3JlZ2lzdGVyKHN0cnVjdCBwdF9yZWdzICpyZWdzLAox
NDQ3NDogICAgICAgICAgICB1bnNpZ25lZCBpbnQgb2Zmc2V0KQoxNDQ3NDogewoxNDQ3NDogIGlm
IChfX2J1aWx0aW5fZXhwZWN0KCEhKG9mZnNldCA+IChfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0
IHB0X3JlZ3MsIHNzKSkpLCAwKSkKMTQ0NzQ6ICAgcmV0dXJuIDA7CjE0NDc0OiAjIDI0MyAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9wdHJhY2UuaCIKMTQ0NzQ6ICByZXR1cm4gKih1bnNpZ25lZCBs
b25nICopKCh1bnNpZ25lZCBsb25nKXJlZ3MgKyBvZmZzZXQpOwoxNDQ3NDogfQoxNDQ3NDogIyAy
NTQgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHRyYWNlLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcmVnc193aXRo
aW5fa2VybmVsX3N0YWNrKHN0cnVjdCBwdF9yZWdzICpyZWdzLAoxNDQ3NDogICAgICAgICB1bnNp
Z25lZCBsb25nIGFkZHIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICgoYWRkciAmIH4oKCgoMVVM
KSA8PCAxMikgPDwgKDIgKyAwKSkgLSAxKSkgPT0gKHJlZ3MtPnNwICYgfigoKCgxVUwpIDw8IDEy
KSA8PCAoMiArIDApKSAtIDEpKSk7CjE0NDc0OiB9CjE0NDc0OiAjIDI2OSAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9wdHJhY2UuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgKnJlZ3NfZ2V0X2tlcm5l
bF9zdGFja19udGhfYWRkcihzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5zaWduZWQgaW50IG4pCjE0
NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyAqYWRkciA9ICh1bnNpZ25lZCBsb25nICopcmVn
cy0+c3A7CjE0NDc0OiAKMTQ0NzQ6ICBhZGRyICs9IG47CjE0NDc0OiAgaWYgKHJlZ3Nfd2l0aGlu
X2tlcm5lbF9zdGFjayhyZWdzLCAodW5zaWduZWQgbG9uZylhZGRyKSkKMTQ0NzQ6ICAgcmV0dXJu
IGFkZHI7CjE0NDc0OiAgZWxzZQoxNDQ3NDogICByZXR1cm4gKCh2b2lkICopMCk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGxvbmcgcHJvYmVfa2VybmVsX3JlYWQodm9p
ZCAqZHN0LCBjb25zdCB2b2lkICpzcmMsIHNpemVfdCBzaXplKTsKMTQ0NzQ6ICMgMjkyICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL3B0cmFjZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyByZWdzX2dl
dF9rZXJuZWxfc3RhY2tfbnRoKHN0cnVjdCBwdF9yZWdzICpyZWdzLAoxNDQ3NDogICAgICAgICAg
ICAgdW5zaWduZWQgaW50IG4pCjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyAqYWRkcjsK
MTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHZhbDsKMTQ0NzQ6ICBsb25nIHJldDsKMTQ0NzQ6IAoxNDQ3
NDogIGFkZHIgPSByZWdzX2dldF9rZXJuZWxfc3RhY2tfbnRoX2FkZHIocmVncywgbik7CjE0NDc0
OiAgaWYgKGFkZHIpIHsKMTQ0NzQ6ICAgcmV0ID0gcHJvYmVfa2VybmVsX3JlYWQoJnZhbCwgYWRk
ciwgc2l6ZW9mKHZhbCkpOwoxNDQ3NDogICBpZiAoIXJldCkKMTQ0NzQ6ICAgIHJldHVybiB2YWw7
CjE0NDc0OiAgfQoxNDQ3NDogIHJldHVybiAwOwoxNDQ3NDogfQoxNDQ3NDogIyAzMTkgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vcHRyYWNlLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIHJlZ3NfZ2V0
X2tlcm5lbF9hcmd1bWVudChzdHJ1Y3QgcHRfcmVncyAqcmVncywKMTQ0NzQ6ICAgICAgICAgICAg
dW5zaWduZWQgaW50IG4pCjE0NDc0OiB7CjE0NDc0OiAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGlu
dCBhcmd1bWVudF9vZmZzW10gPSB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcHRfcmVncywg
ZGkpLAoxNDQ3NDogICBfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IHB0X3JlZ3MsIHNpKSwKMTQ0
NzQ6ICAgX19idWlsdGluX29mZnNldG9mKHN0cnVjdCBwdF9yZWdzLCBkeCksCjE0NDc0OiAgIF9f
YnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcHRfcmVncywgY3gpLAoxNDQ3NDogICBfX2J1aWx0aW5f
b2Zmc2V0b2Yoc3RydWN0IHB0X3JlZ3MsIHI4KSwKMTQ0NzQ6ICAgX19idWlsdGluX29mZnNldG9m
KHN0cnVjdCBwdF9yZWdzLCByOSksCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIH07CjE0NDc0OiAK
MTQ0NzQ6ICBpZiAobiA+PSA2KSB7CjE0NDc0OiAgIG4gLT0gNiAtIDE7CjE0NDc0OiAgIHJldHVy
biByZWdzX2dldF9rZXJuZWxfc3RhY2tfbnRoKHJlZ3MsIG4pOwoxNDQ3NDogIH0gZWxzZQoxNDQ3
NDogICByZXR1cm4gcmVnc19nZXRfcmVnaXN0ZXIocmVncywgYXJndW1lbnRfb2Zmc1tuXSk7CjE0
NDc0OiB9CjE0NDc0OiAjIDM1NSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wdHJhY2UuaCIKMTQ0
NzQ6IHN0cnVjdCB1c2VyX2Rlc2M7CjE0NDc0OiBleHRlcm4gaW50IGRvX2dldF90aHJlYWRfYXJl
YShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCBpZHgsCjE0NDc0OiAgICAgICAgICBzdHJ1Y3Qg
dXNlcl9kZXNjICppbmZvKTsKMTQ0NzQ6IGV4dGVybiBpbnQgZG9fc2V0X3RocmVhZF9hcmVhKHN0
cnVjdCB0YXNrX3N0cnVjdCAqcCwgaW50IGlkeCwKMTQ0NzQ6ICAgICAgICAgIHN0cnVjdCB1c2Vy
X2Rlc2MgKmluZm8sIGludCBjYW5fYWxsb2NhdGUpOwoxNDQ3NDogIyAxMSAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9rZ2RiLmgiIDIKMTQ0NzQ6ICMgNDkgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
a2dkYi5oIgoxNDQ3NDogZW51bSByZWduYW1lcyB7CjE0NDc0OiAgR0RCX0FYLAoxNDQ3NDogIEdE
Ql9CWCwKMTQ0NzQ6ICBHREJfQ1gsCjE0NDc0OiAgR0RCX0RYLAoxNDQ3NDogIEdEQl9TSSwKMTQ0
NzQ6ICBHREJfREksCjE0NDc0OiAgR0RCX0JQLAoxNDQ3NDogIEdEQl9TUCwKMTQ0NzQ6ICBHREJf
UjgsCjE0NDc0OiAgR0RCX1I5LAoxNDQ3NDogIEdEQl9SMTAsCjE0NDc0OiAgR0RCX1IxMSwKMTQ0
NzQ6ICBHREJfUjEyLAoxNDQ3NDogIEdEQl9SMTMsCjE0NDc0OiAgR0RCX1IxNCwKMTQ0NzQ6ICBH
REJfUjE1LAoxNDQ3NDogIEdEQl9QQywKMTQ0NzQ6ICBHREJfUFMsCjE0NDc0OiAgR0RCX0NTLAox
NDQ3NDogIEdEQl9TUywKMTQ0NzQ6ICBHREJfRFMsCjE0NDc0OiAgR0RCX0VTLAoxNDQ3NDogIEdE
Ql9GUywKMTQ0NzQ6ICBHREJfR1MsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBhcmNoX2tnZGJfYnJlYWtwb2ludCh2
b2lkKQoxNDQ3NDogewoxNDQ3NDogIGFzbSgiICAgaW50ICQzIik7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQga2dkYl9sbF90cmFwKGlu
dCBjbWQsIGNvbnN0IGNoYXIgKnN0ciwKMTQ0NzQ6ICAgIHN0cnVjdCBwdF9yZWdzICpyZWdzLCBs
b25nIGVyciwgaW50IHRyYXAsIGludCBzaWcpOwoxNDQ3NDogIyAyMSAiLi9pbmNsdWRlL2xpbnV4
L2tnZGIuaCIgMgoxNDQ3NDogIyAzMzMgIi4vaW5jbHVkZS9saW51eC9rZ2RiLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGtnZGJfcGFuaWMoY29uc3QgY2hhciAqbXNnKSB7fQoxNDQ3NDogIyAzMSAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL29zX3R5cGVzLmgiIDIKMTQ0NzQ6ICMg
MSAiLi9pbmNsdWRlL2xpbnV4L2tyZWYuaCIgMQoxNDQ3NDogIyAxNiAiLi9pbmNsdWRlL2xpbnV4
L2tyZWYuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgiIDEKMTQ0NzQ6
ICMgNTAgIi4vaW5jbHVkZS9saW51eC9zcGlubG9jay5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUv
bGludXgvdHlwZWNoZWNrLmgiIDEKMTQ0NzQ6ICMgNTEgIi4vaW5jbHVkZS9saW51eC9zcGlubG9j
ay5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9wcmVlbXB0LmgiIDEKMTQ0NzQ6ICMg
MTEgIi4vaW5jbHVkZS9saW51eC9wcmVlbXB0LmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51
eC9saXN0LmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3BvaXNvbi5oIiAxCjE0NDc0OiAjIDggIi4v
aW5jbHVkZS9saW51eC9saXN0LmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGlu
dXgva2VybmVsLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAjIDEgIi91c3IvbGliL2djYy94ODZfNjQtbGludXgtZ251LzEwL2luY2x1ZGUvc3RkYXJn
LmgiIDEgMyA0CjE0NDc0OiAjIDQwICIvdXNyL2xpYi9nY2MveDg2XzY0LWxpbnV4LWdudS8xMC9p
bmNsdWRlL3N0ZGFyZy5oIiAzIDQKMTQ0NzQ6IAoxNDQ3NDogIyA0MCAiL3Vzci9saWIvZ2NjL3g4
Nl82NC1saW51eC1nbnUvMTAvaW5jbHVkZS9zdGRhcmcuaCIgMyA0CjE0NDc0OiB0eXBlZGVmIF9f
YnVpbHRpbl92YV9saXN0IF9fZ251Y192YV9saXN0OwoxNDQ3NDogIyA5OSAiL3Vzci9saWIvZ2Nj
L3g4Nl82NC1saW51eC1nbnUvMTAvaW5jbHVkZS9zdGRhcmcuaCIgMyA0CjE0NDc0OiB0eXBlZGVm
IF9fZ251Y192YV9saXN0IHZhX2xpc3Q7CjE0NDc0OiAjIDcgIi4vaW5jbHVkZS9saW51eC9rZXJu
ZWwuaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvbGltaXRzLmgiIDEKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9s
aW1pdHMuaCIgMQoxNDQ3NDogIyA2ICIuL2luY2x1ZGUvbGludXgvbGltaXRzLmgiIDIKMTQ0NzQ6
ICMgOCAiLi9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2JpdG9wcy5oIiAxCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQv
dWFwaS9hc20vdHlwZXMuaCIgMQoxNDQ3NDogIyA1ICIuL2luY2x1ZGUvbGludXgvYml0b3BzLmgi
IDIKMTQ0NzQ6ICMgMjAgIi4vaW5jbHVkZS9saW51eC9iaXRvcHMuaCIKMTQ0NzQ6IAoxNDQ3NDog
IyAyMCAiLi9pbmNsdWRlL2xpbnV4L2JpdG9wcy5oIgoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGlu
dCBfX3N3X2h3ZWlnaHQ4KHVuc2lnbmVkIGludCB3KTsKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBp
bnQgX19zd19od2VpZ2h0MTYodW5zaWduZWQgaW50IHcpOwoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVk
IGludCBfX3N3X2h3ZWlnaHQzMih1bnNpZ25lZCBpbnQgdyk7CjE0NDc0OiBleHRlcm4gdW5zaWdu
ZWQgbG9uZyBfX3N3X2h3ZWlnaHQ2NChfX3U2NCB3KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3Bz
LmgiIDEKMTQ0NzQ6ICMgNTEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQKMTQ0NzQ6IGFyY2hfc2V0
X2JpdChsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3
NDogIGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcChucikpIHsKMTQ0NzQ6ICAgYXNtIHZvbGF0aWxl
KCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2
NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAib3JiICUxLCUw
IgoxNDQ3NDogICAgOiAiK20iICgqKHZvbGF0aWxlIGNoYXIgKikgKCh2b2lkICopKGFkZHIpICsg
KChucik+PjMpKSkKMTQ0NzQ6ICAgIDogImlxIiAoKHU4KSgxIDw8ICgobnIpICYgNykpKQoxNDQ3
NDogICAgOiAibWVtb3J5Iik7CjE0NDc0OiAgfSBlbHNlIHsKMTQ0NzQ6ICAgYXNtIHZvbGF0aWxl
KCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2
NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAiICIgImJ0c3Ei
ICIgIiAiICUxLCUwIgoxNDQ3NDogICAgOiA6ICJtIiAoKih2b2xhdGlsZSBsb25nICopIChhZGRy
KSksICJJciIgKG5yKSA6ICJtZW1vcnkiKTsKMTQ0NzQ6ICB9CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZAoxNDQ3NDogYXJjaF9f
X3NldF9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKMTQ0NzQ6IHsK
MTQ0NzQ6ICBhc20gdm9sYXRpbGUoIiAiICJidHNxIiAiICIgIiAlMSwlMCIgOiA6ICJtIiAoKih2
b2xhdGlsZSBsb25nICopIChhZGRyKSksICJJciIgKG5yKSA6ICJtZW1vcnkiKTsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkCjE0
NDc0OiBhcmNoX2NsZWFyX2JpdChsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRy
KQoxNDQ3NDogewoxNDQ3NDogIGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcChucikpIHsKMTQ0NzQ6
ICAgYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGln
biA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9j
azsgIiAiYW5kYiAlMSwlMCIKMTQ0NzQ6ICAgIDogIittIiAoKih2b2xhdGlsZSBjaGFyICopICgo
dm9pZCAqKShhZGRyKSArICgobnIpPj4zKSkpCjE0NDc0OiAgICA6ICJpcSIgKCh1OCl+KDEgPDwg
KChucikgJiA3KSkpKTsKMTQ0NzQ6ICB9IGVsc2UgewoxNDQ3NDogICBhc20gdm9sYXRpbGUoIi5w
dXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYg
LSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICIgIiAiYnRycSIgIiAi
ICIgJTEsJTAiCjE0NDc0OiAgICA6IDogIm0iICgqKHZvbGF0aWxlIGxvbmcgKikgKGFkZHIpKSwg
IklyIiAobnIpIDogIm1lbW9yeSIpOwoxNDQ3NDogIH0KMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkCjE0NDc0OiBhcmNoX2NsZWFy
X2JpdF91bmxvY2sobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKMTQ0NzQ6
IHsKMTQ0NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoxNDQ3NDog
IGFyY2hfY2xlYXJfYml0KG5yLCBhZGRyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkCjE0NDc0OiBhcmNoX19fY2xlYXJfYml0
KGxvbmcgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCjE0NDc0OiB7CjE0NDc0OiAg
YXNtIHZvbGF0aWxlKCIgIiAiYnRycSIgIiAiICIgJTEsJTAiIDogOiAibSIgKCoodm9sYXRpbGUg
bG9uZyAqKSAoYWRkcikpLCAiSXIiIChucikgOiAibWVtb3J5Iik7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9vbAoxNDQ3NDogYXJj
aF9jbGVhcl9iaXRfdW5sb2NrX2lzX25lZ2F0aXZlX2J5dGUobG9uZyBuciwgdm9sYXRpbGUgdW5z
aWduZWQgbG9uZyAqYWRkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICBib29sIG5lZ2F0aXZlOwoxNDQ3NDog
IGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24g
NFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7
ICIgImFuZGIgJTIsJTEiCjE0NDc0OiAgICJcblx0Lyogb3V0cHV0IGNvbmRpdGlvbiBjb2RlICIg
InMiICIqL1xuIgoxNDQ3NDogICA6ICI9QGNjIiAicyIgKG5lZ2F0aXZlKSwgIittIiAoKih2b2xh
dGlsZSBjaGFyICopIChhZGRyKSkKMTQ0NzQ6ICAgOiAiaXIiICgoY2hhcikgfigxIDw8IG5yKSkg
OiAibWVtb3J5Iik7CjE0NDc0OiAgcmV0dXJuIG5lZ2F0aXZlOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2
b2lkCjE0NDc0OiBhcmNoX19fY2xlYXJfYml0X3VubG9jayhsb25nIG5yLCB2b2xhdGlsZSB1bnNp
Z25lZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3NDogIGFyY2hfX19jbGVhcl9iaXQobnIsIGFk
ZHIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpIHZvaWQKMTQ0NzQ6IGFyY2hfX19jaGFuZ2VfYml0KGxvbmcgbnIsIHZvbGF0aWxlIHVu
c2lnbmVkIGxvbmcgKmFkZHIpCjE0NDc0OiB7CjE0NDc0OiAgYXNtIHZvbGF0aWxlKCIgIiAiYnRj
cSIgIiAiICIgJTEsJTAiIDogOiAibSIgKCoodm9sYXRpbGUgbG9uZyAqKSAoYWRkcikpLCAiSXIi
IChucikgOiAibWVtb3J5Iik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18o
KF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZAoxNDQ3NDogYXJjaF9jaGFuZ2VfYml0KGxvbmcgbnIs
IHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKF9fYnVp
bHRpbl9jb25zdGFudF9wKG5yKSkgewoxNDQ3NDogICBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlv
biAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIu
cG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJ4b3JiICUxLCUwIgoxNDQ3NDogICAg
OiAiK20iICgqKHZvbGF0aWxlIGNoYXIgKikgKCh2b2lkICopKGFkZHIpICsgKChucik+PjMpKSkK
MTQ0NzQ6ICAgIDogImlxIiAoKHU4KSgxIDw8ICgobnIpICYgNykpKSk7CjE0NDc0OiAgfSBlbHNl
IHsKMTQ0NzQ6ICAgYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxu
IiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToi
ICJcblx0bG9jazsgIiAiICIgImJ0Y3EiICIgIiAiICUxLCUwIgoxNDQ3NDogICAgOiA6ICJtIiAo
Kih2b2xhdGlsZSBsb25nICopIChhZGRyKSksICJJciIgKG5yKSA6ICJtZW1vcnkiKTsKMTQ0NzQ6
ICB9CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgYm9vbAoxNDQ3NDogYXJjaF90ZXN0X2FuZF9zZXRfYml0KGxvbmcgbnIsIHZvbGF0aWxl
IHVuc2lnbmVkIGxvbmcgKmFkZHIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IGJvb2wgYzsg
YXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24g
NFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7
ICIgIiAiICJidHNxIiAiICIgIiAlW3ZhbF0sICIgIiVbdmFyXSIgIlxuXHQvKiBvdXRwdXQgY29u
ZGl0aW9uIGNvZGUgIiAiYyIgIiovXG4iIDogW3Zhcl0gIittIiAoKmFkZHIpLCAiPUBjYyIgImMi
IChjKSA6IFt2YWxdICJJciIgKG5yKSA6ICJtZW1vcnkiKTsgYzsgfSk7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9vbAoxNDQ3NDog
YXJjaF90ZXN0X2FuZF9zZXRfYml0X2xvY2sobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9u
ZyAqYWRkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXJjaF90ZXN0X2FuZF9zZXRfYml0KG5y
LCBhZGRyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKSBib29sCjE0NDc0OiBhcmNoX19fdGVzdF9hbmRfc2V0X2JpdChsb25nIG5yLCB2
b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3NDogIGJvb2wgb2xkYml0
OwoxNDQ3NDogCjE0NDc0OiAgYXNtKCIgIiAiYnRzcSIgIiAiICIgJTIsJTEiCjE0NDc0OiAgICAg
ICJcblx0Lyogb3V0cHV0IGNvbmRpdGlvbiBjb2RlICIgImMiICIqL1xuIgoxNDQ3NDogICAgICA6
ICI9QGNjIiAiYyIgKG9sZGJpdCkKMTQ0NzQ6ICAgICAgOiAibSIgKCoodm9sYXRpbGUgbG9uZyAq
KSAoYWRkcikpLCAiSXIiIChucikgOiAibWVtb3J5Iik7CjE0NDc0OiAgcmV0dXJuIG9sZGJpdDsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSBib29sCjE0NDc0OiBhcmNoX3Rlc3RfYW5kX2NsZWFyX2JpdChsb25nIG5yLCB2b2xhdGlsZSB1
bnNpZ25lZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoeyBib29sIGM7IGFz
bSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRc
biIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAi
ICIgIiAiYnRycSIgIiAiICIgJVt2YWxdLCAiICIlW3Zhcl0iICJcblx0Lyogb3V0cHV0IGNvbmRp
dGlvbiBjb2RlICIgImMiICIqL1xuIiA6IFt2YXJdICIrbSIgKCphZGRyKSwgIj1AY2MiICJjIiAo
YykgOiBbdmFsXSAiSXIiIChucikgOiAibWVtb3J5Iik7IGM7IH0pOwoxNDQ3NDogfQoxNDQ3NDog
IyAxNzMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0
ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGJvb2wKMTQ0NzQ6IGFyY2hfX190ZXN0X2FuZF9jbGVh
cl9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKMTQ0NzQ6IHsKMTQ0
NzQ6ICBib29sIG9sZGJpdDsKMTQ0NzQ6IAoxNDQ3NDogIGFzbSB2b2xhdGlsZSgiICIgImJ0cnEi
ICIgIiAiICUyLCUxIgoxNDQ3NDogICAgICAgICJcblx0Lyogb3V0cHV0IGNvbmRpdGlvbiBjb2Rl
ICIgImMiICIqL1xuIgoxNDQ3NDogICAgICAgIDogIj1AY2MiICJjIiAob2xkYml0KQoxNDQ3NDog
ICAgICAgIDogIm0iICgqKHZvbGF0aWxlIGxvbmcgKikgKGFkZHIpKSwgIklyIiAobnIpIDogIm1l
bW9yeSIpOwoxNDQ3NDogIHJldHVybiBvbGRiaXQ7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9f
YXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9vbAoxNDQ3NDogYXJjaF9fX3Rlc3Rf
YW5kX2NoYW5nZV9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKMTQ0
NzQ6IHsKMTQ0NzQ6ICBib29sIG9sZGJpdDsKMTQ0NzQ6IAoxNDQ3NDogIGFzbSB2b2xhdGlsZSgi
ICIgImJ0Y3EiICIgIiAiICUyLCUxIgoxNDQ3NDogICAgICAgICJcblx0Lyogb3V0cHV0IGNvbmRp
dGlvbiBjb2RlICIgImMiICIqL1xuIgoxNDQ3NDogICAgICAgIDogIj1AY2MiICJjIiAob2xkYml0
KQoxNDQ3NDogICAgICAgIDogIm0iICgqKHZvbGF0aWxlIGxvbmcgKikgKGFkZHIpKSwgIklyIiAo
bnIpIDogIm1lbW9yeSIpOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIG9sZGJpdDsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBib29sCjE0
NDc0OiBhcmNoX3Rlc3RfYW5kX2NoYW5nZV9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQg
bG9uZyAqYWRkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHsgYm9vbCBjOyBhc20gdm9sYXRp
bGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9u
ZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAiICIgImJ0
Y3EiICIgIiAiICVbdmFsXSwgIiAiJVt2YXJdIiAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29k
ZSAiICJjIiAiKi9cbiIgOiBbdmFyXSAiK20iICgqYWRkciksICI9QGNjIiAiYyIgKGMpIDogW3Zh
bF0gIklyIiAobnIpIDogIm1lbW9yeSIpOyBjOyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBib29sIGNvbnN0YW50X3Rlc3RfYml0
KGxvbmcgbnIsIGNvbnN0IHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuICgoMVVMIDw8IChuciAmICg2NCAtMSkpKSAmCjE0NDc0OiAgIChhZGRyW25y
ID4+IDZdKSkgIT0gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19h
bHdheXNfaW5saW5lX18pKSBib29sIHZhcmlhYmxlX3Rlc3RfYml0KGxvbmcgbnIsIHZvbGF0aWxl
IGNvbnN0IHVuc2lnbmVkIGxvbmcgKmFkZHIpCjE0NDc0OiB7CjE0NDc0OiAgYm9vbCBvbGRiaXQ7
CjE0NDc0OiAKMTQ0NzQ6ICBhc20gdm9sYXRpbGUoIiAiICJidHEiICIgIiAiICUyLCUxIgoxNDQ3
NDogICAgICAgICJcblx0Lyogb3V0cHV0IGNvbmRpdGlvbiBjb2RlICIgImMiICIqL1xuIgoxNDQ3
NDogICAgICAgIDogIj1AY2MiICJjIiAob2xkYml0KQoxNDQ3NDogICAgICAgIDogIm0iICgqKHVu
c2lnbmVkIGxvbmcgKilhZGRyKSwgIklyIiAobnIpIDogIm1lbW9yeSIpOwoxNDQ3NDogCjE0NDc0
OiAgcmV0dXJuIG9sZGJpdDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjMzICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL2JpdG9wcy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSB1bnNpZ25lZCBsb25nIF9fZmZzKHVuc2lnbmVkIGxvbmcgd29yZCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICBhc20oInJlcDsgYnNmICUxLCUwIgoxNDQ3NDogICA6ICI9ciIgKHdvcmQpCjE0NDc0OiAgIDog
InJtIiAod29yZCkpOwoxNDQ3NDogIHJldHVybiB3b3JkOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJp
YnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHVuc2lnbmVkIGxvbmcgZmZ6KHVuc2lnbmVkIGxv
bmcgd29yZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBhc20oInJlcDsgYnNmICUxLCUwIgoxNDQ3NDogICA6
ICI9ciIgKHdvcmQpCjE0NDc0OiAgIDogInIiICh+d29yZCkpOwoxNDQ3NDogIHJldHVybiB3b3Jk
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHVuc2ln
bmVkIGxvbmcgX19mbHModW5zaWduZWQgbG9uZyB3b3JkKQoxNDQ3NDogewoxNDQ3NDogIGFzbSgi
YnNyICUxLCUwIgoxNDQ3NDogICAgICA6ICI9ciIgKHdvcmQpCjE0NDc0OiAgICAgIDogInJtIiAo
d29yZCkpOwoxNDQ3NDogIHJldHVybiB3b3JkOwoxNDQ3NDogfQoxNDQ3NDogIyAyODMgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5
c19pbmxpbmVfXykpIGludCBmZnMoaW50IHgpCjE0NDc0OiB7CjE0NDc0OiAgaW50IHI7CjE0NDc0
OiAjIDI5NyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9iaXRvcHMuaCIKMTQ0NzQ6ICBhc20oImJz
ZmwgJTEsJTAiCjE0NDc0OiAgICAgIDogIj1yIiAocikKMTQ0NzQ6ICAgICAgOiAicm0iICh4KSwg
IjAiICgtMSkpOwoxNDQ3NDogIyAzMTAgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmgi
CjE0NDc0OiAgcmV0dXJuIHIgKyAxOwoxNDQ3NDogfQoxNDQ3NDogIyAzMjQgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vYml0b3BzLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpIGludCBmbHModW5zaWduZWQgaW50IHgpCjE0NDc0OiB7CjE0NDc0OiAgaW50IHI7CjE0
NDc0OiAjIDMzOCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9iaXRvcHMuaCIKMTQ0NzQ6ICBhc20o
ImJzcmwgJTEsJTAiCjE0NDc0OiAgICAgIDogIj1yIiAocikKMTQ0NzQ6ICAgICAgOiAicm0iICh4
KSwgIjAiICgtMSkpOwoxNDQ3NDogIyAzNTEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3Bz
LmgiCjE0NDc0OiAgcmV0dXJuIHIgKyAxOwoxNDQ3NDogfQoxNDQ3NDogIyAzNjYgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19p
bmxpbmVfXykpIGludCBmbHM2NChfX3U2NCB4KQoxNDQ3NDogewoxNDQ3NDogIGludCBiaXRwb3Mg
PSAtMTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYXNt
KCJic3JxICUxLCVxMCIKMTQ0NzQ6ICAgICAgOiAiK3IiIChiaXRwb3MpCjE0NDc0OiAgICAgIDog
InJtIiAoeCkpOwoxNDQ3NDogIHJldHVybiBiaXRwb3MgKyAxOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9i
aXRvcHMvZmluZC5oIiAxCjE0NDc0OiAjIDE1ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3Bz
L2ZpbmQuaCIKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBsb25nIGZpbmRfbmV4dF9iaXQoY29uc3Qg
dW5zaWduZWQgbG9uZyAqYWRkciwgdW5zaWduZWQgbG9uZwoxNDQ3NDogICBzaXplLCB1bnNpZ25l
ZCBsb25nIG9mZnNldCk7CjE0NDc0OiAjIDMwICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3Bz
L2ZpbmQuaCIKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBsb25nIGZpbmRfbmV4dF9hbmRfYml0KGNv
bnN0IHVuc2lnbmVkIGxvbmcgKmFkZHIxLAoxNDQ3NDogICBjb25zdCB1bnNpZ25lZCBsb25nICph
ZGRyMiwgdW5zaWduZWQgbG9uZyBzaXplLAoxNDQ3NDogICB1bnNpZ25lZCBsb25nIG9mZnNldCk7
CjE0NDc0OiAjIDQ1ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2ZpbmQuaCIKMTQ0NzQ6
IGV4dGVybiB1bnNpZ25lZCBsb25nIGZpbmRfbmV4dF96ZXJvX2JpdChjb25zdCB1bnNpZ25lZCBs
b25nICphZGRyLCB1bnNpZ25lZAoxNDQ3NDogICBsb25nIHNpemUsIHVuc2lnbmVkIGxvbmcgb2Zm
c2V0KTsKMTQ0NzQ6ICMgNTkgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvZmluZC5oIgox
NDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZmluZF9maXJzdF9iaXQoY29uc3QgdW5zaWduZWQg
bG9uZyAqYWRkciwKMTQ0NzQ6ICAgICAgICAgdW5zaWduZWQgbG9uZyBzaXplKTsKMTQ0NzQ6ICMg
NzAgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvZmluZC5oIgoxNDQ3NDogZXh0ZXJuIHVu
c2lnbmVkIGxvbmcgZmluZF9maXJzdF96ZXJvX2JpdChjb25zdCB1bnNpZ25lZCBsb25nICphZGRy
LAoxNDQ3NDogICAgICAgdW5zaWduZWQgbG9uZyBzaXplKTsKMTQ0NzQ6ICMgOTMgIi4vaW5jbHVk
ZS9hc20tZ2VuZXJpYy9iaXRvcHMvZmluZC5oIgoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGxvbmcg
ZmluZF9uZXh0X2NsdW1wOCh1bnNpZ25lZCBsb25nICpjbHVtcCwKMTQ0NzQ6ICAgICAgICAgICBj
b25zdCB1bnNpZ25lZCBsb25nICphZGRyLAoxNDQ3NDogICAgICAgICAgIHVuc2lnbmVkIGxvbmcg
c2l6ZSwgdW5zaWduZWQgbG9uZyBvZmZzZXQpOwoxNDQ3NDogIyAzODQgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vYml0b3BzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvYXNtLWdl
bmVyaWMvYml0b3BzL3NjaGVkLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaS9hc20v
dHlwZXMuaCIgMQoxNDQ3NDogIyA3ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL3NjaGVk
LmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGludCBzY2hlZF9maW5kX2ZpcnN0X2JpdChjb25zdCB1bnNpZ25lZCBsb25nICpiKQoxNDQ3
NDogewoxNDQ3NDogCjE0NDc0OiAgaWYgKGJbMF0pCjE0NDc0OiAgIHJldHVybiBfX2ZmcyhiWzBd
KTsKMTQ0NzQ6ICByZXR1cm4gX19mZnMoYlsxXSkgKyA2NDsKMTQ0NzQ6ICMgMzAgIi4vaW5jbHVk
ZS9hc20tZ2VuZXJpYy9iaXRvcHMvc2NoZWQuaCIKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMzg2ICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL2JpdG9wcy5oIiAyCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9hcmNoX2h3ZWlnaHQuaCIgMQoxNDQ3NDogIyAxNSAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9hcmNoX2h3ZWlnaHQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgdW5zaWduZWQgaW50IF9fYXJjaF9od2VpZ2h0MzIodW5zaWduZWQgaW50
IHcpCjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJlczsKMTQ0NzQ6IAoxNDQ3NDogIGFz
bSAoIiMgQUxUOiBvbGRuc3RyXG4iICI2NjE6XG5cdCIgImNhbGwgX19zd19od2VpZ2h0MzIiICJc
bjY2MjpcbiIgIiMgQUxUOiBwYWRkaW5nXG4iICIuc2tpcCAtKCgoIiAiNjY1IiIxIiJmLSIiNjY0
IiIxIiJmIiAiKS0oIiAiNjYyYi02NjFiIiAiKSkgPiAwKSAqICIgIigoIiAiNjY1IiIxIiJmLSIi
NjY0IiIxIiJmIiAiKS0oIiAiNjYyYi02NjFiIiAiKSksMHg5MFxuIiAiNjYzIiAiOlxuIiAiLnB1
c2hzZWN0aW9uIC5hbHRpbnN0cnVjdGlvbnMsXCJhXCJcbiIgIiAubG9uZyA2NjFiIC0gLlxuIiAi
IC5sb25nICIgIjY2NCIiMSIiZiAtIC5cbiIgIiAud29yZCAiICIoIDQqMzIrMjMpIiAiXG4iICIg
LmJ5dGUgIiAiNjYzIiJiLTY2MWIiICJcbiIgIiAuYnl0ZSAiICI2NjUiIjEiImYtIiI2NjQiIjEi
ImYiICJcbiIgIiAuYnl0ZSAiICI2NjMiImItNjYyYiIgIlxuIiAiLnBvcHNlY3Rpb25cbiIgIi5w
dXNoc2VjdGlvbiAuYWx0aW5zdHJfcmVwbGFjZW1lbnQsIFwiYXhcIlxuIiAiIyBBTFQ6IHJlcGxh
Y2VtZW50ICIgIjEiICJcbiIgIjY2NCIiMSIiOlxuXHQiICJwb3BjbnRsICUxLCAlMCIgIlxuIiAi
NjY1IiIxIiAiOlxuIiAiLnBvcHNlY3Rpb25cbiIKMTQ0NzQ6ICAgICA6ICI9IiJhIiAocmVzKQox
NDQ3NDogICAgIDogIkQiICh3KSk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gcmVzOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQgX19hcmNoX2h3ZWlnaHQxNih1bnNpZ25lZCBp
bnQgdykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19hcmNoX2h3ZWlnaHQzMih3ICYgMHhmZmZm
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IF9fYXJjaF9od2VpZ2h0OCh1
bnNpZ25lZCBpbnQgdykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19hcmNoX2h3ZWlnaHQzMih3
ICYgMHhmZik7CjE0NDc0OiB9CjE0NDc0OiAjIDQzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2Fy
Y2hfaHdlaWdodC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB1
bnNpZ25lZCBsb25nIF9fYXJjaF9od2VpZ2h0NjQoX191NjQgdykKMTQ0NzQ6IHsKMTQ0NzQ6ICB1
bnNpZ25lZCBsb25nIHJlczsKMTQ0NzQ6IAoxNDQ3NDogIGFzbSAoIiMgQUxUOiBvbGRuc3RyXG4i
ICI2NjE6XG5cdCIgImNhbGwgX19zd19od2VpZ2h0NjQiICJcbjY2MjpcbiIgIiMgQUxUOiBwYWRk
aW5nXG4iICIuc2tpcCAtKCgoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiKS0oIiAiNjYyYi02
NjFiIiAiKSkgPiAwKSAqICIgIigoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiKS0oIiAiNjYy
Yi02NjFiIiAiKSksMHg5MFxuIiAiNjYzIiAiOlxuIiAiLnB1c2hzZWN0aW9uIC5hbHRpbnN0cnVj
dGlvbnMsXCJhXCJcbiIgIiAubG9uZyA2NjFiIC0gLlxuIiAiIC5sb25nICIgIjY2NCIiMSIiZiAt
IC5cbiIgIiAud29yZCAiICIoIDQqMzIrMjMpIiAiXG4iICIgLmJ5dGUgIiAiNjYzIiJiLTY2MWIi
ICJcbiIgIiAuYnl0ZSAiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICJcbiIgIiAuYnl0ZSAiICI2
NjMiImItNjYyYiIgIlxuIiAiLnBvcHNlY3Rpb25cbiIgIi5wdXNoc2VjdGlvbiAuYWx0aW5zdHJf
cmVwbGFjZW1lbnQsIFwiYXhcIlxuIiAiIyBBTFQ6IHJlcGxhY2VtZW50ICIgIjEiICJcbiIgIjY2
NCIiMSIiOlxuXHQiICJwb3BjbnRxICUxLCAlMCIgIlxuIiAiNjY1IiIxIiAiOlxuIiAiLnBvcHNl
Y3Rpb25cbiIKMTQ0NzQ6ICAgICA6ICI9IiJhIiAocmVzKQoxNDQ3NDogICAgIDogIkQiICh3KSk7
CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gcmVzOwoxNDQ3NDogfQoxNDQ3NDogIyAzODggIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1
ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2NvbnN0X2h3ZWlnaHQuaCIgMQoxNDQ3NDogIyAzOTAgIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2lu
Y2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2luc3RydW1lbnRlZC1hdG9taWMuaCIgMQoxNDQ3NDog
IyAyNiAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2JpdG9wcy9pbnN0cnVtZW50ZWQtYXRvbWljLmgi
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIHNldF9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRk
cikKMTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZShhZGRyICsgKChucikgLyA2NCks
IHNpemVvZihsb25nKSk7CjE0NDc0OiAgYXJjaF9zZXRfYml0KG5yLCBhZGRyKTsKMTQ0NzQ6IH0K
MTQ0NzQ6ICMgMzkgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvaW5zdHJ1bWVudGVkLWF0
b21pYy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBjbGVhcl9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQg
bG9uZyAqYWRkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZShhZGRyICsgKChu
cikgLyA2NCksIHNpemVvZihsb25nKSk7CjE0NDc0OiAgYXJjaF9jbGVhcl9iaXQobnIsIGFkZHIp
OwoxNDQ3NDogfQoxNDQ3NDogIyA1NSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2JpdG9wcy9pbnN0
cnVtZW50ZWQtYXRvbWljLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNoYW5nZV9iaXQobG9uZyBuciwgdm9sYXRp
bGUgdW5zaWduZWQgbG9uZyAqYWRkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0
ZShhZGRyICsgKChucikgLyA2NCksIHNpemVvZihsb25nKSk7CjE0NDc0OiAgYXJjaF9jaGFuZ2Vf
Yml0KG5yLCBhZGRyKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNjggIi4vaW5jbHVkZS9hc20tZ2VuZXJp
Yy9iaXRvcHMvaW5zdHJ1bWVudGVkLWF0b21pYy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0ZXN0X2FuZF9zZXRf
Yml0KGxvbmcgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCjE0NDc0OiB7CjE0NDc0
OiAga2FzYW5fY2hlY2tfd3JpdGUoYWRkciArICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwox
NDQ3NDogIHJldHVybiBhcmNoX3Rlc3RfYW5kX3NldF9iaXQobnIsIGFkZHIpOwoxNDQ3NDogfQox
NDQ3NDogIyA4MSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2JpdG9wcy9pbnN0cnVtZW50ZWQtYXRv
bWljLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBib29sIHRlc3RfYW5kX2NsZWFyX2JpdChsb25nIG5yLCB2b2xhdGlsZSB1
bnNpZ25lZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKGFk
ZHIgKyAoKG5yKSAvIDY0KSwgc2l6ZW9mKGxvbmcpKTsKMTQ0NzQ6ICByZXR1cm4gYXJjaF90ZXN0
X2FuZF9jbGVhcl9iaXQobnIsIGFkZHIpOwoxNDQ3NDogfQoxNDQ3NDogIyA5NCAiLi9pbmNsdWRl
L2FzbS1nZW5lcmljL2JpdG9wcy9pbnN0cnVtZW50ZWQtYXRvbWljLmgiCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHRl
c3RfYW5kX2NoYW5nZV9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikK
MTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZShhZGRyICsgKChucikgLyA2NCksIHNp
emVvZihsb25nKSk7CjE0NDc0OiAgcmV0dXJuIGFyY2hfdGVzdF9hbmRfY2hhbmdlX2JpdChuciwg
YWRkcik7CjE0NDc0OiB9CjE0NDc0OiAjIDM5MiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9iaXRv
cHMuaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2luc3RydW1l
bnRlZC1ub24tYXRvbWljLmgiIDEKMTQ0NzQ6ICMgMjUgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9i
aXRvcHMvaW5zdHJ1bWVudGVkLW5vbi1hdG9taWMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19zZXRfYml0KGxv
bmcgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCjE0NDc0OiB7CjE0NDc0OiAga2Fz
YW5fY2hlY2tfd3JpdGUoYWRkciArICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwoxNDQ3NDog
IGFyY2hfX19zZXRfYml0KG5yLCBhZGRyKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNDAgIi4vaW5jbHVk
ZS9hc20tZ2VuZXJpYy9iaXRvcHMvaW5zdHJ1bWVudGVkLW5vbi1hdG9taWMuaCIKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgX19jbGVhcl9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKMTQ0
NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZShhZGRyICsgKChucikgLyA2NCksIHNpemVv
Zihsb25nKSk7CjE0NDc0OiAgYXJjaF9fX2NsZWFyX2JpdChuciwgYWRkcik7CjE0NDc0OiB9CjE0
NDc0OiAjIDU1ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2luc3RydW1lbnRlZC1ub24t
YXRvbWljLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fY2hhbmdlX2JpdChsb25nIG5yLCB2b2xhdGlsZSB1bnNp
Z25lZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKGFkZHIg
KyAoKG5yKSAvIDY0KSwgc2l6ZW9mKGxvbmcpKTsKMTQ0NzQ6ICBhcmNoX19fY2hhbmdlX2JpdChu
ciwgYWRkcik7CjE0NDc0OiB9CjE0NDc0OiAjIDY5ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0
b3BzL2luc3RydW1lbnRlZC1ub24tYXRvbWljLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIF9fdGVzdF9hbmRfc2V0
X2JpdChsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3
NDogIGthc2FuX2NoZWNrX3dyaXRlKGFkZHIgKyAoKG5yKSAvIDY0KSwgc2l6ZW9mKGxvbmcpKTsK
MTQ0NzQ6ICByZXR1cm4gYXJjaF9fX3Rlc3RfYW5kX3NldF9iaXQobnIsIGFkZHIpOwoxNDQ3NDog
fQoxNDQ3NDogIyA4MyAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2JpdG9wcy9pbnN0cnVtZW50ZWQt
bm9uLWF0b21pYy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBfX3Rlc3RfYW5kX2NsZWFyX2JpdChsb25nIG5yLCB2
b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3NDogIGthc2FuX2NoZWNr
X3dyaXRlKGFkZHIgKyAoKG5yKSAvIDY0KSwgc2l6ZW9mKGxvbmcpKTsKMTQ0NzQ6ICByZXR1cm4g
YXJjaF9fX3Rlc3RfYW5kX2NsZWFyX2JpdChuciwgYWRkcik7CjE0NDc0OiB9CjE0NDc0OiAjIDk3
ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2luc3RydW1lbnRlZC1ub24tYXRvbWljLmgi
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBib29sIF9fdGVzdF9hbmRfY2hhbmdlX2JpdChsb25nIG5yLCB2b2xhdGlsZSB1bnNp
Z25lZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKGFkZHIg
KyAoKG5yKSAvIDY0KSwgc2l6ZW9mKGxvbmcpKTsKMTQ0NzQ6ICByZXR1cm4gYXJjaF9fX3Rlc3Rf
YW5kX2NoYW5nZV9iaXQobnIsIGFkZHIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0ZXN0X2JpdChsb25nIG5yLCBj
b25zdCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3NDogIGthc2Fu
X2NoZWNrX3JlYWQoYWRkciArICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwoxNDQ3NDogIHJl
dHVybiAoX19idWlsdGluX2NvbnN0YW50X3AoKG5yKSkgPyBjb25zdGFudF90ZXN0X2JpdCgobnIp
LCAoYWRkcikpIDogdmFyaWFibGVfdGVzdF9iaXQoKG5yKSwgKGFkZHIpKSk7CjE0NDc0OiB9CjE0
NDc0OiAjIDM5MyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9iaXRvcHMuaCIgMgoxNDQ3NDogIyAx
ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2luc3RydW1lbnRlZC1sb2NrLmgiIDEKMTQ0
NzQ6ICMgMjMgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvaW5zdHJ1bWVudGVkLWxvY2su
aCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgY2xlYXJfYml0X3VubG9jayhsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25l
ZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKGFkZHIgKyAo
KG5yKSAvIDY0KSwgc2l6ZW9mKGxvbmcpKTsKMTQ0NzQ6ICBhcmNoX2NsZWFyX2JpdF91bmxvY2so
bnIsIGFkZHIpOwoxNDQ3NDogfQoxNDQ3NDogIyAzOCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2Jp
dG9wcy9pbnN0cnVtZW50ZWQtbG9jay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2NsZWFyX2JpdF91bmxvY2so
bG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICBr
YXNhbl9jaGVja193cml0ZShhZGRyICsgKChucikgLyA2NCksIHNpemVvZihsb25nKSk7CjE0NDc0
OiAgYXJjaF9fX2NsZWFyX2JpdF91bmxvY2sobnIsIGFkZHIpOwoxNDQ3NDogfQoxNDQ3NDogIyA1
MyAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2JpdG9wcy9pbnN0cnVtZW50ZWQtbG9jay5oIgoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgYm9vbCB0ZXN0X2FuZF9zZXRfYml0X2xvY2sobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQg
bG9uZyAqYWRkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZShhZGRyICsgKChu
cikgLyA2NCksIHNpemVvZihsb25nKSk7CjE0NDc0OiAgcmV0dXJuIGFyY2hfdGVzdF9hbmRfc2V0
X2JpdF9sb2NrKG5yLCBhZGRyKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNzEgIi4vaW5jbHVkZS9hc20t
Z2VuZXJpYy9iaXRvcHMvaW5zdHJ1bWVudGVkLWxvY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKMTQ0NzQ6IGNs
ZWFyX2JpdF91bmxvY2tfaXNfbmVnYXRpdmVfYnl0ZShsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25l
ZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKGFkZHIgKyAo
KG5yKSAvIDY0KSwgc2l6ZW9mKGxvbmcpKTsKMTQ0NzQ6ICByZXR1cm4gYXJjaF9jbGVhcl9iaXRf
dW5sb2NrX2lzX25lZ2F0aXZlX2J5dGUobnIsIGFkZHIpOwoxNDQ3NDogfQoxNDQ3NDogIyAzOTQg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIu
L2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2xlLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkv
YXNtL3R5cGVzLmgiIDEKMTQ0NzQ6ICMgNiAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2JpdG9wcy9s
ZS5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB1bnNpZ25lZCBsb25nIGZpbmRfbmV4dF96ZXJvX2JpdF9sZShjb25zdCB2b2lkICphZGRy
LAoxNDQ3NDogICB1bnNpZ25lZCBsb25nIHNpemUsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiBmaW5kX25leHRfemVyb19iaXQoYWRkciwgc2l6ZSwgb2Zmc2V0
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBmaW5kX25leHRfYml0X2xl
KGNvbnN0IHZvaWQgKmFkZHIsCjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQg
bG9uZyBvZmZzZXQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGZpbmRfbmV4dF9iaXQoYWRkciwg
c2l6ZSwgb2Zmc2V0KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBmaW5k
X2ZpcnN0X3plcm9fYml0X2xlKGNvbnN0IHZvaWQgKmFkZHIsCjE0NDc0OiAgIHVuc2lnbmVkIGxv
bmcgc2l6ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gZmluZF9maXJzdF96ZXJvX2JpdChhZGRy
LCBzaXplKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNTMgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRv
cHMvbGUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludCB0ZXN0X2JpdF9sZShpbnQgbnIsIGNvbnN0IHZvaWQgKmFkZHIp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHRlc3RfYml0KG5yIF4gMCwgYWRkcik7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgc2V0X2JpdF9sZShpbnQgbnIsIHZvaWQgKmFkZHIpCjE0NDc0
OiB7CjE0NDc0OiAgc2V0X2JpdChuciBeIDAsIGFkZHIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGNsZWFyX2JpdF9sZShpbnQgbnIsIHZvaWQgKmFkZHIpCjE0NDc0OiB7CjE0NDc0OiAg
Y2xlYXJfYml0KG5yIF4gMCwgYWRkcik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19z
ZXRfYml0X2xlKGludCBuciwgdm9pZCAqYWRkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX3NldF9iaXQo
bnIgXiAwLCBhZGRyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2NsZWFyX2JpdF9s
ZShpbnQgbnIsIHZvaWQgKmFkZHIpCjE0NDc0OiB7CjE0NDc0OiAgX19jbGVhcl9iaXQobnIgXiAw
LCBhZGRyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHRlc3RfYW5kX3NldF9iaXRfbGUo
aW50IG5yLCB2b2lkICphZGRyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB0ZXN0X2FuZF9zZXRf
Yml0KG5yIF4gMCwgYWRkcik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB0ZXN0X2FuZF9j
bGVhcl9iaXRfbGUoaW50IG5yLCB2b2lkICphZGRyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB0
ZXN0X2FuZF9jbGVhcl9iaXQobnIgXiAwLCBhZGRyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
aW50IF9fdGVzdF9hbmRfc2V0X2JpdF9sZShpbnQgbnIsIHZvaWQgKmFkZHIpCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuIF9fdGVzdF9hbmRfc2V0X2JpdChuciBeIDAsIGFkZHIpOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQgX190ZXN0X2FuZF9jbGVhcl9iaXRfbGUoaW50IG5yLCB2b2lkICph
ZGRyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX3Rlc3RfYW5kX2NsZWFyX2JpdChuciBeIDAs
IGFkZHIpOwoxNDQ3NDogfQoxNDQ3NDogIyAzOTYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0
b3BzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3Bz
L2V4dDItYXRvbWljLXNldGJpdC5oIiAxCjE0NDc0OiAjIDM5OCAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9iaXRvcHMuaCIgMgoxNDQ3NDogIyAzMCAiLi9pbmNsdWRlL2xpbnV4L2JpdG9wcy5oIiAy
CjE0NDc0OiAjIDY1ICIuL2luY2x1ZGUvbGludXgvYml0b3BzLmgiCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgZ2V0X2Jp
dG1hc2tfb3JkZXIodW5zaWduZWQgaW50IGNvdW50KQoxNDQ3NDogewoxNDQ3NDogIGludCBvcmRl
cjsKMTQ0NzQ6IAoxNDQ3NDogIG9yZGVyID0gZmxzKGNvdW50KTsKMTQ0NzQ6ICByZXR1cm4gb3Jk
ZXI7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgdW5zaWduZWQgbG9uZyBod2VpZ2h0X2xvbmcodW5zaWduZWQgbG9uZyB3KQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiBzaXplb2YodykgPT0gNCA/IChfX2J1aWx0aW5fY29uc3RhbnRfcCh3
KSA/ICgoKCh1bnNpZ25lZCBpbnQpICgoISEoKHcpICYgKDFVTEwgPDwgMCkpKSArICghISgodykg
JiAoMVVMTCA8PCAxKSkpICsgKCEhKCh3KSAmICgxVUxMIDw8IDIpKSkgKyAoISEoKHcpICYgKDFV
TEwgPDwgMykpKSArICghISgodykgJiAoMVVMTCA8PCA0KSkpICsgKCEhKCh3KSAmICgxVUxMIDw8
IDUpKSkgKyAoISEoKHcpICYgKDFVTEwgPDwgNikpKSArICghISgodykgJiAoMVVMTCA8PCA3KSkp
KSkgKyAoKHVuc2lnbmVkIGludCkgKCghISgoKHcpID4+IDgpICYgKDFVTEwgPDwgMCkpKSArICgh
ISgoKHcpID4+IDgpICYgKDFVTEwgPDwgMSkpKSArICghISgoKHcpID4+IDgpICYgKDFVTEwgPDwg
MikpKSArICghISgoKHcpID4+IDgpICYgKDFVTEwgPDwgMykpKSArICghISgoKHcpID4+IDgpICYg
KDFVTEwgPDwgNCkpKSArICghISgoKHcpID4+IDgpICYgKDFVTEwgPDwgNSkpKSArICghISgoKHcp
ID4+IDgpICYgKDFVTEwgPDwgNikpKSArICghISgoKHcpID4+IDgpICYgKDFVTEwgPDwgNykpKSkp
KSArICgoKHVuc2lnbmVkIGludCkgKCghISgoKHcpID4+IDE2KSAmICgxVUxMIDw8IDApKSkgKyAo
ISEoKCh3KSA+PiAxNikgJiAoMVVMTCA8PCAxKSkpICsgKCEhKCgodykgPj4gMTYpICYgKDFVTEwg
PDwgMikpKSArICghISgoKHcpID4+IDE2KSAmICgxVUxMIDw8IDMpKSkgKyAoISEoKCh3KSA+PiAx
NikgJiAoMVVMTCA8PCA0KSkpICsgKCEhKCgodykgPj4gMTYpICYgKDFVTEwgPDwgNSkpKSArICgh
ISgoKHcpID4+IDE2KSAmICgxVUxMIDw8IDYpKSkgKyAoISEoKCh3KSA+PiAxNikgJiAoMVVMTCA8
PCA3KSkpKSkgKyAoKHVuc2lnbmVkIGludCkgKCghISgoKCh3KSA+PiAxNikgPj4gOCkgJiAoMVVM
TCA8PCAwKSkpICsgKCEhKCgoKHcpID4+IDE2KSA+PiA4KSAmICgxVUxMIDw8IDEpKSkgKyAoISEo
KCgodykgPj4gMTYpID4+IDgpICYgKDFVTEwgPDwgMikpKSArICghISgoKCh3KSA+PiAxNikgPj4g
OCkgJiAoMVVMTCA8PCAzKSkpICsgKCEhKCgoKHcpID4+IDE2KSA+PiA4KSAmICgxVUxMIDw8IDQp
KSkgKyAoISEoKCgodykgPj4gMTYpID4+IDgpICYgKDFVTEwgPDwgNSkpKSArICghISgoKCh3KSA+
PiAxNikgPj4gOCkgJiAoMVVMTCA8PCA2KSkpICsgKCEhKCgoKHcpID4+IDE2KSA+PiA4KSAmICgx
VUxMIDw8IDcpKSkpKSkpIDogX19hcmNoX2h3ZWlnaHQzMih3KSkgOiAoX19idWlsdGluX2NvbnN0
YW50X3AodykgPyAoKCgoKHVuc2lnbmVkIGludCkgKCghISgodykgJiAoMVVMTCA8PCAwKSkpICsg
KCEhKCh3KSAmICgxVUxMIDw8IDEpKSkgKyAoISEoKHcpICYgKDFVTEwgPDwgMikpKSArICghISgo
dykgJiAoMVVMTCA8PCAzKSkpICsgKCEhKCh3KSAmICgxVUxMIDw8IDQpKSkgKyAoISEoKHcpICYg
KDFVTEwgPDwgNSkpKSArICghISgodykgJiAoMVVMTCA8PCA2KSkpICsgKCEhKCh3KSAmICgxVUxM
IDw8IDcpKSkpKSArICgodW5zaWduZWQgaW50KSAoKCEhKCgodykgPj4gOCkgJiAoMVVMTCA8PCAw
KSkpICsgKCEhKCgodykgPj4gOCkgJiAoMVVMTCA8PCAxKSkpICsgKCEhKCgodykgPj4gOCkgJiAo
MVVMTCA8PCAyKSkpICsgKCEhKCgodykgPj4gOCkgJiAoMVVMTCA8PCAzKSkpICsgKCEhKCgodykg
Pj4gOCkgJiAoMVVMTCA8PCA0KSkpICsgKCEhKCgodykgPj4gOCkgJiAoMVVMTCA8PCA1KSkpICsg
KCEhKCgodykgPj4gOCkgJiAoMVVMTCA8PCA2KSkpICsgKCEhKCgodykgPj4gOCkgJiAoMVVMTCA8
PCA3KSkpKSkpICsgKCgodW5zaWduZWQgaW50KSAoKCEhKCgodykgPj4gMTYpICYgKDFVTEwgPDwg
MCkpKSArICghISgoKHcpID4+IDE2KSAmICgxVUxMIDw8IDEpKSkgKyAoISEoKCh3KSA+PiAxNikg
JiAoMVVMTCA8PCAyKSkpICsgKCEhKCgodykgPj4gMTYpICYgKDFVTEwgPDwgMykpKSArICghISgo
KHcpID4+IDE2KSAmICgxVUxMIDw8IDQpKSkgKyAoISEoKCh3KSA+PiAxNikgJiAoMVVMTCA8PCA1
KSkpICsgKCEhKCgodykgPj4gMTYpICYgKDFVTEwgPDwgNikpKSArICghISgoKHcpID4+IDE2KSAm
ICgxVUxMIDw8IDcpKSkpKSArICgodW5zaWduZWQgaW50KSAoKCEhKCgoKHcpID4+IDE2KSA+PiA4
KSAmICgxVUxMIDw8IDApKSkgKyAoISEoKCgodykgPj4gMTYpID4+IDgpICYgKDFVTEwgPDwgMSkp
KSArICghISgoKCh3KSA+PiAxNikgPj4gOCkgJiAoMVVMTCA8PCAyKSkpICsgKCEhKCgoKHcpID4+
IDE2KSA+PiA4KSAmICgxVUxMIDw8IDMpKSkgKyAoISEoKCgodykgPj4gMTYpID4+IDgpICYgKDFV
TEwgPDwgNCkpKSArICghISgoKCh3KSA+PiAxNikgPj4gOCkgJiAoMVVMTCA8PCA1KSkpICsgKCEh
KCgoKHcpID4+IDE2KSA+PiA4KSAmICgxVUxMIDw8IDYpKSkgKyAoISEoKCgodykgPj4gMTYpID4+
IDgpICYgKDFVTEwgPDwgNykpKSkpKSkgKyAoKCgodW5zaWduZWQgaW50KSAoKCEhKCgodykgPj4g
MzIpICYgKDFVTEwgPDwgMCkpKSArICghISgoKHcpID4+IDMyKSAmICgxVUxMIDw8IDEpKSkgKyAo
ISEoKCh3KSA+PiAzMikgJiAoMVVMTCA8PCAyKSkpICsgKCEhKCgodykgPj4gMzIpICYgKDFVTEwg
PDwgMykpKSArICghISgoKHcpID4+IDMyKSAmICgxVUxMIDw8IDQpKSkgKyAoISEoKCh3KSA+PiAz
MikgJiAoMVVMTCA8PCA1KSkpICsgKCEhKCgodykgPj4gMzIpICYgKDFVTEwgPDwgNikpKSArICgh
ISgoKHcpID4+IDMyKSAmICgxVUxMIDw8IDcpKSkpKSArICgodW5zaWduZWQgaW50KSAoKCEhKCgo
KHcpID4+IDMyKSA+PiA4KSAmICgxVUxMIDw8IDApKSkgKyAoISEoKCgodykgPj4gMzIpID4+IDgp
ICYgKDFVTEwgPDwgMSkpKSArICghISgoKCh3KSA+PiAzMikgPj4gOCkgJiAoMVVMTCA8PCAyKSkp
ICsgKCEhKCgoKHcpID4+IDMyKSA+PiA4KSAmICgxVUxMIDw8IDMpKSkgKyAoISEoKCgodykgPj4g
MzIpID4+IDgpICYgKDFVTEwgPDwgNCkpKSArICghISgoKCh3KSA+PiAzMikgPj4gOCkgJiAoMVVM
TCA8PCA1KSkpICsgKCEhKCgoKHcpID4+IDMyKSA+PiA4KSAmICgxVUxMIDw8IDYpKSkgKyAoISEo
KCgodykgPj4gMzIpID4+IDgpICYgKDFVTEwgPDwgNykpKSkpKSArICgoKHVuc2lnbmVkIGludCkg
KCghISgoKCh3KSA+PiAzMikgPj4gMTYpICYgKDFVTEwgPDwgMCkpKSArICghISgoKCh3KSA+PiAz
MikgPj4gMTYpICYgKDFVTEwgPDwgMSkpKSArICghISgoKCh3KSA+PiAzMikgPj4gMTYpICYgKDFV
TEwgPDwgMikpKSArICghISgoKCh3KSA+PiAzMikgPj4gMTYpICYgKDFVTEwgPDwgMykpKSArICgh
ISgoKCh3KSA+PiAzMikgPj4gMTYpICYgKDFVTEwgPDwgNCkpKSArICghISgoKCh3KSA+PiAzMikg
Pj4gMTYpICYgKDFVTEwgPDwgNSkpKSArICghISgoKCh3KSA+PiAzMikgPj4gMTYpICYgKDFVTEwg
PDwgNikpKSArICghISgoKCh3KSA+PiAzMikgPj4gMTYpICYgKDFVTEwgPDwgNykpKSkpICsgKCh1
bnNpZ25lZCBpbnQpICgoISEoKCgoKHcpID4+IDMyKSA+PiAxNikgPj4gOCkgJiAoMVVMTCA8PCAw
KSkpICsgKCEhKCgoKCh3KSA+PiAzMikgPj4gMTYpID4+IDgpICYgKDFVTEwgPDwgMSkpKSArICgh
ISgoKCgodykgPj4gMzIpID4+IDE2KSA+PiA4KSAmICgxVUxMIDw8IDIpKSkgKyAoISEoKCgoKHcp
ID4+IDMyKSA+PiAxNikgPj4gOCkgJiAoMVVMTCA8PCAzKSkpICsgKCEhKCgoKCh3KSA+PiAzMikg
Pj4gMTYpID4+IDgpICYgKDFVTEwgPDwgNCkpKSArICghISgoKCgodykgPj4gMzIpID4+IDE2KSA+
PiA4KSAmICgxVUxMIDw8IDUpKSkgKyAoISEoKCgoKHcpID4+IDMyKSA+PiAxNikgPj4gOCkgJiAo
MVVMTCA8PCA2KSkpICsgKCEhKCgoKCh3KSA+PiAzMikgPj4gMTYpID4+IDgpICYgKDFVTEwgPDwg
NykpKSkpKSkpIDogX19hcmNoX2h3ZWlnaHQ2NCh3KSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX3U2NCByb2w2NChfX3U2
NCB3b3JkLCB1bnNpZ25lZCBpbnQgc2hpZnQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh3b3Jk
IDw8IChzaGlmdCAmIDYzKSkgfCAod29yZCA+PiAoKC1zaGlmdCkgJiA2MykpOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX191
NjQgcm9yNjQoX191NjQgd29yZCwgdW5zaWduZWQgaW50IHNoaWZ0KQoxNDQ3NDogewoxNDQ3NDog
IHJldHVybiAod29yZCA+PiAoc2hpZnQgJiA2MykpIHwgKHdvcmQgPDwgKCgtc2hpZnQpICYgNjMp
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIF9fdTMyIHJvbDMyKF9fdTMyIHdvcmQsIHVuc2lnbmVkIGludCBzaGlmdCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHdvcmQgPDwgKHNoaWZ0ICYgMzEpKSB8ICh3b3JkID4+ICgo
LXNoaWZ0KSAmIDMxKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX3UzMiByb3IzMihfX3UzMiB3b3JkLCB1bnNpZ25lZCBp
bnQgc2hpZnQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh3b3JkID4+IChzaGlmdCAmIDMxKSkg
fCAod29yZCA8PCAoKC1zaGlmdCkgJiAzMSkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX191MTYgcm9sMTYoX191MTYgd29y
ZCwgdW5zaWduZWQgaW50IHNoaWZ0KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAod29yZCA8PCAo
c2hpZnQgJiAxNSkpIHwgKHdvcmQgPj4gKCgtc2hpZnQpICYgMTUpKTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fdTE2IHJv
cjE2KF9fdTE2IHdvcmQsIHVuc2lnbmVkIGludCBzaGlmdCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gKHdvcmQgPj4gKHNoaWZ0ICYgMTUpKSB8ICh3b3JkIDw8ICgoLXNoaWZ0KSAmIDE1KSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX3U4IHJvbDgoX191OCB3b3JkLCB1bnNpZ25lZCBpbnQgc2hpZnQpCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuICh3b3JkIDw8IChzaGlmdCAmIDcpKSB8ICh3b3JkID4+ICgoLXNoaWZ0KSAm
IDcpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fdTggcm9yOChfX3U4IHdvcmQsIHVuc2lnbmVkIGludCBzaGlmdCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHdvcmQgPj4gKHNoaWZ0ICYgNykpIHwgKHdvcmQgPDwgKCgt
c2hpZnQpICYgNykpOwoxNDQ3NDogfQoxNDQ3NDogIyAxNjUgIi4vaW5jbHVkZS9saW51eC9iaXRv
cHMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fczMyIHNpZ25fZXh0ZW5kMzIoX191MzIgdmFsdWUsIGludCBpbmRleCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICBfX3U4IHNoaWZ0ID0gMzEgLSBpbmRleDsKMTQ0NzQ6ICByZXR1cm4g
KF9fczMyKSh2YWx1ZSA8PCBzaGlmdCkgPj4gc2hpZnQ7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX3M2NCBzaWduX2V4dGVu
ZDY0KF9fdTY0IHZhbHVlLCBpbnQgaW5kZXgpCjE0NDc0OiB7CjE0NDc0OiAgX191OCBzaGlmdCA9
IDYzIC0gaW5kZXg7CjE0NDc0OiAgcmV0dXJuIChfX3M2NCkodmFsdWUgPDwgc2hpZnQpID4+IHNo
aWZ0OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBmbHNfbG9uZyh1bnNpZ25lZCBs
b25nIGwpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKHNpemVvZihsKSA9PSA0KQoxNDQ3NDogICByZXR1
cm4gZmxzKGwpOwoxNDQ3NDogIHJldHVybiBmbHM2NChsKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgaW50IGdldF9jb3VudF9vcmRlcih1bnNpZ25lZCBpbnQgY291bnQpCjE0NDc0OiB7CjE0NDc0
OiAgaW50IG9yZGVyOwoxNDQ3NDogCjE0NDc0OiAgb3JkZXIgPSBmbHMoY291bnQpIC0gMTsKMTQ0
NzQ6ICBpZiAoY291bnQgJiAoY291bnQgLSAxKSkKMTQ0NzQ6ICAgb3JkZXIrKzsKMTQ0NzQ6ICBy
ZXR1cm4gb3JkZXI7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBnZXRfY291bnRfb3JkZXJfbG9uZyh1bnNp
Z25lZCBsb25nIGwpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKGwgPT0gMFVMKQoxNDQ3NDogICByZXR1
cm4gLTE7CjE0NDc0OiAgZWxzZSBpZiAobCAmIChsIC0gMVVMKSkKMTQ0NzQ6ICAgcmV0dXJuIChp
bnQpZmxzX2xvbmcobCk7CjE0NDc0OiAgZWxzZQoxNDQ3NDogICByZXR1cm4gKGludClmbHNfbG9u
ZyhsKSAtIDE7CjE0NDc0OiB9CjE0NDc0OiAjIDIyMyAiLi9pbmNsdWRlL2xpbnV4L2JpdG9wcy5o
IgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBfX2ZmczY0KHU2NCB3b3JkKQoxNDQ3NDogewoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBf
X2ZmcygodW5zaWduZWQgbG9uZyl3b3JkKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSB2b2lkIGFzc2lnbl9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5z
aWduZWQgbG9uZyAqYWRkciwKMTQ0NzQ6ICAgICAgICAgICAgYm9vbCB2YWx1ZSkKMTQ0NzQ6IHsK
MTQ0NzQ6ICBpZiAodmFsdWUpCjE0NDc0OiAgIHNldF9iaXQobnIsIGFkZHIpOwoxNDQ3NDogIGVs
c2UKMTQ0NzQ6ICAgY2xlYXJfYml0KG5yLCBhZGRyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fYXNzaWduX2JpdChsb25n
IG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyLAoxNDQ3NDogICAgICAgYm9vbCB2YWx1
ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAodmFsdWUpCjE0NDc0OiAgIF9fc2V0X2JpdChuciwgYWRk
cik7CjE0NDc0OiAgZWxzZQoxNDQ3NDogICBfX2NsZWFyX2JpdChuciwgYWRkcik7CjE0NDc0OiB9
CjE0NDc0OiAjIDI5OSAiLi9pbmNsdWRlL2xpbnV4L2JpdG9wcy5oIgoxNDQ3NDogZXh0ZXJuIHVu
c2lnbmVkIGxvbmcgZmluZF9sYXN0X2JpdChjb25zdCB1bnNpZ25lZCBsb25nICphZGRyLAoxNDQ3
NDogICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSk7CjE0NDc0OiAjIDEzICIuL2luY2x1ZGUvbGlu
dXgva2VybmVsLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2xvZzIuaCIgMQoxNDQ3
NDogIyAyMSAiLi9pbmNsdWRlL2xpbnV4L2xvZzIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKGNv
bnN0KSkKMTQ0NzQ6IGludCBfX2lsb2cyX3UzMih1MzIgbikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gZmxzKG4pIC0gMTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9f
YXR0cmlidXRlX18oKGNvbnN0KSkKMTQ0NzQ6IGludCBfX2lsb2cyX3U2NCh1NjQgbikKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4gZmxzNjQobikgLSAxOwoxNDQ3NDogfQoxNDQ3NDogIyA0NCAiLi9p
bmNsdWRlL2xpbnV4L2xvZzIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKGNvbnN0KSkKMTQ0NzQ6
IGJvb2wgaXNfcG93ZXJfb2ZfMih1bnNpZ25lZCBsb25nIG4pCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuIChuICE9IDAgJiYgKChuICYgKG4gLSAxKSkgPT0gMCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKGNvbnN0
KSkKMTQ0NzQ6IHVuc2lnbmVkIGxvbmcgX19yb3VuZHVwX3Bvd19vZl90d28odW5zaWduZWQgbG9u
ZyBuKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAxVUwgPDwgZmxzX2xvbmcobiAtIDEpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKGNvbnN0KSkKMTQ0NzQ6IHVuc2lnbmVkIGxvbmcgX19yb3VuZGRvd25fcG93X29m
X3R3byh1bnNpZ25lZCBsb25nIG4pCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIDFVTCA8PCAoZmxz
X2xvbmcobikgLSAxKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTk3ICIuL2luY2x1ZGUvbGludXgvbG9n
Mi5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19jb25zdF9fKSkKMTQ0NzQ6IGludCBfX29yZGVy
X2Jhc2VfMih1bnNpZ25lZCBsb25nIG4pCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIG4gPiAxID8g
KCBfX2J1aWx0aW5fY29uc3RhbnRfcChuIC0gMSkgPyAoIF9fYnVpbHRpbl9jb25zdGFudF9wKG4g
LSAxKSA/ICggKG4gLSAxKSA8IDIgPyAwIDogKG4gLSAxKSAmICgxVUxMIDw8IDYzKSA/IDYzIDog
KG4gLSAxKSAmICgxVUxMIDw8IDYyKSA/IDYyIDogKG4gLSAxKSAmICgxVUxMIDw8IDYxKSA/IDYx
IDogKG4gLSAxKSAmICgxVUxMIDw8IDYwKSA/IDYwIDogKG4gLSAxKSAmICgxVUxMIDw8IDU5KSA/
IDU5IDogKG4gLSAxKSAmICgxVUxMIDw8IDU4KSA/IDU4IDogKG4gLSAxKSAmICgxVUxMIDw8IDU3
KSA/IDU3IDogKG4gLSAxKSAmICgxVUxMIDw8IDU2KSA/IDU2IDogKG4gLSAxKSAmICgxVUxMIDw8
IDU1KSA/IDU1IDogKG4gLSAxKSAmICgxVUxMIDw8IDU0KSA/IDU0IDogKG4gLSAxKSAmICgxVUxM
IDw8IDUzKSA/IDUzIDogKG4gLSAxKSAmICgxVUxMIDw8IDUyKSA/IDUyIDogKG4gLSAxKSAmICgx
VUxMIDw8IDUxKSA/IDUxIDogKG4gLSAxKSAmICgxVUxMIDw8IDUwKSA/IDUwIDogKG4gLSAxKSAm
ICgxVUxMIDw8IDQ5KSA/IDQ5IDogKG4gLSAxKSAmICgxVUxMIDw8IDQ4KSA/IDQ4IDogKG4gLSAx
KSAmICgxVUxMIDw8IDQ3KSA/IDQ3IDogKG4gLSAxKSAmICgxVUxMIDw8IDQ2KSA/IDQ2IDogKG4g
LSAxKSAmICgxVUxMIDw8IDQ1KSA/IDQ1IDogKG4gLSAxKSAmICgxVUxMIDw8IDQ0KSA/IDQ0IDog
KG4gLSAxKSAmICgxVUxMIDw8IDQzKSA/IDQzIDogKG4gLSAxKSAmICgxVUxMIDw8IDQyKSA/IDQy
IDogKG4gLSAxKSAmICgxVUxMIDw8IDQxKSA/IDQxIDogKG4gLSAxKSAmICgxVUxMIDw8IDQwKSA/
IDQwIDogKG4gLSAxKSAmICgxVUxMIDw8IDM5KSA/IDM5IDogKG4gLSAxKSAmICgxVUxMIDw8IDM4
KSA/IDM4IDogKG4gLSAxKSAmICgxVUxMIDw8IDM3KSA/IDM3IDogKG4gLSAxKSAmICgxVUxMIDw8
IDM2KSA/IDM2IDogKG4gLSAxKSAmICgxVUxMIDw8IDM1KSA/IDM1IDogKG4gLSAxKSAmICgxVUxM
IDw8IDM0KSA/IDM0IDogKG4gLSAxKSAmICgxVUxMIDw8IDMzKSA/IDMzIDogKG4gLSAxKSAmICgx
VUxMIDw8IDMyKSA/IDMyIDogKG4gLSAxKSAmICgxVUxMIDw8IDMxKSA/IDMxIDogKG4gLSAxKSAm
ICgxVUxMIDw8IDMwKSA/IDMwIDogKG4gLSAxKSAmICgxVUxMIDw8IDI5KSA/IDI5IDogKG4gLSAx
KSAmICgxVUxMIDw8IDI4KSA/IDI4IDogKG4gLSAxKSAmICgxVUxMIDw8IDI3KSA/IDI3IDogKG4g
LSAxKSAmICgxVUxMIDw8IDI2KSA/IDI2IDogKG4gLSAxKSAmICgxVUxMIDw8IDI1KSA/IDI1IDog
KG4gLSAxKSAmICgxVUxMIDw8IDI0KSA/IDI0IDogKG4gLSAxKSAmICgxVUxMIDw8IDIzKSA/IDIz
IDogKG4gLSAxKSAmICgxVUxMIDw8IDIyKSA/IDIyIDogKG4gLSAxKSAmICgxVUxMIDw8IDIxKSA/
IDIxIDogKG4gLSAxKSAmICgxVUxMIDw8IDIwKSA/IDIwIDogKG4gLSAxKSAmICgxVUxMIDw8IDE5
KSA/IDE5IDogKG4gLSAxKSAmICgxVUxMIDw8IDE4KSA/IDE4IDogKG4gLSAxKSAmICgxVUxMIDw8
IDE3KSA/IDE3IDogKG4gLSAxKSAmICgxVUxMIDw8IDE2KSA/IDE2IDogKG4gLSAxKSAmICgxVUxM
IDw8IDE1KSA/IDE1IDogKG4gLSAxKSAmICgxVUxMIDw8IDE0KSA/IDE0IDogKG4gLSAxKSAmICgx
VUxMIDw8IDEzKSA/IDEzIDogKG4gLSAxKSAmICgxVUxMIDw8IDEyKSA/IDEyIDogKG4gLSAxKSAm
ICgxVUxMIDw8IDExKSA/IDExIDogKG4gLSAxKSAmICgxVUxMIDw8IDEwKSA/IDEwIDogKG4gLSAx
KSAmICgxVUxMIDw8IDkpID8gOSA6IChuIC0gMSkgJiAoMVVMTCA8PCA4KSA/IDggOiAobiAtIDEp
ICYgKDFVTEwgPDwgNykgPyA3IDogKG4gLSAxKSAmICgxVUxMIDw8IDYpID8gNiA6IChuIC0gMSkg
JiAoMVVMTCA8PCA1KSA/IDUgOiAobiAtIDEpICYgKDFVTEwgPDwgNCkgPyA0IDogKG4gLSAxKSAm
ICgxVUxMIDw8IDMpID8gMyA6IChuIC0gMSkgJiAoMVVMTCA8PCAyKSA/IDIgOiAxKSA6IC0xKSA6
IChzaXplb2YobiAtIDEpIDw9IDQpID8gX19pbG9nMl91MzIobiAtIDEpIDogX19pbG9nMl91NjQo
biAtIDEpICkgKyAxIDogMDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjI0ICIuL2luY2x1ZGUvbGludXgv
bG9nMi5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoY29uc3QpKQoxNDQ3NDogaW50IF9fYml0c19w
ZXIodW5zaWduZWQgbG9uZyBuKQoxNDQ3NDogewoxNDQ3NDogIGlmIChuIDwgMikKMTQ0NzQ6ICAg
cmV0dXJuIDE7CjE0NDc0OiAgaWYgKGlzX3Bvd2VyX29mXzIobikpCjE0NDc0OiAgIHJldHVybiAo
IF9fYnVpbHRpbl9jb25zdGFudF9wKG4pID8gKCAoKG4pID09IDAgfHwgKG4pID09IDEpID8gMCA6
ICggX19idWlsdGluX2NvbnN0YW50X3AoKG4pIC0gMSkgPyAoIF9fYnVpbHRpbl9jb25zdGFudF9w
KChuKSAtIDEpID8gKCAoKG4pIC0gMSkgPCAyID8gMCA6ICgobikgLSAxKSAmICgxVUxMIDw8IDYz
KSA/IDYzIDogKChuKSAtIDEpICYgKDFVTEwgPDwgNjIpID8gNjIgOiAoKG4pIC0gMSkgJiAoMVVM
TCA8PCA2MSkgPyA2MSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDYwKSA/IDYwIDogKChuKSAtIDEp
ICYgKDFVTEwgPDwgNTkpID8gNTkgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA1OCkgPyA1OCA6ICgo
bikgLSAxKSAmICgxVUxMIDw8IDU3KSA/IDU3IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNTYpID8g
NTYgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA1NSkgPyA1NSA6ICgobikgLSAxKSAmICgxVUxMIDw8
IDU0KSA/IDU0IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNTMpID8gNTMgOiAoKG4pIC0gMSkgJiAo
MVVMTCA8PCA1MikgPyA1MiA6ICgobikgLSAxKSAmICgxVUxMIDw8IDUxKSA/IDUxIDogKChuKSAt
IDEpICYgKDFVTEwgPDwgNTApID8gNTAgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA0OSkgPyA0OSA6
ICgobikgLSAxKSAmICgxVUxMIDw8IDQ4KSA/IDQ4IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNDcp
ID8gNDcgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA0NikgPyA0NiA6ICgobikgLSAxKSAmICgxVUxM
IDw8IDQ1KSA/IDQ1IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNDQpID8gNDQgOiAoKG4pIC0gMSkg
JiAoMVVMTCA8PCA0MykgPyA0MyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDQyKSA/IDQyIDogKChu
KSAtIDEpICYgKDFVTEwgPDwgNDEpID8gNDEgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA0MCkgPyA0
MCA6ICgobikgLSAxKSAmICgxVUxMIDw8IDM5KSA/IDM5IDogKChuKSAtIDEpICYgKDFVTEwgPDwg
MzgpID8gMzggOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAzNykgPyAzNyA6ICgobikgLSAxKSAmICgx
VUxMIDw8IDM2KSA/IDM2IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMzUpID8gMzUgOiAoKG4pIC0g
MSkgJiAoMVVMTCA8PCAzNCkgPyAzNCA6ICgobikgLSAxKSAmICgxVUxMIDw8IDMzKSA/IDMzIDog
KChuKSAtIDEpICYgKDFVTEwgPDwgMzIpID8gMzIgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAzMSkg
PyAzMSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDMwKSA/IDMwIDogKChuKSAtIDEpICYgKDFVTEwg
PDwgMjkpID8gMjkgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAyOCkgPyAyOCA6ICgobikgLSAxKSAm
ICgxVUxMIDw8IDI3KSA/IDI3IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMjYpID8gMjYgOiAoKG4p
IC0gMSkgJiAoMVVMTCA8PCAyNSkgPyAyNSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDI0KSA/IDI0
IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMjMpID8gMjMgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAy
MikgPyAyMiA6ICgobikgLSAxKSAmICgxVUxMIDw8IDIxKSA/IDIxIDogKChuKSAtIDEpICYgKDFV
TEwgPDwgMjApID8gMjAgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAxOSkgPyAxOSA6ICgobikgLSAx
KSAmICgxVUxMIDw8IDE4KSA/IDE4IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMTcpID8gMTcgOiAo
KG4pIC0gMSkgJiAoMVVMTCA8PCAxNikgPyAxNiA6ICgobikgLSAxKSAmICgxVUxMIDw8IDE1KSA/
IDE1IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMTQpID8gMTQgOiAoKG4pIC0gMSkgJiAoMVVMTCA8
PCAxMykgPyAxMyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDEyKSA/IDEyIDogKChuKSAtIDEpICYg
KDFVTEwgPDwgMTEpID8gMTEgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAxMCkgPyAxMCA6ICgobikg
LSAxKSAmICgxVUxMIDw8IDkpID8gOSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDgpID8gOCA6ICgo
bikgLSAxKSAmICgxVUxMIDw8IDcpID8gNyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDYpID8gNiA6
ICgobikgLSAxKSAmICgxVUxMIDw8IDUpID8gNSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDQpID8g
NCA6ICgobikgLSAxKSAmICgxVUxMIDw8IDMpID8gMyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDIp
ID8gMiA6IDEpIDogLTEpIDogKHNpemVvZigobikgLSAxKSA8PSA0KSA/IF9faWxvZzJfdTMyKChu
KSAtIDEpIDogX19pbG9nMl91NjQoKG4pIC0gMSkgKSArIDEpIDogX19vcmRlcl9iYXNlXzIobikg
KSArIDE7CjE0NDc0OiAgcmV0dXJuICggX19idWlsdGluX2NvbnN0YW50X3AobikgPyAoICgobikg
PT0gMCB8fCAobikgPT0gMSkgPyAwIDogKCBfX2J1aWx0aW5fY29uc3RhbnRfcCgobikgLSAxKSA/
ICggX19idWlsdGluX2NvbnN0YW50X3AoKG4pIC0gMSkgPyAoICgobikgLSAxKSA8IDIgPyAwIDog
KChuKSAtIDEpICYgKDFVTEwgPDwgNjMpID8gNjMgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA2Mikg
PyA2MiA6ICgobikgLSAxKSAmICgxVUxMIDw8IDYxKSA/IDYxIDogKChuKSAtIDEpICYgKDFVTEwg
PDwgNjApID8gNjAgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA1OSkgPyA1OSA6ICgobikgLSAxKSAm
ICgxVUxMIDw8IDU4KSA/IDU4IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNTcpID8gNTcgOiAoKG4p
IC0gMSkgJiAoMVVMTCA8PCA1NikgPyA1NiA6ICgobikgLSAxKSAmICgxVUxMIDw8IDU1KSA/IDU1
IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNTQpID8gNTQgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA1
MykgPyA1MyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDUyKSA/IDUyIDogKChuKSAtIDEpICYgKDFV
TEwgPDwgNTEpID8gNTEgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA1MCkgPyA1MCA6ICgobikgLSAx
KSAmICgxVUxMIDw8IDQ5KSA/IDQ5IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNDgpID8gNDggOiAo
KG4pIC0gMSkgJiAoMVVMTCA8PCA0NykgPyA0NyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDQ2KSA/
IDQ2IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNDUpID8gNDUgOiAoKG4pIC0gMSkgJiAoMVVMTCA8
PCA0NCkgPyA0NCA6ICgobikgLSAxKSAmICgxVUxMIDw8IDQzKSA/IDQzIDogKChuKSAtIDEpICYg
KDFVTEwgPDwgNDIpID8gNDIgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA0MSkgPyA0MSA6ICgobikg
LSAxKSAmICgxVUxMIDw8IDQwKSA/IDQwIDogKChuKSAtIDEpICYgKDFVTEwgPDwgMzkpID8gMzkg
OiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAzOCkgPyAzOCA6ICgobikgLSAxKSAmICgxVUxMIDw8IDM3
KSA/IDM3IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMzYpID8gMzYgOiAoKG4pIC0gMSkgJiAoMVVM
TCA8PCAzNSkgPyAzNSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDM0KSA/IDM0IDogKChuKSAtIDEp
ICYgKDFVTEwgPDwgMzMpID8gMzMgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAzMikgPyAzMiA6ICgo
bikgLSAxKSAmICgxVUxMIDw8IDMxKSA/IDMxIDogKChuKSAtIDEpICYgKDFVTEwgPDwgMzApID8g
MzAgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAyOSkgPyAyOSA6ICgobikgLSAxKSAmICgxVUxMIDw8
IDI4KSA/IDI4IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMjcpID8gMjcgOiAoKG4pIC0gMSkgJiAo
MVVMTCA8PCAyNikgPyAyNiA6ICgobikgLSAxKSAmICgxVUxMIDw8IDI1KSA/IDI1IDogKChuKSAt
IDEpICYgKDFVTEwgPDwgMjQpID8gMjQgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAyMykgPyAyMyA6
ICgobikgLSAxKSAmICgxVUxMIDw8IDIyKSA/IDIyIDogKChuKSAtIDEpICYgKDFVTEwgPDwgMjEp
ID8gMjEgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAyMCkgPyAyMCA6ICgobikgLSAxKSAmICgxVUxM
IDw8IDE5KSA/IDE5IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMTgpID8gMTggOiAoKG4pIC0gMSkg
JiAoMVVMTCA8PCAxNykgPyAxNyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDE2KSA/IDE2IDogKChu
KSAtIDEpICYgKDFVTEwgPDwgMTUpID8gMTUgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAxNCkgPyAx
NCA6ICgobikgLSAxKSAmICgxVUxMIDw8IDEzKSA/IDEzIDogKChuKSAtIDEpICYgKDFVTEwgPDwg
MTIpID8gMTIgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAxMSkgPyAxMSA6ICgobikgLSAxKSAmICgx
VUxMIDw8IDEwKSA/IDEwIDogKChuKSAtIDEpICYgKDFVTEwgPDwgOSkgPyA5IDogKChuKSAtIDEp
ICYgKDFVTEwgPDwgOCkgPyA4IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNykgPyA3IDogKChuKSAt
IDEpICYgKDFVTEwgPDwgNikgPyA2IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNSkgPyA1IDogKChu
KSAtIDEpICYgKDFVTEwgPDwgNCkgPyA0IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMykgPyAzIDog
KChuKSAtIDEpICYgKDFVTEwgPDwgMikgPyAyIDogMSkgOiAtMSkgOiAoc2l6ZW9mKChuKSAtIDEp
IDw9IDQpID8gX19pbG9nMl91MzIoKG4pIC0gMSkgOiBfX2lsb2cyX3U2NCgobikgLSAxKSApICsg
MSkgOiBfX29yZGVyX2Jhc2VfMihuKSApOwoxNDQ3NDogfQoxNDQ3NDogIyAxNCAiLi9pbmNsdWRl
L2xpbnV4L2tlcm5lbC5oIiAyCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3By
aW50ay5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9rZXJuX2xldmVscy5oIiAxCjE0NDc0OiAjIDgg
Ii4vaW5jbHVkZS9saW51eC9wcmludGsuaCIgMgoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVk
ZS9saW51eC9jYWNoZS5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgva2VybmVsLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9zeXNpbmZvLmgi
IDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IHN5c2luZm8gewoxNDQ3NDogIF9fa2VybmVsX2xvbmdfdCB1cHRpbWU7
CjE0NDc0OiAgX19rZXJuZWxfdWxvbmdfdCBsb2Fkc1szXTsKMTQ0NzQ6ICBfX2tlcm5lbF91bG9u
Z190IHRvdGFscmFtOwoxNDQ3NDogIF9fa2VybmVsX3Vsb25nX3QgZnJlZXJhbTsKMTQ0NzQ6ICBf
X2tlcm5lbF91bG9uZ190IHNoYXJlZHJhbTsKMTQ0NzQ6ICBfX2tlcm5lbF91bG9uZ190IGJ1ZmZl
cnJhbTsKMTQ0NzQ6ICBfX2tlcm5lbF91bG9uZ190IHRvdGFsc3dhcDsKMTQ0NzQ6ICBfX2tlcm5l
bF91bG9uZ190IGZyZWVzd2FwOwoxNDQ3NDogIF9fdTE2IHByb2NzOwoxNDQ3NDogIF9fdTE2IHBh
ZDsKMTQ0NzQ6ICBfX2tlcm5lbF91bG9uZ190IHRvdGFsaGlnaDsKMTQ0NzQ6ICBfX2tlcm5lbF91
bG9uZ190IGZyZWVoaWdoOwoxNDQ3NDogIF9fdTMyIG1lbV91bml0OwoxNDQ3NDogIGNoYXIgX2Zb
MjAtMipzaXplb2YoX19rZXJuZWxfdWxvbmdfdCktc2l6ZW9mKF9fdTMyKV07CjE0NDc0OiB9Owox
NDQ3NDogIyA2ICIuL2luY2x1ZGUvdWFwaS9saW51eC9rZXJuZWwuaCIgMgoxNDQ3NDogIyA2ICIu
L2luY2x1ZGUvbGludXgvY2FjaGUuaCIgMgoxNDQ3NDogIyAxMCAiLi9pbmNsdWRlL2xpbnV4L3By
aW50ay5oIiAyCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBjb25zdCBjaGFyIGxpbnV4X2Jhbm5lcltd
OwoxNDQ3NDogZXh0ZXJuIGNvbnN0IGNoYXIgbGludXhfcHJvY19iYW5uZXJbXTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBwcmludGtfZ2V0X2xldmVsKGNvbnN0IGNoYXIgKmJ1
ZmZlcikKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoYnVmZmVyWzBdID09ICdcMDAxJyAmJiBidWZmZXJb
MV0pIHsKMTQ0NzQ6ICAgc3dpdGNoIChidWZmZXJbMV0pIHsKMTQ0NzQ6ICAgY2FzZSAnMCcgLi4u
ICc3JzoKMTQ0NzQ6ICAgY2FzZSAnYyc6CjE0NDc0OiAgICByZXR1cm4gYnVmZmVyWzFdOwoxNDQ3
NDogICB9CjE0NDc0OiAgfQoxNDQ3NDogIHJldHVybiAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBjb25zdCBjaGFyICpwcmludGtfc2tpcF9sZXZlbChjb25zdCBjaGFyICpidWZmZXIpCjE0NDc0
OiB7CjE0NDc0OiAgaWYgKHByaW50a19nZXRfbGV2ZWwoYnVmZmVyKSkKMTQ0NzQ6ICAgcmV0dXJu
IGJ1ZmZlciArIDI7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gYnVmZmVyOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBjb25zdCBjaGFyICpwcmludGtfc2tpcF9oZWFkZXJzKGNvbnN0IGNoYXIgKmJ1
ZmZlcikKMTQ0NzQ6IHsKMTQ0NzQ6ICB3aGlsZSAocHJpbnRrX2dldF9sZXZlbChidWZmZXIpKQox
NDQ3NDogICBidWZmZXIgPSBwcmludGtfc2tpcF9sZXZlbChidWZmZXIpOwoxNDQ3NDogCjE0NDc0
OiAgcmV0dXJuIGJ1ZmZlcjsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNjIgIi4vaW5jbHVkZS9saW51eC9w
cmludGsuaCIKMTQ0NzQ6IGV4dGVybiBpbnQgY29uc29sZV9wcmludGtbXTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY29uc29sZV9z
aWxlbnQodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoY29uc29sZV9wcmludGtbMF0pID0gMDsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjb25zb2xlX3ZlcmJvc2Uodm9pZCkKMTQ0NzQ6IHsK
MTQ0NzQ6ICBpZiAoKGNvbnNvbGVfcHJpbnRrWzBdKSkKMTQ0NzQ6ICAgKGNvbnNvbGVfcHJpbnRr
WzBdKSA9IDE1OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IGNoYXIgZGV2a21zZ19sb2dfc3RyW107CjE0NDc0OiBzdHJ1Y3QgY3RsX3RhYmxlOwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gaW50IHN1cHByZXNzX3ByaW50azsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IHZhX2Zvcm1hdCB7CjE0NDc0OiAgY29uc3QgY2hhciAqZm10OwoxNDQ3NDogIHZhX2xpc3QgKnZh
OwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTQyICIuL2luY2x1ZGUvbGludXgvcHJpbnRrLmgiCjE0NDc0
OiBleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDEsIDIpKSkKMTQ0NzQ6
IHZvaWQgZWFybHlfcHJpbnRrKGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIHByaW50
a19ubWlfZW50ZXIodm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBwcmludGtfbm1pX2V4aXQodm9p
ZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBwcmludGtfbm1pX2RpcmVjdF9lbnRlcih2b2lkKTsKMTQ0
NzQ6IGV4dGVybiB2b2lkIHByaW50a19ubWlfZGlyZWN0X2V4aXQodm9pZCk7CjE0NDc0OiAjIDE2
MiAiLi9pbmNsdWRlL2xpbnV4L3ByaW50ay5oIgoxNDQ3NDogIF9fYXR0cmlidXRlX18oKF9fZm9y
bWF0X18ocHJpbnRmLCA1LCAwKSkpCjE0NDc0OiBpbnQgdnByaW50a19lbWl0KGludCBmYWNpbGl0
eSwgaW50IGxldmVsLAoxNDQ3NDogICAgY29uc3QgY2hhciAqZGljdCwgc2l6ZV90IGRpY3RsZW4s
CjE0NDc0OiAgICBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncyk7CjE0NDc0OiAKMTQ0NzQ6
ICBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMSwgMCkpKQoxNDQ3NDogaW50IHZw
cmludGsoY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpOwoxNDQ3NDogCjE0NDc0OiAgX19h
dHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDEsIDIpKSkgX19hdHRyaWJ1dGVfXygoX19j
b2xkX18pKQoxNDQ3NDogaW50IHByaW50ayhjb25zdCBjaGFyICpmbXQsIC4uLik7CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18o
cHJpbnRmLCAxLCAyKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkgaW50IHByaW50a19kZWZl
cnJlZChjb25zdCBjaGFyICpmbXQsIC4uLik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IF9fcHJpbnRrX3JhdGVsaW1pdChj
b25zdCBjaGFyICpmdW5jKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGJvb2wgcHJpbnRrX3RpbWVk
X3JhdGVsaW1pdCh1bnNpZ25lZCBsb25nICpjYWxsZXJfamlmZmllcywKMTQ0NzQ6ICAgICAgICB1
bnNpZ25lZCBpbnQgaW50ZXJ2YWxfbXNlYyk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgcHJp
bnRrX2RlbGF5X21zZWM7CjE0NDc0OiBleHRlcm4gaW50IGRtZXNnX3Jlc3RyaWN0OwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gaW50CjE0NDc0OiBkZXZrbXNnX3N5c2N0bF9zZXRfbG9nbHZsKHN0cnVj
dCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHZvaWQgKmJ1ZiwKMTQ0NzQ6ICAgICAgc2l6
ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCB3YWtl
X3VwX2tsb2dkKHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBjaGFyICpsb2dfYnVmX2FkZHJfZ2V0KHZv
aWQpOwoxNDQ3NDogdTMyIGxvZ19idWZfbGVuX2dldCh2b2lkKTsKMTQ0NzQ6IHZvaWQgbG9nX2J1
Zl92bWNvcmVpbmZvX3NldHVwKHZvaWQpOwoxNDQ3NDogdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3Nl
Y3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBzZXR1cF9s
b2dfYnVmKGludCBlYXJseSk7CjE0NDc0OiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50
ZiwgMSwgMikpKSB2b2lkIGR1bXBfc3RhY2tfc2V0X2FyY2hfZGVzYyhjb25zdCBjaGFyICpmbXQs
IC4uLik7CjE0NDc0OiB2b2lkIGR1bXBfc3RhY2tfcHJpbnRfaW5mbyhjb25zdCBjaGFyICpsb2df
bHZsKTsKMTQ0NzQ6IHZvaWQgc2hvd19yZWdzX3ByaW50X2luZm8oY29uc3QgY2hhciAqbG9nX2x2
bCk7CjE0NDc0OiBleHRlcm4gdm9pZCBkdW1wX3N0YWNrKHZvaWQpIF9fYXR0cmlidXRlX18oKF9f
Y29sZF9fKSk7CjE0NDc0OiBleHRlcm4gdm9pZCBwcmludGtfc2FmZV9pbml0KHZvaWQpOwoxNDQ3
NDogZXh0ZXJuIHZvaWQgcHJpbnRrX3NhZmVfZmx1c2godm9pZCk7CjE0NDc0OiBleHRlcm4gdm9p
ZCBwcmludGtfc2FmZV9mbHVzaF9vbl9wYW5pYyh2b2lkKTsKMTQ0NzQ6ICMgMjg1ICIuL2luY2x1
ZGUvbGludXgvcHJpbnRrLmgiCjE0NDc0OiBleHRlcm4gaW50IGtwdHJfcmVzdHJpY3Q7CjE0NDc0
OiAjIDMzMSAiLi9pbmNsdWRlL2xpbnV4L3ByaW50ay5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUv
bGludXgvZHluYW1pY19kZWJ1Zy5oIiAxCjE0NDc0OiAjIDE0ICIuL2luY2x1ZGUvbGludXgvZHlu
YW1pY19kZWJ1Zy5oIgoxNDQ3NDogc3RydWN0IF9kZGVidWcgewoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAgY29uc3QgY2hhciAqbW9kbmFtZTsKMTQ0NzQ6ICBjb25zdCBj
aGFyICpmdW5jdGlvbjsKMTQ0NzQ6ICBjb25zdCBjaGFyICpmaWxlbmFtZTsKMTQ0NzQ6ICBjb25z
dCBjaGFyICpmb3JtYXQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IGxpbmVubzoxODsKMTQ0NzQ6ICMg
NDAgIi4vaW5jbHVkZS9saW51eC9keW5hbWljX2RlYnVnLmgiCjE0NDc0OiAgdW5zaWduZWQgaW50
IGZsYWdzOjg7CjE0NDc0OiAKMTQ0NzQ6ICB1bmlvbiB7CjE0NDc0OiAgIHN0cnVjdCBzdGF0aWNf
a2V5X3RydWUgZGRfa2V5X3RydWU7CjE0NDc0OiAgIHN0cnVjdCBzdGF0aWNfa2V5X2ZhbHNlIGRk
X2tleV9mYWxzZTsKMTQ0NzQ6ICB9IGtleTsKMTQ0NzQ6IAoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9f
KChhbGlnbmVkKDgpKSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGlu
dCBkZGVidWdfYWRkX21vZHVsZShzdHJ1Y3QgX2RkZWJ1ZyAqdGFiLCB1bnNpZ25lZCBpbnQgbiwK
MTQ0NzQ6ICAgICBjb25zdCBjaGFyICptb2RuYW1lKTsKMTQ0NzQ6IGV4dGVybiBpbnQgZGRlYnVn
X3JlbW92ZV9tb2R1bGUoY29uc3QgY2hhciAqbW9kX25hbWUpOwoxNDQ3NDogZXh0ZXJuIF9fYXR0
cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAyLCAzKSkpCjE0NDc0OiB2b2lkIF9fZHluYW1p
Y19wcl9kZWJ1ZyhzdHJ1Y3QgX2RkZWJ1ZyAqZGVzY3JpcHRvciwgY29uc3QgY2hhciAqZm10LCAu
Li4pOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGRkZWJ1Z19keW5kYmdfbW9kdWxlX3BhcmFt
X2NiKGNoYXIgKnBhcmFtLCBjaGFyICp2YWwsCjE0NDc0OiAgICAgIGNvbnN0IGNoYXIgKm1vZG5h
bWUpOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGV2aWNlOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4g
X19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDMsIDQpKSkKMTQ0NzQ6IHZvaWQgX19k
eW5hbWljX2Rldl9kYmcoc3RydWN0IF9kZGVidWcgKmRlc2NyaXB0b3IsIGNvbnN0IHN0cnVjdCBk
ZXZpY2UgKmRldiwKMTQ0NzQ6ICAgICAgICAgIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IG5ldF9kZXZpY2U7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBfX2F0dHJp
YnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMywgNCkpKQoxNDQ3NDogdm9pZCBfX2R5bmFtaWNf
bmV0ZGV2X2RiZyhzdHJ1Y3QgX2RkZWJ1ZyAqZGVzY3JpcHRvciwKMTQ0NzQ6ICAgICAgY29uc3Qg
c3RydWN0IG5ldF9kZXZpY2UgKmRldiwKMTQ0NzQ6ICAgICAgY29uc3QgY2hhciAqZm10LCAuLi4p
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgaWJfZGV2aWNlOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4g
X19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDMsIDQpKSkKMTQ0NzQ6IHZvaWQgX19k
eW5hbWljX2liZGV2X2RiZyhzdHJ1Y3QgX2RkZWJ1ZyAqZGVzY3JpcHRvciwKMTQ0NzQ6ICAgICBj
b25zdCBzdHJ1Y3QgaWJfZGV2aWNlICppYmRldiwKMTQ0NzQ6ICAgICBjb25zdCBjaGFyICpmbXQs
IC4uLik7CjE0NDc0OiAjIDMzMiAiLi9pbmNsdWRlL2xpbnV4L3ByaW50ay5oIiAyCjE0NDc0OiAj
IDQ3NiAiLi9pbmNsdWRlL2xpbnV4L3ByaW50ay5oIgoxNDQ3NDogZXh0ZXJuIGNvbnN0IHN0cnVj
dCBmaWxlX29wZXJhdGlvbnMga21zZ19mb3BzOwoxNDQ3NDogCjE0NDc0OiBlbnVtIHsKMTQ0NzQ6
ICBEVU1QX1BSRUZJWF9OT05FLAoxNDQ3NDogIERVTVBfUFJFRklYX0FERFJFU1MsCjE0NDc0OiAg
RFVNUF9QUkVGSVhfT0ZGU0VUCjE0NDc0OiB9OwoxNDQ3NDogZXh0ZXJuIGludCBoZXhfZHVtcF90
b19idWZmZXIoY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbGVuLCBpbnQgcm93c2l6ZSwKMTQ0NzQ6
ICAgICAgICAgIGludCBncm91cHNpemUsIGNoYXIgKmxpbmVidWYsIHNpemVfdCBsaW5lYnVmbGVu
LAoxNDQ3NDogICAgICAgICAgYm9vbCBhc2NpaSk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lk
IHByaW50X2hleF9kdW1wKGNvbnN0IGNoYXIgKmxldmVsLCBjb25zdCBjaGFyICpwcmVmaXhfc3Ry
LAoxNDQ3NDogICAgICAgaW50IHByZWZpeF90eXBlLCBpbnQgcm93c2l6ZSwgaW50IGdyb3Vwc2l6
ZSwKMTQ0NzQ6ICAgICAgIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbiwgYm9vbCBhc2NpaSk7
CjE0NDc0OiAjIDE2ICIuL2luY2x1ZGUvbGludXgva2VybmVsLmgiIDIKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZGl2NjQuaCIgMQoxNDQ3NDogIyA3
NSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9kaXY2NC5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUv
YXNtLWdlbmVyaWMvZGl2NjQuaCIgMQoxNDQ3NDogIyA3NiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9kaXY2NC5oIiAyCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2NCBtdWxfdTY0X3UzMl9kaXYodTY0IGEsIHUz
MiBtdWwsIHUzMiBkaXYpCjE0NDc0OiB7CjE0NDc0OiAgdTY0IHE7CjE0NDc0OiAKMTQ0NzQ6ICBh
c20gKCJtdWxxICUyOyBkaXZxICUzIiA6ICI9YSIgKHEpCjE0NDc0OiAgICAgOiAiYSIgKGEpLCAi
cm0iICgodTY0KW11bCksICJybSIgKCh1NjQpZGl2KQoxNDQ3NDogICAgIDogInJkeCIpOwoxNDQ3
NDogCjE0NDc0OiAgcmV0dXJuIHE7CjE0NDc0OiB9CjE0NDc0OiAjIDE5ICIuL2luY2x1ZGUvbGlu
dXgva2VybmVsLmgiIDIKMTQ0NzQ6ICMgMTkxICIuL2luY2x1ZGUvbGludXgva2VybmVsLmgiCjE0
NDc0OiBzdHJ1Y3QgY29tcGxldGlvbjsKMTQ0NzQ6IHN0cnVjdCBwdF9yZWdzOwoxNDQ3NDogc3Ry
dWN0IHVzZXI7CjE0NDc0OiAjIDI0NyAiLi9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIgoxNDQ3NDog
ICBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIF9fX21pZ2h0X3NsZWVwKGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLAoxNDQ3NDog
ICAgICAgIGludCBwcmVlbXB0X29mZnNldCkgeyB9CjE0NDc0OiAgIHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19taWdodF9zbGVl
cChjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwKMTQ0NzQ6ICAgICAgICBpbnQgcHJlZW1wdF9v
ZmZzZXQpIHsgfQoxNDQ3NDogIyAyOTcgIi4vaW5jbHVkZS9saW51eC9rZXJuZWwuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHUzMiByZWNpcHJvY2FsX3NjYWxlKHUzMiB2YWwsIHUzMiBlcF9ybykKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gKHUzMikoKCh1NjQpIHZhbCAqIGVwX3JvKSA+PiAzMik7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIG1p
Z2h0X2ZhdWx0KHZvaWQpIHsgfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qg
YXRvbWljX25vdGlmaWVyX2hlYWQgcGFuaWNfbm90aWZpZXJfbGlzdDsKMTQ0NzQ6IGV4dGVybiBs
b25nICgqcGFuaWNfYmxpbmspKGludCBzdGF0ZSk7CjE0NDc0OiBfX2F0dHJpYnV0ZV9fKChfX2Zv
cm1hdF9fKHByaW50ZiwgMSwgMikpKQoxNDQ3NDogdm9pZCBwYW5pYyhjb25zdCBjaGFyICpmbXQs
IC4uLikgX19hdHRyaWJ1dGVfXygoX19ub3JldHVybl9fKSkgX19hdHRyaWJ1dGVfXygoX19jb2xk
X18pKTsKMTQ0NzQ6IHZvaWQgbm1pX3BhbmljKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBjb25zdCBj
aGFyICptc2cpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgb29wc19lbnRlcih2b2lkKTsKMTQ0NzQ6IGV4
dGVybiB2b2lkIG9vcHNfZXhpdCh2b2lkKTsKMTQ0NzQ6IHZvaWQgcHJpbnRfb29wc19lbmRfbWFy
a2VyKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIGludCBvb3BzX21heV9wcmludCh2b2lkKTsKMTQ0NzQ6
IHZvaWQgZG9fZXhpdChsb25nIGVycm9yX2NvZGUpIF9fYXR0cmlidXRlX18oKF9fbm9yZXR1cm5f
XykpOwoxNDQ3NDogdm9pZCBjb21wbGV0ZV9hbmRfZXhpdChzdHJ1Y3QgY29tcGxldGlvbiAqLCBs
b25nKSBfX2F0dHJpYnV0ZV9fKChfX25vcmV0dXJuX18pKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIF9rc3RydG91bChj
b25zdCBjaGFyICpzLCB1bnNpZ25lZCBpbnQgYmFzZSwgdW5zaWduZWQgbG9uZyAqcmVzKTsKMTQ0
NzQ6IGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgX2tzdHJ0b2wo
Y29uc3QgY2hhciAqcywgdW5zaWduZWQgaW50IGJhc2UsIGxvbmcgKnJlcyk7CjE0NDc0OiAKMTQ0
NzQ6IGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkga3N0cnRvdWxs
KGNvbnN0IGNoYXIgKnMsIHVuc2lnbmVkIGludCBiYXNlLCB1bnNpZ25lZCBsb25nIGxvbmcgKnJl
cyk7CjE0NDc0OiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtz
dHJ0b2xsKGNvbnN0IGNoYXIgKnMsIHVuc2lnbmVkIGludCBiYXNlLCBsb25nIGxvbmcgKnJlcyk7
CjE0NDc0OiAjIDM0NCAiLi9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIgoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fYXR0
cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBrc3RydG91bChjb25zdCBjaGFyICpz
LCB1bnNpZ25lZCBpbnQgYmFzZSwgdW5zaWduZWQgbG9uZyAqcmVzKQoxNDQ3NDogewoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaWYgKHNpemVvZih1bnNpZ25lZCBsb25n
KSA9PSBzaXplb2YodW5zaWduZWQgbG9uZyBsb25nKSAmJgoxNDQ3NDogICAgICBfX2FsaWdub2Zf
Xyh1bnNpZ25lZCBsb25nKSA9PSBfX2FsaWdub2ZfXyh1bnNpZ25lZCBsb25nIGxvbmcpKQoxNDQ3
NDogICByZXR1cm4ga3N0cnRvdWxsKHMsIGJhc2UsICh1bnNpZ25lZCBsb25nIGxvbmcgKilyZXMp
OwoxNDQ3NDogIGVsc2UKMTQ0NzQ6ICAgcmV0dXJuIF9rc3RydG91bChzLCBiYXNlLCByZXMpOwox
NDQ3NDogfQoxNDQ3NDogIyAzNzIgIi4vaW5jbHVkZS9saW51eC9rZXJuZWwuaCIKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkga3N0cnRvbChjb25zdCBj
aGFyICpzLCB1bnNpZ25lZCBpbnQgYmFzZSwgbG9uZyAqcmVzKQoxNDQ3NDogewoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaWYgKHNpemVvZihsb25nKSA9PSBzaXplb2Yo
bG9uZyBsb25nKSAmJgoxNDQ3NDogICAgICBfX2FsaWdub2ZfXyhsb25nKSA9PSBfX2FsaWdub2Zf
Xyhsb25nIGxvbmcpKQoxNDQ3NDogICByZXR1cm4ga3N0cnRvbGwocywgYmFzZSwgKGxvbmcgbG9u
ZyAqKXJlcyk7CjE0NDc0OiAgZWxzZQoxNDQ3NDogICByZXR1cm4gX2tzdHJ0b2wocywgYmFzZSwg
cmVzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91
bnVzZWRfcmVzdWx0X18pKSBrc3RydG91aW50KGNvbnN0IGNoYXIgKnMsIHVuc2lnbmVkIGludCBi
YXNlLCB1bnNpZ25lZCBpbnQgKnJlcyk7CjE0NDc0OiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b2ludChjb25zdCBjaGFyICpzLCB1bnNpZ25lZCBpbnQg
YmFzZSwgaW50ICpyZXMpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3U2NChjb25zdCBjaGFyICpzLCB1bnNpZ25lZCBpbnQg
YmFzZSwgdTY0ICpyZXMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGtzdHJ0b3VsbChzLCBiYXNl
LCByZXMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3M2NChjb25zdCBjaGFyICpzLCB1bnNpZ25lZCBpbnQg
YmFzZSwgczY0ICpyZXMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGtzdHJ0b2xsKHMsIGJhc2Us
IHJlcyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5f
dW51c2VkX3Jlc3VsdF9fKSkga3N0cnRvdTMyKGNvbnN0IGNoYXIgKnMsIHVuc2lnbmVkIGludCBi
YXNlLCB1MzIgKnJlcykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4ga3N0cnRvdWludChzLCBiYXNl
LCByZXMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3MzMihjb25zdCBjaGFyICpzLCB1bnNpZ25lZCBpbnQg
YmFzZSwgczMyICpyZXMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGtzdHJ0b2ludChzLCBiYXNl
LCByZXMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3UxNihjb25zdCBjaGFyICpzLCB1bnNpZ25lZCBpbnQg
YmFzZSwgdTE2ICpyZXMpOwoxNDQ3NDogaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRf
cmVzdWx0X18pKSBrc3RydG9zMTYoY29uc3QgY2hhciAqcywgdW5zaWduZWQgaW50IGJhc2UsIHMx
NiAqcmVzKTsKMTQ0NzQ6IGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9f
KSkga3N0cnRvdTgoY29uc3QgY2hhciAqcywgdW5zaWduZWQgaW50IGJhc2UsIHU4ICpyZXMpOwox
NDQ3NDogaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBrc3RydG9z
OChjb25zdCBjaGFyICpzLCB1bnNpZ25lZCBpbnQgYmFzZSwgczggKnJlcyk7CjE0NDc0OiBpbnQg
X19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b2Jvb2woY29uc3Qg
Y2hhciAqcywgYm9vbCAqcmVzKTsKMTQ0NzQ6IAoxNDQ3NDogaW50IF9fYXR0cmlidXRlX18oKF9f
d2Fybl91bnVzZWRfcmVzdWx0X18pKSBrc3RydG91bGxfZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMs
IHNpemVfdCBjb3VudCwgdW5zaWduZWQgaW50IGJhc2UsIHVuc2lnbmVkIGxvbmcgbG9uZyAqcmVz
KTsKMTQ0NzQ6IGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkga3N0
cnRvbGxfZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCwgdW5zaWduZWQgaW50
IGJhc2UsIGxvbmcgbG9uZyAqcmVzKTsKMTQ0NzQ6IGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5f
dW51c2VkX3Jlc3VsdF9fKSkga3N0cnRvdWxfZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVf
dCBjb3VudCwgdW5zaWduZWQgaW50IGJhc2UsIHVuc2lnbmVkIGxvbmcgKnJlcyk7CjE0NDc0OiBp
bnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b2xfZnJvbV91
c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCwgdW5zaWduZWQgaW50IGJhc2UsIGxvbmcg
KnJlcyk7CjE0NDc0OiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykp
IGtzdHJ0b3VpbnRfZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCwgdW5zaWdu
ZWQgaW50IGJhc2UsIHVuc2lnbmVkIGludCAqcmVzKTsKMTQ0NzQ6IGludCBfX2F0dHJpYnV0ZV9f
KChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkga3N0cnRvaW50X2Zyb21fdXNlcihjb25zdCBjaGFy
ICpzLCBzaXplX3QgY291bnQsIHVuc2lnbmVkIGludCBiYXNlLCBpbnQgKnJlcyk7CjE0NDc0OiBp
bnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3UxNl9mcm9t
X3VzZXIoY29uc3QgY2hhciAqcywgc2l6ZV90IGNvdW50LCB1bnNpZ25lZCBpbnQgYmFzZSwgdTE2
ICpyZXMpOwoxNDQ3NDogaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18p
KSBrc3RydG9zMTZfZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCwgdW5zaWdu
ZWQgaW50IGJhc2UsIHMxNiAqcmVzKTsKMTQ0NzQ6IGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5f
dW51c2VkX3Jlc3VsdF9fKSkga3N0cnRvdThfZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVf
dCBjb3VudCwgdW5zaWduZWQgaW50IGJhc2UsIHU4ICpyZXMpOwoxNDQ3NDogaW50IF9fYXR0cmli
dXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBrc3RydG9zOF9mcm9tX3VzZXIoY29uc3Qg
Y2hhciAqcywgc2l6ZV90IGNvdW50LCB1bnNpZ25lZCBpbnQgYmFzZSwgczggKnJlcyk7CjE0NDc0
OiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b2Jvb2xf
ZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCwgYm9vbCAqcmVzKTsKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBrc3Ry
dG91NjRfZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCwgdW5zaWduZWQgaW50
IGJhc2UsIHU2NCAqcmVzKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrc3RydG91bGxfZnJvbV91
c2VyKHMsIGNvdW50LCBiYXNlLCByZXMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19h
dHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3M2NF9mcm9tX3VzZXIo
Y29uc3QgY2hhciAqcywgc2l6ZV90IGNvdW50LCB1bnNpZ25lZCBpbnQgYmFzZSwgczY0ICpyZXMp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGtzdHJ0b2xsX2Zyb21fdXNlcihzLCBjb3VudCwgYmFz
ZSwgcmVzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fYXR0cmlidXRlX18oKF9fd2Fy
bl91bnVzZWRfcmVzdWx0X18pKSBrc3RydG91MzJfZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMsIHNp
emVfdCBjb3VudCwgdW5zaWduZWQgaW50IGJhc2UsIHUzMiAqcmVzKQoxNDQ3NDogewoxNDQ3NDog
IHJldHVybiBrc3RydG91aW50X2Zyb21fdXNlcihzLCBjb3VudCwgYmFzZSwgcmVzKTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0
X18pKSBrc3RydG9zMzJfZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCwgdW5z
aWduZWQgaW50IGJhc2UsIHMzMiAqcmVzKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrc3RydG9p
bnRfZnJvbV91c2VyKHMsIGNvdW50LCBiYXNlLCByZXMpOwoxNDQ3NDogfQoxNDQ3NDogIyA0NTkg
Ii4vaW5jbHVkZS9saW51eC9rZXJuZWwuaCIKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBsb25nIHNp
bXBsZV9zdHJ0b3VsKGNvbnN0IGNoYXIgKixjaGFyICoqLHVuc2lnbmVkIGludCk7CjE0NDc0OiBl
eHRlcm4gbG9uZyBzaW1wbGVfc3RydG9sKGNvbnN0IGNoYXIgKixjaGFyICoqLHVuc2lnbmVkIGlu
dCk7CjE0NDc0OiBleHRlcm4gdW5zaWduZWQgbG9uZyBsb25nIHNpbXBsZV9zdHJ0b3VsbChjb25z
dCBjaGFyICosY2hhciAqKix1bnNpZ25lZCBpbnQpOwoxNDQ3NDogZXh0ZXJuIGxvbmcgbG9uZyBz
aW1wbGVfc3RydG9sbChjb25zdCBjaGFyICosY2hhciAqKix1bnNpZ25lZCBpbnQpOwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gaW50IG51bV90b19zdHIoY2hhciAqYnVmLCBpbnQgc2l6ZSwKMTQ0NzQ6
ICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIG51bSwgdW5zaWduZWQgaW50IHdpZHRoKTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1h
dF9fKHByaW50ZiwgMiwgMykpKSBpbnQgc3ByaW50ZihjaGFyICpidWYsIGNvbnN0IGNoYXIgKiBm
bXQsIC4uLik7CjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYs
IDIsIDApKSkgaW50IHZzcHJpbnRmKGNoYXIgKmJ1ZiwgY29uc3QgY2hhciAqLCB2YV9saXN0KTsK
MTQ0NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMywgNCkpKQox
NDQ3NDogaW50IHNucHJpbnRmKGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUsIGNvbnN0IGNoYXIgKmZt
dCwgLi4uKTsKMTQ0NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50Ziwg
MywgMCkpKQoxNDQ3NDogaW50IHZzbnByaW50ZihjaGFyICpidWYsIHNpemVfdCBzaXplLCBjb25z
dCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncyk7CjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygo
X19mb3JtYXRfXyhwcmludGYsIDMsIDQpKSkKMTQ0NzQ6IGludCBzY25wcmludGYoY2hhciAqYnVm
LCBzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciAqZm10LCAuLi4pOwoxNDQ3NDogZXh0ZXJuIF9fYXR0
cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAzLCAwKSkpCjE0NDc0OiBpbnQgdnNjbnByaW50
ZihjaGFyICpidWYsIHNpemVfdCBzaXplLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncyk7
CjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDIsIDMpKSkg
X19hdHRyaWJ1dGVfXygoX19tYWxsb2NfXykpCjE0NDc0OiBjaGFyICprYXNwcmludGYoZ2ZwX3Qg
Z2ZwLCBjb25zdCBjaGFyICpmbXQsIC4uLik7CjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygo
X19mb3JtYXRfXyhwcmludGYsIDIsIDApKSkgX19hdHRyaWJ1dGVfXygoX19tYWxsb2NfXykpCjE0
NDc0OiBjaGFyICprdmFzcHJpbnRmKGdmcF90IGdmcCwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0
IGFyZ3MpOwoxNDQ3NDogZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAy
LCAwKSkpCjE0NDc0OiBjb25zdCBjaGFyICprdmFzcHJpbnRmX2NvbnN0KGdmcF90IGdmcCwgY29u
c3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gX19hdHRy
aWJ1dGVfXygoX19mb3JtYXRfXyhzY2FuZiwgMiwgMykpKQoxNDQ3NDogaW50IHNzY2FuZihjb25z
dCBjaGFyICosIGNvbnN0IGNoYXIgKiwgLi4uKTsKMTQ0NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9f
KChfX2Zvcm1hdF9fKHNjYW5mLCAyLCAwKSkpCjE0NDc0OiBpbnQgdnNzY2FuZihjb25zdCBjaGFy
ICosIGNvbnN0IGNoYXIgKiwgdmFfbGlzdCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgZ2V0
X29wdGlvbihjaGFyICoqc3RyLCBpbnQgKnBpbnQpOwoxNDQ3NDogZXh0ZXJuIGNoYXIgKmdldF9v
cHRpb25zKGNvbnN0IGNoYXIgKnN0ciwgaW50IG5pbnRzLCBpbnQgKmludHMpOwoxNDQ3NDogZXh0
ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZyBtZW1wYXJzZShjb25zdCBjaGFyICpwdHIsIGNoYXIgKipy
ZXRwdHIpOwoxNDQ3NDogZXh0ZXJuIGJvb2wgcGFyc2Vfb3B0aW9uX3N0cihjb25zdCBjaGFyICpz
dHIsIGNvbnN0IGNoYXIgKm9wdGlvbik7CjE0NDc0OiBleHRlcm4gY2hhciAqbmV4dF9hcmcoY2hh
ciAqYXJncywgY2hhciAqKnBhcmFtLCBjaGFyICoqdmFsKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IGludCBjb3JlX2tlcm5lbF90ZXh0KHVuc2lnbmVkIGxvbmcgYWRkcik7CjE0NDc0OiBleHRlcm4g
aW50IGluaXRfa2VybmVsX3RleHQodW5zaWduZWQgbG9uZyBhZGRyKTsKMTQ0NzQ6IGV4dGVybiBp
bnQgY29yZV9rZXJuZWxfZGF0YSh1bnNpZ25lZCBsb25nIGFkZHIpOwoxNDQ3NDogZXh0ZXJuIGlu
dCBfX2tlcm5lbF90ZXh0X2FkZHJlc3ModW5zaWduZWQgbG9uZyBhZGRyKTsKMTQ0NzQ6IGV4dGVy
biBpbnQga2VybmVsX3RleHRfYWRkcmVzcyh1bnNpZ25lZCBsb25nIGFkZHIpOwoxNDQ3NDogZXh0
ZXJuIGludCBmdW5jX3B0cl9pc19rZXJuZWxfdGV4dCh2b2lkICpwdHIpOwoxNDQ3NDogCjE0NDc0
OiB1NjQgaW50X3Bvdyh1NjQgYmFzZSwgdW5zaWduZWQgaW50IGV4cCk7CjE0NDc0OiB1bnNpZ25l
ZCBsb25nIGludF9zcXJ0KHVuc2lnbmVkIGxvbmcpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB1MzIgaW50X3NxcnQ2NCh1NjQgeCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gKHUzMilpbnRfc3FydCh4KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRl
cm4gdm9pZCBidXN0X3NwaW5sb2NrcyhpbnQgeWVzKTsKMTQ0NzQ6IGV4dGVybiBpbnQgb29wc19p
bl9wcm9ncmVzczsKMTQ0NzQ6IGV4dGVybiBpbnQgcGFuaWNfdGltZW91dDsKMTQ0NzQ6IGV4dGVy
biB1bnNpZ25lZCBsb25nIHBhbmljX3ByaW50OwoxNDQ3NDogZXh0ZXJuIGludCBwYW5pY19vbl9v
b3BzOwoxNDQ3NDogZXh0ZXJuIGludCBwYW5pY19vbl91bnJlY292ZXJlZF9ubWk7CjE0NDc0OiBl
eHRlcm4gaW50IHBhbmljX29uX2lvX25taTsKMTQ0NzQ6IGV4dGVybiBpbnQgcGFuaWNfb25fd2Fy
bjsKMTQ0NzQ6IGV4dGVybiBpbnQgc3lzY3RsX3BhbmljX29uX3JjdV9zdGFsbDsKMTQ0NzQ6IGV4
dGVybiBpbnQgc3lzY3RsX3BhbmljX29uX3N0YWNrb3ZlcmZsb3c7CjE0NDc0OiAKMTQ0NzQ6IGV4
dGVybiBib29sIGNyYXNoX2tleGVjX3Bvc3Rfbm90aWZpZXJzOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGF0b21pY190IHBhbmlj
X2NwdTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgc2V0X2FyY2hfcGFuaWNfdGltZW91dChpbnQgdGltZW91dCwgaW50IGFyY2hfZGVm
YXVsdF90aW1lb3V0KQoxNDQ3NDogewoxNDQ3NDogIGlmIChwYW5pY190aW1lb3V0ID09IGFyY2hf
ZGVmYXVsdF90aW1lb3V0KQoxNDQ3NDogICBwYW5pY190aW1lb3V0ID0gdGltZW91dDsKMTQ0NzQ6
IH0KMTQ0NzQ6IGV4dGVybiBjb25zdCBjaGFyICpwcmludF90YWludGVkKHZvaWQpOwoxNDQ3NDog
ZW51bSBsb2NrZGVwX29rIHsKMTQ0NzQ6ICBMT0NLREVQX1NUSUxMX09LLAoxNDQ3NDogIExPQ0tE
RVBfTk9XX1VOUkVMSUFCTEUKMTQ0NzQ6IH07CjE0NDc0OiBleHRlcm4gdm9pZCBhZGRfdGFpbnQo
dW5zaWduZWQgZmxhZywgZW51bSBsb2NrZGVwX29rKTsKMTQ0NzQ6IGV4dGVybiBpbnQgdGVzdF90
YWludCh1bnNpZ25lZCBmbGFnKTsKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBsb25nIGdldF90YWlu
dCh2b2lkKTsKMTQ0NzQ6IGV4dGVybiBpbnQgcm9vdF9tb3VudGZsYWdzOwoxNDQ3NDogCjE0NDc0
OiBleHRlcm4gYm9vbCBlYXJseV9ib290X2lycXNfZGlzYWJsZWQ7CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGVudW0gc3lzdGVtX3N0YXRlcyB7
CjE0NDc0OiAgU1lTVEVNX0JPT1RJTkcsCjE0NDc0OiAgU1lTVEVNX1NDSEVEVUxJTkcsCjE0NDc0
OiAgU1lTVEVNX1JVTk5JTkcsCjE0NDc0OiAgU1lTVEVNX0hBTFQsCjE0NDc0OiAgU1lTVEVNX1BP
V0VSX09GRiwKMTQ0NzQ6ICBTWVNURU1fUkVTVEFSVCwKMTQ0NzQ6ICBTWVNURU1fU1VTUEVORCwK
MTQ0NzQ6IH0gc3lzdGVtX3N0YXRlOwoxNDQ3NDogIyA1OTMgIi4vaW5jbHVkZS9saW51eC9rZXJu
ZWwuaCIKMTQ0NzQ6IHN0cnVjdCB0YWludF9mbGFnIHsKMTQ0NzQ6ICBjaGFyIGNfdHJ1ZTsKMTQ0
NzQ6ICBjaGFyIGNfZmFsc2U7CjE0NDc0OiAgYm9vbCBtb2R1bGU7CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gY29uc3Qgc3RydWN0IHRhaW50X2ZsYWcgdGFpbnRfZmxhZ3NbMThdOwox
NDQ3NDogCjE0NDc0OiBleHRlcm4gY29uc3QgY2hhciBoZXhfYXNjW107CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBjaGFyICpoZXhfYnl0ZV9wYWNrKGNoYXIgKmJ1ZiwgdTggYnl0ZSkK
MTQ0NzQ6IHsKMTQ0NzQ6ICAqYnVmKysgPSBoZXhfYXNjWygoYnl0ZSkgJiAweGYwKSA+PiA0XTsK
MTQ0NzQ6ICAqYnVmKysgPSBoZXhfYXNjWygoYnl0ZSkgJiAweDBmKV07CjE0NDc0OiAgcmV0dXJu
IGJ1ZjsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGNvbnN0IGNoYXIgaGV4X2FzY191
cHBlcltdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY2hhciAqaGV4X2J5dGVfcGFj
a191cHBlcihjaGFyICpidWYsIHU4IGJ5dGUpCjE0NDc0OiB7CjE0NDc0OiAgKmJ1ZisrID0gaGV4
X2FzY191cHBlclsoKGJ5dGUpICYgMHhmMCkgPj4gNF07CjE0NDc0OiAgKmJ1ZisrID0gaGV4X2Fz
Y191cHBlclsoKGJ5dGUpICYgMHgwZildOwoxNDQ3NDogIHJldHVybiBidWY7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgaGV4X3RvX2JpbihjaGFyIGNoKTsKMTQ0NzQ6IGV4dGVy
biBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGhleDJiaW4odTgg
KmRzdCwgY29uc3QgY2hhciAqc3JjLCBzaXplX3QgY291bnQpOwoxNDQ3NDogZXh0ZXJuIGNoYXIg
KmJpbjJoZXgoY2hhciAqZHN0LCBjb25zdCB2b2lkICpzcmMsIHNpemVfdCBjb3VudCk7CjE0NDc0
OiAKMTQ0NzQ6IGJvb2wgbWFjX3B0b24oY29uc3QgY2hhciAqcywgdTggKm1hYyk7CjE0NDc0OiAj
IDY0OSAiLi9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIgoxNDQ3NDogZW51bSBmdHJhY2VfZHVtcF9t
b2RlIHsKMTQ0NzQ6ICBEVU1QX05PTkUsCjE0NDc0OiAgRFVNUF9BTEwsCjE0NDc0OiAgRFVNUF9P
UklHLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lkIHRyYWNpbmdfb24odm9p
ZCk7CjE0NDc0OiB2b2lkIHRyYWNpbmdfb2ZmKHZvaWQpOwoxNDQ3NDogaW50IHRyYWNpbmdfaXNf
b24odm9pZCk7CjE0NDc0OiB2b2lkIHRyYWNpbmdfc25hcHNob3Qodm9pZCk7CjE0NDc0OiB2b2lk
IHRyYWNpbmdfc25hcHNob3RfYWxsb2Modm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lk
IHRyYWNpbmdfc3RhcnQodm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCB0cmFjaW5nX3N0b3Aodm9p
ZCk7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAxLCAy
KSkpCjE0NDc0OiB2b2lkIF9fX190cmFjZV9wcmludGtfY2hlY2tfZm9ybWF0KGNvbnN0IGNoYXIg
KmZtdCwgLi4uKQoxNDQ3NDogewoxNDQ3NDogfQoxNDQ3NDogIyA3MjggIi4vaW5jbHVkZS9saW51
eC9rZXJuZWwuaCIKMTQ0NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50
ZiwgMiwgMykpKQoxNDQ3NDogaW50IF9fdHJhY2VfYnByaW50ayh1bnNpZ25lZCBsb25nIGlwLCBj
b25zdCBjaGFyICpmbXQsIC4uLik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9f
KChfX2Zvcm1hdF9fKHByaW50ZiwgMiwgMykpKQoxNDQ3NDogaW50IF9fdHJhY2VfcHJpbnRrKHVu
c2lnbmVkIGxvbmcgaXAsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKMTQ0NzQ6ICMgNzY5ICIuL2lu
Y2x1ZGUvbGludXgva2VybmVsLmgiCjE0NDc0OiBleHRlcm4gaW50IF9fdHJhY2VfYnB1dHModW5z
aWduZWQgbG9uZyBpcCwgY29uc3QgY2hhciAqc3RyKTsKMTQ0NzQ6IGV4dGVybiBpbnQgX190cmFj
ZV9wdXRzKHVuc2lnbmVkIGxvbmcgaXAsIGNvbnN0IGNoYXIgKnN0ciwgaW50IHNpemUpOwoxNDQ3
NDogCjE0NDc0OiBleHRlcm4gdm9pZCB0cmFjZV9kdW1wX3N0YWNrKGludCBza2lwKTsKMTQ0NzQ6
ICMgNzkxICIuL2luY2x1ZGUvbGludXgva2VybmVsLmgiCjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1
dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDIsIDApKSkgaW50CjE0NDc0OiBfX2Z0cmFjZV92YnBy
aW50ayh1bnNpZ25lZCBsb25nIGlwLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXApOwoxNDQ3
NDogCjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDIsIDAp
KSkgaW50CjE0NDc0OiBfX2Z0cmFjZV92cHJpbnRrKHVuc2lnbmVkIGxvbmcgaXAsIGNvbnN0IGNo
YXIgKmZtdCwgdmFfbGlzdCBhcCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGZ0cmFjZV9k
dW1wKGVudW0gZnRyYWNlX2R1bXBfbW9kZSBvb3BzX2R1bXBfbW9kZSk7CjE0NDc0OiAjIDEwICIu
L2luY2x1ZGUvbGludXgvbGlzdC5oIiAyCjE0NDc0OiAjIDMzICIuL2luY2x1ZGUvbGludXgvbGlz
dC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBJTklUX0xJU1RfSEVBRChzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0KQox
NDQ3NDogewoxNDQ3NDogICh7IHVuaW9uIHsgdHlwZW9mKGxpc3QtPm5leHQpIF9fdmFsOyBjaGFy
IF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKGxpc3QtPm5leHQpKSAobGlzdCkg
fTsgX193cml0ZV9vbmNlX3NpemUoJihsaXN0LT5uZXh0KSwgX191Ll9fYywgc2l6ZW9mKGxpc3Qt
Pm5leHQpKTsgX191Ll9fdmFsOyB9KTsKMTQ0NzQ6ICBsaXN0LT5wcmV2ID0gbGlzdDsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gYm9vbCBfX2xpc3RfYWRkX3ZhbGlkKHN0
cnVjdCBsaXN0X2hlYWQgKm5ldywKMTQ0NzQ6ICAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKnBy
ZXYsCjE0NDc0OiAgICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpuZXh0KTsKMTQ0NzQ6IGV4dGVy
biBib29sIF9fbGlzdF9kZWxfZW50cnlfdmFsaWQoc3RydWN0IGxpc3RfaGVhZCAqZW50cnkpOwox
NDQ3NDogIyA2MyAiLi9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19saXN0X2Fk
ZChzdHJ1Y3QgbGlzdF9oZWFkICpuZXcsCjE0NDc0OiAgICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFk
ICpwcmV2LAoxNDQ3NDogICAgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqbmV4dCkKMTQ0NzQ6IHsK
MTQ0NzQ6ICBpZiAoIV9fbGlzdF9hZGRfdmFsaWQobmV3LCBwcmV2LCBuZXh0KSkKMTQ0NzQ6ICAg
cmV0dXJuOwoxNDQ3NDogCjE0NDc0OiAgbmV4dC0+cHJldiA9IG5ldzsKMTQ0NzQ6ICBuZXctPm5l
eHQgPSBuZXh0OwoxNDQ3NDogIG5ldy0+cHJldiA9IHByZXY7CjE0NDc0OiAgKHsgdW5pb24geyB0
eXBlb2YocHJldi0+bmV4dCkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0g
KCB0eXBlb2YocHJldi0+bmV4dCkpIChuZXcpIH07IF9fd3JpdGVfb25jZV9zaXplKCYocHJldi0+
bmV4dCksIF9fdS5fX2MsIHNpemVvZihwcmV2LT5uZXh0KSk7IF9fdS5fX3ZhbDsgfSk7CjE0NDc0
OiB9CjE0NDc0OiAjIDg0ICIuL2luY2x1ZGUvbGludXgvbGlzdC5oIgoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsaXN0
X2FkZChzdHJ1Y3QgbGlzdF9oZWFkICpuZXcsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCjE0NDc0
OiB7CjE0NDc0OiAgX19saXN0X2FkZChuZXcsIGhlYWQsIGhlYWQtPm5leHQpOwoxNDQ3NDogfQox
NDQ3NDogIyA5OCAiLi9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbGlzdF9hZGRf
dGFpbChzdHJ1Y3QgbGlzdF9oZWFkICpuZXcsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCjE0NDc0
OiB7CjE0NDc0OiAgX19saXN0X2FkZChuZXcsIGhlYWQtPnByZXYsIGhlYWQpOwoxNDQ3NDogfQox
NDQ3NDogIyAxMTAgIi4vaW5jbHVkZS9saW51eC9saXN0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fbGlzdF9k
ZWwoc3RydWN0IGxpc3RfaGVhZCAqIHByZXYsIHN0cnVjdCBsaXN0X2hlYWQgKiBuZXh0KQoxNDQ3
NDogewoxNDQ3NDogIG5leHQtPnByZXYgPSBwcmV2OwoxNDQ3NDogICh7IHVuaW9uIHsgdHlwZW9m
KHByZXYtPm5leHQpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlw
ZW9mKHByZXYtPm5leHQpKSAobmV4dCkgfTsgX193cml0ZV9vbmNlX3NpemUoJihwcmV2LT5uZXh0
KSwgX191Ll9fYywgc2l6ZW9mKHByZXYtPm5leHQpKTsgX191Ll9fdmFsOyB9KTsKMTQ0NzQ6IH0K
MTQ0NzQ6ICMgMTI0ICIuL2luY2x1ZGUvbGludXgvbGlzdC5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2xpc3Rf
ZGVsX2NsZWFycHJldihzdHJ1Y3QgbGlzdF9oZWFkICplbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBf
X2xpc3RfZGVsKGVudHJ5LT5wcmV2LCBlbnRyeS0+bmV4dCk7CjE0NDc0OiAgZW50cnktPnByZXYg
PSAoKHZvaWQgKikwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2xpc3RfZGVsX2Vu
dHJ5KHN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5KQoxNDQ3NDogewoxNDQ3NDogIGlmICghX19saXN0
X2RlbF9lbnRyeV92YWxpZChlbnRyeSkpCjE0NDc0OiAgIHJldHVybjsKMTQ0NzQ6IAoxNDQ3NDog
IF9fbGlzdF9kZWwoZW50cnktPnByZXYsIGVudHJ5LT5uZXh0KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCBsaXN0X2RlbChzdHJ1Y3QgbGlzdF9oZWFkICplbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX2xp
c3RfZGVsX2VudHJ5KGVudHJ5KTsKMTQ0NzQ6ICBlbnRyeS0+bmV4dCA9ICgodm9pZCAqKSAweDEw
MCArICgweGRlYWQwMDAwMDAwMDAwMDBVTCkpOwoxNDQ3NDogIGVudHJ5LT5wcmV2ID0gKCh2b2lk
ICopIDB4MTIyICsgKDB4ZGVhZDAwMDAwMDAwMDAwMFVMKSk7CjE0NDc0OiB9CjE0NDc0OiAjIDE1
OCAiLi9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbGlzdF9yZXBsYWNlKHN0cnVj
dCBsaXN0X2hlYWQgKm9sZCwKMTQ0NzQ6ICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpuZXcpCjE0NDc0
OiB7CjE0NDc0OiAgbmV3LT5uZXh0ID0gb2xkLT5uZXh0OwoxNDQ3NDogIG5ldy0+bmV4dC0+cHJl
diA9IG5ldzsKMTQ0NzQ6ICBuZXctPnByZXYgPSBvbGQtPnByZXY7CjE0NDc0OiAgbmV3LT5wcmV2
LT5uZXh0ID0gbmV3OwoxNDQ3NDogfQoxNDQ3NDogIyAxNzQgIi4vaW5jbHVkZS9saW51eC9saXN0
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIGxpc3RfcmVwbGFjZV9pbml0KHN0cnVjdCBsaXN0X2hlYWQgKm9sZCwK
MTQ0NzQ6ICAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKm5ldykKMTQ0NzQ6IHsKMTQ0NzQ6ICBs
aXN0X3JlcGxhY2Uob2xkLCBuZXcpOwoxNDQ3NDogIElOSVRfTElTVF9IRUFEKG9sZCk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGxpc3Rfc3dhcChzdHJ1Y3QgbGlzdF9oZWFkICplbnRyeTEsCjE0NDc0OiAgICAgICAg
IHN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5MikKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9o
ZWFkICpwb3MgPSBlbnRyeTItPnByZXY7CjE0NDc0OiAKMTQ0NzQ6ICBsaXN0X2RlbChlbnRyeTIp
OwoxNDQ3NDogIGxpc3RfcmVwbGFjZShlbnRyeTEsIGVudHJ5Mik7CjE0NDc0OiAgaWYgKHBvcyA9
PSBlbnRyeTEpCjE0NDc0OiAgIHBvcyA9IGVudHJ5MjsKMTQ0NzQ6ICBsaXN0X2FkZChlbnRyeTEs
IHBvcyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBsaXN0X2RlbF9pbml0KHN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5KQoxNDQ3NDog
ewoxNDQ3NDogIF9fbGlzdF9kZWxfZW50cnkoZW50cnkpOwoxNDQ3NDogIElOSVRfTElTVF9IRUFE
KGVudHJ5KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgbGlzdF9tb3ZlKHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsIHN0
cnVjdCBsaXN0X2hlYWQgKmhlYWQpCjE0NDc0OiB7CjE0NDc0OiAgX19saXN0X2RlbF9lbnRyeShs
aXN0KTsKMTQ0NzQ6ICBsaXN0X2FkZChsaXN0LCBoZWFkKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbGlzdF9tb3Zl
X3RhaWwoc3RydWN0IGxpc3RfaGVhZCAqbGlzdCwKMTQ0NzQ6ICAgICAgIHN0cnVjdCBsaXN0X2hl
YWQgKmhlYWQpCjE0NDc0OiB7CjE0NDc0OiAgX19saXN0X2RlbF9lbnRyeShsaXN0KTsKMTQ0NzQ6
ICBsaXN0X2FkZF90YWlsKGxpc3QsIGhlYWQpOwoxNDQ3NDogfQoxNDQ3NDogIyAyNDAgIi4vaW5j
bHVkZS9saW51eC9saXN0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxpc3RfYnVsa19tb3ZlX3RhaWwoc3RydWN0
IGxpc3RfaGVhZCAqaGVhZCwKMTQ0NzQ6ICAgICAgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqZmly
c3QsCjE0NDc0OiAgICAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmxhc3QpCjE0NDc0OiB7CjE0
NDc0OiAgZmlyc3QtPnByZXYtPm5leHQgPSBsYXN0LT5uZXh0OwoxNDQ3NDogIGxhc3QtPm5leHQt
PnByZXYgPSBmaXJzdC0+cHJldjsKMTQ0NzQ6IAoxNDQ3NDogIGhlYWQtPnByZXYtPm5leHQgPSBm
aXJzdDsKMTQ0NzQ6ICBmaXJzdC0+cHJldiA9IGhlYWQtPnByZXY7CjE0NDc0OiAKMTQ0NzQ6ICBs
YXN0LT5uZXh0ID0gaGVhZDsKMTQ0NzQ6ICBoZWFkLT5wcmV2ID0gbGFzdDsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBs
aXN0X2lzX2ZpcnN0KGNvbnN0IHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsCjE0NDc0OiAgICAgIGNv
bnN0IHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGxpc3Qt
PnByZXYgPT0gaGVhZDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBsaXN0X2lzX2xhc3QoY29uc3Qgc3RydWN0IGxpc3Rf
aGVhZCAqbGlzdCwKMTQ0NzQ6ICAgICBjb25zdCBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiBsaXN0LT5uZXh0ID09IGhlYWQ7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGxpc3RfZW1wdHkoY29u
c3Qgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHsgdW5p
b24geyB0eXBlb2YoaGVhZC0+bmV4dCkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEp
IF9fcmVhZF9vbmNlX3NpemUoJihoZWFkLT5uZXh0KSwgX191Ll9fYywgc2l6ZW9mKGhlYWQtPm5l
eHQpKTsgZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJihoZWFkLT5uZXh0KSwgX191Ll9f
Yywgc2l6ZW9mKGhlYWQtPm5leHQpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KSA9
PSBoZWFkOwoxNDQ3NDogfQoxNDQ3NDogIyAyOTggIi4vaW5jbHVkZS9saW51eC9saXN0LmgiCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBpbnQgbGlzdF9lbXB0eV9jYXJlZnVsKGNvbnN0IHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQp
CjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCAqbmV4dCA9IGhlYWQtPm5leHQ7CjE0
NDc0OiAgcmV0dXJuIChuZXh0ID09IGhlYWQpICYmIChuZXh0ID09IGhlYWQtPnByZXYpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
bGlzdF9yb3RhdGVfbGVmdChzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQoxNDQ3NDogewoxNDQ3NDog
IHN0cnVjdCBsaXN0X2hlYWQgKmZpcnN0OwoxNDQ3NDogCjE0NDc0OiAgaWYgKCFsaXN0X2VtcHR5
KGhlYWQpKSB7CjE0NDc0OiAgIGZpcnN0ID0gaGVhZC0+bmV4dDsKMTQ0NzQ6ICAgbGlzdF9tb3Zl
X3RhaWwoZmlyc3QsIGhlYWQpOwoxNDQ3NDogIH0KMTQ0NzQ6IH0KMTQ0NzQ6ICMgMzI1ICIuL2lu
Y2x1ZGUvbGludXgvbGlzdC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsaXN0X3JvdGF0ZV90b19mcm9udChzdHJ1
Y3QgbGlzdF9oZWFkICpsaXN0LAoxNDQ3NDogICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQox
NDQ3NDogewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBs
aXN0X21vdmVfdGFpbChoZWFkLCBsaXN0KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgbGlzdF9pc19zaW5ndWxhcihjb25zdCBzdHJ1
Y3QgbGlzdF9oZWFkICpoZWFkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAhbGlzdF9lbXB0eSho
ZWFkKSAmJiAoaGVhZC0+bmV4dCA9PSBoZWFkLT5wcmV2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBfX2xpc3RfY3V0X3Bvc2l0aW9uKHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsCjE0NDc0
OiAgIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsIHN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5KQoxNDQ3
NDogewoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgKm5ld19maXJzdCA9IGVudHJ5LT5uZXh0Owox
NDQ3NDogIGxpc3QtPm5leHQgPSBoZWFkLT5uZXh0OwoxNDQ3NDogIGxpc3QtPm5leHQtPnByZXYg
PSBsaXN0OwoxNDQ3NDogIGxpc3QtPnByZXYgPSBlbnRyeTsKMTQ0NzQ6ICBlbnRyeS0+bmV4dCA9
IGxpc3Q7CjE0NDc0OiAgaGVhZC0+bmV4dCA9IG5ld19maXJzdDsKMTQ0NzQ6ICBuZXdfZmlyc3Qt
PnByZXYgPSBoZWFkOwoxNDQ3NDogfQoxNDQ3NDogIyAzNzEgIi4vaW5jbHVkZS9saW51eC9saXN0
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIGxpc3RfY3V0X3Bvc2l0aW9uKHN0cnVjdCBsaXN0X2hlYWQgKmxpc3Qs
CjE0NDc0OiAgIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsIHN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5
KQoxNDQ3NDogewoxNDQ3NDogIGlmIChsaXN0X2VtcHR5KGhlYWQpKQoxNDQ3NDogICByZXR1cm47
CjE0NDc0OiAgaWYgKGxpc3RfaXNfc2luZ3VsYXIoaGVhZCkgJiYKMTQ0NzQ6ICAgKGhlYWQtPm5l
eHQgIT0gZW50cnkgJiYgaGVhZCAhPSBlbnRyeSkpCjE0NDc0OiAgIHJldHVybjsKMTQ0NzQ6ICBp
ZiAoZW50cnkgPT0gaGVhZCkKMTQ0NzQ6ICAgSU5JVF9MSVNUX0hFQUQobGlzdCk7CjE0NDc0OiAg
ZWxzZQoxNDQ3NDogICBfX2xpc3RfY3V0X3Bvc2l0aW9uKGxpc3QsIGhlYWQsIGVudHJ5KTsKMTQ0
NzQ6IH0KMTQ0NzQ6ICMgMzk5ICIuL2luY2x1ZGUvbGludXgvbGlzdC5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBs
aXN0X2N1dF9iZWZvcmUoc3RydWN0IGxpc3RfaGVhZCAqbGlzdCwKMTQ0NzQ6ICAgICAgICBzdHJ1
Y3QgbGlzdF9oZWFkICpoZWFkLAoxNDQ3NDogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5
KQoxNDQ3NDogewoxNDQ3NDogIGlmIChoZWFkLT5uZXh0ID09IGVudHJ5KSB7CjE0NDc0OiAgIElO
SVRfTElTVF9IRUFEKGxpc3QpOwoxNDQ3NDogICByZXR1cm47CjE0NDc0OiAgfQoxNDQ3NDogIGxp
c3QtPm5leHQgPSBoZWFkLT5uZXh0OwoxNDQ3NDogIGxpc3QtPm5leHQtPnByZXYgPSBsaXN0Owox
NDQ3NDogIGxpc3QtPnByZXYgPSBlbnRyeS0+cHJldjsKMTQ0NzQ6ICBsaXN0LT5wcmV2LT5uZXh0
ID0gbGlzdDsKMTQ0NzQ6ICBoZWFkLT5uZXh0ID0gZW50cnk7CjE0NDc0OiAgZW50cnktPnByZXYg
PSBoZWFkOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fbGlzdF9zcGxpY2UoY29uc3Qg
c3RydWN0IGxpc3RfaGVhZCAqbGlzdCwKMTQ0NzQ6ICAgICAgc3RydWN0IGxpc3RfaGVhZCAqcHJl
diwKMTQ0NzQ6ICAgICAgc3RydWN0IGxpc3RfaGVhZCAqbmV4dCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBz
dHJ1Y3QgbGlzdF9oZWFkICpmaXJzdCA9IGxpc3QtPm5leHQ7CjE0NDc0OiAgc3RydWN0IGxpc3Rf
aGVhZCAqbGFzdCA9IGxpc3QtPnByZXY7CjE0NDc0OiAKMTQ0NzQ6ICBmaXJzdC0+cHJldiA9IHBy
ZXY7CjE0NDc0OiAgcHJldi0+bmV4dCA9IGZpcnN0OwoxNDQ3NDogCjE0NDc0OiAgbGFzdC0+bmV4
dCA9IG5leHQ7CjE0NDc0OiAgbmV4dC0+cHJldiA9IGxhc3Q7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxpc3Rfc3Bs
aWNlKGNvbnN0IHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsCjE0NDc0OiAgICAgc3RydWN0IGxpc3Rf
aGVhZCAqaGVhZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoIWxpc3RfZW1wdHkobGlzdCkpCjE0NDc0
OiAgIF9fbGlzdF9zcGxpY2UobGlzdCwgaGVhZCwgaGVhZC0+bmV4dCk7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxp
c3Rfc3BsaWNlX3RhaWwoc3RydWN0IGxpc3RfaGVhZCAqbGlzdCwKMTQ0NzQ6ICAgICBzdHJ1Y3Qg
bGlzdF9oZWFkICpoZWFkKQoxNDQ3NDogewoxNDQ3NDogIGlmICghbGlzdF9lbXB0eShsaXN0KSkK
MTQ0NzQ6ICAgX19saXN0X3NwbGljZShsaXN0LCBoZWFkLT5wcmV2LCBoZWFkKTsKMTQ0NzQ6IH0K
MTQ0NzQ6ICMgNDYwICIuL2luY2x1ZGUvbGludXgvbGlzdC5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsaXN0X3Nw
bGljZV9pbml0KHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsCjE0NDc0OiAgICAgICAgIHN0cnVjdCBs
aXN0X2hlYWQgKmhlYWQpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKCFsaXN0X2VtcHR5KGxpc3QpKSB7
CjE0NDc0OiAgIF9fbGlzdF9zcGxpY2UobGlzdCwgaGVhZCwgaGVhZC0+bmV4dCk7CjE0NDc0OiAg
IElOSVRfTElTVF9IRUFEKGxpc3QpOwoxNDQ3NDogIH0KMTQ0NzQ6IH0KMTQ0NzQ6ICMgNDc3ICIu
L2luY2x1ZGUvbGludXgvbGlzdC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsaXN0X3NwbGljZV90YWlsX2luaXQo
c3RydWN0IGxpc3RfaGVhZCAqbGlzdCwKMTQ0NzQ6ICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmhl
YWQpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKCFsaXN0X2VtcHR5KGxpc3QpKSB7CjE0NDc0OiAgIF9f
bGlzdF9zcGxpY2UobGlzdCwgaGVhZC0+cHJldiwgaGVhZCk7CjE0NDc0OiAgIElOSVRfTElTVF9I
RUFEKGxpc3QpOwoxNDQ3NDogIH0KMTQ0NzQ6IH0KMTQ0NzQ6ICMgNzY1ICIuL2luY2x1ZGUvbGlu
dXgvbGlzdC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBJTklUX0hMSVNUX05PREUoc3RydWN0IGhsaXN0X25vZGUg
KmgpCjE0NDc0OiB7CjE0NDc0OiAgaC0+bmV4dCA9ICgodm9pZCAqKTApOwoxNDQ3NDogIGgtPnBw
cmV2ID0gKCh2b2lkICopMCk7CjE0NDc0OiB9CjE0NDc0OiAjIDc3OSAiLi9pbmNsdWRlL2xpbnV4
L2xpc3QuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludCBobGlzdF91bmhhc2hlZChjb25zdCBzdHJ1Y3QgaGxpc3Rfbm9k
ZSAqaCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gIWgtPnBwcmV2OwoxNDQ3NDogfQoxNDQ3NDog
IyA3OTIgIi4vaW5jbHVkZS9saW51eC9saXN0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgaGxpc3RfdW5oYXNoZWRf
bG9ja2xlc3MoY29uc3Qgc3RydWN0IGhsaXN0X25vZGUgKmgpCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuICEoeyB1bmlvbiB7IHR5cGVvZihoLT5wcHJldikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9f
dTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJihoLT5wcHJldiksIF9fdS5fX2MsIHNpemVvZiho
LT5wcHJldikpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKGgtPnBwcmV2KSwgX191
Ll9fYywgc2l6ZW9mKGgtPnBwcmV2KSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
aW50IGhsaXN0X2VtcHR5KGNvbnN0IHN0cnVjdCBobGlzdF9oZWFkICpoKQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiAhKHsgdW5pb24geyB0eXBlb2YoaC0+Zmlyc3QpIF9fdmFsOyBjaGFyIF9fY1sx
XTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYoaC0+Zmlyc3QpLCBfX3UuX19jLCBz
aXplb2YoaC0+Zmlyc3QpKTsgZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJihoLT5maXJz
dCksIF9fdS5fX2MsIHNpemVvZihoLT5maXJzdCkpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192
YWw7IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9faGxpc3RfZGVsKHN0cnVjdCBo
bGlzdF9ub2RlICpuKQoxNDQ3NDogewoxNDQ3NDogIHN0cnVjdCBobGlzdF9ub2RlICpuZXh0ID0g
bi0+bmV4dDsKMTQ0NzQ6ICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqKnBwcmV2ID0gbi0+cHByZXY7CjE0
NDc0OiAKMTQ0NzQ6ICAoeyB1bmlvbiB7IHR5cGVvZigqcHByZXYpIF9fdmFsOyBjaGFyIF9fY1sx
XTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKCpwcHJldikpIChuZXh0KSB9OyBfX3dyaXRl
X29uY2Vfc2l6ZSgmKCpwcHJldiksIF9fdS5fX2MsIHNpemVvZigqcHByZXYpKTsgX191Ll9fdmFs
OyB9KTsKMTQ0NzQ6ICBpZiAobmV4dCkKMTQ0NzQ6ICAgKHsgdW5pb24geyB0eXBlb2YobmV4dC0+
cHByZXYpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKG5l
eHQtPnBwcmV2KSkgKHBwcmV2KSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKG5leHQtPnBwcmV2KSwg
X191Ll9fYywgc2l6ZW9mKG5leHQtPnBwcmV2KSk7IF9fdS5fX3ZhbDsgfSk7CjE0NDc0OiB9CjE0
NDc0OiAjIDgyMyAiLi9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaGxpc3RfZGVs
KHN0cnVjdCBobGlzdF9ub2RlICpuKQoxNDQ3NDogewoxNDQ3NDogIF9faGxpc3RfZGVsKG4pOwox
NDQ3NDogIG4tPm5leHQgPSAoKHZvaWQgKikgMHgxMDAgKyAoMHhkZWFkMDAwMDAwMDAwMDAwVUwp
KTsKMTQ0NzQ6ICBuLT5wcHJldiA9ICgodm9pZCAqKSAweDEyMiArICgweGRlYWQwMDAwMDAwMDAw
MDBVTCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhsaXN0X2RlbF9pbml0KHN0cnVjdCBobGlzdF9u
b2RlICpuKQoxNDQ3NDogewoxNDQ3NDogIGlmICghaGxpc3RfdW5oYXNoZWQobikpIHsKMTQ0NzQ6
ICAgX19obGlzdF9kZWwobik7CjE0NDc0OiAgIElOSVRfSExJU1RfTk9ERShuKTsKMTQ0NzQ6ICB9
CjE0NDc0OiB9CjE0NDc0OiAjIDg1MiAiLi9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgaGxpc3RfYWRkX2hlYWQoc3RydWN0IGhsaXN0X25vZGUgKm4sIHN0cnVjdCBobGlzdF9oZWFk
ICpoKQoxNDQ3NDogewoxNDQ3NDogIHN0cnVjdCBobGlzdF9ub2RlICpmaXJzdCA9IGgtPmZpcnN0
OwoxNDQ3NDogICh7IHVuaW9uIHsgdHlwZW9mKG4tPm5leHQpIF9fdmFsOyBjaGFyIF9fY1sxXTsg
fSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKG4tPm5leHQpKSAoZmlyc3QpIH07IF9fd3JpdGVf
b25jZV9zaXplKCYobi0+bmV4dCksIF9fdS5fX2MsIHNpemVvZihuLT5uZXh0KSk7IF9fdS5fX3Zh
bDsgfSk7CjE0NDc0OiAgaWYgKGZpcnN0KQoxNDQ3NDogICAoeyB1bmlvbiB7IHR5cGVvZihmaXJz
dC0+cHByZXYpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9m
KGZpcnN0LT5wcHJldikpICgmbi0+bmV4dCkgfTsgX193cml0ZV9vbmNlX3NpemUoJihmaXJzdC0+
cHByZXYpLCBfX3UuX19jLCBzaXplb2YoZmlyc3QtPnBwcmV2KSk7IF9fdS5fX3ZhbDsgfSk7CjE0
NDc0OiAgKHsgdW5pb24geyB0eXBlb2YoaC0+Zmlyc3QpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBf
X3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKGgtPmZpcnN0KSkgKG4pIH07IF9fd3JpdGVfb25jZV9z
aXplKCYoaC0+Zmlyc3QpLCBfX3UuX19jLCBzaXplb2YoaC0+Zmlyc3QpKTsgX191Ll9fdmFsOyB9
KTsKMTQ0NzQ6ICAoeyB1bmlvbiB7IHR5cGVvZihuLT5wcHJldikgX192YWw7IGNoYXIgX19jWzFd
OyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2Yobi0+cHByZXYpKSAoJmgtPmZpcnN0KSB9OyBf
X3dyaXRlX29uY2Vfc2l6ZSgmKG4tPnBwcmV2KSwgX191Ll9fYywgc2l6ZW9mKG4tPnBwcmV2KSk7
IF9fdS5fX3ZhbDsgfSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhsaXN0X2FkZF9iZWZvcmUoc3RydWN0IGhsaXN0
X25vZGUgKm4sCjE0NDc0OiAgICAgICAgIHN0cnVjdCBobGlzdF9ub2RlICpuZXh0KQoxNDQ3NDog
ewoxNDQ3NDogICh7IHVuaW9uIHsgdHlwZW9mKG4tPnBwcmV2KSBfX3ZhbDsgY2hhciBfX2NbMV07
IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZihuLT5wcHJldikpIChuZXh0LT5wcHJldikgfTsg
X193cml0ZV9vbmNlX3NpemUoJihuLT5wcHJldiksIF9fdS5fX2MsIHNpemVvZihuLT5wcHJldikp
OyBfX3UuX192YWw7IH0pOwoxNDQ3NDogICh7IHVuaW9uIHsgdHlwZW9mKG4tPm5leHQpIF9fdmFs
OyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKG4tPm5leHQpKSAobmV4
dCkgfTsgX193cml0ZV9vbmNlX3NpemUoJihuLT5uZXh0KSwgX191Ll9fYywgc2l6ZW9mKG4tPm5l
eHQpKTsgX191Ll9fdmFsOyB9KTsKMTQ0NzQ6ICAoeyB1bmlvbiB7IHR5cGVvZihuZXh0LT5wcHJl
dikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2YobmV4dC0+
cHByZXYpKSAoJm4tPm5leHQpIH07IF9fd3JpdGVfb25jZV9zaXplKCYobmV4dC0+cHByZXYpLCBf
X3UuX19jLCBzaXplb2YobmV4dC0+cHByZXYpKTsgX191Ll9fdmFsOyB9KTsKMTQ0NzQ6ICAoeyB1
bmlvbiB7IHR5cGVvZigqKG4tPnBwcmV2KSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsg
Ll9fdmFsID0gKCB0eXBlb2YoKihuLT5wcHJldikpKSAobikgfTsgX193cml0ZV9vbmNlX3NpemUo
JigqKG4tPnBwcmV2KSksIF9fdS5fX2MsIHNpemVvZigqKG4tPnBwcmV2KSkpOyBfX3UuX192YWw7
IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBobGlzdF9hZGRfYmVoaW5kKHN0cnVjdCBobGlzdF9ub2RlICpuLAox
NDQ3NDogICAgICAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqcHJldikKMTQ0NzQ6IHsKMTQ0NzQ6ICAo
eyB1bmlvbiB7IHR5cGVvZihuLT5uZXh0KSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAu
X192YWwgPSAoIHR5cGVvZihuLT5uZXh0KSkgKHByZXYtPm5leHQpIH07IF9fd3JpdGVfb25jZV9z
aXplKCYobi0+bmV4dCksIF9fdS5fX2MsIHNpemVvZihuLT5uZXh0KSk7IF9fdS5fX3ZhbDsgfSk7
CjE0NDc0OiAgKHsgdW5pb24geyB0eXBlb2YocHJldi0+bmV4dCkgX192YWw7IGNoYXIgX19jWzFd
OyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2YocHJldi0+bmV4dCkpIChuKSB9OyBfX3dyaXRl
X29uY2Vfc2l6ZSgmKHByZXYtPm5leHQpLCBfX3UuX19jLCBzaXplb2YocHJldi0+bmV4dCkpOyBf
X3UuX192YWw7IH0pOwoxNDQ3NDogICh7IHVuaW9uIHsgdHlwZW9mKG4tPnBwcmV2KSBfX3ZhbDsg
Y2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZihuLT5wcHJldikpICgmcHJl
di0+bmV4dCkgfTsgX193cml0ZV9vbmNlX3NpemUoJihuLT5wcHJldiksIF9fdS5fX2MsIHNpemVv
ZihuLT5wcHJldikpOyBfX3UuX192YWw7IH0pOwoxNDQ3NDogCjE0NDc0OiAgaWYgKG4tPm5leHQp
CjE0NDc0OiAgICh7IHVuaW9uIHsgdHlwZW9mKG4tPm5leHQtPnBwcmV2KSBfX3ZhbDsgY2hhciBf
X2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZihuLT5uZXh0LT5wcHJldikpICgmbi0+
bmV4dCkgfTsgX193cml0ZV9vbmNlX3NpemUoJihuLT5uZXh0LT5wcHJldiksIF9fdS5fX2MsIHNp
emVvZihuLT5uZXh0LT5wcHJldikpOyBfX3UuX192YWw7IH0pOwoxNDQ3NDogfQoxNDQ3NDogIyA5
MDAgIi4vaW5jbHVkZS9saW51eC9saXN0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhsaXN0X2FkZF9mYWtlKHN0
cnVjdCBobGlzdF9ub2RlICpuKQoxNDQ3NDogewoxNDQ3NDogIG4tPnBwcmV2ID0gJm4tPm5leHQ7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBobGlzdF9mYWtlKHN0cnVjdCBobGlzdF9ub2RlICpoKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiBoLT5wcHJldiA9PSAmaC0+bmV4dDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgOTIyICIuL2luY2x1
ZGUvbGludXgvbGlzdC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAoxNDQ3NDogaGxpc3RfaXNfc2luZ3VsYXJfbm9k
ZShzdHJ1Y3QgaGxpc3Rfbm9kZSAqbiwgc3RydWN0IGhsaXN0X2hlYWQgKmgpCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuICFuLT5uZXh0ICYmIG4tPnBwcmV2ID09ICZoLT5maXJzdDsKMTQ0NzQ6IH0K
MTQ0NzQ6ICMgOTM2ICIuL2luY2x1ZGUvbGludXgvbGlzdC5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBobGlzdF9t
b3ZlX2xpc3Qoc3RydWN0IGhsaXN0X2hlYWQgKm9sZCwKMTQ0NzQ6ICAgICAgICBzdHJ1Y3QgaGxp
c3RfaGVhZCAqbmV3KQoxNDQ3NDogewoxNDQ3NDogIG5ldy0+Zmlyc3QgPSBvbGQtPmZpcnN0Owox
NDQ3NDogIGlmIChuZXctPmZpcnN0KQoxNDQ3NDogICBuZXctPmZpcnN0LT5wcHJldiA9ICZuZXct
PmZpcnN0OwoxNDQ3NDogIG9sZC0+Zmlyc3QgPSAoKHZvaWQgKikwKTsKMTQ0NzQ6IH0KMTQ0NzQ6
ICMgMTIgIi4vaW5jbHVkZS9saW51eC9wcmVlbXB0LmgiIDIKMTQ0NzQ6ICMgNzggIi4vaW5jbHVk
ZS9saW51eC9wcmVlbXB0LmgiCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJl
ZW1wdC5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BlcmNwdS5oIiAxCjE0NDc0OiAjIDg4ICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL3BlcmNwdS5oIgoxNDQ3NDogZXh0ZXJuIHZvaWQgX19iYWRfcGVy
Y3B1X3NpemUodm9pZCk7CjE0NDc0OiAjIDUyNCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZXJj
cHUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9vbCB4ODZf
dGhpc19jcHVfY29uc3RhbnRfdGVzdF9iaXQodW5zaWduZWQgaW50IG5yLAoxNDQ3NDogICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyAqYWRkcikKMTQ0NzQ6IHsKMTQ0
NzQ6ICB1bnNpZ25lZCBsb25nICphID0KMTQ0NzQ6ICAgKHVuc2lnbmVkIGxvbmcgKilhZGRyICsg
bnIgLyA2NDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuICgoMVVMIDw8IChuciAlIDY0
KSkgJiAoeyB0eXBlb2YoKmEpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2YoKmEpKSB7IGNhc2Ug
MTogYXNtICgibW92IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3Jl
dF9fKSA6ICJtIiAoKmEpKTsgYnJlYWs7IGNhc2UgMjogYXNtICgibW92IiAidyAiIiUlIiJncyIi
OiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoKmEpKTsgYnJlYWs7IGNh
c2UgNDogYXNtICgibW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZv
X3JldF9fKSA6ICJtIiAoKmEpKTsgYnJlYWs7IGNhc2UgODogYXNtICgibW92IiAicSAiIiUlIiJn
cyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoKmEpKTsgYnJlYWs7
IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KSkgIT0gMDsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB4ODZfdGhp
c19jcHVfdmFyaWFibGVfdGVzdF9iaXQoaW50IG5yLAoxNDQ3NDogICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyAqYWRkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICBib29sIG9s
ZGJpdDsKMTQ0NzQ6IAoxNDQ3NDogIGFzbSB2b2xhdGlsZSgiYnRsICIiJSUiImdzIiI6IiAiJSIg
IjIiIiwlMSIKMTQ0NzQ6ICAgICJcblx0Lyogb3V0cHV0IGNvbmRpdGlvbiBjb2RlICIgImMiICIq
L1xuIgoxNDQ3NDogICAgOiAiPUBjYyIgImMiIChvbGRiaXQpCjE0NDc0OiAgICA6ICJtIiAoKih1
bnNpZ25lZCBsb25nICopYWRkciksICJJciIgKG5yKSk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4g
b2xkYml0OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9wZXJjcHUu
aCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAi
Li9pbmNsdWRlL2xpbnV4L3RocmVhZHMuaCIgMQoxNDQ3NDogIyA3ICIuL2luY2x1ZGUvYXNtLWdl
bmVyaWMvcGVyY3B1LmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3BlcmNwdS1kZWZz
LmgiIDEKMTQ0NzQ6ICMgMzA4ICIuL2luY2x1ZGUvbGludXgvcGVyY3B1LWRlZnMuaCIKMTQ0NzQ6
IGV4dGVybiB2b2lkIF9fYmFkX3NpemVfY2FsbF9wYXJhbWV0ZXIodm9pZCk7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX190aGlzX2NwdV9wcmVlbXB0X2NoZWNr
KGNvbnN0IGNoYXIgKm9wKSB7IH0KMTQ0NzQ6ICMgOCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL3Bl
cmNwdS5oIiAyCjE0NDc0OiAjIDE5ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGVyY3B1LmgiCjE0
NDc0OiBleHRlcm4gdW5zaWduZWQgbG9uZyBfX3Blcl9jcHVfb2Zmc2V0WzhdOwoxNDQ3NDogIyA0
OCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL3BlcmNwdS5oIgoxNDQ3NDogZXh0ZXJuIHZvaWQgc2V0
dXBfcGVyX2NwdV9hcmVhcyh2b2lkKTsKMTQ0NzQ6ICMgNTU3ICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL3BlcmNwdS5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIF9fYXR0cmlidXRl
X18oKHNlY3Rpb24oIi5kYXRhLi5wZXJjcHUiICIuLnJlYWRfbW9zdGx5IikpKSBfX3R5cGVvZl9f
KHVuc2lnbmVkIGxvbmcpIHRoaXNfY3B1X29mZjsKMTQ0NzQ6ICMgNyAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9wcmVlbXB0LmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3RocmVhZF9p
bmZvLmgiIDEKMTQ0NzQ6ICMgMTIgIi4vaW5jbHVkZS9saW51eC90aHJlYWRfaW5mby5oIgoxNDQ3
NDogIyAxICIuL2luY2x1ZGUvbGludXgvYnVnLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2J1Zy5oIiAxCjE0NDc0
OiAjIDgzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2J1Zy5oIgoxNDQ3NDogIyAxICIuL2luY2x1
ZGUvYXNtLWdlbmVyaWMvYnVnLmgiIDEKMTQ0NzQ6ICMgMjQgIi4vaW5jbHVkZS9hc20tZ2VuZXJp
Yy9idWcuaCIKMTQ0NzQ6IHN0cnVjdCBidWdfZW50cnkgewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIHNpZ25lZCBpbnQgYnVnX2FkZHJfZGlzcDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc2lnbmVkIGludCBmaWxlX2Rpc3A7CjE0NDc0OiAK
MTQ0NzQ6ICB1bnNpZ25lZCBzaG9ydCBsaW5lOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgc2hv
cnQgZmxhZ3M7CjE0NDc0OiB9OwoxNDQ3NDogIyA4OSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2J1
Zy5oIgoxNDQ3NDogZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAxLCAy
KSkpIHZvaWQgX193YXJuX3ByaW50ayhjb25zdCBjaGFyICpmbXQsIC4uLik7CjE0NDc0OiAjIDEw
NSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2J1Zy5oIgoxNDQ3NDogc3RydWN0IHdhcm5fYXJnczsK
MTQ0NzQ6IHN0cnVjdCBwdF9yZWdzOwoxNDQ3NDogCjE0NDc0OiB2b2lkIF9fd2Fybihjb25zdCBj
aGFyICpmaWxlLCBpbnQgbGluZSwgdm9pZCAqY2FsbGVyLCB1bnNpZ25lZCB0YWludCwKMTQ0NzQ6
ICAgICAgc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHN0cnVjdCB3YXJuX2FyZ3MgKmFyZ3MpOwoxNDQ3
NDogIyA4NCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9idWcuaCIgMgoxNDQ3NDogIyA2ICIuL2lu
Y2x1ZGUvbGludXgvYnVnLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0g
YnVnX3RyYXBfdHlwZSB7CjE0NDc0OiAgQlVHX1RSQVBfVFlQRV9OT05FID0gMCwKMTQ0NzQ6ICBC
VUdfVFJBUF9UWVBFX1dBUk4gPSAxLAoxNDQ3NDogIEJVR19UUkFQX1RZUEVfQlVHID0gMiwKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBwdF9yZWdzOwoxNDQ3NDogIyAzNCAiLi9pbmNs
dWRlL2xpbnV4L2J1Zy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGlzX3dhcm5pbmdfYnVnKGNvbnN0IHN0cnVjdCBi
dWdfZW50cnkgKmJ1ZykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYnVnLT5mbGFncyAmICgxIDw8
IDApOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYnVnX2VudHJ5ICpmaW5kX2J1Zyh1
bnNpZ25lZCBsb25nIGJ1Z2FkZHIpOwoxNDQ3NDogCjE0NDc0OiBlbnVtIGJ1Z190cmFwX3R5cGUg
cmVwb3J0X2J1Zyh1bnNpZ25lZCBsb25nIGJ1Z19hZGRyLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogaW50IGlzX3ZhbGlkX2J1Z2FkZHIodW5zaWduZWQgbG9u
ZyBhZGRyKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBnZW5lcmljX2J1Z19jbGVhcl9vbmNlKHZvaWQp
OwoxNDQ3NDogIyA3MCAiLi9pbmNsdWRlL2xpbnV4L2J1Zy5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVf
XygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGJvb2wgY2hlY2tfZGF0YV9jb3JydXB0aW9uKGJv
b2wgdikgeyByZXR1cm4gdjsgfQoxNDQ3NDogIyAxMyAiLi9pbmNsdWRlL2xpbnV4L3RocmVhZF9p
bmZvLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3Jlc3RhcnRfYmxvY2suaCIgMQox
NDQ3NDogIyAxMCAiLi9pbmNsdWRlL2xpbnV4L3Jlc3RhcnRfYmxvY2suaCIKMTQ0NzQ6ICMgMSAi
Li9pbmNsdWRlL2xpbnV4L3RpbWU2NC5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L21hdGg2NC5oIiAxCjE0NDc0OiAjIDI0ICIu
L2luY2x1ZGUvbGludXgvbWF0aDY0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1NjQgZGl2X3U2NF9yZW0odTY0IGRpdmlk
ZW5kLCB1MzIgZGl2aXNvciwgdTMyICpyZW1haW5kZXIpCjE0NDc0OiB7CjE0NDc0OiAgKnJlbWFp
bmRlciA9IGRpdmlkZW5kICUgZGl2aXNvcjsKMTQ0NzQ6ICByZXR1cm4gZGl2aWRlbmQgLyBkaXZp
c29yOwoxNDQ3NDogfQoxNDQ3NDogIyAzOCAiLi9pbmNsdWRlL2xpbnV4L21hdGg2NC5oIgoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgczY0IGRpdl9zNjRfcmVtKHM2NCBkaXZpZGVuZCwgczMyIGRpdmlzb3IsIHMzMiAqcmVtYWlu
ZGVyKQoxNDQ3NDogewoxNDQ3NDogICpyZW1haW5kZXIgPSBkaXZpZGVuZCAlIGRpdmlzb3I7CjE0
NDc0OiAgcmV0dXJuIGRpdmlkZW5kIC8gZGl2aXNvcjsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNTIgIi4v
aW5jbHVkZS9saW51eC9tYXRoNjQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2NCBkaXY2NF91NjRfcmVtKHU2NCBkaXZp
ZGVuZCwgdTY0IGRpdmlzb3IsIHU2NCAqcmVtYWluZGVyKQoxNDQ3NDogewoxNDQ3NDogICpyZW1h
aW5kZXIgPSBkaXZpZGVuZCAlIGRpdmlzb3I7CjE0NDc0OiAgcmV0dXJuIGRpdmlkZW5kIC8gZGl2
aXNvcjsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNjUgIi4vaW5jbHVkZS9saW51eC9tYXRoNjQuaCIKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHU2NCBkaXY2NF91NjQodTY0IGRpdmlkZW5kLCB1NjQgZGl2aXNvcikKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gZGl2aWRlbmQgLyBkaXZpc29yOwoxNDQ3NDogfQoxNDQ3NDogIyA3NyAiLi9p
bmNsdWRlL2xpbnV4L21hdGg2NC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0IGRpdjY0X3M2NChzNjQgZGl2aWRlbmQs
IHM2NCBkaXZpc29yKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBkaXZpZGVuZCAvIGRpdmlzb3I7
CjE0NDc0OiB9CjE0NDc0OiAjIDEyMyAiLi9pbmNsdWRlL2xpbnV4L21hdGg2NC5oIgoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dTY0IGRpdl91NjQodTY0IGRpdmlkZW5kLCB1MzIgZGl2aXNvcikKMTQ0NzQ6IHsKMTQ0NzQ6ICB1
MzIgcmVtYWluZGVyOwoxNDQ3NDogIHJldHVybiBkaXZfdTY0X3JlbShkaXZpZGVuZCwgZGl2aXNv
ciwgJnJlbWFpbmRlcik7CjE0NDc0OiB9CjE0NDc0OiAjIDEzNiAiLi9pbmNsdWRlL2xpbnV4L21h
dGg2NC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgczY0IGRpdl9zNjQoczY0IGRpdmlkZW5kLCBzMzIgZGl2aXNvcikKMTQ0
NzQ6IHsKMTQ0NzQ6ICBzMzIgcmVtYWluZGVyOwoxNDQ3NDogIHJldHVybiBkaXZfczY0X3JlbShk
aXZpZGVuZCwgZGl2aXNvciwgJnJlbWFpbmRlcik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogdTMyIGl0ZXJfZGl2X3U2NF9yZW0odTY0IGRpdmlkZW5kLCB1MzIgZGl2aXNvciwgdTY0
ICpyZW1haW5kZXIpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpIHUzMgoxNDQ3NDogX19pdGVyX2Rpdl91NjRfcmVtKHU2NCBkaXZpZGVuZCwgdTMyIGRp
dmlzb3IsIHU2NCAqcmVtYWluZGVyKQoxNDQ3NDogewoxNDQ3NDogIHUzMiByZXQgPSAwOwoxNDQ3
NDogCjE0NDc0OiAgd2hpbGUgKGRpdmlkZW5kID49IGRpdmlzb3IpIHsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgIGFzbSgiIiA6ICIrcm0iKGRpdmlkZW5kKSk7CjE0NDc0OiAKMTQ0NzQ6ICAgZGl2
aWRlbmQgLT0gZGl2aXNvcjsKMTQ0NzQ6ICAgcmV0Kys7CjE0NDc0OiAgfQoxNDQ3NDogCjE0NDc0
OiAgKnJlbWFpbmRlciA9IGRpdmlkZW5kOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIHJldDsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1NjQg
bXVsX3UzMl91MzIodTMyIGEsIHUzMiBiKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAodTY0KWEg
KiBiOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHU2NCBtdWxfdTY0X3UzMl9zaHIodTY0IGEsIHUzMiBtdWwsIHVuc2lnbmVkIGludCBzaGlm
dCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHU2NCkoKCh1bnNpZ25lZCBfX2ludDEyOClhICog
bXVsKSA+PiBzaGlmdCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1
NjQgbXVsX3U2NF91NjRfc2hyKHU2NCBhLCB1NjQgbXVsLCB1bnNpZ25lZCBpbnQgc2hpZnQpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh1NjQpKCgodW5zaWduZWQgX19pbnQxMjgpYSAqIG11bCkg
Pj4gc2hpZnQpOwoxNDQ3NDogfQoxNDQ3NDogIyA2ICIuL2luY2x1ZGUvbGludXgvdGltZTY0Lmgi
IDIKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBfX3M2NCB0aW1lNjRfdDsKMTQ0NzQ6IHR5cGVkZWYg
X191NjQgdGltZXU2NF90OwoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4
L3RpbWUuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvdGltZV90eXBlcy5oIiAxCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgX19rZXJuZWxf
dGltZXNwZWMgewoxNDQ3NDogIF9fa2VybmVsX3RpbWU2NF90IHR2X3NlYzsKMTQ0NzQ6ICBsb25n
IGxvbmcgdHZfbnNlYzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBfX2tlcm5lbF9p
dGltZXJzcGVjIHsKMTQ0NzQ6ICBzdHJ1Y3QgX19rZXJuZWxfdGltZXNwZWMgaXRfaW50ZXJ2YWw7
CjE0NDc0OiAgc3RydWN0IF9fa2VybmVsX3RpbWVzcGVjIGl0X3ZhbHVlOwoxNDQ3NDogfTsKMTQ0
NzQ6ICMgMjUgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3RpbWVfdHlwZXMuaCIKMTQ0NzQ6IHN0cnVj
dCBfX2tlcm5lbF9vbGRfdGltZXZhbCB7CjE0NDc0OiAgX19rZXJuZWxfbG9uZ190IHR2X3NlYzsK
MTQ0NzQ6ICBfX2tlcm5lbF9sb25nX3QgdHZfdXNlYzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IF9fa2VybmVsX29sZF90aW1lc3BlYyB7CjE0NDc0OiAgX19rZXJuZWxf
b2xkX3RpbWVfdCB0dl9zZWM7CjE0NDc0OiAgbG9uZyB0dl9uc2VjOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IF9fa2VybmVsX29sZF9pdGltZXJ2YWwgewoxNDQ3NDogIHN0cnVjdCBf
X2tlcm5lbF9vbGRfdGltZXZhbCBpdF9pbnRlcnZhbDsKMTQ0NzQ6ICBzdHJ1Y3QgX19rZXJuZWxf
b2xkX3RpbWV2YWwgaXRfdmFsdWU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgX19r
ZXJuZWxfc29ja190aW1ldmFsIHsKMTQ0NzQ6ICBfX3M2NCB0dl9zZWM7CjE0NDc0OiAgX19zNjQg
dHZfdXNlYzsKMTQ0NzQ6IH07CjE0NDc0OiAjIDcgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3RpbWUu
aCIgMgoxNDQ3NDogIyAzMyAiLi9pbmNsdWRlL3VhcGkvbGludXgvdGltZS5oIgoxNDQ3NDogc3Ry
dWN0IHRpbWV6b25lIHsKMTQ0NzQ6ICBpbnQgdHpfbWludXRlc3dlc3Q7CjE0NDc0OiAgaW50IHR6
X2RzdHRpbWU7CjE0NDc0OiB9OwoxNDQ3NDogIyAxMSAiLi9pbmNsdWRlL2xpbnV4L3RpbWU2NC5o
IiAyCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0aW1lc3BlYzY0IHsKMTQ0NzQ6ICB0aW1lNjRfdCB0
dl9zZWM7CjE0NDc0OiAgbG9uZyB0dl9uc2VjOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGl0aW1lcnNwZWM2NCB7CjE0NDc0OiAgc3RydWN0IHRpbWVzcGVjNjQgaXRfaW50ZXJ2YWw7
CjE0NDc0OiAgc3RydWN0IHRpbWVzcGVjNjQgaXRfdmFsdWU7CjE0NDc0OiB9OwoxNDQ3NDogIyA0
OSAiLi9pbmNsdWRlL2xpbnV4L3RpbWU2NC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHRpbWVzcGVjNjRfZXF1YWwo
Y29uc3Qgc3RydWN0IHRpbWVzcGVjNjQgKmEsCjE0NDc0OiAgICAgICAgY29uc3Qgc3RydWN0IHRp
bWVzcGVjNjQgKmIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIChhLT50dl9zZWMgPT0gYi0+dHZf
c2VjKSAmJiAoYS0+dHZfbnNlYyA9PSBiLT50dl9uc2VjKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB0aW1lc3BlYzY0
X2NvbXBhcmUoY29uc3Qgc3RydWN0IHRpbWVzcGVjNjQgKmxocywgY29uc3Qgc3RydWN0IHRpbWVz
cGVjNjQgKnJocykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAobGhzLT50dl9zZWMgPCByaHMtPnR2X3Nl
YykKMTQ0NzQ6ICAgcmV0dXJuIC0xOwoxNDQ3NDogIGlmIChsaHMtPnR2X3NlYyA+IHJocy0+dHZf
c2VjKQoxNDQ3NDogICByZXR1cm4gMTsKMTQ0NzQ6ICByZXR1cm4gbGhzLT50dl9uc2VjIC0gcmhz
LT50dl9uc2VjOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBzZXRfbm9ybWFs
aXplZF90aW1lc3BlYzY0KHN0cnVjdCB0aW1lc3BlYzY0ICp0cywgdGltZTY0X3Qgc2VjLCBzNjQg
bnNlYyk7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCB0aW1lc3BlYzY0IHRpbWVzcGVjNjRfYWRkKHN0
cnVjdCB0aW1lc3BlYzY0IGxocywKMTQ0NzQ6ICAgICAgIHN0cnVjdCB0aW1lc3BlYzY0IHJocykK
MTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgdGltZXNwZWM2NCB0c19kZWx0YTsKMTQ0NzQ6ICBzZXRf
bm9ybWFsaXplZF90aW1lc3BlYzY0KCZ0c19kZWx0YSwgbGhzLnR2X3NlYyArIHJocy50dl9zZWMs
CjE0NDc0OiAgICAgbGhzLnR2X25zZWMgKyByaHMudHZfbnNlYyk7CjE0NDc0OiAgcmV0dXJuIHRz
X2RlbHRhOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBz
dHJ1Y3QgdGltZXNwZWM2NCB0aW1lc3BlYzY0X3N1YihzdHJ1Y3QgdGltZXNwZWM2NCBsaHMsCjE0
NDc0OiAgICAgICBzdHJ1Y3QgdGltZXNwZWM2NCByaHMpCjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0
IHRpbWVzcGVjNjQgdHNfZGVsdGE7CjE0NDc0OiAgc2V0X25vcm1hbGl6ZWRfdGltZXNwZWM2NCgm
dHNfZGVsdGEsIGxocy50dl9zZWMgLSByaHMudHZfc2VjLAoxNDQ3NDogICAgIGxocy50dl9uc2Vj
IC0gcmhzLnR2X25zZWMpOwoxNDQ3NDogIHJldHVybiB0c19kZWx0YTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0aW1lc3BlYzY0X3ZhbGlkKGNv
bnN0IHN0cnVjdCB0aW1lc3BlYzY0ICp0cykKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogIGlmICh0
cy0+dHZfc2VjIDwgMCkKMTQ0NzQ6ICAgcmV0dXJuIGZhbHNlOwoxNDQ3NDogCjE0NDc0OiAgaWYg
KCh1bnNpZ25lZCBsb25nKXRzLT50dl9uc2VjID49IDEwMDAwMDAwMDBMKQoxNDQ3NDogICByZXR1
cm4gZmFsc2U7CjE0NDc0OiAgcmV0dXJuIHRydWU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJv
b2wgdGltZXNwZWM2NF92YWxpZF9zdHJpY3QoY29uc3Qgc3RydWN0IHRpbWVzcGVjNjQgKnRzKQox
NDQ3NDogewoxNDQ3NDogIGlmICghdGltZXNwZWM2NF92YWxpZCh0cykpCjE0NDc0OiAgIHJldHVy
biBmYWxzZTsKMTQ0NzQ6IAoxNDQ3NDogIGlmICgodW5zaWduZWQgbG9uZyBsb25nKXRzLT50dl9z
ZWMgPj0gKCgoczY0KX4oKHU2NCkxIDw8IDYzKSkgLyAxMDAwMDAwMDAwTCkpCjE0NDc0OiAgIHJl
dHVybiBmYWxzZTsKMTQ0NzQ6ICByZXR1cm4gdHJ1ZTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCB0aW1lc3BlYzY0X3ZhbGlkX3NldHRvZChjb25zdCBzdHJ1Y3QgdGltZXNwZWM2NCAqdHMp
CjE0NDc0OiB7CjE0NDc0OiAgaWYgKCF0aW1lc3BlYzY0X3ZhbGlkKHRzKSkKMTQ0NzQ6ICAgcmV0
dXJuIGZhbHNlOwoxNDQ3NDogCjE0NDc0OiAgaWYgKCh1bnNpZ25lZCBsb25nIGxvbmcpdHMtPnR2
X3NlYyA+PSAoKCgoczY0KX4oKHU2NCkxIDw8IDYzKSkgLyAxMDAwMDAwMDAwTCkgLSAoMzBMTCAq
IDM2NSAqIDI0ICozNjAwKSkpCjE0NDc0OiAgIHJldHVybiBmYWxzZTsKMTQ0NzQ6ICByZXR1cm4g
dHJ1ZTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTMzICIuL2luY2x1ZGUvbGludXgvdGltZTY0LmgiCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBzNjQgdGltZXNwZWM2NF90b19ucyhjb25zdCBzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuICgoczY0KSB0cy0+dHZfc2VjICogMTAwMDAwMDAwMEwpICsg
dHMtPnR2X25zZWM7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgdGltZXNwZWM2NCBuc190
b190aW1lc3BlYzY0KGNvbnN0IHM2NCBuc2VjKTsKMTQ0NzQ6ICMgMTU0ICIuL2luY2x1ZGUvbGlu
dXgvdGltZTY0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZv
aWQgdGltZXNwZWM2NF9hZGRfbnMoc3RydWN0IHRpbWVzcGVjNjQgKmEsIHU2NCBucykKMTQ0NzQ6
IHsKMTQ0NzQ6ICBhLT50dl9zZWMgKz0gX19pdGVyX2Rpdl91NjRfcmVtKGEtPnR2X25zZWMgKyBu
cywgMTAwMDAwMDAwMEwsICZucyk7CjE0NDc0OiAgYS0+dHZfbnNlYyA9IG5zOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1
Y3QgdGltZXNwZWM2NCB0aW1lc3BlYzY0X2FkZF9zYWZlKGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0
IGxocywKMTQ0NzQ6ICAgICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0IHJocyk7CjE0NDc0OiAj
IDExICIuL2luY2x1ZGUvbGludXgvcmVzdGFydF9ibG9jay5oIiAyCjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCB0aW1lc3BlYzsKMTQ0NzQ6IHN0cnVjdCBvbGRfdGltZXNwZWMzMjsKMTQ0NzQ6IHN0cnVj
dCBwb2xsZmQ7CjE0NDc0OiAKMTQ0NzQ6IGVudW0gdGltZXNwZWNfdHlwZSB7CjE0NDc0OiAgVFRf
Tk9ORSA9IDAsCjE0NDc0OiAgVFRfTkFUSVZFID0gMSwKMTQ0NzQ6ICBUVF9DT01QQVQgPSAyLAox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHJl
c3RhcnRfYmxvY2sgewoxNDQ3NDogIGxvbmcgKCpmbikoc3RydWN0IHJlc3RhcnRfYmxvY2sgKik7
CjE0NDc0OiAgdW5pb24gewoxNDQ3NDogCjE0NDc0OiAgIHN0cnVjdCB7CjE0NDc0OiAgICB1MzIg
KnVhZGRyOwoxNDQ3NDogICAgdTMyIHZhbDsKMTQ0NzQ6ICAgIHUzMiBmbGFnczsKMTQ0NzQ6ICAg
IHUzMiBiaXRzZXQ7CjE0NDc0OiAgICB1NjQgdGltZTsKMTQ0NzQ6ICAgIHUzMiAqdWFkZHIyOwox
NDQ3NDogICB9IGZ1dGV4OwoxNDQ3NDogCjE0NDc0OiAgIHN0cnVjdCB7CjE0NDc0OiAgICBjbG9j
a2lkX3QgY2xvY2tpZDsKMTQ0NzQ6ICAgIGVudW0gdGltZXNwZWNfdHlwZSB0eXBlOwoxNDQ3NDog
ICAgdW5pb24gewoxNDQ3NDogICAgIHN0cnVjdCBfX2tlcm5lbF90aW1lc3BlYyAqcm10cDsKMTQ0
NzQ6ICAgICBzdHJ1Y3Qgb2xkX3RpbWVzcGVjMzIgKmNvbXBhdF9ybXRwOwoxNDQ3NDogICAgfTsK
MTQ0NzQ6ICAgIHU2NCBleHBpcmVzOwoxNDQ3NDogICB9IG5hbm9zbGVlcDsKMTQ0NzQ6IAoxNDQ3
NDogICBzdHJ1Y3QgewoxNDQ3NDogICAgc3RydWN0IHBvbGxmZCAqdWZkczsKMTQ0NzQ6ICAgIGlu
dCBuZmRzOwoxNDQ3NDogICAgaW50IGhhc190aW1lb3V0OwoxNDQ3NDogICAgdW5zaWduZWQgbG9u
ZyB0dl9zZWM7CjE0NDc0OiAgICB1bnNpZ25lZCBsb25nIHR2X25zZWM7CjE0NDc0OiAgIH0gcG9s
bDsKMTQ0NzQ6ICB9OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGxvbmcgZG9fbm9f
cmVzdGFydF9zeXNjYWxsKHN0cnVjdCByZXN0YXJ0X2Jsb2NrICpwYXJtKTsKMTQ0NzQ6ICMgMTQg
Ii4vaW5jbHVkZS9saW51eC90aHJlYWRfaW5mby5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9jdXJyZW50LmgiIDEKMTQ0NzQ6ICMgOSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9jdXJyZW50LmgiCjE0NDc0OiBzdHJ1Y3QgdGFza19zdHJ1Y3Q7CjE0NDc0OiAKMTQ0NzQ6IGV4
dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiIikpKSBfX3R5cGVv
Zl9fKHN0cnVjdCB0YXNrX3N0cnVjdCAqKSBjdXJyZW50X3Rhc2s7CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9f
YXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgc3RydWN0IHRhc2tfc3RydWN0ICpnZXRf
Y3VycmVudCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoeyB0eXBlb2YoY3VycmVudF90
YXNrKSBwZm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGN1cnJlbnRfdGFzaykpIHsgY2FzZSAxOiBh
c20oIm1vdiIgImIgIiIlJSIiZ3MiIjoiICIlIiAiUDEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18p
IDogInAiICgmKGN1cnJlbnRfdGFzaykpKTsgYnJlYWs7IGNhc2UgMjogYXNtKCJtb3YiICJ3ICIi
JSUiImdzIiI6IiAiJSIgIlAxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJwIiAoJihjdXJy
ZW50X3Rhc2spKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSgibW92IiAibCAiIiUlIiJncyIiOiIgIiUi
ICJQMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAicCIgKCYoY3VycmVudF90YXNrKSkpOyBi
cmVhazsgY2FzZSA4OiBhc20oIm1vdiIgInEgIiIlJSIiZ3MiIjoiICIlIiAiUDEiIiwlMCIgOiAi
PXIiIChwZm9fcmV0X18pIDogInAiICgmKGN1cnJlbnRfdGFzaykpKTsgYnJlYWs7IGRlZmF1bHQ6
IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMg
MjIgIi4vaW5jbHVkZS9saW51eC90aHJlYWRfaW5mby5oIiAyCjE0NDc0OiAjIDMxICIuL2luY2x1
ZGUvbGludXgvdGhyZWFkX2luZm8uaCIKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIEJBRF9TVEFDSyA9
IC0xLAoxNDQ3NDogIE5PVF9TVEFDSyA9IDAsCjE0NDc0OiAgR09PRF9GUkFNRSwKMTQ0NzQ6ICBH
T09EX1NUQUNLLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL3RocmVhZF9pbmZvLmgiIDEKMTQ0NzQ6ICMgMTIgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vdGhyZWFkX2luZm8uaCIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYWdl
LmgiIDEKMTQ0NzQ6ICMgMTIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFnZS5oIgoxNDQ3NDog
IyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2VfNjQuaCIgMQoxNDQ3NDogIyAxMSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9wYWdlXzY0LmgiCjE0NDc0OiBleHRlcm4gdW5zaWduZWQgbG9u
ZyBtYXhfcGZuOwoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgcGh5c19iYXNlOwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gdW5zaWduZWQgbG9uZyBwYWdlX29mZnNldF9iYXNlOwoxNDQ3NDogZXh0
ZXJuIHVuc2lnbmVkIGxvbmcgdm1hbGxvY19iYXNlOwoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGxv
bmcgdm1lbW1hcF9iYXNlOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIF9fcGh5c19hZGRy
X25vZGVidWcodW5zaWduZWQgbG9uZyB4KQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcg
eSA9IHggLSAoMHhmZmZmZmZmZjgwMDAwMDAwVUwpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB4
ID0geSArICgoeCA+IHkpID8gcGh5c19iYXNlIDogKCgweGZmZmZmZmZmODAwMDAwMDBVTCkgLSAo
KHVuc2lnbmVkIGxvbmcpcGFnZV9vZmZzZXRfYmFzZSkpKTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVy
biB4OwoxNDQ3NDogfQoxNDQ3NDogIyA0MyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYWdlXzY0
LmgiCjE0NDc0OiB2b2lkIGNsZWFyX3BhZ2Vfb3JpZyh2b2lkICpwYWdlKTsKMTQ0NzQ6IHZvaWQg
Y2xlYXJfcGFnZV9yZXAodm9pZCAqcGFnZSk7CjE0NDc0OiB2b2lkIGNsZWFyX3BhZ2VfZXJtcyh2
b2lkICpwYWdlKTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjbGVhcl9wYWdlKHZvaWQgKnBhZ2UpCjE0
NDc0OiB7CjE0NDc0OiAgYXNtIF9faW5saW5lIHZvbGF0aWxlICgiIyBBTFQ6IG9sZGluc3RyMlxu
IiAiNjYxOlxuXHQiICJjYWxsICVQW29sZF0iICJcbjY2MjpcbiIgIiMgQUxUOiBwYWRkaW5nMlxu
IiAiLnNraXAgLSgoIiAiKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpIF4gKCgoIiAiNjY1
IiIxIiJmLSIiNjY0IiIxIiJmIiAiKSBeICgiICI2NjUiIjIiImYtIiI2NjQiIjIiImYiICIpKSAm
IC0oLSgoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiKSA8ICgiICI2NjUiIjIiImYtIiI2NjQi
IjIiImYiICIpKSkpKSIgIiAtICgiICI2NjJiLTY2MWIiICIpKSA+IDApICogIiAiKCIgIigoIiAi
NjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiKSBeICgoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIg
IikgXiAoIiAiNjY1IiIyIiJmLSIiNjY0IiIyIiJmIiAiKSkgJiAtKC0oKCIgIjY2NSIiMSIiZi0i
IjY2NCIiMSIiZiIgIikgPCAoIiAiNjY1IiIyIiJmLSIiNjY0IiIyIiJmIiAiKSkpKSkiICIgLSAo
IiAiNjYyYi02NjFiIiAiKSksIDB4OTBcbiIgIjY2MyIgIjpcbiIgIi5wdXNoc2VjdGlvbiAuYWx0
aW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgLmxvbmcgNjYxYiAtIC5cbiIgIiAubG9uZyAiICI2NjQi
IjEiImYgLSAuXG4iICIgLndvcmQgIiAiKCAzKjMyKzE2KSIgIlxuIiAiIC5ieXRlICIgIjY2MyIi
Yi02NjFiIiAiXG4iICIgLmJ5dGUgIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiXG4iICIgLmJ5
dGUgIiAiNjYzIiJiLTY2MmIiICJcbiIgIiAubG9uZyA2NjFiIC0gLlxuIiAiIC5sb25nICIgIjY2
NCIiMiIiZiAtIC5cbiIgIiAud29yZCAiICIoIDkqMzIrIDkpIiAiXG4iICIgLmJ5dGUgIiAiNjYz
IiJiLTY2MWIiICJcbiIgIiAuYnl0ZSAiICI2NjUiIjIiImYtIiI2NjQiIjIiImYiICJcbiIgIiAu
Ynl0ZSAiICI2NjMiImItNjYyYiIgIlxuIiAiLnBvcHNlY3Rpb25cbiIgIi5wdXNoc2VjdGlvbiAu
YWx0aW5zdHJfcmVwbGFjZW1lbnQsIFwiYXhcIlxuIiAiIyBBTFQ6IHJlcGxhY2VtZW50ICIgIjEi
ICJcbiIgIjY2NCIiMSIiOlxuXHQiICJjYWxsICVQW25ldzFdIiAiXG4iICI2NjUiIjEiICI6XG4i
ICIjIEFMVDogcmVwbGFjZW1lbnQgIiAiMiIgIlxuIiAiNjY0IiIyIiI6XG5cdCIgImNhbGwgJVBb
bmV3Ml0iICJcbiIgIjY2NSIiMiIgIjpcbiIgIi5wb3BzZWN0aW9uXG4iIDogIj1EIiAocGFnZSks
ICIrciIgKGN1cnJlbnRfc3RhY2tfcG9pbnRlcikgOiBbb2xkXSAiaSIgKGNsZWFyX3BhZ2Vfb3Jp
ZyksIFtuZXcxXSAiaSIgKGNsZWFyX3BhZ2VfcmVwKSwgW25ldzJdICJpIiAoY2xlYXJfcGFnZV9l
cm1zKSwgIjAiIChwYWdlKSA6ICJjYyIsICJtZW1vcnkiLCAicmF4IiwgInJjeCIpCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgY29weV9wYWdlKHZvaWQg
KnRvLCB2b2lkICpmcm9tKTsKMTQ0NzQ6ICMgMTMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFn
ZS5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgcGFnZTsKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvcmFu
Z2UuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcmFu
Z2UgewoxNDQ3NDogIHU2NCBzdGFydDsKMTQ0NzQ6ICB1NjQgZW5kOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogaW50IGFkZF9yYW5nZShzdHJ1Y3QgcmFuZ2UgKnJhbmdlLCBpbnQgYXosIGludCBu
cl9yYW5nZSwKMTQ0NzQ6ICAgdTY0IHN0YXJ0LCB1NjQgZW5kKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBpbnQgYWRkX3JhbmdlX3dpdGhfbWVyZ2Uoc3RydWN0IHJhbmdlICpyYW5nZSwgaW50IGF6
LCBpbnQgbnJfcmFuZ2UsCjE0NDc0OiAgICAgdTY0IHN0YXJ0LCB1NjQgZW5kKTsKMTQ0NzQ6IAox
NDQ3NDogdm9pZCBzdWJ0cmFjdF9yYW5nZShzdHJ1Y3QgcmFuZ2UgKnJhbmdlLCBpbnQgYXosIHU2
NCBzdGFydCwgdTY0IGVuZCk7CjE0NDc0OiAKMTQ0NzQ6IGludCBjbGVhbl9zb3J0X3JhbmdlKHN0
cnVjdCByYW5nZSAqcmFuZ2UsIGludCBheik7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgc29ydF9yYW5n
ZShzdHJ1Y3QgcmFuZ2UgKnJhbmdlLCBpbnQgbnJfcmFuZ2UpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHJlc291cmNlX3NpemVfdCBjYXBfcmVzb3VyY2UodTY0IHZhbCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICBpZiAodmFsID4gKChyZXNvdXJjZV9zaXplX3QpfjApKQoxNDQ3NDogICByZXR1cm4gKChyZXNv
dXJjZV9zaXplX3QpfjApOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIHZhbDsKMTQ0NzQ6IH0KMTQ0
NzQ6ICMgMjIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFnZS5oIiAyCjE0NDc0OiBleHRlcm4g
c3RydWN0IHJhbmdlIHBmbl9tYXBwZWRbXTsKMTQ0NzQ6IGV4dGVybiBpbnQgbnJfcGZuX21hcHBl
ZDsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjbGVhcl91c2VyX3BhZ2Uodm9pZCAqcGFnZSwgdW5zaWdu
ZWQgbG9uZyB2YWRkciwKMTQ0NzQ6ICAgICAgICBzdHJ1Y3QgcGFnZSAqcGcpCjE0NDc0OiB7CjE0
NDc0OiAgY2xlYXJfcGFnZShwYWdlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjb3B5
X3VzZXJfcGFnZSh2b2lkICp0bywgdm9pZCAqZnJvbSwgdW5zaWduZWQgbG9uZyB2YWRkciwKMTQ0
NzQ6ICAgICAgIHN0cnVjdCBwYWdlICp0b3BhZ2UpCjE0NDc0OiB7CjE0NDc0OiAgY29weV9wYWdl
KHRvLCBmcm9tKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNzEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
cGFnZS5oIgoxNDQ3NDogZXh0ZXJuIGJvb2wgX192aXJ0X2FkZHJfdmFsaWQodW5zaWduZWQgbG9u
ZyBrYWRkcik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9p
bmNsdWRlL2FzbS1nZW5lcmljL21lbW9yeV9tb2RlbC5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3Bmbi5oIiAxCjE0NDc0OiAj
IDEzICIuL2luY2x1ZGUvbGludXgvcGZuLmgiCjE0NDc0OiB0eXBlZGVmIHN0cnVjdCB7CjE0NDc0
OiAgdTY0IHZhbDsKMTQ0NzQ6IH0gcGZuX3Q7CjE0NDc0OiAjIDYgIi4vaW5jbHVkZS9hc20tZ2Vu
ZXJpYy9tZW1vcnlfbW9kZWwuaCIgMgoxNDQ3NDogIyA3NyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9wYWdlLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2dldG9yZGVyLmgi
IDEKMTQ0NzQ6ICMgMjkgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9nZXRvcmRlci5oIgoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19jb25zdF9fKSkgaW50IGdldF9vcmRlcih1bnNpZ25lZCBsb25nIHNp
emUpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKHNpemUpKSB7CjE0
NDc0OiAgIGlmICghc2l6ZSkKMTQ0NzQ6ICAgIHJldHVybiA2NCAtIDEyOwoxNDQ3NDogCjE0NDc0
OiAgIGlmIChzaXplIDwgKDFVTCA8PCAxMikpCjE0NDc0OiAgICByZXR1cm4gMDsKMTQ0NzQ6IAox
NDQ3NDogICByZXR1cm4gKCBfX2J1aWx0aW5fY29uc3RhbnRfcCgoc2l6ZSkgLSAxKSA/ICggX19i
dWlsdGluX2NvbnN0YW50X3AoKHNpemUpIC0gMSkgPyAoICgoc2l6ZSkgLSAxKSA8IDIgPyAwIDog
KChzaXplKSAtIDEpICYgKDFVTEwgPDwgNjMpID8gNjMgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8
PCA2MikgPyA2MiA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDYxKSA/IDYxIDogKChzaXplKSAt
IDEpICYgKDFVTEwgPDwgNjApID8gNjAgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCA1OSkgPyA1
OSA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDU4KSA/IDU4IDogKChzaXplKSAtIDEpICYgKDFV
TEwgPDwgNTcpID8gNTcgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCA1NikgPyA1NiA6ICgoc2l6
ZSkgLSAxKSAmICgxVUxMIDw8IDU1KSA/IDU1IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgNTQp
ID8gNTQgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCA1MykgPyA1MyA6ICgoc2l6ZSkgLSAxKSAm
ICgxVUxMIDw8IDUyKSA/IDUyIDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgNTEpID8gNTEgOiAo
KHNpemUpIC0gMSkgJiAoMVVMTCA8PCA1MCkgPyA1MCA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8
IDQ5KSA/IDQ5IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgNDgpID8gNDggOiAoKHNpemUpIC0g
MSkgJiAoMVVMTCA8PCA0NykgPyA0NyA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDQ2KSA/IDQ2
IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgNDUpID8gNDUgOiAoKHNpemUpIC0gMSkgJiAoMVVM
TCA8PCA0NCkgPyA0NCA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDQzKSA/IDQzIDogKChzaXpl
KSAtIDEpICYgKDFVTEwgPDwgNDIpID8gNDIgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCA0MSkg
PyA0MSA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDQwKSA/IDQwIDogKChzaXplKSAtIDEpICYg
KDFVTEwgPDwgMzkpID8gMzkgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAzOCkgPyAzOCA6ICgo
c2l6ZSkgLSAxKSAmICgxVUxMIDw8IDM3KSA/IDM3IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwg
MzYpID8gMzYgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAzNSkgPyAzNSA6ICgoc2l6ZSkgLSAx
KSAmICgxVUxMIDw8IDM0KSA/IDM0IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgMzMpID8gMzMg
OiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAzMikgPyAzMiA6ICgoc2l6ZSkgLSAxKSAmICgxVUxM
IDw8IDMxKSA/IDMxIDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgMzApID8gMzAgOiAoKHNpemUp
IC0gMSkgJiAoMVVMTCA8PCAyOSkgPyAyOSA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDI4KSA/
IDI4IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgMjcpID8gMjcgOiAoKHNpemUpIC0gMSkgJiAo
MVVMTCA8PCAyNikgPyAyNiA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDI1KSA/IDI1IDogKChz
aXplKSAtIDEpICYgKDFVTEwgPDwgMjQpID8gMjQgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAy
MykgPyAyMyA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDIyKSA/IDIyIDogKChzaXplKSAtIDEp
ICYgKDFVTEwgPDwgMjEpID8gMjEgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAyMCkgPyAyMCA6
ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDE5KSA/IDE5IDogKChzaXplKSAtIDEpICYgKDFVTEwg
PDwgMTgpID8gMTggOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAxNykgPyAxNyA6ICgoc2l6ZSkg
LSAxKSAmICgxVUxMIDw8IDE2KSA/IDE2IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgMTUpID8g
MTUgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAxNCkgPyAxNCA6ICgoc2l6ZSkgLSAxKSAmICgx
VUxMIDw8IDEzKSA/IDEzIDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgMTIpID8gMTIgOiAoKHNp
emUpIC0gMSkgJiAoMVVMTCA8PCAxMSkgPyAxMSA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDEw
KSA/IDEwIDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgOSkgPyA5IDogKChzaXplKSAtIDEpICYg
KDFVTEwgPDwgOCkgPyA4IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgNykgPyA3IDogKChzaXpl
KSAtIDEpICYgKDFVTEwgPDwgNikgPyA2IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgNSkgPyA1
IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgNCkgPyA0IDogKChzaXplKSAtIDEpICYgKDFVTEwg
PDwgMykgPyAzIDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgMikgPyAyIDogMSkgOiAtMSkgOiAo
c2l6ZW9mKChzaXplKSAtIDEpIDw9IDQpID8gX19pbG9nMl91MzIoKHNpemUpIC0gMSkgOiBfX2ls
b2cyX3U2NCgoc2l6ZSkgLSAxKSApIC0gMTIgKyAxOwoxNDQ3NDogIH0KMTQ0NzQ6IAoxNDQ3NDog
IHNpemUtLTsKMTQ0NzQ6ICBzaXplID4+PSAxMjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICByZXR1cm4gZmxzNjQoc2l6ZSk7CjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNzggIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vcGFnZS5oIiAyCjE0NDc0OiAjIDEzICIuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2
L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMTUgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vdGhyZWFkX2luZm8uaCIgMgoxNDQ3NDogIyA1MiAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5oIgoxNDQ3NDogc3RydWN0IHRhc2tfc3RydWN0Owox
NDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaCIgMQoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vcHJvY2Vzc29yLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHRhc2tfc3RydWN0OwoxNDQ3NDogc3RydWN0
IG1tX3N0cnVjdDsKMTQ0NzQ6IHN0cnVjdCBpb19iaXRtYXA7CjE0NDc0OiBzdHJ1Y3Qgdm04NjsK
MTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21hdGhfZW11LmgiIDEK
MTQ0NzQ6ICMgMTEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbWF0aF9lbXUuaCIKMTQ0NzQ6IHN0
cnVjdCBtYXRoX2VtdV9pbmZvIHsKMTQ0NzQ6ICBsb25nIF9fX29yaWdfZWlwOwoxNDQ3NDogIHN0
cnVjdCBwdF9yZWdzICpyZWdzOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTQgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vcHJvY2Vzc29yLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2lu
Y2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMTYgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiIDIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNs
dWRlL3VhcGkvYXNtL3NpZ2NvbnRleHQuaCIgMQoxNDQ3NDogIyA0MCAiLi9hcmNoL3g4Ni9pbmNs
dWRlL3VhcGkvYXNtL3NpZ2NvbnRleHQuaCIKMTQ0NzQ6IHN0cnVjdCBfZnB4X3N3X2J5dGVzIHsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIF9fdTMyIG1hZ2ljMTsKMTQ0
NzQ6ICMgNTQgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9zaWdjb250ZXh0LmgiCjE0NDc0
OiAgX191MzIgZXh0ZW5kZWRfc2l6ZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgX191NjQgeGZlYXR1cmVzOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiB4c3RhdGVfc2l6ZTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgX191MzIgcGFkZGluZ1s3XTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDg1ICIuL2FyY2gv
eDg2L2luY2x1ZGUvdWFwaS9hc20vc2lnY29udGV4dC5oIgoxNDQ3NDogc3RydWN0IF9mcHJlZyB7
CjE0NDc0OiAgX191MTYgc2lnbmlmaWNhbmRbNF07CjE0NDc0OiAgX191MTYgZXhwb25lbnQ7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBfZnB4cmVnIHsKMTQ0NzQ6ICBf
X3UxNiBzaWduaWZpY2FuZFs0XTsKMTQ0NzQ6ICBfX3UxNiBleHBvbmVudDsKMTQ0NzQ6ICBfX3Ux
NiBwYWRkaW5nWzNdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgX3ht
bXJlZyB7CjE0NDc0OiAgX191MzIgZWxlbWVudFs0XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgX2Zwc3RhdGVf
MzIgewoxNDQ3NDogCjE0NDc0OiAgX191MzIgY3c7CjE0NDc0OiAgX191MzIgc3c7CjE0NDc0OiAg
X191MzIgdGFnOwoxNDQ3NDogIF9fdTMyIGlwb2ZmOwoxNDQ3NDogIF9fdTMyIGNzc2VsOwoxNDQ3
NDogIF9fdTMyIGRhdGFvZmY7CjE0NDc0OiAgX191MzIgZGF0YXNlbDsKMTQ0NzQ6ICBzdHJ1Y3Qg
X2ZwcmVnIF9zdFs4XTsKMTQ0NzQ6ICBfX3UxNiBzdGF0dXM7CjE0NDc0OiAgX191MTYgbWFnaWM7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191MzIgX2Z4c3JfZW52WzZdOwoxNDQ3
NDogIF9fdTMyIG14Y3NyOwoxNDQ3NDogIF9fdTMyIHJlc2VydmVkOwoxNDQ3NDogIHN0cnVjdCBf
ZnB4cmVnIF9meHNyX3N0WzhdOwoxNDQ3NDogIHN0cnVjdCBfeG1tcmVnIF94bW1bOF07CjE0NDc0
OiAgdW5pb24gewoxNDQ3NDogICBfX3UzMiBwYWRkaW5nMVs0NF07CjE0NDc0OiAgIF9fdTMyIHBh
ZGRpbmdbNDRdOwoxNDQ3NDogIH07CjE0NDc0OiAKMTQ0NzQ6ICB1bmlvbiB7CjE0NDc0OiAgIF9f
dTMyIHBhZGRpbmcyWzEyXTsKMTQ0NzQ6ICAgc3RydWN0IF9mcHhfc3dfYnl0ZXMgc3dfcmVzZXJ2
ZWQ7CjE0NDc0OiAgfTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDE0OSAiLi9hcmNoL3g4Ni9pbmNsdWRl
L3VhcGkvYXNtL3NpZ2NvbnRleHQuaCIKMTQ0NzQ6IHN0cnVjdCBfZnBzdGF0ZV82NCB7CjE0NDc0
OiAgX191MTYgY3dkOwoxNDQ3NDogIF9fdTE2IHN3ZDsKMTQ0NzQ6IAoxNDQ3NDogIF9fdTE2IHR3
ZDsKMTQ0NzQ6ICBfX3UxNiBmb3A7CjE0NDc0OiAgX191NjQgcmlwOwoxNDQ3NDogIF9fdTY0IHJk
cDsKMTQ0NzQ6ICBfX3UzMiBteGNzcjsKMTQ0NzQ6ICBfX3UzMiBteGNzcl9tYXNrOwoxNDQ3NDog
IF9fdTMyIHN0X3NwYWNlWzMyXTsKMTQ0NzQ6ICBfX3UzMiB4bW1fc3BhY2VbNjRdOwoxNDQ3NDog
IF9fdTMyIHJlc2VydmVkMlsxMl07CjE0NDc0OiAgdW5pb24gewoxNDQ3NDogICBfX3UzMiByZXNl
cnZlZDNbMTJdOwoxNDQ3NDogICBzdHJ1Y3QgX2ZweF9zd19ieXRlcyBzd19yZXNlcnZlZDsKMTQ0
NzQ6ICB9OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IF9oZWFkZXIgewoxNDQ3NDogIF9fdTY0IHhm
ZWF0dXJlczsKMTQ0NzQ6ICBfX3U2NCByZXNlcnZlZDFbMl07CjE0NDc0OiAgX191NjQgcmVzZXJ2
ZWQyWzVdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IF95bW1oX3N0YXRlIHsKMTQ0
NzQ6IAoxNDQ3NDogIF9fdTMyIHltbWhfc3BhY2VbNjRdOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTky
ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vc2lnY29udGV4dC5oIgoxNDQ3NDogc3RydWN0
IF94c3RhdGUgewoxNDQ3NDogIHN0cnVjdCBfZnBzdGF0ZV82NCBmcHN0YXRlOwoxNDQ3NDogIHN0
cnVjdCBfaGVhZGVyIHhzdGF0ZV9oZHI7CjE0NDc0OiAgc3RydWN0IF95bW1oX3N0YXRlIHltbWg7
CjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBzaWdjb250ZXh0XzMyIHsKMTQ0NzQ6ICBfX3UxNiBncywgX19nc2g7CjE0NDc0OiAg
X191MTYgZnMsIF9fZnNoOwoxNDQ3NDogIF9fdTE2IGVzLCBfX2VzaDsKMTQ0NzQ6ICBfX3UxNiBk
cywgX19kc2g7CjE0NDc0OiAgX191MzIgZGk7CjE0NDc0OiAgX191MzIgc2k7CjE0NDc0OiAgX191
MzIgYnA7CjE0NDc0OiAgX191MzIgc3A7CjE0NDc0OiAgX191MzIgYng7CjE0NDc0OiAgX191MzIg
ZHg7CjE0NDc0OiAgX191MzIgY3g7CjE0NDc0OiAgX191MzIgYXg7CjE0NDc0OiAgX191MzIgdHJh
cG5vOwoxNDQ3NDogIF9fdTMyIGVycjsKMTQ0NzQ6ICBfX3UzMiBpcDsKMTQ0NzQ6ICBfX3UxNiBj
cywgX19jc2g7CjE0NDc0OiAgX191MzIgZmxhZ3M7CjE0NDc0OiAgX191MzIgc3BfYXRfc2lnbmFs
OwoxNDQ3NDogIF9fdTE2IHNzLCBfX3NzaDsKMTQ0NzQ6ICMgMjMwICIuL2FyY2gveDg2L2luY2x1
ZGUvdWFwaS9hc20vc2lnY29udGV4dC5oIgoxNDQ3NDogIF9fdTMyIGZwc3RhdGU7CjE0NDc0OiAg
X191MzIgb2xkbWFzazsKMTQ0NzQ6ICBfX3UzMiBjcjI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc2lnY29udGV4dF82NCB7CjE0NDc0OiAg
X191NjQgcjg7CjE0NDc0OiAgX191NjQgcjk7CjE0NDc0OiAgX191NjQgcjEwOwoxNDQ3NDogIF9f
dTY0IHIxMTsKMTQ0NzQ6ICBfX3U2NCByMTI7CjE0NDc0OiAgX191NjQgcjEzOwoxNDQ3NDogIF9f
dTY0IHIxNDsKMTQ0NzQ6ICBfX3U2NCByMTU7CjE0NDc0OiAgX191NjQgZGk7CjE0NDc0OiAgX191
NjQgc2k7CjE0NDc0OiAgX191NjQgYnA7CjE0NDc0OiAgX191NjQgYng7CjE0NDc0OiAgX191NjQg
ZHg7CjE0NDc0OiAgX191NjQgYXg7CjE0NDc0OiAgX191NjQgY3g7CjE0NDc0OiAgX191NjQgc3A7
CjE0NDc0OiAgX191NjQgaXA7CjE0NDc0OiAgX191NjQgZmxhZ3M7CjE0NDc0OiAgX191MTYgY3M7
CjE0NDc0OiAgX191MTYgZ3M7CjE0NDc0OiAgX191MTYgZnM7CjE0NDc0OiAgX191MTYgc3M7CjE0
NDc0OiAgX191NjQgZXJyOwoxNDQ3NDogIF9fdTY0IHRyYXBubzsKMTQ0NzQ6ICBfX3U2NCBvbGRt
YXNrOwoxNDQ3NDogIF9fdTY0IGNyMjsKMTQ0NzQ6ICMgMjczICIuL2FyY2gveDg2L2luY2x1ZGUv
dWFwaS9hc20vc2lnY29udGV4dC5oIgoxNDQ3NDogIF9fdTY0IGZwc3RhdGU7CjE0NDc0OiAgX191
NjQgcmVzZXJ2ZWQxWzhdOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTcgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vcHJvY2Vzc29yLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXNyLmgiIDEKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L21zci1pbmRleC5oIiAxCjE0NDc0OiAjIDYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXNyLmgi
IDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2
L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL2Vycm5vLmgiIDEKMTQ0NzQ6ICMgMSAiLi9pbmNs
dWRlL3VhcGkvYXNtLWdlbmVyaWMvZXJybm8uaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL2Vycm5vLWJhc2Uu
aCIgMQoxNDQ3NDogIyA2ICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9lcnJuby5oIiAyCjE0
NDc0OiAjIDIgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaS9hc20vZXJybm8uaCIg
MgoxNDQ3NDogIyAxMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3IuaCIgMgoxNDQ3NDogIyAx
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdW1hc2suaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9jcHVtYXNrLmgiIDEKMTQ0
NzQ6ICMgMTIgIi4vaW5jbHVkZS9saW51eC9jcHVtYXNrLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVk
ZS9saW51eC9iaXRtYXAuaCIgMQoxNDQ3NDogIyA5ICIuL2luY2x1ZGUvbGludXgvYml0bWFwLmgi
CjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9zdHJpbmcuaCIgMQoxNDQ3NDogIyAxMCAiLi9p
bmNsdWRlL2xpbnV4L3N0cmluZy5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9z
dHJpbmcuaCIgMQoxNDQ3NDogIyAxMSAiLi9pbmNsdWRlL2xpbnV4L3N0cmluZy5oIiAyCjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiBjaGFyICpzdHJuZHVwX3VzZXIoY29uc3QgY2hhciAqLCBsb25nKTsK
MTQ0NzQ6IGV4dGVybiB2b2lkICptZW1kdXBfdXNlcihjb25zdCB2b2lkICosIHNpemVfdCk7CjE0
NDc0OiBleHRlcm4gdm9pZCAqdm1lbWR1cF91c2VyKGNvbnN0IHZvaWQgKiwgc2l6ZV90KTsKMTQ0
NzQ6IGV4dGVybiB2b2lkICptZW1kdXBfdXNlcl9udWwoY29uc3Qgdm9pZCAqLCBzaXplX3QpOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vc3RyaW5nLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3N0cmluZ182NC5oIiAxCjE0NDc0OiAjIDE0
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3N0cmluZ182NC5oIgoxNDQ3NDogZXh0ZXJuIHZvaWQg
Km1lbWNweSh2b2lkICp0bywgY29uc3Qgdm9pZCAqZnJvbSwgc2l6ZV90IGxlbik7CjE0NDc0OiBl
eHRlcm4gdm9pZCAqX19tZW1jcHkodm9pZCAqdG8sIGNvbnN0IHZvaWQgKmZyb20sIHNpemVfdCBs
ZW4pOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZvaWQgKm1lbXNldCh2b2lkICpzLCBpbnQgYywg
c2l6ZV90IG4pOwoxNDQ3NDogdm9pZCAqX19tZW1zZXQodm9pZCAqcywgaW50IGMsIHNpemVfdCBu
KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICptZW1zZXQxNih1aW50MTZfdCAqcywgdWlu
dDE2X3Qgdiwgc2l6ZV90IG4pCjE0NDc0OiB7CjE0NDc0OiAgbG9uZyBkMCwgZDE7CjE0NDc0OiAg
YXNtIHZvbGF0aWxlKCJyZXBcblx0IgoxNDQ3NDogICAgICAgICJzdG9zdyIKMTQ0NzQ6ICAgICAg
ICA6ICI9JmMiIChkMCksICI9JkQiIChkMSkKMTQ0NzQ6ICAgICAgICA6ICJhIiAodiksICIxIiAo
cyksICIwIiAobikKMTQ0NzQ6ICAgICAgICA6ICJtZW1vcnkiKTsKMTQ0NzQ6ICByZXR1cm4gczsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICptZW1zZXQzMih1aW50MzJfdCAq
cywgdWludDMyX3Qgdiwgc2l6ZV90IG4pCjE0NDc0OiB7CjE0NDc0OiAgbG9uZyBkMCwgZDE7CjE0
NDc0OiAgYXNtIHZvbGF0aWxlKCJyZXBcblx0IgoxNDQ3NDogICAgICAgICJzdG9zbCIKMTQ0NzQ6
ICAgICAgICA6ICI9JmMiIChkMCksICI9JkQiIChkMSkKMTQ0NzQ6ICAgICAgICA6ICJhIiAodiks
ICIxIiAocyksICIwIiAobikKMTQ0NzQ6ICAgICAgICA6ICJtZW1vcnkiKTsKMTQ0NzQ6ICByZXR1
cm4gczsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICptZW1zZXQ2NCh1aW50
NjRfdCAqcywgdWludDY0X3Qgdiwgc2l6ZV90IG4pCjE0NDc0OiB7CjE0NDc0OiAgbG9uZyBkMCwg
ZDE7CjE0NDc0OiAgYXNtIHZvbGF0aWxlKCJyZXBcblx0IgoxNDQ3NDogICAgICAgICJzdG9zcSIK
MTQ0NzQ6ICAgICAgICA6ICI9JmMiIChkMCksICI9JkQiIChkMSkKMTQ0NzQ6ICAgICAgICA6ICJh
IiAodiksICIxIiAocyksICIwIiAobikKMTQ0NzQ6ICAgICAgICA6ICJtZW1vcnkiKTsKMTQ0NzQ6
ICByZXR1cm4gczsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lkICptZW1tb3Zl
KHZvaWQgKmRlc3QsIGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IGNvdW50KTsKMTQ0NzQ6IHZvaWQg
Kl9fbWVtbW92ZSh2b2lkICpkZXN0LCBjb25zdCB2b2lkICpzcmMsIHNpemVfdCBjb3VudCk7CjE0
NDc0OiAKMTQ0NzQ6IGludCBtZW1jbXAoY29uc3Qgdm9pZCAqY3MsIGNvbnN0IHZvaWQgKmN0LCBz
aXplX3QgY291bnQpOwoxNDQ3NDogc2l6ZV90IHN0cmxlbihjb25zdCBjaGFyICpzKTsKMTQ0NzQ6
IGNoYXIgKnN0cmNweShjaGFyICpkZXN0LCBjb25zdCBjaGFyICpzcmMpOwoxNDQ3NDogY2hhciAq
c3RyY2F0KGNoYXIgKmRlc3QsIGNvbnN0IGNoYXIgKnNyYyk7CjE0NDc0OiBpbnQgc3RyY21wKGNv
bnN0IGNoYXIgKmNzLCBjb25zdCBjaGFyICpjdCk7CjE0NDc0OiAjIDg2ICIuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL3N0cmluZ182NC5oIgoxNDQ3NDogX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNl
ZF9yZXN1bHRfXykpIHVuc2lnbmVkIGxvbmcgX19tZW1jcHlfbWNzYWZlKHZvaWQgKmRzdCwgY29u
c3Qgdm9pZCAqc3JjLAoxNDQ3NDogICBzaXplX3QgY250KTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qg
c3RhdGljX2tleV9mYWxzZSBtY3NhZmVfa2V5OwoxNDQ3NDogIyAxMDUgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vc3RyaW5nXzY0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSB1bnNpZ25lZCBs
b25nCjE0NDc0OiBtZW1jcHlfbWNzYWZlKHZvaWQgKmRzdCwgY29uc3Qgdm9pZCAqc3JjLCBzaXpl
X3QgY250KQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAgaWYgKCh7IGJvb2wgYnJhbmNoOyBpZiAo
X19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0eXBlb2YoKiZtY3NhZmVfa2V5KSwgc3RydWN0
IHN0YXRpY19rZXlfdHJ1ZSkpIGJyYW5jaCA9IGFyY2hfc3RhdGljX2JyYW5jaF9qdW1wKCYoJm1j
c2FmZV9rZXkpLT5rZXksIGZhbHNlKTsgZWxzZSBpZiAoX19idWlsdGluX3R5cGVzX2NvbXBhdGli
bGVfcCh0eXBlb2YoKiZtY3NhZmVfa2V5KSwgc3RydWN0IHN0YXRpY19rZXlfZmFsc2UpKSBicmFu
Y2ggPSBhcmNoX3N0YXRpY19icmFuY2goJigmbWNzYWZlX2tleSktPmtleSwgZmFsc2UpOyBlbHNl
IGJyYW5jaCA9IF9fX193cm9uZ19icmFuY2hfZXJyb3IoKTsgX19idWlsdGluX2V4cGVjdCghIShi
cmFuY2gpLCAwKTsgfSkpCjE0NDc0OiAgIHJldHVybiBfX21lbWNweV9tY3NhZmUoZHN0LCBzcmMs
IGNudCk7CjE0NDc0OiAgZWxzZQoxNDQ3NDogCjE0NDc0OiAgIG1lbWNweShkc3QsIHNyYywgY250
KTsKMTQ0NzQ6ICByZXR1cm4gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHZvaWQgX19tZW1jcHlfZmx1c2hjYWNoZSh2b2lkICpkc3QsIGNvbnN0IHZvaWQgKnNyYywg
c2l6ZV90IGNudCk7CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZv
aWQgbWVtY3B5X2ZsdXNoY2FjaGUodm9pZCAqZHN0LCBjb25zdCB2b2lkICpzcmMsIHNpemVfdCBj
bnQpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKGNudCkpIHsKMTQ0
NzQ6ICAgc3dpdGNoIChjbnQpIHsKMTQ0NzQ6ICAgIGNhc2UgNDoKMTQ0NzQ6ICAgICBhc20gKCJt
b3ZudGlsICUxLCAlMCIgOiAiPW0iKCoodTMyICopZHN0KSA6ICJyIigqKHUzMiAqKXNyYykpOwox
NDQ3NDogICAgIHJldHVybjsKMTQ0NzQ6ICAgIGNhc2UgODoKMTQ0NzQ6ICAgICBhc20gKCJtb3Zu
dGlxICUxLCAlMCIgOiAiPW0iKCoodTY0ICopZHN0KSA6ICJyIigqKHU2NCAqKXNyYykpOwoxNDQ3
NDogICAgIHJldHVybjsKMTQ0NzQ6ICAgIGNhc2UgMTY6CjE0NDc0OiAgICAgYXNtICgibW92bnRp
cSAlMSwgJTAiIDogIj1tIigqKHU2NCAqKWRzdCkgOiAiciIoKih1NjQgKilzcmMpKTsKMTQ0NzQ6
ICAgICBhc20gKCJtb3ZudGlxICUxLCAlMCIgOiAiPW0iKCoodTY0ICopKGRzdCArIDgpKSA6ICJy
IigqKHU2NCAqKShzcmMgKyA4KSkpOwoxNDQ3NDogICAgIHJldHVybjsKMTQ0NzQ6ICAgfQoxNDQ3
NDogIH0KMTQ0NzQ6ICBfX21lbWNweV9mbHVzaGNhY2hlKGRzdCwgc3JjLCBjbnQpOwoxNDQ3NDog
fQoxNDQ3NDogIyA2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3N0cmluZy5oIiAyCjE0NDc0OiAj
IDIxICIuL2luY2x1ZGUvbGludXgvc3RyaW5nLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBl
eHRlcm4gY2hhciAqIHN0cmNweShjaGFyICosY29uc3QgY2hhciAqKTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gY2hhciAqIHN0cm5jcHkoY2hhciAqLGNvbnN0IGNoYXIgKiwgX19rZXJu
ZWxfc2l6ZV90KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzaXplX3Qgc3RybGNweShjaGFyICos
IGNvbnN0IGNoYXIgKiwgc2l6ZV90KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzc2l6ZV90IHN0
cnNjcHkoY2hhciAqLCBjb25zdCBjaGFyICosIHNpemVfdCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzc2l6ZV90IHN0cnNjcHlfcGFkKGNoYXIgKmRlc3QsIGNvbnN0IGNoYXIgKnNy
Yywgc2l6ZV90IGNvdW50KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gY2hhciAqIHN0
cmNhdChjaGFyICosIGNvbnN0IGNoYXIgKik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IGNoYXIgKiBzdHJuY2F0KGNoYXIgKiwgY29uc3QgY2hhciAqLCBfX2tlcm5lbF9zaXplX3QpOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzaXplX3Qgc3RybGNhdChjaGFyICosIGNvbnN0
IGNoYXIgKiwgX19rZXJuZWxfc2l6ZV90KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4g
aW50IHN0cmNtcChjb25zdCBjaGFyICosY29uc3QgY2hhciAqKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBleHRlcm4gaW50IHN0cm5jbXAoY29uc3QgY2hhciAqLGNvbnN0IGNoYXIgKixfX2tlcm5l
bF9zaXplX3QpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgc3RyY2FzZWNtcChj
b25zdCBjaGFyICpzMSwgY29uc3QgY2hhciAqczIpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4
dGVybiBpbnQgc3RybmNhc2VjbXAoY29uc3QgY2hhciAqczEsIGNvbnN0IGNoYXIgKnMyLCBzaXpl
X3Qgbik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGNoYXIgKiBzdHJjaHIoY29uc3Qg
Y2hhciAqLGludCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGNoYXIgKiBzdHJjaHJu
dWwoY29uc3QgY2hhciAqLGludCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBjaGFyICogc3RybmNo
cm51bChjb25zdCBjaGFyICosIHNpemVfdCwgaW50KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGNo
YXIgKiBzdHJuY2hyKGNvbnN0IGNoYXIgKiwgc2l6ZV90LCBpbnQpOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IGV4dGVybiBjaGFyICogc3RycmNocihjb25zdCBjaGFyICosaW50KTsKMTQ0NzQ6IAox
NDQ3NDogZXh0ZXJuIGNoYXIgKiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9f
KSkgc2tpcF9zcGFjZXMoY29uc3QgY2hhciAqKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGNoYXIg
KnN0cmltKGNoYXIgKik7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVz
ZWRfcmVzdWx0X18pKSBjaGFyICpzdHJzdHJpcChjaGFyICpzdHIpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIHN0cmltKHN0cik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IGNoYXIgKiBzdHJzdHIoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiBjaGFyICogc3RybnN0cihjb25zdCBjaGFyICosIGNvbnN0IGNoYXIg
Kiwgc2l6ZV90KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gX19rZXJuZWxfc2l6ZV90
IHN0cmxlbihjb25zdCBjaGFyICopOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBfX2tl
cm5lbF9zaXplX3Qgc3Rybmxlbihjb25zdCBjaGFyICosX19rZXJuZWxfc2l6ZV90KTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gY2hhciAqIHN0cnBicmsoY29uc3QgY2hhciAqLGNvbnN0
IGNoYXIgKik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGNoYXIgKiBzdHJzZXAoY2hh
ciAqKixjb25zdCBjaGFyICopOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBfX2tlcm5l
bF9zaXplX3Qgc3Ryc3BuKGNvbnN0IGNoYXIgKixjb25zdCBjaGFyICopOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiBfX2tlcm5lbF9zaXplX3Qgc3RyY3Nwbihjb25zdCBjaGFyICosY29u
c3QgY2hhciAqKTsKMTQ0NzQ6ICMgMTIyICIuL2luY2x1ZGUvbGludXgvc3RyaW5nLmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkICptZW1zZXRfbCh1bnNpZ25lZCBsb25nICpwLCB1bnNpZ25lZCBsb25nIHYsCjE0NDc0
OiAgIF9fa2VybmVsX3NpemVfdCBuKQoxNDQ3NDogewoxNDQ3NDogIGlmICg2NCA9PSAzMikKMTQ0
NzQ6ICAgcmV0dXJuIG1lbXNldDMyKCh1aW50MzJfdCAqKXAsIHYsIG4pOwoxNDQ3NDogIGVsc2UK
MTQ0NzQ6ICAgcmV0dXJuIG1lbXNldDY0KCh1aW50NjRfdCAqKXAsIHYsIG4pOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkICptZW1zZXRfcCh2b2lkICoqcCwgdm9pZCAqdiwgX19rZXJuZWxf
c2l6ZV90IG4pCjE0NDc0OiB7CjE0NDc0OiAgaWYgKDY0ID09IDMyKQoxNDQ3NDogICByZXR1cm4g
bWVtc2V0MzIoKHVpbnQzMl90ICopcCwgKHVpbnRwdHJfdCl2LCBuKTsKMTQ0NzQ6ICBlbHNlCjE0
NDc0OiAgIHJldHVybiBtZW1zZXQ2NCgodWludDY0X3QgKilwLCAodWludHB0cl90KXYsIG4pOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCAqKl9fbWVtY2F0X3Aodm9pZCAqKmEs
IHZvaWQgKipiKTsKMTQ0NzQ6ICMgMTUzICIuL2luY2x1ZGUvbGludXgvc3RyaW5nLmgiCjE0NDc0
OiBleHRlcm4gdm9pZCAqIG1lbXNjYW4odm9pZCAqLGludCxfX2tlcm5lbF9zaXplX3QpOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgbWVtY21wKGNvbnN0IHZvaWQgKixjb25zdCB2
b2lkICosX19rZXJuZWxfc2l6ZV90KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50
IGJjbXAoY29uc3Qgdm9pZCAqLGNvbnN0IHZvaWQgKixfX2tlcm5lbF9zaXplX3QpOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkICogbWVtY2hyKGNvbnN0IHZvaWQgKixpbnQsX19r
ZXJuZWxfc2l6ZV90KTsKMTQ0NzQ6ICMgMTc4ICIuL2luY2x1ZGUvbGludXgvc3RyaW5nLmgiCjE0
NDc0OiB2b2lkICptZW1jaHJfaW52KGNvbnN0IHZvaWQgKnMsIGludCBjLCBzaXplX3Qgbik7CjE0
NDc0OiBjaGFyICpzdHJyZXBsYWNlKGNoYXIgKnMsIGNoYXIgb2xkLCBjaGFyIG5ldyk7CjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGtmcmVlX2NvbnN0KGNvbnN0IHZvaWQgKngpOwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gY2hhciAqa3N0cmR1cChjb25zdCBjaGFyICpzLCBnZnBfdCBnZnApIF9f
YXR0cmlidXRlX18oKF9fbWFsbG9jX18pKTsKMTQ0NzQ6IGV4dGVybiBjb25zdCBjaGFyICprc3Ry
ZHVwX2NvbnN0KGNvbnN0IGNoYXIgKnMsIGdmcF90IGdmcCk7CjE0NDc0OiBleHRlcm4gY2hhciAq
a3N0cm5kdXAoY29uc3QgY2hhciAqcywgc2l6ZV90IGxlbiwgZ2ZwX3QgZ2ZwKTsKMTQ0NzQ6IGV4
dGVybiB2b2lkICprbWVtZHVwKGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IGxlbiwgZ2ZwX3QgZ2Zw
KTsKMTQ0NzQ6IGV4dGVybiBjaGFyICprbWVtZHVwX251bChjb25zdCBjaGFyICpzLCBzaXplX3Qg
bGVuLCBnZnBfdCBnZnApOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gY2hhciAqKmFyZ3Zfc3BsaXQo
Z2ZwX3QgZ2ZwLCBjb25zdCBjaGFyICpzdHIsIGludCAqYXJnY3ApOwoxNDQ3NDogZXh0ZXJuIHZv
aWQgYXJndl9mcmVlKGNoYXIgKiphcmd2KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGJvb2wgc3lz
ZnNfc3RyZXEoY29uc3QgY2hhciAqczEsIGNvbnN0IGNoYXIgKnMyKTsKMTQ0NzQ6IGV4dGVybiBp
bnQga3N0cnRvYm9vbChjb25zdCBjaGFyICpzLCBib29sICpyZXMpOwoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHN0cnRv
Ym9vbChjb25zdCBjaGFyICpzLCBib29sICpyZXMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGtz
dHJ0b2Jvb2wocywgcmVzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogaW50IG1hdGNoX3N0cmlu
Zyhjb25zdCBjaGFyICogY29uc3QgKmFycmF5LCBzaXplX3QgbiwgY29uc3QgY2hhciAqc3RyaW5n
KTsKMTQ0NzQ6IGludCBfX3N5c2ZzX21hdGNoX3N0cmluZyhjb25zdCBjaGFyICogY29uc3QgKmFy
cmF5LCBzaXplX3QgbiwgY29uc3QgY2hhciAqcyk7CjE0NDc0OiAjIDIxMiAiLi9pbmNsdWRlL2xp
bnV4L3N0cmluZy5oIgoxNDQ3NDogaW50IHZiaW5fcHJpbnRmKHUzMiAqYmluX2J1Ziwgc2l6ZV90
IHNpemUsIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdzKTsKMTQ0NzQ6IGludCBic3RyX3By
aW50ZihjaGFyICpidWYsIHNpemVfdCBzaXplLCBjb25zdCBjaGFyICpmbXQsIGNvbnN0IHUzMiAq
YmluX2J1Zik7CjE0NDc0OiBpbnQgYnByaW50Zih1MzIgKmJpbl9idWYsIHNpemVfdCBzaXplLCBj
b25zdCBjaGFyICpmbXQsIC4uLikgX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDMs
IDQpKSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHNzaXplX3QgbWVtb3J5X3JlYWRf
ZnJvbV9idWZmZXIodm9pZCAqdG8sIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zLAoxNDQ3NDog
ICAgICAgICAgICBjb25zdCB2b2lkICpmcm9tLCBzaXplX3QgYXZhaWxhYmxlKTsKMTQ0NzQ6IAox
NDQ3NDogaW50IHB0cl90b19oYXNodmFsKGNvbnN0IHZvaWQgKnB0ciwgdW5zaWduZWQgbG9uZyAq
aGFzaHZhbF9vdXQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBzdHJzdGFydHMoY29uc3QgY2hhciAqc3RyLCBjb25zdCBjaGFyICpw
cmVmaXgpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHN0cm5jbXAoc3RyLCBwcmVmaXgsIHN0cmxl
bihwcmVmaXgpKSA9PSAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzaXplX3QgbWVtd2VpZ2h0
KGNvbnN0IHZvaWQgKnB0ciwgc2l6ZV90IGJ5dGVzKTsKMTQ0NzQ6ICMgMjQ4ICIuL2luY2x1ZGUv
bGludXgvc3RyaW5nLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIG1lbXplcm9fZXhwbGljaXQodm9pZCAqcywgc2l6
ZV90IGNvdW50KQoxNDQ3NDogewoxNDQ3NDogIG1lbXNldChzLCAwLCBjb3VudCk7CjE0NDc0OiAg
X19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDoiciIocykgOiJtZW1vcnkiKTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGNvbnN0
IGNoYXIgKmtiYXNlbmFtZShjb25zdCBjaGFyICpwYXRoKQoxNDQ3NDogewoxNDQ3NDogIGNvbnN0
IGNoYXIgKnRhaWwgPSBzdHJyY2hyKHBhdGgsICcvJyk7CjE0NDc0OiAgcmV0dXJuIHRhaWwgPyB0
YWlsICsgMSA6IHBhdGg7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHZvaWQgZm9ydGlmeV9wYW5pYyhjb25zdCBjaGFyICpuYW1lKSBfX2F0dHJpYnV0ZV9f
KChfX25vcmV0dXJuX18pKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpOwoxNDQ3NDogdm9pZCBf
X3JlYWRfb3ZlcmZsb3codm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJkZXRlY3RlZCBy
ZWFkIGJleW9uZCBzaXplIG9mIG9iamVjdCBwYXNzZWQgYXMgMXN0IHBhcmFtZXRlciIpKSk7CjE0
NDc0OiB2b2lkIF9fcmVhZF9vdmVyZmxvdzIodm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9f
KCJkZXRlY3RlZCByZWFkIGJleW9uZCBzaXplIG9mIG9iamVjdCBwYXNzZWQgYXMgMm5kIHBhcmFt
ZXRlciIpKSk7CjE0NDc0OiB2b2lkIF9fcmVhZF9vdmVyZmxvdzModm9pZCkgX19hdHRyaWJ1dGVf
XygoX19lcnJvcl9fKCJkZXRlY3RlZCByZWFkIGJleW9uZCBzaXplIG9mIG9iamVjdCBwYXNzZWQg
YXMgM3JkIHBhcmFtZXRlciIpKSk7CjE0NDc0OiB2b2lkIF9fd3JpdGVfb3ZlcmZsb3codm9pZCkg
X19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJkZXRlY3RlZCB3cml0ZSBiZXlvbmQgc2l6ZSBvZiBv
YmplY3QgcGFzc2VkIGFzIDFzdCBwYXJhbWV0ZXIiKSkpOwoxNDQ3NDogIyA0NzggIi4vaW5jbHVk
ZS9saW51eC9zdHJpbmcuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbWVtY3B5X2FuZF9wYWQodm9pZCAqZGVzdCwg
c2l6ZV90IGRlc3RfbGVuLAoxNDQ3NDogICAgICAgY29uc3Qgdm9pZCAqc3JjLCBzaXplX3QgY291
bnQsIGludCBwYWQpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKGRlc3RfbGVuID4gY291bnQpIHsKMTQ0
NzQ6ICAgbWVtY3B5KGRlc3QsIHNyYywgY291bnQpOwoxNDQ3NDogICBtZW1zZXQoZGVzdCArIGNv
dW50LCBwYWQsIGRlc3RfbGVuIC0gY291bnQpOwoxNDQ3NDogIH0gZWxzZQoxNDQ3NDogICBtZW1j
cHkoZGVzdCwgc3JjLCBkZXN0X2xlbik7CjE0NDc0OiB9CjE0NDc0OiAjIDUwMyAiLi9pbmNsdWRl
L2xpbnV4L3N0cmluZy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSBzaXplX3Qgc3RyX2hhc19wcmVmaXgoY29uc3QgY2hhciAqc3RyLCBjb25zdCBjaGFyICpwcmVm
aXgpCjE0NDc0OiB7CjE0NDc0OiAgc2l6ZV90IGxlbiA9IHN0cmxlbihwcmVmaXgpOwoxNDQ3NDog
IHJldHVybiBzdHJuY21wKHN0ciwgcHJlZml4LCBsZW4pID09IDAgPyBsZW4gOiAwOwoxNDQ3NDog
fQoxNDQ3NDogIyAxMCAiLi9pbmNsdWRlL2xpbnV4L2JpdG1hcC5oIiAyCjE0NDc0OiAjIDExNSAi
Li9pbmNsdWRlL2xpbnV4L2JpdG1hcC5oIgoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgKmJp
dG1hcF9hbGxvYyh1bnNpZ25lZCBpbnQgbmJpdHMsIGdmcF90IGZsYWdzKTsKMTQ0NzQ6IGV4dGVy
biB1bnNpZ25lZCBsb25nICpiaXRtYXBfemFsbG9jKHVuc2lnbmVkIGludCBuYml0cywgZ2ZwX3Qg
ZmxhZ3MpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgYml0bWFwX2ZyZWUoY29uc3QgdW5zaWduZWQgbG9u
ZyAqYml0bWFwKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBleHRlcm4gaW50IF9fYml0bWFwX2VtcHR5KGNvbnN0IHVuc2lnbmVkIGxvbmcgKmJpdG1hcCwg
dW5zaWduZWQgaW50IG5iaXRzKTsKMTQ0NzQ6IGV4dGVybiBpbnQgX19iaXRtYXBfZnVsbChjb25z
dCB1bnNpZ25lZCBsb25nICpiaXRtYXAsIHVuc2lnbmVkIGludCBuYml0cyk7CjE0NDc0OiBleHRl
cm4gaW50IF9fYml0bWFwX2VxdWFsKGNvbnN0IHVuc2lnbmVkIGxvbmcgKmJpdG1hcDEsCjE0NDc0
OiAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKmJpdG1hcDIsIHVuc2lnbmVkIGludCBuYml0cyk7
CjE0NDc0OiBleHRlcm4gYm9vbCBfX2F0dHJpYnV0ZV9fKChfX3B1cmVfXykpIF9fYml0bWFwX29y
X2VxdWFsKGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYzEsCjE0NDc0OiAgICAgICAgICBjb25zdCB1
bnNpZ25lZCBsb25nICpzcmMyLAoxNDQ3NDogICAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyAq
c3JjMywKMTQ0NzQ6ICAgICAgICAgIHVuc2lnbmVkIGludCBuYml0cyk7CjE0NDc0OiBleHRlcm4g
dm9pZCBfX2JpdG1hcF9jb21wbGVtZW50KHVuc2lnbmVkIGxvbmcgKmRzdCwgY29uc3QgdW5zaWdu
ZWQgbG9uZyAqc3JjLAoxNDQ3NDogICAgdW5zaWduZWQgaW50IG5iaXRzKTsKMTQ0NzQ6IGV4dGVy
biB2b2lkIF9fYml0bWFwX3NoaWZ0X3JpZ2h0KHVuc2lnbmVkIGxvbmcgKmRzdCwgY29uc3QgdW5z
aWduZWQgbG9uZyAqc3JjLAoxNDQ3NDogICAgIHVuc2lnbmVkIGludCBzaGlmdCwgdW5zaWduZWQg
aW50IG5iaXRzKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIF9fYml0bWFwX3NoaWZ0X2xlZnQodW5zaWdu
ZWQgbG9uZyAqZHN0LCBjb25zdCB1bnNpZ25lZCBsb25nICpzcmMsCjE0NDc0OiAgICAgdW5zaWdu
ZWQgaW50IHNoaWZ0LCB1bnNpZ25lZCBpbnQgbmJpdHMpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgYml0
bWFwX2N1dCh1bnNpZ25lZCBsb25nICpkc3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYywKMTQ0
NzQ6ICAgICAgICAgIHVuc2lnbmVkIGludCBmaXJzdCwgdW5zaWduZWQgaW50IGN1dCwKMTQ0NzQ6
ICAgICAgICAgIHVuc2lnbmVkIGludCBuYml0cyk7CjE0NDc0OiBleHRlcm4gaW50IF9fYml0bWFw
X2FuZCh1bnNpZ25lZCBsb25nICpkc3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKmJpdG1hcDEsCjE0
NDc0OiAgICBjb25zdCB1bnNpZ25lZCBsb25nICpiaXRtYXAyLCB1bnNpZ25lZCBpbnQgbmJpdHMp
OwoxNDQ3NDogZXh0ZXJuIHZvaWQgX19iaXRtYXBfb3IodW5zaWduZWQgbG9uZyAqZHN0LCBjb25z
dCB1bnNpZ25lZCBsb25nICpiaXRtYXAxLAoxNDQ3NDogICAgY29uc3QgdW5zaWduZWQgbG9uZyAq
Yml0bWFwMiwgdW5zaWduZWQgaW50IG5iaXRzKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIF9fYml0bWFw
X3hvcih1bnNpZ25lZCBsb25nICpkc3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKmJpdG1hcDEsCjE0
NDc0OiAgICBjb25zdCB1bnNpZ25lZCBsb25nICpiaXRtYXAyLCB1bnNpZ25lZCBpbnQgbmJpdHMp
OwoxNDQ3NDogZXh0ZXJuIGludCBfX2JpdG1hcF9hbmRub3QodW5zaWduZWQgbG9uZyAqZHN0LCBj
b25zdCB1bnNpZ25lZCBsb25nICpiaXRtYXAxLAoxNDQ3NDogICAgY29uc3QgdW5zaWduZWQgbG9u
ZyAqYml0bWFwMiwgdW5zaWduZWQgaW50IG5iaXRzKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIF9fYml0
bWFwX3JlcGxhY2UodW5zaWduZWQgbG9uZyAqZHN0LAoxNDQ3NDogICAgY29uc3QgdW5zaWduZWQg
bG9uZyAqb2xkLCBjb25zdCB1bnNpZ25lZCBsb25nICpuZXcsCjE0NDc0OiAgICBjb25zdCB1bnNp
Z25lZCBsb25nICptYXNrLCB1bnNpZ25lZCBpbnQgbmJpdHMpOwoxNDQ3NDogZXh0ZXJuIGludCBf
X2JpdG1hcF9pbnRlcnNlY3RzKGNvbnN0IHVuc2lnbmVkIGxvbmcgKmJpdG1hcDEsCjE0NDc0OiAg
ICBjb25zdCB1bnNpZ25lZCBsb25nICpiaXRtYXAyLCB1bnNpZ25lZCBpbnQgbmJpdHMpOwoxNDQ3
NDogZXh0ZXJuIGludCBfX2JpdG1hcF9zdWJzZXQoY29uc3QgdW5zaWduZWQgbG9uZyAqYml0bWFw
MSwKMTQ0NzQ6ICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKmJpdG1hcDIsIHVuc2lnbmVkIGludCBu
Yml0cyk7CjE0NDc0OiBleHRlcm4gaW50IF9fYml0bWFwX3dlaWdodChjb25zdCB1bnNpZ25lZCBs
b25nICpiaXRtYXAsIHVuc2lnbmVkIGludCBuYml0cyk7CjE0NDc0OiBleHRlcm4gdm9pZCBfX2Jp
dG1hcF9zZXQodW5zaWduZWQgbG9uZyAqbWFwLCB1bnNpZ25lZCBpbnQgc3RhcnQsIGludCBsZW4p
OwoxNDQ3NDogZXh0ZXJuIHZvaWQgX19iaXRtYXBfY2xlYXIodW5zaWduZWQgbG9uZyAqbWFwLCB1
bnNpZ25lZCBpbnQgc3RhcnQsIGludCBsZW4pOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdW5zaWdu
ZWQgbG9uZyBiaXRtYXBfZmluZF9uZXh0X3plcm9fYXJlYV9vZmYodW5zaWduZWQgbG9uZyAqbWFw
LAoxNDQ3NDogICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwKMTQ0NzQ6ICAgICAgICAgICB1
bnNpZ25lZCBsb25nIHN0YXJ0LAoxNDQ3NDogICAgICAgICAgIHVuc2lnbmVkIGludCBuciwKMTQ0
NzQ6ICAgICAgICAgICB1bnNpZ25lZCBsb25nIGFsaWduX21hc2ssCjE0NDc0OiAgICAgICAgICAg
dW5zaWduZWQgbG9uZyBhbGlnbl9vZmZzZXQpOwoxNDQ3NDogIyAxNzggIi4vaW5jbHVkZS9saW51
eC9iaXRtYXAuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcKMTQ0NzQ6IGJpdG1hcF9maW5kX25leHRf
emVyb19hcmVhKHVuc2lnbmVkIGxvbmcgKm1hcCwKMTQ0NzQ6ICAgICAgIHVuc2lnbmVkIGxvbmcg
c2l6ZSwKMTQ0NzQ6ICAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQsCjE0NDc0OiAgICAgICB1bnNp
Z25lZCBpbnQgbnIsCjE0NDc0OiAgICAgICB1bnNpZ25lZCBsb25nIGFsaWduX21hc2spCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIGJpdG1hcF9maW5kX25leHRfemVyb19hcmVhX29mZihtYXAsIHNp
emUsIHN0YXJ0LCBuciwKMTQ0NzQ6ICAgICAgICAgICAgYWxpZ25fbWFzaywgMCk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgYml0bWFwX3BhcnNlKGNvbnN0IGNoYXIgKmJ1Ziwg
dW5zaWduZWQgaW50IGJ1ZmxlbiwKMTQ0NzQ6ICAgIHVuc2lnbmVkIGxvbmcgKmRzdCwgaW50IG5i
aXRzKTsKMTQ0NzQ6IGV4dGVybiBpbnQgYml0bWFwX3BhcnNlX3VzZXIoY29uc3QgY2hhciAqdWJ1
ZiwgdW5zaWduZWQgaW50IHVsZW4sCjE0NDc0OiAgICB1bnNpZ25lZCBsb25nICpkc3QsIGludCBu
Yml0cyk7CjE0NDc0OiBleHRlcm4gaW50IGJpdG1hcF9wYXJzZWxpc3QoY29uc3QgY2hhciAqYnVm
LCB1bnNpZ25lZCBsb25nICptYXNrcCwKMTQ0NzQ6ICAgIGludCBubWFza2JpdHMpOwoxNDQ3NDog
ZXh0ZXJuIGludCBiaXRtYXBfcGFyc2VsaXN0X3VzZXIoY29uc3QgY2hhciAqdWJ1ZiwgdW5zaWdu
ZWQgaW50IHVsZW4sCjE0NDc0OiAgICB1bnNpZ25lZCBsb25nICpkc3QsIGludCBuYml0cyk7CjE0
NDc0OiBleHRlcm4gdm9pZCBiaXRtYXBfcmVtYXAodW5zaWduZWQgbG9uZyAqZHN0LCBjb25zdCB1
bnNpZ25lZCBsb25nICpzcmMsCjE0NDc0OiAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKm9sZCwgY29u
c3QgdW5zaWduZWQgbG9uZyAqbmV3LCB1bnNpZ25lZCBpbnQgbmJpdHMpOwoxNDQ3NDogZXh0ZXJu
IGludCBiaXRtYXBfYml0cmVtYXAoaW50IG9sZGJpdCwKMTQ0NzQ6ICAgY29uc3QgdW5zaWduZWQg
bG9uZyAqb2xkLCBjb25zdCB1bnNpZ25lZCBsb25nICpuZXcsIGludCBiaXRzKTsKMTQ0NzQ6IGV4
dGVybiB2b2lkIGJpdG1hcF9vbnRvKHVuc2lnbmVkIGxvbmcgKmRzdCwgY29uc3QgdW5zaWduZWQg
bG9uZyAqb3JpZywKMTQ0NzQ6ICAgY29uc3QgdW5zaWduZWQgbG9uZyAqcmVsbWFwLCB1bnNpZ25l
ZCBpbnQgYml0cyk7CjE0NDc0OiBleHRlcm4gdm9pZCBiaXRtYXBfZm9sZCh1bnNpZ25lZCBsb25n
ICpkc3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKm9yaWcsCjE0NDc0OiAgIHVuc2lnbmVkIGludCBz
eiwgdW5zaWduZWQgaW50IG5iaXRzKTsKMTQ0NzQ6IGV4dGVybiBpbnQgYml0bWFwX2ZpbmRfZnJl
ZV9yZWdpb24odW5zaWduZWQgbG9uZyAqYml0bWFwLCB1bnNpZ25lZCBpbnQgYml0cywgaW50IG9y
ZGVyKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGJpdG1hcF9yZWxlYXNlX3JlZ2lvbih1bnNpZ25lZCBs
b25nICpiaXRtYXAsIHVuc2lnbmVkIGludCBwb3MsIGludCBvcmRlcik7CjE0NDc0OiBleHRlcm4g
aW50IGJpdG1hcF9hbGxvY2F0ZV9yZWdpb24odW5zaWduZWQgbG9uZyAqYml0bWFwLCB1bnNpZ25l
ZCBpbnQgcG9zLCBpbnQgb3JkZXIpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGludCBiaXRtYXBfb3JkX3RvX3Bv
cyhjb25zdCB1bnNpZ25lZCBsb25nICpiaXRtYXAsIHVuc2lnbmVkIGludCBvcmQsIHVuc2lnbmVk
IGludCBuYml0cyk7CjE0NDc0OiBleHRlcm4gaW50IGJpdG1hcF9wcmludF90b19wYWdlYnVmKGJv
b2wgbGlzdCwgY2hhciAqYnVmLAoxNDQ3NDogICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKm1h
c2twLCBpbnQgbm1hc2tiaXRzKTsKMTQ0NzQ6ICMgMjI5ICIuL2luY2x1ZGUvbGludXgvYml0bWFw
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIGJpdG1hcF96ZXJvKHVuc2lnbmVkIGxvbmcgKmRzdCwgdW5zaWduZWQg
aW50IG5iaXRzKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIGludCBsZW4gPSAoKChuYml0cykg
KyAoKHNpemVvZihsb25nKSAqIDgpKSAtIDEpIC8gKChzaXplb2YobG9uZykgKiA4KSkpICogc2l6
ZW9mKHVuc2lnbmVkIGxvbmcpOwoxNDQ3NDogIG1lbXNldChkc3QsIDAsIGxlbik7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgYml0bWFwX2ZpbGwodW5zaWduZWQgbG9uZyAqZHN0LCB1bnNp
Z25lZCBpbnQgbmJpdHMpCjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgaW50IGxlbiA9ICgoKG5i
aXRzKSArICgoc2l6ZW9mKGxvbmcpICogOCkpIC0gMSkgLyAoKHNpemVvZihsb25nKSAqIDgpKSkg
KiBzaXplb2YodW5zaWduZWQgbG9uZyk7CjE0NDc0OiAgbWVtc2V0KGRzdCwgMHhmZiwgbGVuKTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBiaXRtYXBfY29weSh1bnNpZ25lZCBsb25nICpk
c3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYywKMTQ0NzQ6ICAgIHVuc2lnbmVkIGludCBuYml0
cykKMTQ0NzQ6IHsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbGVuID0gKCgobmJpdHMpICsgKChzaXpl
b2YobG9uZykgKiA4KSkgLSAxKSAvICgoc2l6ZW9mKGxvbmcpICogOCkpKSAqIHNpemVvZih1bnNp
Z25lZCBsb25nKTsKMTQ0NzQ6ICBtZW1jcHkoZHN0LCBzcmMsIGxlbik7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYml0bWFwX2NvcHlfY2xlYXJf
dGFpbCh1bnNpZ25lZCBsb25nICpkc3QsCjE0NDc0OiAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNy
YywgdW5zaWduZWQgaW50IG5iaXRzKQoxNDQ3NDogewoxNDQ3NDogIGJpdG1hcF9jb3B5KGRzdCwg
c3JjLCBuYml0cyk7CjE0NDc0OiAgaWYgKG5iaXRzICUgNjQpCjE0NDc0OiAgIGRzdFtuYml0cyAv
IDY0XSAmPSAofjBVTCA+PiAoLShuYml0cykgJiAoNjQgLSAxKSkpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZv
aWQgYml0bWFwX2Zyb21fYXJyMzIodW5zaWduZWQgbG9uZyAqYml0bWFwLCBjb25zdCB1MzIgKmJ1
ZiwKMTQ0NzQ6ICAgICAgICB1bnNpZ25lZCBpbnQgbmJpdHMpOwoxNDQ3NDogZXh0ZXJuIHZvaWQg
Yml0bWFwX3RvX2FycjMyKHUzMiAqYnVmLCBjb25zdCB1bnNpZ25lZCBsb25nICpiaXRtYXAsCjE0
NDc0OiAgICAgICAgdW5zaWduZWQgaW50IG5iaXRzKTsKMTQ0NzQ6ICMgMjc3ICIuL2luY2x1ZGUv
bGludXgvYml0bWFwLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgYml0bWFwX2FuZCh1bnNpZ25lZCBsb25nICpkc3Qs
IGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYzEsCjE0NDc0OiAgICBjb25zdCB1bnNpZ25lZCBsb25n
ICpzcmMyLCB1bnNpZ25lZCBpbnQgbmJpdHMpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKChfX2J1aWx0
aW5fY29uc3RhbnRfcChuYml0cykgJiYgKG5iaXRzKSA8PSA2NCAmJiAobmJpdHMpID4gMCkpCjE0
NDc0OiAgIHJldHVybiAoKmRzdCA9ICpzcmMxICYgKnNyYzIgJiAofjBVTCA+PiAoLShuYml0cykg
JiAoNjQgLSAxKSkpKSAhPSAwOwoxNDQ3NDogIHJldHVybiBfX2JpdG1hcF9hbmQoZHN0LCBzcmMx
LCBzcmMyLCBuYml0cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYml0bWFwX29yKHVu
c2lnbmVkIGxvbmcgKmRzdCwgY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMSwKMTQ0NzQ6ICAgIGNv
bnN0IHVuc2lnbmVkIGxvbmcgKnNyYzIsIHVuc2lnbmVkIGludCBuYml0cykKMTQ0NzQ6IHsKMTQ0
NzQ6ICBpZiAoKF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAmJiAobmJpdHMpIDw9IDY0ICYm
IChuYml0cykgPiAwKSkKMTQ0NzQ6ICAgKmRzdCA9ICpzcmMxIHwgKnNyYzI7CjE0NDc0OiAgZWxz
ZQoxNDQ3NDogICBfX2JpdG1hcF9vcihkc3QsIHNyYzEsIHNyYzIsIG5iaXRzKTsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBiaXRtYXBfeG9yKHVuc2lnbmVkIGxvbmcgKmRzdCwgY29uc3Qg
dW5zaWduZWQgbG9uZyAqc3JjMSwKMTQ0NzQ6ICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYzIs
IHVuc2lnbmVkIGludCBuYml0cykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoKF9fYnVpbHRpbl9jb25z
dGFudF9wKG5iaXRzKSAmJiAobmJpdHMpIDw9IDY0ICYmIChuYml0cykgPiAwKSkKMTQ0NzQ6ICAg
KmRzdCA9ICpzcmMxIF4gKnNyYzI7CjE0NDc0OiAgZWxzZQoxNDQ3NDogICBfX2JpdG1hcF94b3Io
ZHN0LCBzcmMxLCBzcmMyLCBuYml0cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBiaXRt
YXBfYW5kbm90KHVuc2lnbmVkIGxvbmcgKmRzdCwgY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMSwK
MTQ0NzQ6ICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYzIsIHVuc2lnbmVkIGludCBuYml0cykK
MTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoKF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAmJiAobmJp
dHMpIDw9IDY0ICYmIChuYml0cykgPiAwKSkKMTQ0NzQ6ICAgcmV0dXJuICgqZHN0ID0gKnNyYzEg
JiB+KCpzcmMyKSAmICh+MFVMID4+ICgtKG5iaXRzKSAmICg2NCAtIDEpKSkpICE9IDA7CjE0NDc0
OiAgcmV0dXJuIF9fYml0bWFwX2FuZG5vdChkc3QsIHNyYzEsIHNyYzIsIG5iaXRzKTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBiaXRtYXBfY29tcGxlbWVudCh1bnNpZ25lZCBsb25nICpk
c3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYywKMTQ0NzQ6ICAgIHVuc2lnbmVkIGludCBuYml0
cykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoKF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAmJiAo
bmJpdHMpIDw9IDY0ICYmIChuYml0cykgPiAwKSkKMTQ0NzQ6ICAgKmRzdCA9IH4oKnNyYyk7CjE0
NDc0OiAgZWxzZQoxNDQ3NDogICBfX2JpdG1hcF9jb21wbGVtZW50KGRzdCwgc3JjLCBuYml0cyk7
CjE0NDc0OiB9CjE0NDc0OiAjIDMyNyAiLi9pbmNsdWRlL2xpbnV4L2JpdG1hcC5oIgoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
aW50IGJpdG1hcF9lcXVhbChjb25zdCB1bnNpZ25lZCBsb25nICpzcmMxLAoxNDQ3NDogICAgY29u
c3QgdW5zaWduZWQgbG9uZyAqc3JjMiwgdW5zaWduZWQgaW50IG5iaXRzKQoxNDQ3NDogewoxNDQ3
NDogIGlmICgoX19idWlsdGluX2NvbnN0YW50X3AobmJpdHMpICYmIChuYml0cykgPD0gNjQgJiYg
KG5iaXRzKSA+IDApKQoxNDQ3NDogICByZXR1cm4gISgoKnNyYzEgXiAqc3JjMikgJiAofjBVTCA+
PiAoLShuYml0cykgJiAoNjQgLSAxKSkpKTsKMTQ0NzQ6ICBpZiAoX19idWlsdGluX2NvbnN0YW50
X3AobmJpdHMgJiAoOCAtIDEpKSAmJgoxNDQ3NDogICAgICAoKChuYml0cykgJiAoKHR5cGVvZihu
Yml0cykpKDgpIC0gMSkpID09IDApKQoxNDQ3NDogICByZXR1cm4gIW1lbWNtcChzcmMxLCBzcmMy
LCBuYml0cyAvIDgpOwoxNDQ3NDogIHJldHVybiBfX2JpdG1hcF9lcXVhbChzcmMxLCBzcmMyLCBu
Yml0cyk7CjE0NDc0OiB9CjE0NDc0OiAjIDM0NyAiLi9pbmNsdWRlL2xpbnV4L2JpdG1hcC5oIgox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgYm9vbCBiaXRtYXBfb3JfZXF1YWwoY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMSwKMTQ0
NzQ6ICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nICpzcmMyLAoxNDQ3NDogICAgICAgIGNvbnN0
IHVuc2lnbmVkIGxvbmcgKnNyYzMsCjE0NDc0OiAgICAgICAgdW5zaWduZWQgaW50IG5iaXRzKQox
NDQ3NDogewoxNDQ3NDogIGlmICghKF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAmJiAobmJp
dHMpIDw9IDY0ICYmIChuYml0cykgPiAwKSkKMTQ0NzQ6ICAgcmV0dXJuIF9fYml0bWFwX29yX2Vx
dWFsKHNyYzEsIHNyYzIsIHNyYzMsIG5iaXRzKTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiAhKCgo
KnNyYzEgfCAqc3JjMikgXiAqc3JjMykgJiAofjBVTCA+PiAoLShuYml0cykgJiAoNjQgLSAxKSkp
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGJpdG1hcF9pbnRlcnNlY3RzKGNvbnN0IHVu
c2lnbmVkIGxvbmcgKnNyYzEsCjE0NDc0OiAgICBjb25zdCB1bnNpZ25lZCBsb25nICpzcmMyLCB1
bnNpZ25lZCBpbnQgbmJpdHMpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKChfX2J1aWx0aW5fY29uc3Rh
bnRfcChuYml0cykgJiYgKG5iaXRzKSA8PSA2NCAmJiAobmJpdHMpID4gMCkpCjE0NDc0OiAgIHJl
dHVybiAoKCpzcmMxICYgKnNyYzIpICYgKH4wVUwgPj4gKC0obmJpdHMpICYgKDY0IC0gMSkpKSkg
IT0gMDsKMTQ0NzQ6ICBlbHNlCjE0NDc0OiAgIHJldHVybiBfX2JpdG1hcF9pbnRlcnNlY3RzKHNy
YzEsIHNyYzIsIG5iaXRzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGJpdG1hcF9zdWJz
ZXQoY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMSwKMTQ0NzQ6ICAgIGNvbnN0IHVuc2lnbmVkIGxv
bmcgKnNyYzIsIHVuc2lnbmVkIGludCBuYml0cykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoKF9fYnVp
bHRpbl9jb25zdGFudF9wKG5iaXRzKSAmJiAobmJpdHMpIDw9IDY0ICYmIChuYml0cykgPiAwKSkK
MTQ0NzQ6ICAgcmV0dXJuICEgKCgqc3JjMSAmIH4oKnNyYzIpKSAmICh+MFVMID4+ICgtKG5iaXRz
KSAmICg2NCAtIDEpKSkpOwoxNDQ3NDogIGVsc2UKMTQ0NzQ6ICAgcmV0dXJuIF9fYml0bWFwX3N1
YnNldChzcmMxLCBzcmMyLCBuYml0cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBiaXRt
YXBfZW1wdHkoY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjLCB1bnNpZ25lZCBuYml0cykKMTQ0NzQ6
IHsKMTQ0NzQ6ICBpZiAoKF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAmJiAobmJpdHMpIDw9
IDY0ICYmIChuYml0cykgPiAwKSkKMTQ0NzQ6ICAgcmV0dXJuICEgKCpzcmMgJiAofjBVTCA+PiAo
LShuYml0cykgJiAoNjQgLSAxKSkpKTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBmaW5kX2ZpcnN0
X2JpdChzcmMsIG5iaXRzKSA9PSBuYml0czsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGJp
dG1hcF9mdWxsKGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYywgdW5zaWduZWQgaW50IG5iaXRzKQox
NDQ3NDogewoxNDQ3NDogIGlmICgoX19idWlsdGluX2NvbnN0YW50X3AobmJpdHMpICYmIChuYml0
cykgPD0gNjQgJiYgKG5iaXRzKSA+IDApKQoxNDQ3NDogICByZXR1cm4gISAofigqc3JjKSAmICh+
MFVMID4+ICgtKG5iaXRzKSAmICg2NCAtIDEpKSkpOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIGZp
bmRfZmlyc3RfemVyb19iaXQoc3JjLCBuYml0cykgPT0gbmJpdHM7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IGJpdG1hcF93ZWln
aHQoY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjLCB1bnNpZ25lZCBpbnQgbmJpdHMpCjE0NDc0OiB7
CjE0NDc0OiAgaWYgKChfX2J1aWx0aW5fY29uc3RhbnRfcChuYml0cykgJiYgKG5iaXRzKSA8PSA2
NCAmJiAobmJpdHMpID4gMCkpCjE0NDc0OiAgIHJldHVybiBod2VpZ2h0X2xvbmcoKnNyYyAmICh+
MFVMID4+ICgtKG5iaXRzKSAmICg2NCAtIDEpKSkpOwoxNDQ3NDogIHJldHVybiBfX2JpdG1hcF93
ZWlnaHQoc3JjLCBuYml0cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18o
KF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBiaXRtYXBfc2V0KHVuc2lnbmVkIGxvbmcgKm1hcCwg
dW5zaWduZWQgaW50IHN0YXJ0LAoxNDQ3NDogICB1bnNpZ25lZCBpbnQgbmJpdHMpCjE0NDc0OiB7
CjE0NDc0OiAgaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAmJiBuYml0cyA9PSAxKQox
NDQ3NDogICBfX3NldF9iaXQoc3RhcnQsIG1hcCk7CjE0NDc0OiAgZWxzZSBpZiAoX19idWlsdGlu
X2NvbnN0YW50X3Aoc3RhcnQgJiAoOCAtIDEpKSAmJgoxNDQ3NDogICAgKCgoc3RhcnQpICYgKCh0
eXBlb2Yoc3RhcnQpKSg4KSAtIDEpKSA9PSAwKSAmJgoxNDQ3NDogICAgX19idWlsdGluX2NvbnN0
YW50X3AobmJpdHMgJiAoOCAtIDEpKSAmJgoxNDQ3NDogICAgKCgobmJpdHMpICYgKCh0eXBlb2Yo
bmJpdHMpKSg4KSAtIDEpKSA9PSAwKSkKMTQ0NzQ6ICAgbWVtc2V0KChjaGFyICopbWFwICsgc3Rh
cnQgLyA4LCAweGZmLCBuYml0cyAvIDgpOwoxNDQ3NDogIGVsc2UKMTQ0NzQ6ICAgX19iaXRtYXBf
c2V0KG1hcCwgc3RhcnQsIG5iaXRzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIGJpdG1hcF9jbGVhcih1bnNpZ25lZCBsb25n
ICptYXAsIHVuc2lnbmVkIGludCBzdGFydCwKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IG5iaXRzKQox
NDQ3NDogewoxNDQ3NDogIGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcChuYml0cykgJiYgbmJpdHMg
PT0gMSkKMTQ0NzQ6ICAgX19jbGVhcl9iaXQoc3RhcnQsIG1hcCk7CjE0NDc0OiAgZWxzZSBpZiAo
X19idWlsdGluX2NvbnN0YW50X3Aoc3RhcnQgJiAoOCAtIDEpKSAmJgoxNDQ3NDogICAgKCgoc3Rh
cnQpICYgKCh0eXBlb2Yoc3RhcnQpKSg4KSAtIDEpKSA9PSAwKSAmJgoxNDQ3NDogICAgX19idWls
dGluX2NvbnN0YW50X3AobmJpdHMgJiAoOCAtIDEpKSAmJgoxNDQ3NDogICAgKCgobmJpdHMpICYg
KCh0eXBlb2YobmJpdHMpKSg4KSAtIDEpKSA9PSAwKSkKMTQ0NzQ6ICAgbWVtc2V0KChjaGFyICop
bWFwICsgc3RhcnQgLyA4LCAwLCBuYml0cyAvIDgpOwoxNDQ3NDogIGVsc2UKMTQ0NzQ6ICAgX19i
aXRtYXBfY2xlYXIobWFwLCBzdGFydCwgbmJpdHMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGJpdG1hcF9zaGlmdF9yaWdodCh1bnNpZ25lZCBsb25nICpkc3QsIGNvbnN0IHVuc2lnbmVk
IGxvbmcgKnNyYywKMTQ0NzQ6ICAgICB1bnNpZ25lZCBpbnQgc2hpZnQsIHVuc2lnbmVkIGludCBu
Yml0cykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoKF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAm
JiAobmJpdHMpIDw9IDY0ICYmIChuYml0cykgPiAwKSkKMTQ0NzQ6ICAgKmRzdCA9ICgqc3JjICYg
KH4wVUwgPj4gKC0obmJpdHMpICYgKDY0IC0gMSkpKSkgPj4gc2hpZnQ7CjE0NDc0OiAgZWxzZQox
NDQ3NDogICBfX2JpdG1hcF9zaGlmdF9yaWdodChkc3QsIHNyYywgc2hpZnQsIG5iaXRzKTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBiaXRtYXBfc2hpZnRfbGVmdCh1bnNpZ25lZCBsb25n
ICpkc3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYywKMTQ0NzQ6ICAgICB1bnNpZ25lZCBpbnQg
c2hpZnQsIHVuc2lnbmVkIGludCBuYml0cykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoKF9fYnVpbHRp
bl9jb25zdGFudF9wKG5iaXRzKSAmJiAobmJpdHMpIDw9IDY0ICYmIChuYml0cykgPiAwKSkKMTQ0
NzQ6ICAgKmRzdCA9ICgqc3JjIDw8IHNoaWZ0KSAmICh+MFVMID4+ICgtKG5iaXRzKSAmICg2NCAt
IDEpKSk7CjE0NDc0OiAgZWxzZQoxNDQ3NDogICBfX2JpdG1hcF9zaGlmdF9sZWZ0KGRzdCwgc3Jj
LCBzaGlmdCwgbmJpdHMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGJpdG1hcF9yZXBs
YWNlKHVuc2lnbmVkIGxvbmcgKmRzdCwKMTQ0NzQ6ICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcg
Km9sZCwKMTQ0NzQ6ICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKm5ldywKMTQ0NzQ6ICAgICAg
IGNvbnN0IHVuc2lnbmVkIGxvbmcgKm1hc2ssCjE0NDc0OiAgICAgICB1bnNpZ25lZCBpbnQgbmJp
dHMpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKChfX2J1aWx0aW5fY29uc3RhbnRfcChuYml0cykgJiYg
KG5iaXRzKSA8PSA2NCAmJiAobmJpdHMpID4gMCkpCjE0NDc0OiAgICpkc3QgPSAoKm9sZCAmIH4o
Km1hc2spKSB8ICgqbmV3ICYgKm1hc2spOwoxNDQ3NDogIGVsc2UKMTQ0NzQ6ICAgX19iaXRtYXBf
cmVwbGFjZShkc3QsIG9sZCwgbmV3LCBtYXNrLCBuYml0cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgYml0bWFwX25leHRfY2xlYXJfcmVnaW9uKHVuc2lnbmVkIGxvbmcgKmJpdG1hcCwK
MTQ0NzQ6ICAgICAgICAgIHVuc2lnbmVkIGludCAqcnMsIHVuc2lnbmVkIGludCAqcmUsCjE0NDc0
OiAgICAgICAgICB1bnNpZ25lZCBpbnQgZW5kKQoxNDQ3NDogewoxNDQ3NDogICpycyA9IGZpbmRf
bmV4dF96ZXJvX2JpdChiaXRtYXAsIGVuZCwgKnJzKTsKMTQ0NzQ6ICAqcmUgPSBmaW5kX25leHRf
Yml0KGJpdG1hcCwgZW5kLCAqcnMgKyAxKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBi
aXRtYXBfbmV4dF9zZXRfcmVnaW9uKHVuc2lnbmVkIGxvbmcgKmJpdG1hcCwKMTQ0NzQ6ICAgICAg
ICB1bnNpZ25lZCBpbnQgKnJzLCB1bnNpZ25lZCBpbnQgKnJlLAoxNDQ3NDogICAgICAgIHVuc2ln
bmVkIGludCBlbmQpCjE0NDc0OiB7CjE0NDc0OiAgKnJzID0gZmluZF9uZXh0X2JpdChiaXRtYXAs
IGVuZCwgKnJzKTsKMTQ0NzQ6ICAqcmUgPSBmaW5kX25leHRfemVyb19iaXQoYml0bWFwLCBlbmQs
ICpycyArIDEpOwoxNDQ3NDogfQoxNDQ3NDogIyA1MzUgIi4vaW5jbHVkZS9saW51eC9iaXRtYXAu
aCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgYml0bWFwX2Zyb21fdTY0KHVuc2lnbmVkIGxvbmcgKmRzdCwgdTY0IG1h
c2spCjE0NDc0OiB7CjE0NDc0OiAgZHN0WzBdID0gbWFzayAmICh+MFVMKTsKMTQ0NzQ6IAoxNDQ3
NDogIGlmIChzaXplb2YobWFzaykgPiBzaXplb2YodW5zaWduZWQgbG9uZykpCjE0NDc0OiAgIGRz
dFsxXSA9IG1hc2sgPj4gMzI7CjE0NDc0OiB9CjE0NDc0OiAjIDU1MSAiLi9pbmNsdWRlL2xpbnV4
L2JpdG1hcC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBiaXRtYXBfZ2V0X3ZhbHVlOChjb25zdCB1
bnNpZ25lZCBsb25nICptYXAsCjE0NDc0OiAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQp
CjE0NDc0OiB7CjE0NDc0OiAgY29uc3Qgc2l6ZV90IGluZGV4ID0gKChzdGFydCkgLyA2NCk7CjE0
NDc0OiAgY29uc3QgdW5zaWduZWQgbG9uZyBvZmZzZXQgPSBzdGFydCAlIDY0OwoxNDQ3NDogCjE0
NDc0OiAgcmV0dXJuIChtYXBbaW5kZXhdID4+IG9mZnNldCkgJiAweEZGOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGJpdG1hcF9zZXRfdmFsdWU4KHVuc2lnbmVkIGxvbmcgKm1hcCwgdW5zaWduZWQgbG9u
ZyB2YWx1ZSwKMTQ0NzQ6ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQpCjE0NDc0OiB7CjE0
NDc0OiAgY29uc3Qgc2l6ZV90IGluZGV4ID0gKChzdGFydCkgLyA2NCk7CjE0NDc0OiAgY29uc3Qg
dW5zaWduZWQgbG9uZyBvZmZzZXQgPSBzdGFydCAlIDY0OwoxNDQ3NDogCjE0NDc0OiAgbWFwW2lu
ZGV4XSAmPSB+KDB4RkZVTCA8PCBvZmZzZXQpOwoxNDQ3NDogIG1hcFtpbmRleF0gfD0gdmFsdWUg
PDwgb2Zmc2V0OwoxNDQ3NDogfQoxNDQ3NDogIyAxMyAiLi9pbmNsdWRlL2xpbnV4L2NwdW1hc2su
aCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHN0cnVj
dCBjcHVtYXNrIHsgdW5zaWduZWQgbG9uZyBiaXRzWygoKDgpICsgKChzaXplb2YobG9uZykgKiA4
KSkgLSAxKSAvICgoc2l6ZW9mKGxvbmcpICogOCkpKV07IH0gY3B1bWFza190OwoxNDQ3NDogIyAz
OSAiLi9pbmNsdWRlL2xpbnV4L2NwdW1hc2suaCIKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBpbnQg
bnJfY3B1X2lkczsKMTQ0NzQ6ICMgOTAgIi4vaW5jbHVkZS9saW51eC9jcHVtYXNrLmgiCjE0NDc0
OiBleHRlcm4gc3RydWN0IGNwdW1hc2sgX19jcHVfcG9zc2libGVfbWFzazsKMTQ0NzQ6IGV4dGVy
biBzdHJ1Y3QgY3B1bWFzayBfX2NwdV9vbmxpbmVfbWFzazsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qg
Y3B1bWFzayBfX2NwdV9wcmVzZW50X21hc2s7CjE0NDc0OiBleHRlcm4gc3RydWN0IGNwdW1hc2sg
X19jcHVfYWN0aXZlX21hc2s7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogZXh0ZXJuIGF0b21pY190IF9fbnVtX29ubGluZV9jcHVzOwoxNDQ3NDogIyAxMTAg
Ii4vaW5jbHVkZS9saW51eC9jcHVtYXNrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQgbnVtX29ubGlu
ZV9jcHVzKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pY19yZWFkKCZfX251bV9v
bmxpbmVfY3B1cyk7CjE0NDc0OiB9CjE0NDc0OiAjIDEzMiAiLi9pbmNsdWRlL2xpbnV4L2NwdW1h
c2suaCIKMTQ0NzQ6IGV4dGVybiBjcHVtYXNrX3QgY3B1c19ib290ZWRfb25jZV9tYXNrOwoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIGNwdV9tYXhfYml0c193YXJuKHVuc2lnbmVkIGludCBjcHUsIHVuc2ln
bmVkIGludCBiaXRzKQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBjcHVtYXNrX2NoZWNrKHVuc2lnbmVk
IGludCBjcHUpCjE0NDc0OiB7CjE0NDc0OiAgY3B1X21heF9iaXRzX3dhcm4oY3B1LCAoKHVuc2ln
bmVkIGludCk4KSk7CjE0NDc0OiAgcmV0dXJuIGNwdTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjEyICIu
L2luY2x1ZGUvbGludXgvY3B1bWFzay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IGNwdW1hc2tfZmly
c3QoY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNyY3ApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGZp
bmRfZmlyc3RfYml0KCgoc3JjcCktPmJpdHMpLCAoKHVuc2lnbmVkIGludCk4KSk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHVuc2lnbmVkIGludCBjcHVtYXNrX2xhc3QoY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNy
Y3ApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGZpbmRfbGFzdF9iaXQoKChzcmNwKS0+Yml0cyks
ICgodW5zaWduZWQgaW50KTgpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogdW5zaWduZWQgaW50
IGNwdW1hc2tfbmV4dChpbnQgbiwgY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNyY3ApOwoxNDQ3NDog
IyAyMzcgIi4vaW5jbHVkZS9saW51eC9jcHVtYXNrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQgY3B1
bWFza19uZXh0X3plcm8oaW50IG4sIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpzcmNwKQoxNDQ3NDog
ewoxNDQ3NDogCjE0NDc0OiAgaWYgKG4gIT0gLTEpCjE0NDc0OiAgIGNwdW1hc2tfY2hlY2sobik7
CjE0NDc0OiAgcmV0dXJuIGZpbmRfbmV4dF96ZXJvX2JpdCgoKHNyY3ApLT5iaXRzKSwgKCh1bnNp
Z25lZCBpbnQpOCksIG4rMSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGludCBjcHVtYXNrX25l
eHRfYW5kKGludCBuLCBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqLCBjb25zdCBzdHJ1Y3QgY3B1bWFz
ayAqKTsKMTQ0NzQ6IGludCBjcHVtYXNrX2FueV9idXQoY29uc3Qgc3RydWN0IGNwdW1hc2sgKm1h
c2ssIHVuc2lnbmVkIGludCBjcHUpOwoxNDQ3NDogdW5zaWduZWQgaW50IGNwdW1hc2tfbG9jYWxf
c3ByZWFkKHVuc2lnbmVkIGludCBpLCBpbnQgbm9kZSk7CjE0NDc0OiAjIDI3MyAiLi9pbmNsdWRl
L2xpbnV4L2NwdW1hc2suaCIKMTQ0NzQ6IGV4dGVybiBpbnQgY3B1bWFza19uZXh0X3dyYXAoaW50
IG4sIGNvbnN0IHN0cnVjdCBjcHVtYXNrICptYXNrLCBpbnQgc3RhcnQsIGJvb2wgd3JhcCk7CjE0
NDc0OiAjIDMyNSAiLi9pbmNsdWRlL2xpbnV4L2NwdW1hc2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY3B1bWFz
a19zZXRfY3B1KHVuc2lnbmVkIGludCBjcHUsIHN0cnVjdCBjcHVtYXNrICpkc3RwKQoxNDQ3NDog
ewoxNDQ3NDogIHNldF9iaXQoY3B1bWFza19jaGVjayhjcHUpLCAoKGRzdHApLT5iaXRzKSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19jcHVtYXNrX3NldF9jcHUodW5zaWduZWQgaW50
IGNwdSwgc3RydWN0IGNwdW1hc2sgKmRzdHApCjE0NDc0OiB7CjE0NDc0OiAgX19zZXRfYml0KGNw
dW1hc2tfY2hlY2soY3B1KSwgKChkc3RwKS0+Yml0cykpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNw
dW1hc2tfY2xlYXJfY3B1KGludCBjcHUsIHN0cnVjdCBjcHVtYXNrICpkc3RwKQoxNDQ3NDogewox
NDQ3NDogIGNsZWFyX2JpdChjcHVtYXNrX2NoZWNrKGNwdSksICgoZHN0cCktPmJpdHMpKTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2NwdW1hc2tfY2xlYXJfY3B1KGludCBjcHUsIHN0
cnVjdCBjcHVtYXNrICpkc3RwKQoxNDQ3NDogewoxNDQ3NDogIF9fY2xlYXJfYml0KGNwdW1hc2tf
Y2hlY2soY3B1KSwgKChkc3RwKS0+Yml0cykpOwoxNDQ3NDogfQoxNDQ3NDogIyAzNTggIi4vaW5j
bHVkZS9saW51eC9jcHVtYXNrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgY3B1bWFza190ZXN0X2NwdShpbnQgY3B1
LCBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqY3B1bWFzaykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
dGVzdF9iaXQoY3B1bWFza19jaGVjayhjcHUpLCAoKChjcHVtYXNrKSktPmJpdHMpKTsKMTQ0NzQ6
IH0KMTQ0NzQ6ICMgMzcyICIuL2luY2x1ZGUvbGludXgvY3B1bWFzay5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGNw
dW1hc2tfdGVzdF9hbmRfc2V0X2NwdShpbnQgY3B1LCBzdHJ1Y3QgY3B1bWFzayAqY3B1bWFzaykK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdGVzdF9hbmRfc2V0X2JpdChjcHVtYXNrX2NoZWNrKGNw
dSksICgoY3B1bWFzayktPmJpdHMpKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMzg2ICIuL2luY2x1ZGUv
bGludXgvY3B1bWFzay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGNwdW1hc2tfdGVzdF9hbmRfY2xlYXJfY3B1KGlu
dCBjcHUsIHN0cnVjdCBjcHVtYXNrICpjcHVtYXNrKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB0
ZXN0X2FuZF9jbGVhcl9iaXQoY3B1bWFza19jaGVjayhjcHUpLCAoKGNwdW1hc2spLT5iaXRzKSk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBjcHVtYXNrX3NldGFsbChzdHJ1Y3QgY3B1bWFzayAqZHN0cCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICBiaXRtYXBfZmlsbCgoKGRzdHApLT5iaXRzKSwgKCh1bnNpZ25lZCBpbnQpOCkpOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY3B1
bWFza19jbGVhcihzdHJ1Y3QgY3B1bWFzayAqZHN0cCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBiaXRtYXBf
emVybygoKGRzdHApLT5iaXRzKSwgKCh1bnNpZ25lZCBpbnQpOCkpOwoxNDQ3NDogfQoxNDQ3NDog
IyA0MTcgIi4vaW5jbHVkZS9saW51eC9jcHVtYXNrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgY3B1bWFza19hbmQo
c3RydWN0IGNwdW1hc2sgKmRzdHAsCjE0NDc0OiAgICAgICAgICAgY29uc3Qgc3RydWN0IGNwdW1h
c2sgKnNyYzFwLAoxNDQ3NDogICAgICAgICAgIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpzcmMycCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYml0bWFwX2FuZCgoKGRzdHApLT5iaXRzKSwgKChzcmMx
cCktPmJpdHMpLAoxNDQ3NDogICAgICAgICAgICAoKHNyYzJwKS0+Yml0cyksICgodW5zaWduZWQg
aW50KTgpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjcHVtYXNrX29yKHN0cnVjdCBjcHVtYXNrICpk
c3RwLCBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjMXAsCjE0NDc0OiAgICAgICAgICBjb25zdCBz
dHJ1Y3QgY3B1bWFzayAqc3JjMnApCjE0NDc0OiB7CjE0NDc0OiAgYml0bWFwX29yKCgoZHN0cCkt
PmJpdHMpLCAoKHNyYzFwKS0+Yml0cyksCjE0NDc0OiAgICAgICAgICAgKChzcmMycCktPmJpdHMp
LCAoKHVuc2lnbmVkIGludCk4KSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY3B1bWFza194b3Ioc3Ry
dWN0IGNwdW1hc2sgKmRzdHAsCjE0NDc0OiAgICAgICAgICAgY29uc3Qgc3RydWN0IGNwdW1hc2sg
KnNyYzFwLAoxNDQ3NDogICAgICAgICAgIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpzcmMycCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICBiaXRtYXBfeG9yKCgoZHN0cCktPmJpdHMpLCAoKHNyYzFwKS0+Yml0cyks
CjE0NDc0OiAgICAgICAgICAgICgoc3JjMnApLT5iaXRzKSwgKCh1bnNpZ25lZCBpbnQpOCkpOwox
NDQ3NDogfQoxNDQ3NDogIyA0NjAgIi4vaW5jbHVkZS9saW51eC9jcHVtYXNrLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQgY3B1bWFza19hbmRub3Qoc3RydWN0IGNwdW1hc2sgKmRzdHAsCjE0NDc0OiAgICAgICBjb25z
dCBzdHJ1Y3QgY3B1bWFzayAqc3JjMXAsCjE0NDc0OiAgICAgICBjb25zdCBzdHJ1Y3QgY3B1bWFz
ayAqc3JjMnApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGJpdG1hcF9hbmRub3QoKChkc3RwKS0+
Yml0cyksICgoc3JjMXApLT5iaXRzKSwKMTQ0NzQ6ICAgICAgICAoKHNyYzJwKS0+Yml0cyksICgo
dW5zaWduZWQgaW50KTgpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY3B1bWFza19jb21wbGVtZW50KHN0cnVjdCBj
cHVtYXNrICpkc3RwLAoxNDQ3NDogICAgICAgICAgIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpzcmNw
KQoxNDQ3NDogewoxNDQ3NDogIGJpdG1hcF9jb21wbGVtZW50KCgoZHN0cCktPmJpdHMpLCAoKHNy
Y3ApLT5iaXRzKSwKMTQ0NzQ6ICAgICAgICAgICAgKCh1bnNpZ25lZCBpbnQpOCkpOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBjcHVtYXNrX2VxdWFsKGNvbnN0IHN0cnVjdCBjcHVtYXNrICpzcmMxcCwKMTQ0NzQ6ICAg
ICBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjMnApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGJp
dG1hcF9lcXVhbCgoKHNyYzFwKS0+Yml0cyksICgoc3JjMnApLT5iaXRzKSwKMTQ0NzQ6ICAgICAg
ICAoKHVuc2lnbmVkIGludCk4KSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgY3B1bWFza19vcl9lcXVh
bChjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjMXAsCjE0NDc0OiAgICAgICAgIGNvbnN0IHN0cnVj
dCBjcHVtYXNrICpzcmMycCwKMTQ0NzQ6ICAgICAgICAgY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNy
YzNwKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBiaXRtYXBfb3JfZXF1YWwoKChzcmMxcCktPmJp
dHMpLCAoKHNyYzJwKS0+Yml0cyksCjE0NDc0OiAgICAgICAgICAgKChzcmMzcCktPmJpdHMpLCAo
KHVuc2lnbmVkIGludCk4KSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGNwdW1hc2tfaW50ZXJzZWN0cyhjb25zdCBz
dHJ1Y3QgY3B1bWFzayAqc3JjMXAsCjE0NDc0OiAgICAgICAgICBjb25zdCBzdHJ1Y3QgY3B1bWFz
ayAqc3JjMnApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGJpdG1hcF9pbnRlcnNlY3RzKCgoc3Jj
MXApLT5iaXRzKSwgKChzcmMycCktPmJpdHMpLAoxNDQ3NDogICAgICAgICAgICAgKCh1bnNpZ25l
ZCBpbnQpOCkpOwoxNDQ3NDogfQoxNDQ3NDogIyA1MjUgIi4vaW5jbHVkZS9saW51eC9jcHVtYXNr
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBpbnQgY3B1bWFza19zdWJzZXQoY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNyYzFw
LAoxNDQ3NDogICAgICBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjMnApCjE0NDc0OiB7CjE0NDc0
OiAgcmV0dXJuIGJpdG1hcF9zdWJzZXQoKChzcmMxcCktPmJpdHMpLCAoKHNyYzJwKS0+Yml0cyks
CjE0NDc0OiAgICAgICAgICgodW5zaWduZWQgaW50KTgpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGNwdW1hc2tfZW1wdHkoY29u
c3Qgc3RydWN0IGNwdW1hc2sgKnNyY3ApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGJpdG1hcF9l
bXB0eSgoKHNyY3ApLT5iaXRzKSwgKCh1bnNpZ25lZCBpbnQpOCkpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgY3B1bWFza19mdWxs
KGNvbnN0IHN0cnVjdCBjcHVtYXNrICpzcmNwKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBiaXRt
YXBfZnVsbCgoKHNyY3ApLT5iaXRzKSwgKCh1bnNpZ25lZCBpbnQpOCkpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBj
cHVtYXNrX3dlaWdodChjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjcCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gYml0bWFwX3dlaWdodCgoKHNyY3ApLT5iaXRzKSwgKCh1bnNpZ25lZCBpbnQpOCkp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNwdW1hc2tfc2hpZnRfcmlnaHQoc3RydWN0IGNwdW1hc2sg
KmRzdHAsCjE0NDc0OiAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpzcmNwLCBpbnQg
bikKMTQ0NzQ6IHsKMTQ0NzQ6ICBiaXRtYXBfc2hpZnRfcmlnaHQoKChkc3RwKS0+Yml0cyksICgo
c3JjcCktPmJpdHMpLCBuLAoxNDQ3NDogICAgICAgICAgICAgKCh1bnNpZ25lZCBpbnQpOCkpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIGNwdW1hc2tfc2hpZnRfbGVmdChzdHJ1Y3QgY3B1bWFzayAqZHN0
cCwKMTQ0NzQ6ICAgICAgICAgICBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjcCwgaW50IG4pCjE0
NDc0OiB7CjE0NDc0OiAgYml0bWFwX3NoaWZ0X2xlZnQoKChkc3RwKS0+Yml0cyksICgoc3JjcCkt
PmJpdHMpLCBuLAoxNDQ3NDogICAgICAgICAgICAoKHVuc2lnbmVkIGludCk4KSk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGNwdW1hc2tfY29weShzdHJ1Y3QgY3B1bWFzayAqZHN0cCwKMTQ0NzQ6ICAgICBjb25zdCBz
dHJ1Y3QgY3B1bWFzayAqc3JjcCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBiaXRtYXBfY29weSgoKGRzdHAp
LT5iaXRzKSwgKChzcmNwKS0+Yml0cyksICgodW5zaWduZWQgaW50KTgpKTsKMTQ0NzQ6IH0KMTQ0
NzQ6ICMgNjM2ICIuL2luY2x1ZGUvbGludXgvY3B1bWFzay5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGNwdW1hc2tf
cGFyc2VfdXNlcihjb25zdCBjaGFyICpidWYsIGludCBsZW4sCjE0NDc0OiAgICAgICAgICBzdHJ1
Y3QgY3B1bWFzayAqZHN0cCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYml0bWFwX3BhcnNlX3Vz
ZXIoYnVmLCBsZW4sICgoZHN0cCktPmJpdHMpLCAoKHVuc2lnbmVkIGludCk4KSk7CjE0NDc0OiB9
CjE0NDc0OiAjIDY1MCAiLi9pbmNsdWRlL2xpbnV4L2NwdW1hc2suaCIKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBjcHVt
YXNrX3BhcnNlbGlzdF91c2VyKGNvbnN0IGNoYXIgKmJ1ZiwgaW50IGxlbiwKMTQ0NzQ6ICAgICAg
ICAgIHN0cnVjdCBjcHVtYXNrICpkc3RwKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBiaXRtYXBf
cGFyc2VsaXN0X3VzZXIoYnVmLCBsZW4sICgoZHN0cCktPmJpdHMpLAoxNDQ3NDogICAgICAgICAg
KCh1bnNpZ25lZCBpbnQpOCkpOwoxNDQ3NDogfQoxNDQ3NDogIyA2NjQgIi4vaW5jbHVkZS9saW51
eC9jcHVtYXNrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgY3B1bWFza19wYXJzZShjb25zdCBjaGFyICpidWYsIHN0
cnVjdCBjcHVtYXNrICpkc3RwKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBiaXRtYXBfcGFyc2Uo
YnVmLCAofjBVKSwgKChkc3RwKS0+Yml0cyksICgodW5zaWduZWQgaW50KTgpKTsKMTQ0NzQ6IH0K
MTQ0NzQ6ICMgNjc2ICIuL2luY2x1ZGUvbGludXgvY3B1bWFzay5oIgoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGNwdWxp
c3RfcGFyc2UoY29uc3QgY2hhciAqYnVmLCBzdHJ1Y3QgY3B1bWFzayAqZHN0cCkKMTQ0NzQ6IHsK
MTQ0NzQ6ICByZXR1cm4gYml0bWFwX3BhcnNlbGlzdChidWYsICgoZHN0cCktPmJpdHMpLCAoKHVu
c2lnbmVkIGludCk4KSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHVuc2lnbmVkIGludCBjcHVtYXNrX3NpemUodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4gKCgoKCh1bnNpZ25lZCBpbnQpOCkpICsgKChzaXplb2YobG9uZykgKiA4KSkgLSAxKSAv
ICgoc2l6ZW9mKGxvbmcpICogOCkpKSAqIHNpemVvZihsb25nKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMg
NzQ5ICIuL2luY2x1ZGUvbGludXgvY3B1bWFzay5oIgoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgY3B1
bWFzayBjcHVtYXNrX3Zhcl90WzFdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBib29sIGFsbG9jX2NwdW1hc2tfdmFyKGNwdW1hc2tfdmFyX3QgKm1hc2ssIGdmcF90IGZs
YWdzKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB0cnVlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBib29sIGFsbG9jX2NwdW1hc2tfdmFyX25vZGUoY3B1bWFza192YXJfdCAqbWFzaywgZ2ZwX3Qg
ZmxhZ3MsCjE0NDc0OiAgICAgICAgaW50IG5vZGUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHRy
dWU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgemFsbG9jX2NwdW1hc2tfdmFyKGNwdW1h
c2tfdmFyX3QgKm1hc2ssIGdmcF90IGZsYWdzKQoxNDQ3NDogewoxNDQ3NDogIGNwdW1hc2tfY2xl
YXIoKm1hc2spOwoxNDQ3NDogIHJldHVybiB0cnVlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBi
b29sIHphbGxvY19jcHVtYXNrX3Zhcl9ub2RlKGNwdW1hc2tfdmFyX3QgKm1hc2ssIGdmcF90IGZs
YWdzLAoxNDQ3NDogICAgICAgIGludCBub2RlKQoxNDQ3NDogewoxNDQ3NDogIGNwdW1hc2tfY2xl
YXIoKm1hc2spOwoxNDQ3NDogIHJldHVybiB0cnVlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGFsbG9jX2Jvb3RtZW1fY3B1bWFza192YXIoY3B1bWFza192YXJfdCAqbWFzaykKMTQ0NzQ6
IHsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBmcmVlX2NwdW1hc2tfdmFyKGNwdW1hc2tf
dmFyX3QgbWFzaykKMTQ0NzQ6IHsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBmcmVlX2Jv
b3RtZW1fY3B1bWFza192YXIoY3B1bWFza192YXJfdCBtYXNrKQoxNDQ3NDogewoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBib29sIGNwdW1hc2tfYXZhaWxhYmxlKGNwdW1hc2tfdmFyX3QgbWFzaykK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdHJ1ZTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIGxvbmcgY3B1X2FsbF9i
aXRzWygoKDgpICsgKChzaXplb2YobG9uZykgKiA4KSkgLSAxKSAvICgoc2l6ZW9mKGxvbmcpICog
OCkpKV07CjE0NDc0OiAjIDgwOSAiLi9pbmNsdWRlL2xpbnV4L2NwdW1hc2suaCIKMTQ0NzQ6IHZv
aWQgaW5pdF9jcHVfcHJlc2VudChjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjKTsKMTQ0NzQ6IHZv
aWQgaW5pdF9jcHVfcG9zc2libGUoY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNyYyk7CjE0NDc0OiB2
b2lkIGluaXRfY3B1X29ubGluZShjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjKTsKMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCByZXNldF9jcHVfcG9zc2libGVfbWFzayh2b2lkKQoxNDQ3NDogewoxNDQ3NDog
IGJpdG1hcF96ZXJvKCgoJl9fY3B1X3Bvc3NpYmxlX21hc2spLT5iaXRzKSwgOCk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQKMTQ0NzQ6IHNldF9jcHVfcG9zc2libGUodW5zaWduZWQgaW50
IGNwdSwgYm9vbCBwb3NzaWJsZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAocG9zc2libGUpCjE0NDc0
OiAgIGNwdW1hc2tfc2V0X2NwdShjcHUsICZfX2NwdV9wb3NzaWJsZV9tYXNrKTsKMTQ0NzQ6ICBl
bHNlCjE0NDc0OiAgIGNwdW1hc2tfY2xlYXJfY3B1KGNwdSwgJl9fY3B1X3Bvc3NpYmxlX21hc2sp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBzZXRfY3B1X3ByZXNlbnQodW5z
aWduZWQgaW50IGNwdSwgYm9vbCBwcmVzZW50KQoxNDQ3NDogewoxNDQ3NDogIGlmIChwcmVzZW50
KQoxNDQ3NDogICBjcHVtYXNrX3NldF9jcHUoY3B1LCAmX19jcHVfcHJlc2VudF9tYXNrKTsKMTQ0
NzQ6ICBlbHNlCjE0NDc0OiAgIGNwdW1hc2tfY2xlYXJfY3B1KGNwdSwgJl9fY3B1X3ByZXNlbnRf
bWFzayk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgc2V0X2NwdV9vbmxpbmUodW5zaWdu
ZWQgaW50IGNwdSwgYm9vbCBvbmxpbmUpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBzZXRf
Y3B1X2FjdGl2ZSh1bnNpZ25lZCBpbnQgY3B1LCBib29sIGFjdGl2ZSkKMTQ0NzQ6IHsKMTQ0NzQ6
ICBpZiAoYWN0aXZlKQoxNDQ3NDogICBjcHVtYXNrX3NldF9jcHUoY3B1LCAmX19jcHVfYWN0aXZl
X21hc2spOwoxNDQ3NDogIGVsc2UKMTQ0NzQ6ICAgY3B1bWFza19jbGVhcl9jcHUoY3B1LCAmX19j
cHVfYWN0aXZlX21hc2spOwoxNDQ3NDogfQoxNDQ3NDogIyA4NjIgIi4vaW5jbHVkZS9saW51eC9j
cHVtYXNrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBpbnQgX19jaGVja19pc19iaXRtYXAoY29uc3QgdW5zaWduZWQgbG9u
ZyAqYml0bWFwKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAxOwoxNDQ3NDogfQoxNDQ3NDogIyA4
NzQgIi4vaW5jbHVkZS9saW51eC9jcHVtYXNrLmgiCjE0NDc0OiBleHRlcm4gY29uc3QgdW5zaWdu
ZWQgbG9uZwoxNDQ3NDogIGNwdV9iaXRfYml0bWFwWzY0ICsxXVsoKCg4KSArICgoc2l6ZW9mKGxv
bmcpICogOCkpIC0gMSkgLyAoKHNpemVvZihsb25nKSAqIDgpKSldOwoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBj
b25zdCBzdHJ1Y3QgY3B1bWFzayAqZ2V0X2NwdV9tYXNrKHVuc2lnbmVkIGludCBjcHUpCjE0NDc0
OiB7CjE0NDc0OiAgY29uc3QgdW5zaWduZWQgbG9uZyAqcCA9IGNwdV9iaXRfYml0bWFwWzEgKyBj
cHUgJSA2NF07CjE0NDc0OiAgcCAtPSBjcHUgLyA2NDsKMTQ0NzQ6ICByZXR1cm4gKChzdHJ1Y3Qg
Y3B1bWFzayAqKSgxID8gKHApIDogKHZvaWQgKilzaXplb2YoX19jaGVja19pc19iaXRtYXAocCkp
KSk7CjE0NDc0OiB9CjE0NDc0OiAjIDkxMSAiLi9pbmNsdWRlL2xpbnV4L2NwdW1hc2suaCIKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHNzaXplX3QKMTQ0NzQ6IGNwdW1hcF9wcmludF90b19wYWdlYnVmKGJvb2wgbGlzdCwgY2hh
ciAqYnVmLCBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqbWFzaykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gYml0bWFwX3ByaW50X3RvX3BhZ2VidWYobGlzdCwgYnVmLCAoKG1hc2spLT5iaXRzKSwKMTQ0
NzQ6ICAgICAgICAgICBucl9jcHVfaWRzKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNiAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9jcHVtYXNrLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGNwdW1hc2tf
dmFyX3QgY3B1X2NhbGxpbl9tYXNrOwoxNDQ3NDogZXh0ZXJuIGNwdW1hc2tfdmFyX3QgY3B1X2Nh
bGxvdXRfbWFzazsKMTQ0NzQ6IGV4dGVybiBjcHVtYXNrX3Zhcl90IGNwdV9pbml0aWFsaXplZF9t
YXNrOwoxNDQ3NDogZXh0ZXJuIGNwdW1hc2tfdmFyX3QgY3B1X3NpYmxpbmdfc2V0dXBfbWFzazsK
MTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgc2V0dXBfY3B1X2xvY2FsX21hc2tzKHZvaWQpOwox
NDQ3NDogIyAxMiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3IuaCIgMgoxNDQ3NDogIyAxICIu
L2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vbXNyLmgiIDEKMTQ0NzQ6ICMgMTMgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vbXNyLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG1zciB7CjE0NDc0
OiAgdW5pb24gewoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogICAgdTMyIGw7CjE0NDc0OiAgICB1
MzIgaDsKMTQ0NzQ6ICAgfTsKMTQ0NzQ6ICAgdTY0IHE7CjE0NDc0OiAgfTsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBtc3JfaW5mbyB7CjE0NDc0OiAgdTMyIG1zcl9ubzsKMTQ0NzQ6
ICBzdHJ1Y3QgbXNyIHJlZzsKMTQ0NzQ6ICBzdHJ1Y3QgbXNyICptc3JzOwoxNDQ3NDogIGludCBl
cnI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgbXNyX3JlZ3NfaW5mbyB7CjE0NDc0
OiAgdTMyICpyZWdzOwoxNDQ3NDogIGludCBlcnI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3Qgc2F2ZWRfbXNyIHsKMTQ0NzQ6ICBib29sIHZhbGlkOwoxNDQ3NDogIHN0cnVjdCBtc3Jf
aW5mbyBpbmZvOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHNhdmVkX21zcnMgewox
NDQ3NDogIHVuc2lnbmVkIGludCBudW07CjE0NDc0OiAgc3RydWN0IHNhdmVkX21zciAqYXJyYXk7
CjE0NDc0OiB9OwoxNDQ3NDogIyA2OCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3IuaCIKMTQ0
NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQtZGVmcy5oIiAxCjE0NDc0OiAjIDEy
ICIuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC1kZWZzLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVk
ZS9saW51eC9zdGF0aWNfa2V5LmgiIDEKMTQ0NzQ6ICMgMTMgIi4vaW5jbHVkZS9saW51eC90cmFj
ZXBvaW50LWRlZnMuaCIgMgoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgdHJhY2VfcHJpbnRfZmxhZ3Mg
ewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgbWFzazsKMTQ0NzQ6ICBjb25zdCBjaGFyICpuYW1lOwox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHRyYWNlX3ByaW50X2ZsYWdzX3U2NCB7CjE0
NDc0OiAgdW5zaWduZWQgbG9uZyBsb25nIG1hc2s7CjE0NDc0OiAgY29uc3QgY2hhciAqbmFtZTsK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0cmFjZXBvaW50X2Z1bmMgewoxNDQ3NDog
IHZvaWQgKmZ1bmM7CjE0NDc0OiAgdm9pZCAqZGF0YTsKMTQ0NzQ6ICBpbnQgcHJpbzsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0cmFjZXBvaW50IHsKMTQ0NzQ6ICBjb25zdCBjaGFy
ICpuYW1lOwoxNDQ3NDogIHN0cnVjdCBzdGF0aWNfa2V5IGtleTsKMTQ0NzQ6ICBpbnQgKCpyZWdm
dW5jKSh2b2lkKTsKMTQ0NzQ6ICB2b2lkICgqdW5yZWdmdW5jKSh2b2lkKTsKMTQ0NzQ6ICBzdHJ1
Y3QgdHJhY2Vwb2ludF9mdW5jICpmdW5jczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogdHlwZWRlZiBjb25zdCBpbnQgdHJhY2Vwb2ludF9wdHJfdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGJwZl9yYXdfZXZlbnRfbWFwIHsKMTQ0NzQ6ICBz
dHJ1Y3QgdHJhY2Vwb2ludCAqdHA7CjE0NDc0OiAgdm9pZCAqYnBmX2Z1bmM7CjE0NDc0OiAgdTMy
IG51bV9hcmdzOwoxNDQ3NDogIHUzMiB3cml0YWJsZV9zaXplOwoxNDQ3NDogfSBfX2F0dHJpYnV0
ZV9fKChfX2FsaWduZWRfXygzMikpKTsKMTQ0NzQ6ICMgNjkgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vbXNyLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB0cmFjZXBvaW50IF9fdHJh
Y2Vwb2ludF9yZWFkX21zcjsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgdHJhY2Vwb2ludCBfX3RyYWNl
cG9pbnRfd3JpdGVfbXNyOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB0cmFjZXBvaW50IF9fdHJhY2Vw
b2ludF9yZHBtYzsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgZG9fdHJhY2Vfd3JpdGVfbXNy
KHVuc2lnbmVkIGludCBtc3IsIHU2NCB2YWwsIGludCBmYWlsZWQpOwoxNDQ3NDogZXh0ZXJuIHZv
aWQgZG9fdHJhY2VfcmVhZF9tc3IodW5zaWduZWQgaW50IG1zciwgdTY0IHZhbCwgaW50IGZhaWxl
ZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBkb190cmFjZV9yZHBtYyh1bnNpZ25lZCBpbnQgbXNyLCB1
NjQgdmFsLCBpbnQgZmFpbGVkKTsKMTQ0NzQ6ICMgOTEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
bXNyLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIGxvbmcgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fcmRtc3IodW5zaWduZWQgaW50IG1zcikKMTQ0NzQ6IHsKMTQ0NzQ6
ICB1bnNpZ25lZCBsb25nIGxvdywgaGlnaDsKMTQ0NzQ6IAoxNDQ3NDogIGFzbSB2b2xhdGlsZSgi
MTogcmRtc3JcbiIKMTQ0NzQ6ICAgICAgICAiMjpcbiIKMTQ0NzQ6ICAgICAgICAiIC5wdXNoc2Vj
dGlvbiBcIl9fZXhfdGFibGVcIixcImFcIlxuIiAiIC5iYWxpZ24gNFxuIiAiIC5sb25nICgiICIx
YiIgIikgLSAuXG4iICIgLmxvbmcgKCIgIjJiIiAiKSAtIC5cbiIgIiAubG9uZyAoIiAiZXhfaGFu
ZGxlcl9yZG1zcl91bnNhZmUiICIpIC0gLlxuIiAiIC5wb3BzZWN0aW9uXG4iCjE0NDc0OiAgICAg
ICAgOiAiPWEiIChsb3cpLCAiPWQiIChoaWdoKSA6ICJjIiAobXNyKSk7CjE0NDc0OiAKMTQ0NzQ6
ICByZXR1cm4gKChsb3cpIHwgKGhpZ2gpIDw8IDMyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX193cm1zcih1bnNp
Z25lZCBpbnQgbXNyLCB1MzIgbG93LCB1MzIgaGlnaCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBhc20gdm9s
YXRpbGUoIjE6IHdybXNyXG4iCjE0NDc0OiAgICAgICAgIjI6XG4iCjE0NDc0OiAgICAgICAgIiAu
cHVzaHNlY3Rpb24gXCJfX2V4X3RhYmxlXCIsXCJhXCJcbiIgIiAuYmFsaWduIDRcbiIgIiAubG9u
ZyAoIiAiMWIiICIpIC0gLlxuIiAiIC5sb25nICgiICIyYiIgIikgLSAuXG4iICIgLmxvbmcgKCIg
ImV4X2hhbmRsZXJfd3Jtc3JfdW5zYWZlIiAiKSAtIC5cbiIgIiAucG9wc2VjdGlvblxuIgoxNDQ3
NDogICAgICAgIDogOiAiYyIgKG1zciksICJhIihsb3cpLCAiZCIgKGhpZ2gpIDogIm1lbW9yeSIp
OwoxNDQ3NDogfQoxNDQ3NDogIyAxMjUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXNyLmgiCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB1bnNpZ25lZCBsb25nIGxvbmcgbmF0aXZlX3JlYWRfbXNyKHVuc2lnbmVkIGludCBtc3Ip
CjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBsb25nIHZhbDsKMTQ0NzQ6IAoxNDQ3NDog
IHZhbCA9IF9fcmRtc3IobXNyKTsKMTQ0NzQ6IAoxNDQ3NDogIGlmIChzdGF0aWNfa2V5X2ZhbHNl
KCYoX190cmFjZXBvaW50X3JlYWRfbXNyKS5rZXkpKQoxNDQ3NDogICBkb190cmFjZV9yZWFkX21z
cihtc3IsIHZhbCwgMCk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gdmFsOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIGxvbmcgbmF0aXZlX3JlYWRfbXNyX3NhZmUodW5zaWdu
ZWQgaW50IG1zciwKMTQ0NzQ6ICAgICAgICAgICAgIGludCAqZXJyKQoxNDQ3NDogewoxNDQ3NDog
IHVuc2lnbmVkIGxvbmcgbG93LCBoaWdoOwoxNDQ3NDogCjE0NDc0OiAgYXNtIHZvbGF0aWxlKCIy
OiByZG1zciA7IHhvciAlW2Vycl0sJVtlcnJdXG4iCjE0NDc0OiAgICAgICAgIjE6XG5cdCIKMTQ0
NzQ6ICAgICAgICAiLnNlY3Rpb24gLmZpeHVwLFwiYXhcIlxuXHQiCjE0NDc0OiAgICAgICAgIjM6
IG1vdiAlW2ZhdWx0XSwlW2Vycl1cblx0IgoxNDQ3NDogICAgICAgICJ4b3JsICUlZWF4LCAlJWVh
eFxuXHQiCjE0NDc0OiAgICAgICAgInhvcmwgJSVlZHgsICUlZWR4XG5cdCIKMTQ0NzQ6ICAgICAg
ICAiam1wIDFiXG5cdCIKMTQ0NzQ6ICAgICAgICAiLnByZXZpb3VzXG5cdCIKMTQ0NzQ6ICAgICAg
ICAiIC5wdXNoc2VjdGlvbiBcIl9fZXhfdGFibGVcIixcImFcIlxuIiAiIC5iYWxpZ24gNFxuIiAi
IC5sb25nICgiICIyYiIgIikgLSAuXG4iICIgLmxvbmcgKCIgIjNiIiAiKSAtIC5cbiIgIiAubG9u
ZyAoIiAiZXhfaGFuZGxlcl9kZWZhdWx0IiAiKSAtIC5cbiIgIiAucG9wc2VjdGlvblxuIgoxNDQ3
NDogICAgICAgIDogW2Vycl0gIj1yIiAoKmVyciksICI9YSIgKGxvdyksICI9ZCIgKGhpZ2gpCjE0
NDc0OiAgICAgICAgOiAiYyIgKG1zciksIFtmYXVsdF0gImkiICgtNSkpOwoxNDQ3NDogIGlmIChz
dGF0aWNfa2V5X2ZhbHNlKCYoX190cmFjZXBvaW50X3JlYWRfbXNyKS5rZXkpKQoxNDQ3NDogICBk
b190cmFjZV9yZWFkX21zcihtc3IsICgobG93KSB8IChoaWdoKSA8PCAzMiksICplcnIpOwoxNDQ3
NDogIHJldHVybiAoKGxvdykgfCAoaGlnaCkgPDwgMzIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpCjE0
NDc0OiBuYXRpdmVfd3JpdGVfbXNyKHVuc2lnbmVkIGludCBtc3IsIHUzMiBsb3csIHUzMiBoaWdo
KQoxNDQ3NDogewoxNDQ3NDogIF9fd3Jtc3IobXNyLCBsb3csIGhpZ2gpOwoxNDQ3NDogCjE0NDc0
OiAgaWYgKHN0YXRpY19rZXlfZmFsc2UoJihfX3RyYWNlcG9pbnRfd3JpdGVfbXNyKS5rZXkpKQox
NDQ3NDogICBkb190cmFjZV93cml0ZV9tc3IobXNyLCAoKHU2NCloaWdoIDw8IDMyIHwgbG93KSwg
MCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKQoxNDQ3NDogbmF0aXZlX3dyaXRlX21zcl9zYWZlKHVuc2ln
bmVkIGludCBtc3IsIHUzMiBsb3csIHUzMiBoaWdoKQoxNDQ3NDogewoxNDQ3NDogIGludCBlcnI7
CjE0NDc0OiAKMTQ0NzQ6ICBhc20gdm9sYXRpbGUoIjI6IHdybXNyIDsgeG9yICVbZXJyXSwlW2Vy
cl1cbiIKMTQ0NzQ6ICAgICAgICAiMTpcblx0IgoxNDQ3NDogICAgICAgICIuc2VjdGlvbiAuZml4
dXAsXCJheFwiXG5cdCIKMTQ0NzQ6ICAgICAgICAiMzogIG1vdiAlW2ZhdWx0XSwlW2Vycl0gOyBq
bXAgMWJcblx0IgoxNDQ3NDogICAgICAgICIucHJldmlvdXNcblx0IgoxNDQ3NDogICAgICAgICIg
LnB1c2hzZWN0aW9uIFwiX19leF90YWJsZVwiLFwiYVwiXG4iICIgLmJhbGlnbiA0XG4iICIgLmxv
bmcgKCIgIjJiIiAiKSAtIC5cbiIgIiAubG9uZyAoIiAiM2IiICIpIC0gLlxuIiAiIC5sb25nICgi
ICJleF9oYW5kbGVyX2RlZmF1bHQiICIpIC0gLlxuIiAiIC5wb3BzZWN0aW9uXG4iCjE0NDc0OiAg
ICAgICAgOiBbZXJyXSAiPWEiIChlcnIpCjE0NDc0OiAgICAgICAgOiAiYyIgKG1zciksICIwIiAo
bG93KSwgImQiIChoaWdoKSwKMTQ0NzQ6ICAgICAgICAgIFtmYXVsdF0gImkiICgtNSkKMTQ0NzQ6
ICAgICAgICA6ICJtZW1vcnkiKTsKMTQ0NzQ6ICBpZiAoc3RhdGljX2tleV9mYWxzZSgmKF9fdHJh
Y2Vwb2ludF93cml0ZV9tc3IpLmtleSkpCjE0NDc0OiAgIGRvX3RyYWNlX3dyaXRlX21zcihtc3Is
ICgodTY0KWhpZ2ggPDwgMzIgfCBsb3cpLCBlcnIpOwoxNDQ3NDogIHJldHVybiBlcnI7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgcmRtc3Jfc2FmZV9yZWdzKHUzMiByZWdzWzhd
KTsKMTQ0NzQ6IGV4dGVybiBpbnQgd3Jtc3Jfc2FmZV9yZWdzKHUzMiByZWdzWzhdKTsKMTQ0NzQ6
ICMgMjAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21zci5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVf
XygoX19hbHdheXNfaW5saW5lX18pKSB1bnNpZ25lZCBsb25nIGxvbmcgcmR0c2Modm9pZCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGxvdywgaGlnaDsKMTQ0NzQ6IAoxNDQ3NDogIGFz
bSB2b2xhdGlsZSgicmR0c2MiIDogIj1hIiAobG93KSwgIj1kIiAoaGlnaCkpOwoxNDQ3NDogCjE0
NDc0OiAgcmV0dXJuICgobG93KSB8IChoaWdoKSA8PCAzMik7CjE0NDc0OiB9CjE0NDc0OiAjIDIx
OCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3IuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9f
YWx3YXlzX2lubGluZV9fKSkgdW5zaWduZWQgbG9uZyBsb25nIHJkdHNjX29yZGVyZWQodm9pZCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGxvdywgaGlnaDsKMTQ0NzQ6ICMgMjM2ICIu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL21zci5oIgoxNDQ3NDogIGFzbSB2b2xhdGlsZSgiIyBBTFQ6
IG9sZGluc3RyMlxuIiAiNjYxOlxuXHQiICJyZHRzYyIgIlxuNjYyOlxuIiAiIyBBTFQ6IHBhZGRp
bmcyXG4iICIuc2tpcCAtKCgiICIoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIikgXiAoKCgi
ICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpIF4gKCIgIjY2NSIiMiIiZi0iIjY2NCIiMiIiZiIg
IikpICYgLSgtKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpIDwgKCIgIjY2NSIiMiIiZi0i
IjY2NCIiMiIiZiIgIikpKSkpIiAiIC0gKCIgIjY2MmItNjYxYiIgIikpID4gMCkgKiAiICIoIiAi
KCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpIF4gKCgoIiAiNjY1IiIxIiJmLSIiNjY0IiIx
IiJmIiAiKSBeICgiICI2NjUiIjIiImYtIiI2NjQiIjIiImYiICIpKSAmIC0oLSgoIiAiNjY1IiIx
IiJmLSIiNjY0IiIxIiJmIiAiKSA8ICgiICI2NjUiIjIiImYtIiI2NjQiIjIiImYiICIpKSkpKSIg
IiAtICgiICI2NjJiLTY2MWIiICIpKSwgMHg5MFxuIiAiNjYzIiAiOlxuIiAiLnB1c2hzZWN0aW9u
IC5hbHRpbnN0cnVjdGlvbnMsXCJhXCJcbiIgIiAubG9uZyA2NjFiIC0gLlxuIiAiIC5sb25nICIg
IjY2NCIiMSIiZiAtIC5cbiIgIiAud29yZCAiICIoIDMqMzIrMTgpIiAiXG4iICIgLmJ5dGUgIiAi
NjYzIiJiLTY2MWIiICJcbiIgIiAuYnl0ZSAiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICJcbiIg
IiAuYnl0ZSAiICI2NjMiImItNjYyYiIgIlxuIiAiIC5sb25nIDY2MWIgLSAuXG4iICIgLmxvbmcg
IiAiNjY0IiIyIiJmIC0gLlxuIiAiIC53b3JkICIgIiggMSozMisyNykiICJcbiIgIiAuYnl0ZSAi
ICI2NjMiImItNjYxYiIgIlxuIiAiIC5ieXRlICIgIjY2NSIiMiIiZi0iIjY2NCIiMiIiZiIgIlxu
IiAiIC5ieXRlICIgIjY2MyIiYi02NjJiIiAiXG4iICIucG9wc2VjdGlvblxuIiAiLnB1c2hzZWN0
aW9uIC5hbHRpbnN0cl9yZXBsYWNlbWVudCwgXCJheFwiXG4iICIjIEFMVDogcmVwbGFjZW1lbnQg
IiAiMSIgIlxuIiAiNjY0IiIxIiI6XG5cdCIgImxmZW5jZTsgcmR0c2MiICJcbiIgIjY2NSIiMSIg
IjpcbiIgIiMgQUxUOiByZXBsYWNlbWVudCAiICIyIiAiXG4iICI2NjQiIjIiIjpcblx0IiAicmR0
c2NwIiAiXG4iICI2NjUiIjIiICI6XG4iICIucG9wc2VjdGlvblxuIgoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6ICAgIDogIj1hIiAobG93KSwgIj1kIiAoaGlnaCkKMTQ0NzQ6IAoxNDQ3NDogICAgOjog
ImVjeCIpOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuICgobG93KSB8IChoaWdoKSA8PCAzMik7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgbG9uZyBuYXRpdmVfcmVhZF9wbWMo
aW50IGNvdW50ZXIpCjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBsb3csIGhpZ2g7CjE0
NDc0OiAKMTQ0NzQ6ICBhc20gdm9sYXRpbGUoInJkcG1jIiA6ICI9YSIgKGxvdyksICI9ZCIgKGhp
Z2gpIDogImMiIChjb3VudGVyKSk7CjE0NDc0OiAgaWYgKHN0YXRpY19rZXlfZmFsc2UoJihfX3Ry
YWNlcG9pbnRfcmRwbWMpLmtleSkpCjE0NDc0OiAgIGRvX3RyYWNlX3JkcG1jKGNvdW50ZXIsICgo
bG93KSB8IChoaWdoKSA8PCAzMiksIDApOwoxNDQ3NDogIHJldHVybiAoKGxvdykgfCAoaGlnaCkg
PDwgMzIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAj
IDEgIi4vaW5jbHVkZS9saW51eC9lcnJuby5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvZXJybm8uaCIgMQoxNDQ3NDog
IyAxICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL2Vycm5vLmgiIDEKMTQ0
NzQ6ICMgMiAiLi9pbmNsdWRlL3VhcGkvbGludXgvZXJybm8uaCIgMgoxNDQ3NDogIyA2ICIuL2lu
Y2x1ZGUvbGludXgvZXJybm8uaCIgMgoxNDQ3NDogIyAyNjAgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vbXNyLmgiIDIKMTQ0NzQ6ICMgMjczICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21zci5oIgox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCB3cm1zcih1bnNpZ25lZCBpbnQgbXNyLCB1MzIgbG93LCB1MzIgaGlnaCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICBuYXRpdmVfd3JpdGVfbXNyKG1zciwgbG93LCBoaWdoKTsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB3cm1zcmwodW5zaWdu
ZWQgaW50IG1zciwgdTY0IHZhbCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBuYXRpdmVfd3JpdGVfbXNyKG1z
ciwgKHUzMikodmFsICYgMHhmZmZmZmZmZlVMTCksICh1MzIpKHZhbCA+PiAzMikpOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB3cm1zcl9zYWZlKHVuc2lnbmVkIGludCBtc3Is
IHUzMiBsb3csIHUzMiBoaWdoKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBuYXRpdmVfd3JpdGVf
bXNyX3NhZmUobXNyLCBsb3csIGhpZ2gpOwoxNDQ3NDogfQoxNDQ3NDogIyAzMDIgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vbXNyLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcmRtc3JsX3NhZmUodW5zaWduZWQgaW50
IG1zciwgdW5zaWduZWQgbG9uZyBsb25nICpwKQoxNDQ3NDogewoxNDQ3NDogIGludCBlcnI7CjE0
NDc0OiAKMTQ0NzQ6ICAqcCA9IG5hdGl2ZV9yZWFkX21zcl9zYWZlKG1zciwgJmVycik7CjE0NDc0
OiAgcmV0dXJuIGVycjsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMzI0ICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL21zci5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgaW50IHdybXNybF9zYWZlKHUzMiBtc3IsIHU2NCB2YWwpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIHdybXNyX3NhZmUobXNyLCAodTMyKXZhbCwgKHUzMikodmFsID4+
IDMyKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IG1zciAqbXNyc19hbGxvYyh2b2lkKTsKMTQ0NzQ6IHZvaWQgbXNyc19mcmVl
KHN0cnVjdCBtc3IgKm1zcnMpOwoxNDQ3NDogaW50IG1zcl9zZXRfYml0KHUzMiBtc3IsIHU4IGJp
dCk7CjE0NDc0OiBpbnQgbXNyX2NsZWFyX2JpdCh1MzIgbXNyLCB1OCBiaXQpOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IGludCByZG1zcl9vbl9jcHUodW5zaWduZWQgaW50IGNwdSwgdTMyIG1zcl9u
bywgdTMyICpsLCB1MzIgKmgpOwoxNDQ3NDogaW50IHdybXNyX29uX2NwdSh1bnNpZ25lZCBpbnQg
Y3B1LCB1MzIgbXNyX25vLCB1MzIgbCwgdTMyIGgpOwoxNDQ3NDogaW50IHJkbXNybF9vbl9jcHUo
dW5zaWduZWQgaW50IGNwdSwgdTMyIG1zcl9ubywgdTY0ICpxKTsKMTQ0NzQ6IGludCB3cm1zcmxf
b25fY3B1KHVuc2lnbmVkIGludCBjcHUsIHUzMiBtc3Jfbm8sIHU2NCBxKTsKMTQ0NzQ6IHZvaWQg
cmRtc3Jfb25fY3B1cyhjb25zdCBzdHJ1Y3QgY3B1bWFzayAqbWFzaywgdTMyIG1zcl9ubywgc3Ry
dWN0IG1zciAqbXNycyk7CjE0NDc0OiB2b2lkIHdybXNyX29uX2NwdXMoY29uc3Qgc3RydWN0IGNw
dW1hc2sgKm1hc2ssIHUzMiBtc3Jfbm8sIHN0cnVjdCBtc3IgKm1zcnMpOwoxNDQ3NDogaW50IHJk
bXNyX3NhZmVfb25fY3B1KHVuc2lnbmVkIGludCBjcHUsIHUzMiBtc3Jfbm8sIHUzMiAqbCwgdTMy
ICpoKTsKMTQ0NzQ6IGludCB3cm1zcl9zYWZlX29uX2NwdSh1bnNpZ25lZCBpbnQgY3B1LCB1MzIg
bXNyX25vLCB1MzIgbCwgdTMyIGgpOwoxNDQ3NDogaW50IHJkbXNybF9zYWZlX29uX2NwdSh1bnNp
Z25lZCBpbnQgY3B1LCB1MzIgbXNyX25vLCB1NjQgKnEpOwoxNDQ3NDogaW50IHdybXNybF9zYWZl
X29uX2NwdSh1bnNpZ25lZCBpbnQgY3B1LCB1MzIgbXNyX25vLCB1NjQgcSk7CjE0NDc0OiBpbnQg
cmRtc3Jfc2FmZV9yZWdzX29uX2NwdSh1bnNpZ25lZCBpbnQgY3B1LCB1MzIgcmVnc1s4XSk7CjE0
NDc0OiBpbnQgd3Jtc3Jfc2FmZV9yZWdzX29uX2NwdSh1bnNpZ25lZCBpbnQgY3B1LCB1MzIgcmVn
c1s4XSk7CjE0NDc0OiAjIDIzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIiAy
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NwZWNp
YWxfaW5zbnMuaCIgMQoxNDQ3NDogIyAxOSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zcGVjaWFs
X2luc25zLmgiCjE0NDc0OiBleHRlcm4gdW5zaWduZWQgbG9uZyBfX2ZvcmNlX29yZGVyOwoxNDQ3
NDogCjE0NDc0OiB2b2lkIG5hdGl2ZV93cml0ZV9jcjAodW5zaWduZWQgbG9uZyB2YWwpOwoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIG5hdGl2ZV9yZWFkX2NyMCh2b2lkKQoxNDQ3NDogewox
NDQ3NDogIHVuc2lnbmVkIGxvbmcgdmFsOwoxNDQ3NDogIGFzbSB2b2xhdGlsZSgibW92ICUlY3Iw
LCUwXG5cdCIgOiAiPXIiICh2YWwpLCAiPW0iIChfX2ZvcmNlX29yZGVyKSk7CjE0NDc0OiAgcmV0
dXJuIHZhbDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBuYXRpdmVfcmVh
ZF9jcjIodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHZhbDsKMTQ0NzQ6ICBh
c20gdm9sYXRpbGUoIm1vdiAlJWNyMiwlMFxuXHQiIDogIj1yIiAodmFsKSwgIj1tIiAoX19mb3Jj
ZV9vcmRlcikpOwoxNDQ3NDogIHJldHVybiB2YWw7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgbmF0aXZlX3dyaXRlX2NyMih1bnNpZ25lZCBsb25nIHZhbCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBh
c20gdm9sYXRpbGUoIm1vdiAlMCwlJWNyMiI6IDogInIiICh2YWwpLCAibSIgKF9fZm9yY2Vfb3Jk
ZXIpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBfX25hdGl2ZV9yZWFk
X2NyMyh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgdmFsOwoxNDQ3NDogIGFz
bSB2b2xhdGlsZSgibW92ICUlY3IzLCUwXG5cdCIgOiAiPXIiICh2YWwpLCAiPW0iIChfX2ZvcmNl
X29yZGVyKSk7CjE0NDc0OiAgcmV0dXJuIHZhbDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCBuYXRpdmVfd3JpdGVfY3IzKHVuc2lnbmVkIGxvbmcgdmFsKQoxNDQ3NDogewoxNDQ3NDogIGFz
bSB2b2xhdGlsZSgibW92ICUwLCUlY3IzIjogOiAiciIgKHZhbCksICJtIiAoX19mb3JjZV9vcmRl
cikpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIG5hdGl2ZV9yZWFkX2Ny
NCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgdmFsOwoxNDQ3NDogIyA2OSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zcGVjaWFsX2luc25zLmgiCjE0NDc0OiAgYXNtIHZvbGF0
aWxlKCJtb3YgJSVjcjQsJTBcblx0IiA6ICI9ciIgKHZhbCksICI9bSIgKF9fZm9yY2Vfb3JkZXIp
KTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiB2YWw7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHZv
aWQgbmF0aXZlX3dyaXRlX2NyNCh1bnNpZ25lZCBsb25nIHZhbCk7CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdTMyIHJkcGtydSh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHUzMiBlY3ggPSAwOwoxNDQ3
NDogIHUzMiBlZHgsIHBrcnU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIGFzbSB2b2xhdGlsZSgiLmJ5dGUgMHgwZiwweDAxLDB4ZWVcblx0IgoxNDQ3NDog
ICAgICAgIDogIj1hIiAocGtydSksICI9ZCIgKGVkeCkKMTQ0NzQ6ICAgICAgICA6ICJjIiAoZWN4
KSk7CjE0NDc0OiAgcmV0dXJuIHBrcnU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgd3Jw
a3J1KHUzMiBwa3J1KQoxNDQ3NDogewoxNDQ3NDogIHUzMiBlY3ggPSAwLCBlZHggPSAwOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBhc20gdm9sYXRpbGUo
Ii5ieXRlIDB4MGYsMHgwMSwweGVmXG5cdCIKMTQ0NzQ6ICAgICAgICA6IDogImEiIChwa3J1KSwg
ImMiKGVjeCksICJkIihlZHgpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX3dyaXRl
X3BrcnUodTMyIHBrcnUpCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6ICBpZiAocGtydSA9PSByZHBrcnUoKSkKMTQ0NzQ6ICAgcmV0dXJuOwoxNDQ3NDogCjE0
NDc0OiAgd3Jwa3J1KHBrcnUpOwoxNDQ3NDogfQoxNDQ3NDogIyAxMjcgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vc3BlY2lhbF9pbnNucy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBuYXRpdmVfd2JpbnZkKHZvaWQp
CjE0NDc0OiB7CjE0NDc0OiAgYXNtIHZvbGF0aWxlKCJ3YmludmQiOiA6IDoibWVtb3J5Iik7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIG5hdGl2ZV9sb2FkX2dzX2luZGV4KHVu
c2lnbmVkKTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBfX3JlYWRfY3I0KHZvaWQpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuIG5hdGl2ZV9yZWFkX2NyNCgpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgcmVh
ZF9jcjAodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gbmF0aXZlX3JlYWRfY3IwKCk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgd3JpdGVfY3IwKHVuc2lnbmVkIGxvbmcgeCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICBuYXRpdmVfd3JpdGVfY3IwKHgpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB1bnNpZ25lZCBsb25nIHJlYWRfY3IyKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIG5h
dGl2ZV9yZWFkX2NyMigpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHdyaXRlX2NyMih1
bnNpZ25lZCBsb25nIHgpCjE0NDc0OiB7CjE0NDc0OiAgbmF0aXZlX3dyaXRlX2NyMih4KTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNp
Z25lZCBsb25nIF9fcmVhZF9jcjModm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19uYXRp
dmVfcmVhZF9jcjMoKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB3cml0ZV9jcjModW5z
aWduZWQgbG9uZyB4KQoxNDQ3NDogewoxNDQ3NDogIG5hdGl2ZV93cml0ZV9jcjMoeCk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX193cml0ZV9jcjQodW5zaWduZWQgbG9uZyB4KQoxNDQ3
NDogewoxNDQ3NDogIG5hdGl2ZV93cml0ZV9jcjQoeCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgd2JpbnZkKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgbmF0aXZlX3diaW52ZCgpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsb2FkX2dzX2luZGV4KHVu
c2lnbmVkIHNlbGVjdG9yKQoxNDQ3NDogewoxNDQ3NDogIG5hdGl2ZV9sb2FkX2dzX2luZGV4KHNl
bGVjdG9yKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGNsZmx1c2godm9sYXRpbGUgdm9pZCAqX19wKQoxNDQ3NDogewoxNDQ3NDog
IGFzbSB2b2xhdGlsZSgiY2xmbHVzaCAlMCIgOiAiK20iICgqKHZvbGF0aWxlIGNoYXIgKilfX3Ap
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjbGZsdXNob3B0KHZvbGF0aWxlIHZvaWQg
Kl9fcCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBhc20gX19pbmxpbmUgdm9sYXRpbGUgKCIjIEFMVDogb2xk
bnN0clxuIiAiNjYxOlxuXHQiICIuYnl0ZSAiICIweDNlIiAiOyBjbGZsdXNoICVQMCIgIlxuNjYy
OlxuIiAiIyBBTFQ6IHBhZGRpbmdcbiIgIi5za2lwIC0oKCgiICI2NjUiIjEiImYtIiI2NjQiIjEi
ImYiICIpLSgiICI2NjJiLTY2MWIiICIpKSA+IDApICogIiAiKCgiICI2NjUiIjEiImYtIiI2NjQi
IjEiImYiICIpLSgiICI2NjJiLTY2MWIiICIpKSwweDkwXG4iICI2NjMiICI6XG4iICIucHVzaHNl
Y3Rpb24gLmFsdGluc3RydWN0aW9ucyxcImFcIlxuIiAiIC5sb25nIDY2MWIgLSAuXG4iICIgLmxv
bmcgIiAiNjY0IiIxIiJmIC0gLlxuIiAiIC53b3JkICIgIiggOSozMisyMykiICJcbiIgIiAuYnl0
ZSAiICI2NjMiImItNjYxYiIgIlxuIiAiIC5ieXRlICIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIg
IlxuIiAiIC5ieXRlICIgIjY2MyIiYi02NjJiIiAiXG4iICIucG9wc2VjdGlvblxuIiAiLnB1c2hz
ZWN0aW9uIC5hbHRpbnN0cl9yZXBsYWNlbWVudCwgXCJheFwiXG4iICIjIEFMVDogcmVwbGFjZW1l
bnQgIiAiMSIgIlxuIiAiNjY0IiIxIiI6XG5cdCIgIi5ieXRlIDB4NjY7IGNsZmx1c2ggJVAwIiAi
XG4iICI2NjUiIjEiICI6XG4iICIucG9wc2VjdGlvblxuIiA6ICIrbSIgKCoodm9sYXRpbGUgY2hh
ciAqKV9fcCkgOiAiaSIgKDApKQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgY2x3Yih2b2xhdGlsZSB2b2lkICpfX3ApCjE0NDc0OiB7CjE0NDc0OiAgdm9sYXRpbGUg
c3RydWN0IHsgY2hhciB4WzY0XTsgfSAqcCA9IF9fcDsKMTQ0NzQ6IAoxNDQ3NDogIGFzbSB2b2xh
dGlsZSgiIyBBTFQ6IG9sZGluc3RyMlxuIiAiNjYxOlxuXHQiICIuYnl0ZSAiICIweDNlIiAiOyBj
bGZsdXNoICglW3BheF0pIiAiXG42NjI6XG4iICIjIEFMVDogcGFkZGluZzJcbiIgIi5za2lwIC0o
KCIgIigoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiKSBeICgoKCIgIjY2NSIiMSIiZi0iIjY2
NCIiMSIiZiIgIikgXiAoIiAiNjY1IiIyIiJmLSIiNjY0IiIyIiJmIiAiKSkgJiAtKC0oKCIgIjY2
NSIiMSIiZi0iIjY2NCIiMSIiZiIgIikgPCAoIiAiNjY1IiIyIiJmLSIiNjY0IiIyIiJmIiAiKSkp
KSkiICIgLSAoIiAiNjYyYi02NjFiIiAiKSkgPiAwKSAqICIgIigiICIoKCIgIjY2NSIiMSIiZi0i
IjY2NCIiMSIiZiIgIikgXiAoKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpIF4gKCIgIjY2
NSIiMiIiZi0iIjY2NCIiMiIiZiIgIikpICYgLSgtKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYi
ICIpIDwgKCIgIjY2NSIiMiIiZi0iIjY2NCIiMiIiZiIgIikpKSkpIiAiIC0gKCIgIjY2MmItNjYx
YiIgIikpLCAweDkwXG4iICI2NjMiICI6XG4iICIucHVzaHNlY3Rpb24gLmFsdGluc3RydWN0aW9u
cyxcImFcIlxuIiAiIC5sb25nIDY2MWIgLSAuXG4iICIgLmxvbmcgIiAiNjY0IiIxIiJmIC0gLlxu
IiAiIC53b3JkICIgIiggOSozMisyMykiICJcbiIgIiAuYnl0ZSAiICI2NjMiImItNjYxYiIgIlxu
IiAiIC5ieXRlICIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIlxuIiAiIC5ieXRlICIgIjY2MyIi
Yi02NjJiIiAiXG4iICIgLmxvbmcgNjYxYiAtIC5cbiIgIiAubG9uZyAiICI2NjQiIjIiImYgLSAu
XG4iICIgLndvcmQgIiAiKCA5KjMyKzI0KSIgIlxuIiAiIC5ieXRlICIgIjY2MyIiYi02NjFiIiAi
XG4iICIgLmJ5dGUgIiAiNjY1IiIyIiJmLSIiNjY0IiIyIiJmIiAiXG4iICIgLmJ5dGUgIiAiNjYz
IiJiLTY2MmIiICJcbiIgIi5wb3BzZWN0aW9uXG4iICIucHVzaHNlY3Rpb24gLmFsdGluc3RyX3Jl
cGxhY2VtZW50LCBcImF4XCJcbiIgIiMgQUxUOiByZXBsYWNlbWVudCAiICIxIiAiXG4iICI2NjQi
IjEiIjpcblx0IiAiLmJ5dGUgMHg2NjsgY2xmbHVzaCAoJVtwYXhdKSIgIlxuIiAiNjY1IiIxIiAi
OlxuIiAiIyBBTFQ6IHJlcGxhY2VtZW50ICIgIjIiICJcbiIgIjY2NCIiMiIiOlxuXHQiICIuYnl0
ZSAweDY2LCAweDBmLCAweGFlLCAweDMwIiAiXG4iICI2NjUiIjIiICI6XG4iICIucG9wc2VjdGlv
blxuIgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgOiBb
cF0gIittIiAoKnApCjE0NDc0OiAgIDogW3BheF0gImEiIChwKSk7CjE0NDc0OiB9CjE0NDc0OiAj
IDI2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIiAyCjE0NDc0OiAjIDEgIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vZnB1L3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMTIgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vZnB1L3R5cGVzLmgiCjE0NDc0OiBzdHJ1Y3QgZnJlZ3Nfc3RhdGUgewox
NDQ3NDogIHUzMiBjd2Q7CjE0NDc0OiAgdTMyIHN3ZDsKMTQ0NzQ6ICB1MzIgdHdkOwoxNDQ3NDog
IHUzMiBmaXA7CjE0NDc0OiAgdTMyIGZjczsKMTQ0NzQ6ICB1MzIgZm9vOwoxNDQ3NDogIHUzMiBm
b3M7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHUzMiBzdF9zcGFjZVsyMF07CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogIHUzMiBzdGF0dXM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZnhyZWdzX3N0
YXRlIHsKMTQ0NzQ6ICB1MTYgY3dkOwoxNDQ3NDogIHUxNiBzd2Q7CjE0NDc0OiAgdTE2IHR3ZDsK
MTQ0NzQ6ICB1MTYgZm9wOwoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgc3RydWN0IHsKMTQ0NzQ6
ICAgIHU2NCByaXA7CjE0NDc0OiAgICB1NjQgcmRwOwoxNDQ3NDogICB9OwoxNDQ3NDogICBzdHJ1
Y3QgewoxNDQ3NDogICAgdTMyIGZpcDsKMTQ0NzQ6ICAgIHUzMiBmY3M7CjE0NDc0OiAgICB1MzIg
Zm9vOwoxNDQ3NDogICAgdTMyIGZvczsKMTQ0NzQ6ICAgfTsKMTQ0NzQ6ICB9OwoxNDQ3NDogIHUz
MiBteGNzcjsKMTQ0NzQ6ICB1MzIgbXhjc3JfbWFzazsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
dTMyIHN0X3NwYWNlWzMyXTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdTMyIHhtbV9zcGFjZVs2
NF07CjE0NDc0OiAKMTQ0NzQ6ICB1MzIgcGFkZGluZ1sxMl07CjE0NDc0OiAKMTQ0NzQ6ICB1bmlv
biB7CjE0NDc0OiAgIHUzMiBwYWRkaW5nMVsxMl07CjE0NDc0OiAgIHUzMiBzd19yZXNlcnZlZFsx
Ml07CjE0NDc0OiAgfTsKMTQ0NzQ6IAoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDE2
KSkpOwoxNDQ3NDogIyA3OSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9mcHUvdHlwZXMuaCIKMTQ0
NzQ6IHN0cnVjdCBzd3JlZ3Nfc3RhdGUgewoxNDQ3NDogIHUzMiBjd2Q7CjE0NDc0OiAgdTMyIHN3
ZDsKMTQ0NzQ6ICB1MzIgdHdkOwoxNDQ3NDogIHUzMiBmaXA7CjE0NDc0OiAgdTMyIGZjczsKMTQ0
NzQ6ICB1MzIgZm9vOwoxNDQ3NDogIHUzMiBmb3M7CjE0NDc0OiAKMTQ0NzQ6ICB1MzIgc3Rfc3Bh
Y2VbMjBdOwoxNDQ3NDogIHU4IGZ0b3A7CjE0NDc0OiAgdTggY2hhbmdlZDsKMTQ0NzQ6ICB1OCBs
b29rYWhlYWQ7CjE0NDc0OiAgdTggbm9fdXBkYXRlOwoxNDQ3NDogIHU4IHJtOwoxNDQ3NDogIHU4
IGFsaW1pdDsKMTQ0NzQ6ICBzdHJ1Y3QgbWF0aF9lbXVfaW5mbyAqaW5mbzsKMTQ0NzQ6ICB1MzIg
ZW50cnlfZWlwOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogZW51bSB4ZmVhdHVyZSB7CjE0NDc0OiAgWEZFQVRVUkVfRlAsCjE0NDc0OiAgWEZFQVRVUkVf
U1NFLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgWEZFQVRVUkVfWU1N
LAoxNDQ3NDogIFhGRUFUVVJFX0JORFJFR1MsCjE0NDc0OiAgWEZFQVRVUkVfQk5EQ1NSLAoxNDQ3
NDogIFhGRUFUVVJFX09QTUFTSywKMTQ0NzQ6ICBYRkVBVFVSRV9aTU1fSGkyNTYsCjE0NDc0OiAg
WEZFQVRVUkVfSGkxNl9aTU0sCjE0NDc0OiAgWEZFQVRVUkVfUFRfVU5JTVBMRU1FTlRFRF9TT19G
QVIsCjE0NDc0OiAgWEZFQVRVUkVfUEtSVSwKMTQ0NzQ6IAoxNDQ3NDogIFhGRUFUVVJFX01BWCwK
MTQ0NzQ6IH07CjE0NDc0OiAjIDEzOSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9mcHUvdHlwZXMu
aCIKMTQ0NzQ6IHN0cnVjdCByZWdfMTI4X2JpdCB7CjE0NDc0OiAgdTggcmVnYnl0ZXNbMTI4Lzhd
OwoxNDQ3NDogfTsKMTQ0NzQ6IHN0cnVjdCByZWdfMjU2X2JpdCB7CjE0NDc0OiAgdTggcmVnYnl0
ZXNbMjU2LzhdOwoxNDQ3NDogfTsKMTQ0NzQ6IHN0cnVjdCByZWdfNTEyX2JpdCB7CjE0NDc0OiAg
dTggcmVnYnl0ZXNbNTEyLzhdOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTU5ICIuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL2ZwdS90eXBlcy5oIgoxNDQ3NDogc3RydWN0IHltbWhfc3RydWN0IHsKMTQ0NzQ6
ICBzdHJ1Y3QgcmVnXzEyOF9iaXQgaGlfeW1tWzE2XTsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygo
X19wYWNrZWRfXykpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG1weF9i
bmRyZWcgewoxNDQ3NDogIHU2NCBsb3dlcl9ib3VuZDsKMTQ0NzQ6ICB1NjQgdXBwZXJfYm91bmQ7
CjE0NDc0OiB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBtcHhfYm5kcmVnX3N0YXRlIHsKMTQ0NzQ6ICBzdHJ1Y3QgbXB4
X2JuZHJlZyBibmRyZWdbNF07CjE0NDc0OiB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBtcHhfYm5kY3NyIHsKMTQ0NzQ6ICB1NjQgYm5kY2ZndTsKMTQ0NzQ6ICB1NjQgYm5kc3Rh
dHVzOwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fKSk7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBtcHhfYm5kY3NyX3N0YXRlIHsKMTQ0NzQ6
ICB1bmlvbiB7CjE0NDc0OiAgIHN0cnVjdCBtcHhfYm5kY3NyIGJuZGNzcjsKMTQ0NzQ6ICAgdTgg
cGFkX3RvXzY0X2J5dGVzWzY0XTsKMTQ0NzQ6ICB9OwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChf
X3BhY2tlZF9fKSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdnhfNTEyX29wbWFza19zdGF0ZSB7CjE0NDc0OiAg
dTY0IG9wbWFza19yZWdbOF07CjE0NDc0OiB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBhdnhfNTEyX3ptbV91cHBlcnNfc3RhdGUgewoxNDQ3NDogIHN0cnVjdCByZWdfMjU2X2Jp
dCB6bW1fdXBwZXJbMTZdOwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fKSk7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF2eF81
MTJfaGkxNl9zdGF0ZSB7CjE0NDc0OiAgc3RydWN0IHJlZ181MTJfYml0IGhpMTZfem1tWzE2XTsK
MTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXykpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBwa3J1X3N0YXRlIHsKMTQ0NzQ6ICB1
MzIgcGtydTsKMTQ0NzQ6ICB1MzIgcGFkOwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tl
ZF9fKSk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB4c3RhdGVfaGVhZGVyIHsKMTQ0NzQ6ICB1NjQg
eGZlYXR1cmVzOwoxNDQ3NDogIHU2NCB4Y29tcF9idjsKMTQ0NzQ6ICB1NjQgcmVzZXJ2ZWRbNl07
CjE0NDc0OiB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwoxNDQ3NDogIyAyNTMgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vZnB1L3R5cGVzLmgiCjE0NDc0OiBzdHJ1Y3QgeHJlZ3Nfc3RhdGUgewox
NDQ3NDogIHN0cnVjdCBmeHJlZ3Nfc3RhdGUgaTM4NzsKMTQ0NzQ6ICBzdHJ1Y3QgeHN0YXRlX2hl
YWRlciBoZWFkZXI7CjE0NDc0OiAgdTggZXh0ZW5kZWRfc3RhdGVfYXJlYVswXTsKMTQ0NzQ6IH0g
X19hdHRyaWJ1dGVfXyAoKHBhY2tlZCwgYWxpZ25lZCAoNjQpKSk7CjE0NDc0OiAjIDI2OCAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9mcHUvdHlwZXMuaCIKMTQ0NzQ6IHVuaW9uIGZwcmVnc19zdGF0
ZSB7CjE0NDc0OiAgc3RydWN0IGZyZWdzX3N0YXRlIGZzYXZlOwoxNDQ3NDogIHN0cnVjdCBmeHJl
Z3Nfc3RhdGUgZnhzYXZlOwoxNDQ3NDogIHN0cnVjdCBzd3JlZ3Nfc3RhdGUgc29mdDsKMTQ0NzQ6
ICBzdHJ1Y3QgeHJlZ3Nfc3RhdGUgeHNhdmU7CjE0NDc0OiAgdTggX19wYWRkaW5nWygoMVVMKSA8
PCAxMildOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBmcHUgewoxNDQ3NDogIyAyOTQgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vZnB1L3R5cGVzLmgiCjE0NDc0OiAgdW5zaWduZWQgaW50IGxhc3RfY3B1OwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2ln
bmVkIGxvbmcgYXZ4NTEyX3RpbWVzdGFtcDsKMTQ0NzQ6ICMgMzEyICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL2ZwdS90eXBlcy5oIgoxNDQ3NDogIHVuaW9uIGZwcmVnc19zdGF0ZSBzdGF0ZTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6ICMgMjcgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiIDIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS91bndpbmRfaGludHMuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL29yY190eXBlcy5oIiAxCjE0NDc0OiAjIDcz
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL29yY190eXBlcy5oIgoxNDQ3NDogc3RydWN0IG9yY19l
bnRyeSB7CjE0NDc0OiAgczE2IHNwX29mZnNldDsKMTQ0NzQ6ICBzMTYgYnBfb2Zmc2V0OwoxNDQ3
NDogIHVuc2lnbmVkIHNwX3JlZzo0OwoxNDQ3NDogIHVuc2lnbmVkIGJwX3JlZzo0OwoxNDQ3NDog
IHVuc2lnbmVkIHR5cGU6MjsKMTQ0NzQ6ICB1bnNpZ25lZCBlbmQ6MTsKMTQ0NzQ6IH0gX19hdHRy
aWJ1dGVfXygoX19wYWNrZWRfXykpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgdW53aW5kX2hpbnQgewoxNDQ3NDog
IHUzMiBpcDsKMTQ0NzQ6ICBzMTYgc3Bfb2Zmc2V0OwoxNDQ3NDogIHU4IHNwX3JlZzsKMTQ0NzQ6
ICB1OCB0eXBlOwoxNDQ3NDogIHU4IGVuZDsKMTQ0NzQ6IH07CjE0NDc0OiAjIDUgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vdW53aW5kX2hpbnRzLmgiIDIKMTQ0NzQ6ICMgMjggIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiIDIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS92bXhmZWF0dXJlcy5oIiAxCjE0NDc0OiAjIDI5ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L3Byb2Nlc3Nvci5oIiAyCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3BlcnNv
bmFsaXR5LmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIu
L2luY2x1ZGUvdWFwaS9saW51eC9wZXJzb25hbGl0eS5oIiAxCjE0NDc0OiAjIDExICIuL2luY2x1
ZGUvdWFwaS9saW51eC9wZXJzb25hbGl0eS5oIgoxNDQ3NDogZW51bSB7CjE0NDc0OiAgVU5BTUUy
NiA9IDB4MDAyMDAwMCwKMTQ0NzQ6ICBBRERSX05PX1JBTkRPTUlaRSA9IDB4MDA0MDAwMCwKMTQ0
NzQ6ICBGRFBJQ19GVU5DUFRSUyA9IDB4MDA4MDAwMCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
TU1BUF9QQUdFX1pFUk8gPSAweDAxMDAwMDAsCjE0NDc0OiAgQUREUl9DT01QQVRfTEFZT1VUID0g
MHgwMjAwMDAwLAoxNDQ3NDogIFJFQURfSU1QTElFU19FWEVDID0gMHgwNDAwMDAwLAoxNDQ3NDog
IEFERFJfTElNSVRfMzJCSVQgPSAweDA4MDAwMDAsCjE0NDc0OiAgU0hPUlRfSU5PREUgPSAweDEw
MDAwMDAsCjE0NDc0OiAgV0hPTEVfU0VDT05EUyA9IDB4MjAwMDAwMCwKMTQ0NzQ6ICBTVElDS1lf
VElNRU9VVFMgPSAweDQwMDAwMDAsCjE0NDc0OiAgQUREUl9MSU1JVF8zR0IgPSAweDgwMDAwMDAs
CjE0NDc0OiB9OwoxNDQ3NDogIyA0MiAiLi9pbmNsdWRlL3VhcGkvbGludXgvcGVyc29uYWxpdHku
aCIKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIFBFUl9MSU5VWCA9IDB4MDAwMCwKMTQ0NzQ6ICBQRVJf
TElOVVhfMzJCSVQgPSAweDAwMDAgfCBBRERSX0xJTUlUXzMyQklULAoxNDQ3NDogIFBFUl9MSU5V
WF9GRFBJQyA9IDB4MDAwMCB8IEZEUElDX0ZVTkNQVFJTLAoxNDQ3NDogIFBFUl9TVlI0ID0gMHgw
MDAxIHwgU1RJQ0tZX1RJTUVPVVRTIHwgTU1BUF9QQUdFX1pFUk8sCjE0NDc0OiAgUEVSX1NWUjMg
PSAweDAwMDIgfCBTVElDS1lfVElNRU9VVFMgfCBTSE9SVF9JTk9ERSwKMTQ0NzQ6ICBQRVJfU0NP
U1ZSMyA9IDB4MDAwMyB8IFNUSUNLWV9USU1FT1VUUyB8CjE0NDc0OiAgICAgICBXSE9MRV9TRUNP
TkRTIHwgU0hPUlRfSU5PREUsCjE0NDc0OiAgUEVSX09TUjUgPSAweDAwMDMgfCBTVElDS1lfVElN
RU9VVFMgfCBXSE9MRV9TRUNPTkRTLAoxNDQ3NDogIFBFUl9XWVNFVjM4NiA9IDB4MDAwNCB8IFNU
SUNLWV9USU1FT1VUUyB8IFNIT1JUX0lOT0RFLAoxNDQ3NDogIFBFUl9JU0NSNCA9IDB4MDAwNSB8
IFNUSUNLWV9USU1FT1VUUywKMTQ0NzQ6ICBQRVJfQlNEID0gMHgwMDA2LAoxNDQ3NDogIFBFUl9T
VU5PUyA9IDB4MDAwNiB8IFNUSUNLWV9USU1FT1VUUywKMTQ0NzQ6ICBQRVJfWEVOSVggPSAweDAw
MDcgfCBTVElDS1lfVElNRU9VVFMgfCBTSE9SVF9JTk9ERSwKMTQ0NzQ6ICBQRVJfTElOVVgzMiA9
IDB4MDAwOCwKMTQ0NzQ6ICBQRVJfTElOVVgzMl8zR0IgPSAweDAwMDggfCBBRERSX0xJTUlUXzNH
QiwKMTQ0NzQ6ICBQRVJfSVJJWDMyID0gMHgwMDA5IHwgU1RJQ0tZX1RJTUVPVVRTLAoxNDQ3NDog
IFBFUl9JUklYTjMyID0gMHgwMDBhIHwgU1RJQ0tZX1RJTUVPVVRTLAoxNDQ3NDogIFBFUl9JUklY
NjQgPSAweDAwMGIgfCBTVElDS1lfVElNRU9VVFMsCjE0NDc0OiAgUEVSX1JJU0NPUyA9IDB4MDAw
YywKMTQ0NzQ6ICBQRVJfU09MQVJJUyA9IDB4MDAwZCB8IFNUSUNLWV9USU1FT1VUUywKMTQ0NzQ6
ICBQRVJfVVc3ID0gMHgwMDBlIHwgU1RJQ0tZX1RJTUVPVVRTIHwgTU1BUF9QQUdFX1pFUk8sCjE0
NDc0OiAgUEVSX09TRjQgPSAweDAwMGYsCjE0NDc0OiAgUEVSX0hQVVggPSAweDAwMTAsCjE0NDc0
OiAgUEVSX01BU0sgPSAweDAwZmYsCjE0NDc0OiB9OwoxNDQ3NDogIyA2ICIuL2luY2x1ZGUvbGlu
dXgvcGVyc29uYWxpdHkuaCIgMgoxNDQ3NDogIyAzMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w
cm9jZXNzb3IuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1
ZGUvbGludXgvZXJyLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVk
L3VhcGkvYXNtL2Vycm5vLmgiIDEKMTQ0NzQ6ICMgOSAiLi9pbmNsdWRlL2xpbnV4L2Vyci5oIiAy
CjE0NDc0OiAjIDI0ICIuL2luY2x1ZGUvbGludXgvZXJyLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICogX19hdHRy
aWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIEVSUl9QVFIobG9uZyBlcnJvcikKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHZvaWQgKikgZXJyb3I7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGxvbmcgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIFBUUl9FUlIo
IGNvbnN0IHZvaWQgKnB0cikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKGxvbmcpIHB0cjsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jl
c3VsdF9fKSkgSVNfRVJSKCBjb25zdCB2b2lkICpwdHIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
IF9fYnVpbHRpbl9leHBlY3QoISEoKHVuc2lnbmVkIGxvbmcpKHZvaWQgKikoKHVuc2lnbmVkIGxv
bmcpcHRyKSA+PSAodW5zaWduZWQgbG9uZyktNDA5NSksIDApOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBib29sIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBJU19FUlJf
T1JfTlVMTCggY29uc3Qgdm9pZCAqcHRyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2J1aWx0
aW5fZXhwZWN0KCEhKCFwdHIpLCAwKSB8fCBfX2J1aWx0aW5fZXhwZWN0KCEhKCh1bnNpZ25lZCBs
b25nKSh2b2lkICopKCh1bnNpZ25lZCBsb25nKXB0cikgPj0gKHVuc2lnbmVkIGxvbmcpLTQwOTUp
LCAwKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNTEgIi4vaW5jbHVkZS9saW51eC9lcnIuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgKiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgRVJSX0NBU1Qo
IGNvbnN0IHZvaWQgKnB0cikKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiAodm9pZCAq
KSBwdHI7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5f
dW51c2VkX3Jlc3VsdF9fKSkgUFRSX0VSUl9PUl9aRVJPKCBjb25zdCB2b2lkICpwdHIpCjE0NDc0
OiB7CjE0NDc0OiAgaWYgKElTX0VSUihwdHIpKQoxNDQ3NDogICByZXR1cm4gUFRSX0VSUihwdHIp
OwoxNDQ3NDogIGVsc2UKMTQ0NzQ6ICAgcmV0dXJuIDA7CjE0NDc0OiB9CjE0NDc0OiAjIDM1ICIu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVk
ZS9saW51eC9pcnFmbGFncy5oIiAxCjE0NDc0OiAjIDE2ICIuL2luY2x1ZGUvbGludXgvaXJxZmxh
Z3MuaCIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pcnFmbGFncy5oIiAxCjE0
NDc0OiAjIDE5ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2lycWZsYWdzLmgiCjE0NDc0OiBleHRl
cm4gaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNp
Z25lZCBsb25nIG5hdGl2ZV9zYXZlX2ZsKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBuYXRp
dmVfc2F2ZV9mbCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYXNt
IHZvbGF0aWxlKCIjIF9fcmF3X3NhdmVfZmxhZ3Ncblx0IgoxNDQ3NDogICAgICAgICJwdXNoZiA7
IHBvcCAlMCIKMTQ0NzQ6ICAgICAgICA6ICI9cm0iIChmbGFncykKMTQ0NzQ6ICAgICAgICA6CjE0
NDc0OiAgICAgICAgOiAibWVtb3J5Iik7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gZmxhZ3M7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbmF0aXZlX3Jlc3RvcmVfZmwodW5zaWduZWQgbG9u
ZyBmbGFncyk7CjE0NDc0OiBleHRlcm4gaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIG5hdGl2ZV9yZXN0b3JlX2ZsKHVuc2lnbmVkIGxvbmcgZmxh
Z3MpCjE0NDc0OiB7CjE0NDc0OiAgYXNtIHZvbGF0aWxlKCJwdXNoICUwIDsgcG9wZiIKMTQ0NzQ6
ICAgICAgICA6CjE0NDc0OiAgICAgICAgOiJnIiAoZmxhZ3MpCjE0NDc0OiAgICAgICAgOiJtZW1v
cnkiLCAiY2MiKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBuYXRpdmVfaXJxX2Rpc2Fi
bGUodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBhc20gdm9sYXRpbGUoImNsaSI6IDogOiJtZW1vcnki
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBuYXRpdmVfaXJxX2VuYWJsZSh2b2lkKQox
NDQ3NDogewoxNDQ3NDogIGFzbSB2b2xhdGlsZSgic3RpIjogOiA6Im1lbW9yeSIpOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmNwdWlkbGUudGV4
dCIpKSkgdm9pZCBuYXRpdmVfc2FmZV9oYWx0KHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgbWRzX2lk
bGVfY2xlYXJfY3B1X2J1ZmZlcnMoKTsKMTQ0NzQ6ICBhc20gdm9sYXRpbGUoInN0aTsgaGx0Ijog
OiA6Im1lbW9yeSIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX3Nl
Y3Rpb25fXygiLmNwdWlkbGUudGV4dCIpKSkgdm9pZCBuYXRpdmVfaGFsdCh2b2lkKQoxNDQ3NDog
ewoxNDQ3NDogIG1kc19pZGxlX2NsZWFyX2NwdV9idWZmZXJzKCk7CjE0NDc0OiAgYXNtIHZvbGF0
aWxlKCJobHQiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiB9CjE0NDc0OiAjIDc3ICIuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL2lycWZsYWdzLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBhcmNoX2xvY2FsX3NhdmVfZmxhZ3Modm9pZCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gbmF0aXZlX3NhdmVfZmwoKTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYXJj
aF9sb2NhbF9pcnFfcmVzdG9yZSh1bnNpZ25lZCBsb25nIGZsYWdzKQoxNDQ3NDogewoxNDQ3NDog
IG5hdGl2ZV9yZXN0b3JlX2ZsKGZsYWdzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYXJjaF9sb2NhbF9pcnFfZGlz
YWJsZSh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIG5hdGl2ZV9pcnFfZGlzYWJsZSgpOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBhcmNoX2xvY2FsX2lycV9lbmFibGUodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBuYXRpdmVf
aXJxX2VuYWJsZSgpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuY3B1aWRsZS50ZXh0Iikp
KSB2b2lkIGFyY2hfc2FmZV9oYWx0KHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgbmF0aXZlX3NhZmVf
aGFsdCgpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuY3B1aWRsZS50ZXh0IikpKSB2b2lk
IGhhbHQodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBuYXRpdmVfaGFsdCgpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBhcmNoX2xvY2FsX2lycV9zYXZlKHZvaWQp
CjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBmbGFncyA9IGFyY2hfbG9jYWxfc2F2ZV9m
bGFncygpOwoxNDQ3NDogIGFyY2hfbG9jYWxfaXJxX2Rpc2FibGUoKTsKMTQ0NzQ6ICByZXR1cm4g
ZmxhZ3M7CjE0NDc0OiB9CjE0NDc0OiAjIDE2MiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pcnFm
bGFncy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50IGFyY2hfaXJxc19kaXNhYmxlZF9mbGFncyh1bnNpZ25lZCBsb25n
IGZsYWdzKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAhKGZsYWdzICYgKCgoMVVMKSkgPDwgKDkp
KSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBhcmNoX2lycXNfZGlzYWJsZWQodm9pZCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGZsYWdzID0gYXJjaF9sb2NhbF9zYXZlX2Zs
YWdzKCk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gYXJjaF9pcnFzX2Rpc2FibGVkX2ZsYWdzKGZs
YWdzKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTcgIi4vaW5jbHVkZS9saW51eC9pcnFmbGFncy5oIiAy
CjE0NDc0OiAjIDI1ICIuL2luY2x1ZGUvbGludXgvaXJxZmxhZ3MuaCIKMTQ0NzQ6ICAgc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB0
cmFjZV9zb2Z0aXJxc19vbih1bnNpZ25lZCBsb25nIGlwKSB7IH0KMTQ0NzQ6ICAgc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB0cmFj
ZV9zb2Z0aXJxc19vZmYodW5zaWduZWQgbG9uZyBpcCkgeyB9CjE0NDc0OiAgIHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbG9ja2Rl
cF9oYXJkaXJxc19vbih1bnNpZ25lZCBsb25nIGlwKSB7IH0KMTQ0NzQ6ICAgc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsb2NrZGVw
X2hhcmRpcnFzX29mZih1bnNpZ25lZCBsb25nIGlwKSB7IH0KMTQ0NzQ6ICMgMzYgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiIDIKMTQ0NzQ6ICMgNjEgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vcHJvY2Vzc29yLmgiCjE0NDc0OiBlbnVtIHRsYl9pbmZvcyB7CjE0NDc0OiAgRU5U
UklFUywKMTQ0NzQ6ICBOUl9JTkZPCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdTE2
IF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuZGF0YS4ucmVhZF9tb3N0bHkiKSkpIHRsYl9s
bGlfNGtbTlJfSU5GT107CjE0NDc0OiBleHRlcm4gdTE2IF9fYXR0cmlidXRlX18oKF9fc2VjdGlv
bl9fKCIuZGF0YS4ucmVhZF9tb3N0bHkiKSkpIHRsYl9sbGlfMm1bTlJfSU5GT107CjE0NDc0OiBl
eHRlcm4gdTE2IF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuZGF0YS4ucmVhZF9tb3N0bHki
KSkpIHRsYl9sbGlfNG1bTlJfSU5GT107CjE0NDc0OiBleHRlcm4gdTE2IF9fYXR0cmlidXRlX18o
KF9fc2VjdGlvbl9fKCIuZGF0YS4ucmVhZF9tb3N0bHkiKSkpIHRsYl9sbGRfNGtbTlJfSU5GT107
CjE0NDc0OiBleHRlcm4gdTE2IF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuZGF0YS4ucmVh
ZF9tb3N0bHkiKSkpIHRsYl9sbGRfMm1bTlJfSU5GT107CjE0NDc0OiBleHRlcm4gdTE2IF9fYXR0
cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuZGF0YS4ucmVhZF9tb3N0bHkiKSkpIHRsYl9sbGRfNG1b
TlJfSU5GT107CjE0NDc0OiBleHRlcm4gdTE2IF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIu
ZGF0YS4ucmVhZF9tb3N0bHkiKSkpIHRsYl9sbGRfMWdbTlJfSU5GT107CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBj
cHVpbmZvX3g4NiB7CjE0NDc0OiAgX191OCB4ODY7CjE0NDc0OiAgX191OCB4ODZfdmVuZG9yOwox
NDQ3NDogIF9fdTggeDg2X21vZGVsOwoxNDQ3NDogIF9fdTggeDg2X3N0ZXBwaW5nOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgeDg2X3RsYnNpemU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IF9fdTMyIHZteF9jYXBhYmlsaXR5WzNdOwoxNDQ3NDogCjE0NDc0OiAgX191OCB4ODZfdmlydF9i
aXRzOwoxNDQ3NDogIF9fdTggeDg2X3BoeXNfYml0czsKMTQ0NzQ6IAoxNDQ3NDogIF9fdTggeDg2
X2NvcmVpZF9iaXRzOwoxNDQ3NDogIF9fdTggY3VfaWQ7CjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBl
eHRlbmRlZF9jcHVpZF9sZXZlbDsKMTQ0NzQ6IAoxNDQ3NDogIGludCBjcHVpZF9sZXZlbDsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5pb24gewoxNDQ3
NDogICBfX3UzMiB4ODZfY2FwYWJpbGl0eVsxOSArIDFdOwoxNDQ3NDogICB1bnNpZ25lZCBsb25n
IHg4Nl9jYXBhYmlsaXR5X2FsaWdubWVudDsKMTQ0NzQ6ICB9OwoxNDQ3NDogIGNoYXIgeDg2X3Zl
bmRvcl9pZFsxNl07CjE0NDc0OiAgY2hhciB4ODZfbW9kZWxfaWRbNjRdOwoxNDQ3NDogCjE0NDc0
OiAgdW5zaWduZWQgaW50IHg4Nl9jYWNoZV9zaXplOwoxNDQ3NDogIGludCB4ODZfY2FjaGVfYWxp
Z25tZW50OwoxNDQ3NDogCjE0NDc0OiAgaW50IHg4Nl9jYWNoZV9tYXhfcm1pZDsKMTQ0NzQ6ICBp
bnQgeDg2X2NhY2hlX29jY19zY2FsZTsKMTQ0NzQ6ICBpbnQgeDg2X3Bvd2VyOwoxNDQ3NDogIHVu
c2lnbmVkIGxvbmcgbG9vcHNfcGVyX2ppZmZ5OwoxNDQ3NDogCjE0NDc0OiAgdTE2IHg4Nl9tYXhf
Y29yZXM7CjE0NDc0OiAgdTE2IGFwaWNpZDsKMTQ0NzQ6ICB1MTYgaW5pdGlhbF9hcGljaWQ7CjE0
NDc0OiAgdTE2IHg4Nl9jbGZsdXNoX3NpemU7CjE0NDc0OiAKMTQ0NzQ6ICB1MTYgYm9vdGVkX2Nv
cmVzOwoxNDQ3NDogCjE0NDc0OiAgdTE2IHBoeXNfcHJvY19pZDsKMTQ0NzQ6IAoxNDQ3NDogIHUx
NiBsb2dpY2FsX3Byb2NfaWQ7CjE0NDc0OiAKMTQ0NzQ6ICB1MTYgY3B1X2NvcmVfaWQ7CjE0NDc0
OiAgdTE2IGNwdV9kaWVfaWQ7CjE0NDc0OiAgdTE2IGxvZ2ljYWxfZGllX2lkOwoxNDQ3NDogCjE0
NDc0OiAgdTE2IGNwdV9pbmRleDsKMTQ0NzQ6ICB1MzIgbWljcm9jb2RlOwoxNDQ3NDogCjE0NDc0
OiAgdTggeDg2X2NhY2hlX2JpdHM7CjE0NDc0OiAgdW5zaWduZWQgaW5pdGlhbGl6ZWQgOiAxOwox
NDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChfX2Rlc2lnbmF0ZWRfaW5pdF9fKSk7CjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCBjcHVpZF9yZWdzIHsKMTQ0NzQ6ICB1MzIgZWF4LCBlYngsIGVjeCwgZWR4Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBjcHVpZF9yZWdzX2lkeCB7CjE0NDc0OiAgQ1BV
SURfRUFYID0gMCwKMTQ0NzQ6ICBDUFVJRF9FQlgsCjE0NDc0OiAgQ1BVSURfRUNYLAoxNDQ3NDog
IENQVUlEX0VEWCwKMTQ0NzQ6IH07CjE0NDc0OiAjIDE3MCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9wcm9jZXNzb3IuaCIKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgY3B1aW5mb194ODYgYm9vdF9jcHVf
ZGF0YTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgY3B1aW5mb194ODYgbmV3X2NwdV9kYXRhOwoxNDQ3
NDogCjE0NDc0OiBleHRlcm4gX191MzIgY3B1X2NhcHNfY2xlYXJlZFsxOSArIDFdOwoxNDQ3NDog
ZXh0ZXJuIF9fdTMyIGNwdV9jYXBzX3NldFsxOSArIDFdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IGV4dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiLi5yZWFkX21v
c3RseSIpKSkgX190eXBlb2ZfXyhzdHJ1Y3QgY3B1aW5mb194ODYpIGNwdV9pbmZvOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGNv
bnN0IHN0cnVjdCBzZXFfb3BlcmF0aW9ucyBjcHVpbmZvX29wOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgY3B1X2RldGVjdChzdHJ1Y3QgY3B1aW5mb194ODYgKmMp
OwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIGxvbmcgbDF0Zl9wZm5fbGltaXQodm9pZCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKCgoKDFVTEwpKSkgPDwgKGJvb3RfY3B1X2RhdGEueDg2
X2NhY2hlX2JpdHMgLSAxIC0gMTIpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZv
aWQgZWFybHlfY3B1X2luaXQodm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBpZGVudGlmeV9ib290
X2NwdSh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGlkZW50aWZ5X3NlY29uZGFyeV9jcHUoc3Ry
dWN0IGNwdWluZm9feDg2ICopOwoxNDQ3NDogZXh0ZXJuIHZvaWQgcHJpbnRfY3B1X2luZm8oc3Ry
dWN0IGNwdWluZm9feDg2ICopOwoxNDQ3NDogdm9pZCBwcmludF9jcHVfbXNyKHN0cnVjdCBjcHVp
bmZvX3g4NiAqKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGhh
dmVfY3B1aWRfcCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAxOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIG5hdGl2ZV9jcHVpZCh1bnNpZ25lZCBpbnQgKmVheCwgdW5zaWduZWQg
aW50ICplYngsCjE0NDc0OiAgICAgdW5zaWduZWQgaW50ICplY3gsIHVuc2lnbmVkIGludCAqZWR4
KQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAgYXNtIHZvbGF0aWxlKCJjcHVpZCIKMTQ0NzQ6ICAg
ICAgOiAiPWEiICgqZWF4KSwKMTQ0NzQ6ICAgICAgICAiPWIiICgqZWJ4KSwKMTQ0NzQ6ICAgICAg
ICAiPWMiICgqZWN4KSwKMTQ0NzQ6ICAgICAgICAiPWQiICgqZWR4KQoxNDQ3NDogICAgICA6ICIw
IiAoKmVheCksICIyIiAoKmVjeCkKMTQ0NzQ6ICAgICAgOiAibWVtb3J5Iik7CjE0NDc0OiB9CjE0
NDc0OiAjIDIzNSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVu
c2lnbmVkIGludCBuYXRpdmVfY3B1aWRfZWF4KHVuc2lnbmVkIGludCBvcCkgeyB1bnNpZ25lZCBp
bnQgZWF4ID0gb3AsIGVieCwgZWN4ID0gMCwgZWR4OyBuYXRpdmVfY3B1aWQoJmVheCwgJmVieCwg
JmVjeCwgJmVkeCk7IHJldHVybiBlYXg7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBuYXRpdmVfY3B1
aWRfZWJ4KHVuc2lnbmVkIGludCBvcCkgeyB1bnNpZ25lZCBpbnQgZWF4ID0gb3AsIGVieCwgZWN4
ID0gMCwgZWR4OyBuYXRpdmVfY3B1aWQoJmVheCwgJmVieCwgJmVjeCwgJmVkeCk7IHJldHVybiBl
Yng7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBuYXRpdmVfY3B1aWRfZWN4KHVuc2lnbmVkIGludCBv
cCkgeyB1bnNpZ25lZCBpbnQgZWF4ID0gb3AsIGVieCwgZWN4ID0gMCwgZWR4OyBuYXRpdmVfY3B1
aWQoJmVheCwgJmVieCwgJmVjeCwgJmVkeCk7IHJldHVybiBlY3g7IH0KMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVk
IGludCBuYXRpdmVfY3B1aWRfZWR4KHVuc2lnbmVkIGludCBvcCkgeyB1bnNpZ25lZCBpbnQgZWF4
ID0gb3AsIGVieCwgZWN4ID0gMCwgZWR4OyBuYXRpdmVfY3B1aWQoJmVheCwgJmVieCwgJmVjeCwg
JmVkeCk7IHJldHVybiBlZHg7IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdW5zaWduZWQgbG9uZyByZWFkX2NyM19wYSh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVy
biBfX3JlYWRfY3IzKCkgJiAoMHg3RkZGRkZGRkZGRkZGMDAwdWxsKTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBuYXRpdmVfcmVhZF9jcjNfcGEodm9pZCkKMTQ0NzQ6IHsK
MTQ0NzQ6ICByZXR1cm4gX19uYXRpdmVfcmVhZF9jcjMoKSAmICgweDdGRkZGRkZGRkZGRkYwMDB1
bGwpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxvYWRfY3IzKHBnZF90ICpwZ2RpcikK
MTQ0NzQ6IHsKMTQ0NzQ6ICB3cml0ZV9jcjMoKF9fcGh5c19hZGRyX25vZGVidWcoKHVuc2lnbmVk
IGxvbmcpKHBnZGlyKSkgfCAwVUxMKSk7CjE0NDc0OiB9CjE0NDc0OiAjIDMxMiAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIKMTQ0NzQ6IHN0cnVjdCB4ODZfaHdfdHNzIHsKMTQ0
NzQ6ICB1MzIgcmVzZXJ2ZWQxOwoxNDQ3NDogIHU2NCBzcDA7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHU2NCBzcDE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdTY0IHNwMjsKMTQ0NzQ6IAoxNDQ3
NDogIHU2NCByZXNlcnZlZDI7CjE0NDc0OiAgdTY0IGlzdFs3XTsKMTQ0NzQ6ICB1MzIgcmVzZXJ2
ZWQzOwoxNDQ3NDogIHUzMiByZXNlcnZlZDQ7CjE0NDc0OiAgdTE2IHJlc2VydmVkNTsKMTQ0NzQ6
ICB1MTYgaW9fYml0bWFwX2Jhc2U7CjE0NDc0OiAKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygocGFj
a2VkKSk7CjE0NDc0OiAjIDM3MCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIK
MTQ0NzQ6IHN0cnVjdCBlbnRyeV9zdGFjayB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyB3b3Jkc1s2
NF07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZW50cnlfc3RhY2tfcGFnZSB7CjE0
NDc0OiAgc3RydWN0IGVudHJ5X3N0YWNrIHN0YWNrOwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChf
X2FsaWduZWRfXygoKDFVTCkgPDwgMTIpKSkpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgeDg2X2lvX2JpdG1hcCB7CjE0NDc0OiAKMTQ0NzQ6ICB1NjQgcHJl
dl9zZXF1ZW5jZTsKMTQ0NzQ6ICMgMzkyICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nv
ci5oIgoxNDQ3NDogIHVuc2lnbmVkIGludCBwcmV2X21heDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGxvbmcg
Yml0bWFwWygoNjU1MzYgLyA4KSAvIHNpemVvZihsb25nKSkgKyAxXTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBtYXBhbGxbKCg2
NTUzNiAvIDgpIC8gc2l6ZW9mKGxvbmcpKSArIDFdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IHRzc19zdHJ1Y3QgewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICBzdHJ1Y3QgeDg2X2h3X3RzcyB4ODZfdHNzOwoxNDQ3NDogCjE0NDc0OiAgc3Ry
dWN0IHg4Nl9pb19iaXRtYXAgaW9fYml0bWFwOwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChfX2Fs
aWduZWRfXygoKDFVTCkgPDwgMTIpKSkpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1
dGVfXygoc2VjdGlvbigiLmRhdGEuLnBlcmNwdSIgIi4ucGFnZV9hbGlnbmVkIikpKSBfX3R5cGVv
Zl9fKHN0cnVjdCB0c3Nfc3RydWN0KSBjcHVfdHNzX3J3IF9fYXR0cmlidXRlX18oKF9fYWxpZ25l
ZF9fKCgoMVVMKSA8PCAxMikpKSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGlycV9z
dGFjayB7CjE0NDc0OiAgY2hhciBzdGFja1soKCgxVUwpIDw8IDEyKSA8PCAoMiArIDApKV07CjE0
NDc0OiB9IF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKCgoKDFVTCkgPDwgMTIpIDw8ICgyICsg
MCkpKSkpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmRh
dGEuLnBlcmNwdSIgIiIpKSkgX190eXBlb2ZfXyhzdHJ1Y3QgaXJxX3N0YWNrICopIGhhcmRpcnFf
c3RhY2tfcHRyOwoxNDQ3NDogIyA0MzcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29y
LmgiCjE0NDc0OiBzdHJ1Y3QgZml4ZWRfcGVyY3B1X2RhdGEgewoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBjaGFyIGdzX2Jhc2VbNDBdOwoxNDQ3NDogIHVu
c2lnbmVkIGxvbmcgc3RhY2tfY2FuYXJ5OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5kYXRhLi5wZXJjcHUiICIuLmZpcnN0IikpKSBfX3R5
cGVvZl9fKHN0cnVjdCBmaXhlZF9wZXJjcHVfZGF0YSkgZml4ZWRfcGVyY3B1X2RhdGEgX19hdHRy
aWJ1dGVfXygoX19leHRlcm5hbGx5X3Zpc2libGVfXykpOwoxNDQ3NDogZXh0ZXJuIHR5cGVvZihm
aXhlZF9wZXJjcHVfZGF0YSkgaW5pdF9wZXJfY3B1X19maXhlZF9wZXJjcHVfZGF0YTsKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBjcHVfa2VybmVsbW9kZV9nc19iYXNlKGludCBjcHUpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh1bnNpZ25lZCBsb25nKSgqKHsgZG8geyBjb25zdCB2b2lk
ICpfX3ZwcF92ZXJpZnkgPSAodHlwZW9mKCgmKGZpeGVkX3BlcmNwdV9kYXRhLmdzX2Jhc2UpKSAr
IDApKSgodm9pZCAqKTApOyAodm9pZClfX3ZwcF92ZXJpZnk7IH0gd2hpbGUgKDApOyAoeyB1bnNp
Z25lZCBsb25nIF9fcHRyOyBfX2FzbV9fICgiIiA6ICI9ciIoX19wdHIpIDogIjAiKCh0eXBlb2Yo
KigoJihmaXhlZF9wZXJjcHVfZGF0YS5nc19iYXNlKSkpKSAqKSgoJihmaXhlZF9wZXJjcHVfZGF0
YS5nc19iYXNlKSkpKSk7ICh0eXBlb2YoKHR5cGVvZigqKCgmKGZpeGVkX3BlcmNwdV9kYXRhLmdz
X2Jhc2UpKSkpICopKCgmKGZpeGVkX3BlcmNwdV9kYXRhLmdzX2Jhc2UpKSkpKSAoX19wdHIgKyAo
KChfX3Blcl9jcHVfb2Zmc2V0WyhjcHUpXSkpKSk7IH0pOyB9KSk7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiIikp
KSBfX3R5cGVvZl9fKHVuc2lnbmVkIGludCkgaXJxX2NvdW50OwoxNDQ3NDogZXh0ZXJuIHZvaWQg
aWdub3JlX3N5c3JldCh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZvaWQg
c2F2ZV9mc2dzX2Zvcl9rdm0odm9pZCk7CjE0NDc0OiAjIDQ4MCAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9wcm9jZXNzb3IuaCIKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBpbnQgZnB1X2tlcm5lbF94
c3RhdGVfc2l6ZTsKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBpbnQgZnB1X3VzZXJfeHN0YXRlX3Np
emU7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBwZXJmX2V2ZW50OwoxNDQ3NDogCjE0NDc0OiB0eXBl
ZGVmIHN0cnVjdCB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBzZWc7CjE0NDc0OiB9IG1tX3NlZ21l
bnRfdDsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHRocmVhZF9zdHJ1Y3QgewoxNDQ3NDogCjE0NDc0
OiAgc3RydWN0IGRlc2Nfc3RydWN0IHRsc19hcnJheVszXTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHNwOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIHVuc2lnbmVkIHNob3J0IGVzOwoxNDQ3NDogIHVuc2lnbmVkIHNob3J0IGRzOwoxNDQ3NDog
IHVuc2lnbmVkIHNob3J0IGZzaW5kZXg7CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgZ3NpbmRleDsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGZzYmFzZTsKMTQ0
NzQ6ICB1bnNpZ25lZCBsb25nIGdzYmFzZTsKMTQ0NzQ6ICMgNTE4ICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL3Byb2Nlc3Nvci5oIgoxNDQ3NDogIHN0cnVjdCBwZXJmX2V2ZW50ICpwdHJhY2VfYnBz
WzRdOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBkZWJ1Z3JlZzY7CjE0NDc0OiAKMTQ0
NzQ6ICB1bnNpZ25lZCBsb25nIHB0cmFjZV9kcjc7CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBs
b25nIGNyMjsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHRyYXBfbnI7CjE0NDc0OiAgdW5zaWduZWQg
bG9uZyBlcnJvcl9jb2RlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6ICBzdHJ1Y3QgaW9fYml0bWFwICppb19iaXRtYXA7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBpb3BsX2Vt
dWw7CjE0NDc0OiAKMTQ0NzQ6ICBtbV9zZWdtZW50X3QgYWRkcl9saW1pdDsKMTQ0NzQ6IAoxNDQ3
NDogIHVuc2lnbmVkIGludCBzaWdfb25fdWFjY2Vzc19lcnI6MTsKMTQ0NzQ6ICB1bnNpZ25lZCBp
bnQgdWFjY2Vzc19lcnI6MTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGZwdSBmcHU7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBhcmNoX3RocmVhZF9zdHJ1Y3Rfd2hpdGVsaXN0KHVuc2lnbmVkIGxvbmcg
Km9mZnNldCwKMTQ0NzQ6ICAgICAgIHVuc2lnbmVkIGxvbmcgKnNpemUpCjE0NDc0OiB7CjE0NDc0
OiAgKm9mZnNldCA9IF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgdGhyZWFkX3N0cnVjdCwgZnB1
LnN0YXRlKTsKMTQ0NzQ6ICAqc2l6ZSA9IGZwdV9rZXJuZWxfeHN0YXRlX3NpemU7CjE0NDc0OiB9
CjE0NDc0OiAjIDU3MSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQKMTQ0NzQ6IG5hdGl2ZV9sb2FkX3NwMCh1bnNpZ25lZCBsb25nIHNwMCkKMTQ0NzQ6IHsK
MTQ0NzQ6ICBkbyB7IGRvIHsgY29uc3Qgdm9pZCAqX192cHBfdmVyaWZ5ID0gKHR5cGVvZigoJihj
cHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkgKyAwKSkoKHZvaWQgKikwKTsgKHZvaWQpX192cHBfdmVy
aWZ5OyB9IHdoaWxlICgwKTsgc3dpdGNoKHNpemVvZihjcHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkg
eyBjYXNlIDE6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKGNwdV90c3NfcncueDg2X3Rzcy5zcDApKSBw
dG9fVF9fOyBpZiAoMCkgeyBwdG9fVF9fIHB0b190bXBfXzsgcHRvX3RtcF9fID0gKHNwMCk7ICh2
b2lkKXB0b190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoY3B1X3Rzc19ydy54ODZfdHNzLnNwMCkp
KSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92IiAiYiAlMSwiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKChjcHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkgOiAicWkiICgocHRvX1RfXykoc3Aw
KSkpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3YiICJ3ICUxLCIiJSUiImdzIiI6
IiAiJSIgIjAiIDogIittIiAoKGNwdV90c3NfcncueDg2X3Rzcy5zcDApKSA6ICJyaSIgKChwdG9f
VF9fKShzcDApKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImwgJTEsIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoY3B1X3Rzc19ydy54ODZfdHNzLnNwMCkpIDogInJp
IiAoKHB0b19UX18pKHNwMCkpKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgibW92IiAi
cSAlMSwiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChjcHVfdHNzX3J3Lng4Nl90c3Muc3Aw
KSkgOiAicmUiICgocHRvX1RfXykoc3AwKSkpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1
X3NpemUoKTsgfSB9IHdoaWxlICgwKTticmVhazsgY2FzZSAyOiBkbyB7IHR5cGVkZWYgdHlwZW9m
KChjcHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkgcHRvX1RfXzsgaWYgKDApIHsgcHRvX1RfXyBwdG9f
dG1wX187IHB0b190bXBfXyA9IChzcDApOyAodm9pZClwdG9fdG1wX187IH0gc3dpdGNoIChzaXpl
b2YoKGNwdV90c3NfcncueDg2X3Rzcy5zcDApKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1v
diIgImIgJTEsIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoY3B1X3Rzc19ydy54ODZfdHNz
LnNwMCkpIDogInFpIiAoKHB0b19UX18pKHNwMCkpKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0
aWxlICgibW92IiAidyAlMSwiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChjcHVfdHNzX3J3
Lng4Nl90c3Muc3AwKSkgOiAicmkiICgocHRvX1RfXykoc3AwKSkpOyBicmVhazsgY2FzZSA0OiBh
c20gdm9sYXRpbGUgKCJtb3YiICJsICUxLCIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKGNw
dV90c3NfcncueDg2X3Rzcy5zcDApKSA6ICJyaSIgKChwdG9fVF9fKShzcDApKSk7IGJyZWFrOyBj
YXNlIDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIgInEgJTEsIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoY3B1X3Rzc19ydy54ODZfdHNzLnNwMCkpIDogInJlIiAoKHB0b19UX18pKHNwMCkpKTsg
YnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7
IGNhc2UgNDogZG8geyB0eXBlZGVmIHR5cGVvZigoY3B1X3Rzc19ydy54ODZfdHNzLnNwMCkpIHB0
b19UX187IGlmICgwKSB7IHB0b19UX18gcHRvX3RtcF9fOyBwdG9fdG1wX18gPSAoc3AwKTsgKHZv
aWQpcHRvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9mKChjcHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkp
IHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICUxLCIiJSUiImdzIiI6IiAiJSIgIjAi
IDogIittIiAoKGNwdV90c3NfcncueDg2X3Rzcy5zcDApKSA6ICJxaSIgKChwdG9fVF9fKShzcDAp
KSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncgJTEsIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoY3B1X3Rzc19ydy54ODZfdHNzLnNwMCkpIDogInJpIiAoKHB0b19U
X18pKHNwMCkpKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgibW92IiAibCAlMSwiIiUl
IiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChjcHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkgOiAicmki
ICgocHRvX1RfXykoc3AwKSkpOyBicmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCJtb3YiICJx
ICUxLCIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKGNwdV90c3NfcncueDg2X3Rzcy5zcDAp
KSA6ICJyZSIgKChwdG9fVF9fKShzcDApKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVf
c2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDg6IGRvIHsgdHlwZWRlZiB0eXBlb2Yo
KGNwdV90c3NfcncueDg2X3Rzcy5zcDApKSBwdG9fVF9fOyBpZiAoMCkgeyBwdG9fVF9fIHB0b190
bXBfXzsgcHRvX3RtcF9fID0gKHNwMCk7ICh2b2lkKXB0b190bXBfXzsgfSBzd2l0Y2ggKHNpemVv
ZigoY3B1X3Rzc19ydy54ODZfdHNzLnNwMCkpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92
IiAiYiAlMSwiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChjcHVfdHNzX3J3Lng4Nl90c3Mu
c3AwKSkgOiAicWkiICgocHRvX1RfXykoc3AwKSkpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRp
bGUgKCJtb3YiICJ3ICUxLCIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKGNwdV90c3Nfcncu
eDg2X3Rzcy5zcDApKSA6ICJyaSIgKChwdG9fVF9fKShzcDApKSk7IGJyZWFrOyBjYXNlIDQ6IGFz
bSB2b2xhdGlsZSAoIm1vdiIgImwgJTEsIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoY3B1
X3Rzc19ydy54ODZfdHNzLnNwMCkpIDogInJpIiAoKHB0b19UX18pKHNwMCkpKTsgYnJlYWs7IGNh
c2UgODogYXNtIHZvbGF0aWxlICgibW92IiAicSAlMSwiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIr
bSIgKChjcHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkgOiAicmUiICgocHRvX1RfXykoc3AwKSkpOyBi
cmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgwKTticmVhazsg
ZGVmYXVsdDogX19iYWRfc2l6ZV9jYWxsX3BhcmFtZXRlcigpO2JyZWFrOyB9IH0gd2hpbGUgKDAp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIG5hdGl2ZV9zd2FwZ3Modm9pZCkKMTQ0NzQ6
IHsKMTQ0NzQ6IAoxNDQ3NDogIGFzbSB2b2xhdGlsZSgic3dhcGdzIiA6OjogIm1lbW9yeSIpOwox
NDQ3NDogCjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgY3VycmVudF90b3Bf
b2Zfc3RhY2sodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgcmV0dXJuICh7IHR5cGVvZihjcHVfdHNzX3J3Lng4Nl90c3Muc3AxKSBw
Zm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGNwdV90c3NfcncueDg2X3Rzcy5zcDEpKSB7IGNhc2Ug
MTogYXNtKCJtb3YiICJiICIiJSUiImdzIiI6IiAiJSIgIlAxIiIsJTAiIDogIj1xIiAocGZvX3Jl
dF9fKSA6ICJwIiAoJihjcHVfdHNzX3J3Lng4Nl90c3Muc3AxKSkpOyBicmVhazsgY2FzZSAyOiBh
c20oIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiUDEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18p
IDogInAiICgmKGNwdV90c3NfcncueDg2X3Rzcy5zcDEpKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSgi
bW92IiAibCAiIiUlIiJncyIiOiIgIiUiICJQMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAi
cCIgKCYoY3B1X3Rzc19ydy54ODZfdHNzLnNwMSkpKTsgYnJlYWs7IGNhc2UgODogYXNtKCJtb3Yi
ICJxICIiJSUiImdzIiI6IiAiJSIgIlAxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJwIiAo
JihjcHVfdHNzX3J3Lng4Nl90c3Muc3AxKSkpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1
X3NpemUoKTsgfSBwZm9fcmV0X187IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIG9u
X3RocmVhZF9zdGFjayh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAodW5zaWduZWQgbG9u
ZykoY3VycmVudF90b3Bfb2Zfc3RhY2soKSAtCjE0NDc0OiAgICAgICAgICAgY3VycmVudF9zdGFj
a19wb2ludGVyKSA8ICgoKDFVTCkgPDwgMTIpIDw8ICgyICsgMCkpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsb2Fk
X3NwMCh1bnNpZ25lZCBsb25nIHNwMCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBuYXRpdmVfbG9hZF9zcDAo
c3AwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0
ZXJuIHZvaWQgcmVsZWFzZV90aHJlYWQoc3RydWN0IHRhc2tfc3RydWN0ICopOwoxNDQ3NDogCjE0
NDc0OiB1bnNpZ25lZCBsb25nIGdldF93Y2hhbihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBj
cHVpZCh1bnNpZ25lZCBpbnQgb3AsCjE0NDc0OiAgICAgdW5zaWduZWQgaW50ICplYXgsIHVuc2ln
bmVkIGludCAqZWJ4LAoxNDQ3NDogICAgIHVuc2lnbmVkIGludCAqZWN4LCB1bnNpZ25lZCBpbnQg
KmVkeCkKMTQ0NzQ6IHsKMTQ0NzQ6ICAqZWF4ID0gb3A7CjE0NDc0OiAgKmVjeCA9IDA7CjE0NDc0
OiAgbmF0aXZlX2NwdWlkKGVheCwgZWJ4LCBlY3gsIGVkeCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBjcHVpZF9jb3VudCh1bnNpZ25lZCBpbnQgb3AsIGludCBjb3VudCwK
MTQ0NzQ6ICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmVheCwgdW5zaWduZWQgaW50ICplYngsCjE0
NDc0OiAgICAgICAgICAgdW5zaWduZWQgaW50ICplY3gsIHVuc2lnbmVkIGludCAqZWR4KQoxNDQ3
NDogewoxNDQ3NDogICplYXggPSBvcDsKMTQ0NzQ6ICAqZWN4ID0gY291bnQ7CjE0NDc0OiAgbmF0
aXZlX2NwdWlkKGVheCwgZWJ4LCBlY3gsIGVkeCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBjcHVpZF9lYXgodW5zaWduZWQgaW50
IG9wKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIGludCBlYXgsIGVieCwgZWN4LCBlZHg7CjE0
NDc0OiAKMTQ0NzQ6ICBjcHVpZChvcCwgJmVheCwgJmVieCwgJmVjeCwgJmVkeCk7CjE0NDc0OiAK
MTQ0NzQ6ICByZXR1cm4gZWF4OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQg
Y3B1aWRfZWJ4KHVuc2lnbmVkIGludCBvcCkKMTQ0NzQ6IHsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQg
ZWF4LCBlYngsIGVjeCwgZWR4OwoxNDQ3NDogCjE0NDc0OiAgY3B1aWQob3AsICZlYXgsICZlYngs
ICZlY3gsICZlZHgpOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIGVieDsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdW5zaWduZWQgaW50IGNwdWlkX2VjeCh1bnNpZ25lZCBpbnQgb3ApCjE0NDc0OiB7
CjE0NDc0OiAgdW5zaWduZWQgaW50IGVheCwgZWJ4LCBlY3gsIGVkeDsKMTQ0NzQ6IAoxNDQ3NDog
IGNwdWlkKG9wLCAmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVy
biBlY3g7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBjcHVpZF9lZHgodW5z
aWduZWQgaW50IG9wKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIGludCBlYXgsIGVieCwgZWN4
LCBlZHg7CjE0NDc0OiAKMTQ0NzQ6ICBjcHVpZChvcCwgJmVheCwgJmVieCwgJmVjeCwgJmVkeCk7
CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gZWR4OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCByZXBfbm9wKHZvaWQp
CjE0NDc0OiB7CjE0NDc0OiAgYXNtIHZvbGF0aWxlKCJyZXA7IG5vcCIgOjo6ICJtZW1vcnkiKTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSB2b2lkIGNwdV9yZWxheCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJlcF9ub3AoKTsKMTQ0NzQ6
IH0KMTQ0NzQ6ICMgNzA1ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIgoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBzeW5jX2NvcmUodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICMgNzM4ICIuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIgoxNDQ3NDogIHVuc2lnbmVkIGludCB0bXA7CjE0NDc0
OiAKMTQ0NzQ6ICBhc20gdm9sYXRpbGUgKAoxNDQ3NDogICAiOTg3OiBcblx0IiAiLnB1c2hzZWN0
aW9uIC5kaXNjYXJkLnVud2luZF9oaW50c1xuXHQiICIubG9uZyA5ODdiIC0gLlxuXHQiICIuc2hv
cnQgIiAiMCIgIlxuXHQiICIuYnl0ZSAiICIwIiAiXG5cdCIgIi5ieXRlICIgIjMiICJcblx0IiAi
LmJ5dGUgIiAiMCIgIlxuXHQiICIuYmFsaWduIDQgXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIKMTQ0
NzQ6ICAgIm1vdiAlJXNzLCAlMFxuXHQiCjE0NDc0OiAgICJwdXNocSAlcTBcblx0IgoxNDQ3NDog
ICAicHVzaHEgJSVyc3Bcblx0IgoxNDQ3NDogICAiYWRkcSAkOCwgKCUlcnNwKVxuXHQiCjE0NDc0
OiAgICJwdXNoZnFcblx0IgoxNDQ3NDogICAibW92ICUlY3MsICUwXG5cdCIKMTQ0NzQ6ICAgInB1
c2hxICVxMFxuXHQiCjE0NDc0OiAgICJwdXNocSAkMWZcblx0IgoxNDQ3NDogICAiaXJldHFcblx0
IgoxNDQ3NDogICAiOTg3OiBcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnVud2luZF9oaW50
c1xuXHQiICIubG9uZyA5ODdiIC0gLlxuXHQiICIuc2hvcnQgIiAiMCIgIlxuXHQiICIuYnl0ZSAi
ICIwIiAiXG5cdCIgIi5ieXRlICIgIjQiICJcblx0IiAiLmJ5dGUgIiAiMCIgIlxuXHQiICIuYmFs
aWduIDQgXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIKMTQ0NzQ6ICAgIjE6IgoxNDQ3NDogICA6ICI9
JnIiICh0bXApLCAiK3IiIChjdXJyZW50X3N0YWNrX3BvaW50ZXIpIDogOiAiY2MiLCAibWVtb3J5
Iik7CjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgc2VsZWN0X2lk
bGVfcm91dGluZShjb25zdCBzdHJ1Y3QgY3B1aW5mb194ODYgKmMpOwoxNDQ3NDogZXh0ZXJuIHZv
aWQgYW1kX2U0MDBfYzFlX2FwaWNfc2V0dXAodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB1
bnNpZ25lZCBsb25nIGJvb3Rfb3B0aW9uX2lkbGVfb3ZlcnJpZGU7CjE0NDc0OiAKMTQ0NzQ6IGVu
dW0gaWRsZV9ib290X292ZXJyaWRlIHtJRExFX05PX09WRVJSSURFPTAsIElETEVfSEFMVCwgSURM
RV9OT01XQUlULAoxNDQ3NDogICAgIElETEVfUE9MTH07CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2
b2lkIGVuYWJsZV9zZXBfY3B1KHZvaWQpOwoxNDQ3NDogZXh0ZXJuIGludCBzeXNlbnRlcl9zZXR1
cCh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZGVz
Y19wdHIgZWFybHlfZ2R0X2Rlc2NyOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBzd2l0Y2hf
dG9fbmV3X2dkdChpbnQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgbG9hZF9kaXJlY3RfZ2R0KGludCk7
CjE0NDc0OiBleHRlcm4gdm9pZCBsb2FkX2ZpeG1hcF9nZHQoaW50KTsKMTQ0NzQ6IGV4dGVybiB2
b2lkIGxvYWRfcGVyY3B1X3NlZ21lbnQoaW50KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGNwdV9pbml0
KHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgY3I0X2luaXQodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHVuc2lnbmVkIGxvbmcgZ2V0X2RlYnVnY3RsbXNyKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgdW5z
aWduZWQgbG9uZyBkZWJ1Z2N0bG1zciA9IDA7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogICgoZGVidWdjdGxtc3IpID0gbmF0aXZlX3JlYWRfbXNyKCgweDAw
MDAwMWQ5KSkpOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIGRlYnVnY3RsbXNyOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIHVwZGF0ZV9kZWJ1Z2N0bG1zcih1bnNpZ25lZCBsb25nIGRlYnVn
Y3RsbXNyKQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
d3Jtc3JsKDB4MDAwMDAxZDksIGRlYnVnY3RsbXNyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIHZvaWQgc2V0X3Rhc2tfYmxvY2tzdGVwKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywg
Ym9vbCBvbik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBib290bG9hZGVyX3R5
cGU7CjE0NDc0OiBleHRlcm4gaW50IGJvb3Rsb2FkZXJfdmVyc2lvbjsKMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIGNoYXIgaWdub3JlX2ZwdV9pcnE7CjE0NDc0OiAjIDgyNiAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9wcm9jZXNzb3IuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcHJlZmV0Y2goY29uc3Qgdm9pZCAqeCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICBhc20gX19pbmxpbmUgdm9sYXRpbGUgKCIjIEFMVDogb2xkbnN0clxu
IiAiNjYxOlxuXHQiICJwcmVmZXRjaHQwICVQMSIgIlxuNjYyOlxuIiAiIyBBTFQ6IHBhZGRpbmdc
biIgIi5za2lwIC0oKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpLSgiICI2NjJiLTY2MWIi
ICIpKSA+IDApICogIiAiKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpLSgiICI2NjJiLTY2
MWIiICIpKSwweDkwXG4iICI2NjMiICI6XG4iICIucHVzaHNlY3Rpb24gLmFsdGluc3RydWN0aW9u
cyxcImFcIlxuIiAiIC5sb25nIDY2MWIgLSAuXG4iICIgLmxvbmcgIiAiNjY0IiIxIiJmIC0gLlxu
IiAiIC53b3JkICIgIiggMCozMisyNSkiICJcbiIgIiAuYnl0ZSAiICI2NjMiImItNjYxYiIgIlxu
IiAiIC5ieXRlICIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIlxuIiAiIC5ieXRlICIgIjY2MyIi
Yi02NjJiIiAiXG4iICIucG9wc2VjdGlvblxuIiAiLnB1c2hzZWN0aW9uIC5hbHRpbnN0cl9yZXBs
YWNlbWVudCwgXCJheFwiXG4iICIjIEFMVDogcmVwbGFjZW1lbnQgIiAiMSIgIlxuIiAiNjY0IiIx
IiI6XG5cdCIgInByZWZldGNobnRhICVQMSIgIlxuIiAiNjY1IiIxIiAiOlxuIiAiLnBvcHNlY3Rp
b25cbiIgOiA6ICJpIiAoMCksICJtIiAoKihjb25zdCBjaGFyICopeCkpCjE0NDc0OiAKMTQ0NzQ6
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHByZWZldGNodyhjb25z
dCB2b2lkICp4KQoxNDQ3NDogewoxNDQ3NDogIGFzbSBfX2lubGluZSB2b2xhdGlsZSAoIiMgQUxU
OiBvbGRuc3RyXG4iICI2NjE6XG5cdCIgInByZWZldGNodDAgJVAxIiAiXG42NjI6XG4iICIjIEFM
VDogcGFkZGluZ1xuIiAiLnNraXAgLSgoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIiktKCIg
IjY2MmItNjYxYiIgIikpID4gMCkgKiAiICIoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIikt
KCIgIjY2MmItNjYxYiIgIikpLDB4OTBcbiIgIjY2MyIgIjpcbiIgIi5wdXNoc2VjdGlvbiAuYWx0
aW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgLmxvbmcgNjYxYiAtIC5cbiIgIiAubG9uZyAiICI2NjQi
IjEiImYgLSAuXG4iICIgLndvcmQgIiAiKCA2KjMyKyA4KSIgIlxuIiAiIC5ieXRlICIgIjY2MyIi
Yi02NjFiIiAiXG4iICIgLmJ5dGUgIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiXG4iICIgLmJ5
dGUgIiAiNjYzIiJiLTY2MmIiICJcbiIgIi5wb3BzZWN0aW9uXG4iICIucHVzaHNlY3Rpb24gLmFs
dGluc3RyX3JlcGxhY2VtZW50LCBcImF4XCJcbiIgIiMgQUxUOiByZXBsYWNlbWVudCAiICIxIiAi
XG4iICI2NjQiIjEiIjpcblx0IiAicHJlZmV0Y2h3ICVQMSIgIlxuIiAiNjY1IiIxIiAiOlxuIiAi
LnBvcHNlY3Rpb25cbiIgOiA6ICJpIiAoMCksICJtIiAoKihjb25zdCBjaGFyICopeCkpCjE0NDc0
OiAKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgc3Bpbl9sb2NrX3ByZWZldGNoKGNvbnN0IHZvaWQgKngpCjE0NDc0OiB7CjE0
NDc0OiAgcHJlZmV0Y2h3KHgpOwoxNDQ3NDogfQoxNDQ3NDogIyA5MjUgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vcHJvY2Vzc29yLmgiCjE0NDc0OiBleHRlcm4gdW5zaWduZWQgbG9uZyBLU1RLX0VT
UChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogZXh0ZXJuIHZvaWQgc3RhcnRfdGhyZWFkKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25l
ZCBsb25nIG5ld19pcCwKMTQ0NzQ6ICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbmV3X3NwKTsK
MTQ0NzQ6ICMgOTQ1ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIgoxNDQ3NDog
ZXh0ZXJuIGludCBnZXRfdHNjX21vZGUodW5zaWduZWQgbG9uZyBhZHIpOwoxNDQ3NDogZXh0ZXJu
IGludCBzZXRfdHNjX21vZGUodW5zaWduZWQgaW50IHZhbCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVy
biBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiIikpKSBfX3R5cGVvZl9f
KHU2NCkgbXNyX21pc2NfZmVhdHVyZXNfc2hhZG93OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4
dGVybiB1MTYgYW1kX2dldF9uYl9pZChpbnQgY3B1KTsKMTQ0NzQ6IGV4dGVybiB1MzIgYW1kX2dl
dF9ub2Rlc19wZXJfc29ja2V0KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHVpbnQzMl90IGh5cGVydmlzb3JfY3B1aWRfYmFzZShjb25zdCBjaGFy
ICpzaWcsIHVpbnQzMl90IGxlYXZlcykKMTQ0NzQ6IHsKMTQ0NzQ6ICB1aW50MzJfdCBiYXNlLCBl
YXgsIHNpZ25hdHVyZVszXTsKMTQ0NzQ6IAoxNDQ3NDogIGZvciAoYmFzZSA9IDB4NDAwMDAwMDA7
IGJhc2UgPCAweDQwMDEwMDAwOyBiYXNlICs9IDB4MTAwKSB7CjE0NDc0OiAgIGNwdWlkKGJhc2Us
ICZlYXgsICZzaWduYXR1cmVbMF0sICZzaWduYXR1cmVbMV0sICZzaWduYXR1cmVbMl0pOwoxNDQ3
NDogCjE0NDc0OiAgIGlmICghbWVtY21wKHNpZywgc2lnbmF0dXJlLCAxMikgJiYKMTQ0NzQ6ICAg
ICAgIChsZWF2ZXMgPT0gMCB8fCAoKGVheCAtIGJhc2UpID49IGxlYXZlcykpKQoxNDQ3NDogICAg
cmV0dXJuIGJhc2U7CjE0NDc0OiAgfQoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIDA7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBsb25nIGFyY2hfYWxpZ25fc3RhY2sodW5z
aWduZWQgbG9uZyBzcCk7CjE0NDc0OiB2b2lkIGZyZWVfaW5pdF9wYWdlcyhjb25zdCBjaGFyICp3
aGF0LCB1bnNpZ25lZCBsb25nIGJlZ2luLCB1bnNpZ25lZCBsb25nIGVuZCk7CjE0NDc0OiBleHRl
cm4gdm9pZCBmcmVlX2tlcm5lbF9pbWFnZV9wYWdlcyhjb25zdCBjaGFyICp3aGF0LCB2b2lkICpi
ZWdpbiwgdm9pZCAqZW5kKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkZWZhdWx0X2lkbGUodm9pZCk7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2
b2lkIHN0b3BfdGhpc19jcHUodm9pZCAqZHVtbXkpOwoxNDQ3NDogdm9pZCBtaWNyb2NvZGVfY2hl
Y2sodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IGVudW0gbDF0Zl9taXRpZ2F0aW9ucyB7CjE0NDc0OiAg
TDFURl9NSVRJR0FUSU9OX09GRiwKMTQ0NzQ6ICBMMVRGX01JVElHQVRJT05fRkxVU0hfTk9XQVJO
LAoxNDQ3NDogIEwxVEZfTUlUSUdBVElPTl9GTFVTSCwKMTQ0NzQ6ICBMMVRGX01JVElHQVRJT05f
RkxVU0hfTk9TTVQsCjE0NDc0OiAgTDFURl9NSVRJR0FUSU9OX0ZVTEwsCjE0NDc0OiAgTDFURl9N
SVRJR0FUSU9OX0ZVTExfRk9SQ0UKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBlbnVt
IGwxdGZfbWl0aWdhdGlvbnMgbDF0Zl9taXRpZ2F0aW9uOwoxNDQ3NDogCjE0NDc0OiBlbnVtIG1k
c19taXRpZ2F0aW9ucyB7CjE0NDc0OiAgTURTX01JVElHQVRJT05fT0ZGLAoxNDQ3NDogIE1EU19N
SVRJR0FUSU9OX0ZVTEwsCjE0NDc0OiAgTURTX01JVElHQVRJT05fVk1XRVJWLAoxNDQ3NDogfTsK
MTQ0NzQ6ICMgNiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlLmgiIDIKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gY3B1
aWRfbGVhZnMKMTQ0NzQ6IHsKMTQ0NzQ6ICBDUFVJRF8xX0VEWCA9IDAsCjE0NDc0OiAgQ1BVSURf
ODAwMF8wMDAxX0VEWCwKMTQ0NzQ6ICBDUFVJRF84MDg2XzAwMDFfRURYLAoxNDQ3NDogIENQVUlE
X0xOWF8xLAoxNDQ3NDogIENQVUlEXzFfRUNYLAoxNDQ3NDogIENQVUlEX0MwMDBfMDAwMV9FRFgs
CjE0NDc0OiAgQ1BVSURfODAwMF8wMDAxX0VDWCwKMTQ0NzQ6ICBDUFVJRF9MTlhfMiwKMTQ0NzQ6
ICBDUFVJRF9MTlhfMywKMTQ0NzQ6ICBDUFVJRF83XzBfRUJYLAoxNDQ3NDogIENQVUlEX0RfMV9F
QVgsCjE0NDc0OiAgQ1BVSURfTE5YXzQsCjE0NDc0OiAgQ1BVSURfN18xX0VBWCwKMTQ0NzQ6ICBD
UFVJRF84MDAwXzAwMDhfRUJYLAoxNDQ3NDogIENQVUlEXzZfRUFYLAoxNDQ3NDogIENQVUlEXzgw
MDBfMDAwQV9FRFgsCjE0NDc0OiAgQ1BVSURfN19FQ1gsCjE0NDc0OiAgQ1BVSURfODAwMF8wMDA3
X0VCWCwKMTQ0NzQ6ICBDUFVJRF83X0VEWCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogZXh0ZXJuIGNvbnN0IGNoYXIgKiBjb25zdCB4ODZfY2FwX2ZsYWdzWzE5KjMyXTsKMTQ0NzQ6
IGV4dGVybiBjb25zdCBjaGFyICogY29uc3QgeDg2X3Bvd2VyX2ZsYWdzWzMyXTsKMTQ0NzQ6ICMg
NDkgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oIgoxNDQ3NDogZXh0ZXJuIGNv
bnN0IGNoYXIgKiBjb25zdCB4ODZfYnVnX2ZsYWdzWzEqMzJdOwoxNDQ3NDogIyAxNDEgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oIgoxNDQ3NDogZXh0ZXJuIHZvaWQgc2V0dXBf
Y2xlYXJfY3B1X2NhcCh1bnNpZ25lZCBpbnQgYml0KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGNsZWFy
X2NwdV9jYXAoc3RydWN0IGNwdWluZm9feDg2ICpjLCB1bnNpZ25lZCBpbnQgYml0KTsKMTQ0NzQ6
ICMgMTczICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9vbCBfc3RhdGljX2NwdV9oYXModTE2IGJp
dCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBkbyB7IGFzbSBnb3RvKCIxOiBqbXAgNmZcbiIgIjI6XG4iICIu
c2tpcCAtKCgoNWYtNGYpIC0gKDJiLTFiKSkgPiAwKSAqICIgIigoNWYtNGYpIC0gKDJiLTFiKSks
MHg5MFxuIiAiMzpcbiIgIi5zZWN0aW9uIC5hbHRpbnN0cnVjdGlvbnMsXCJhXCJcbiIgIiAubG9u
ZyAxYiAtIC5cbiIgIiAubG9uZyA0ZiAtIC5cbiIgIiAud29yZCAlUFthbHdheXNdXG4iICIgLmJ5
dGUgM2IgLSAxYlxuIiAiIC5ieXRlIDVmIC0gNGZcbiIgIiAuYnl0ZSAzYiAtIDJiXG4iICIucHJl
dmlvdXNcbiIgIi5zZWN0aW9uIC5hbHRpbnN0cl9yZXBsYWNlbWVudCxcImF4XCJcbiIgIjQ6IGpt
cCAlbFt0X25vXVxuIiAiNTpcbiIgIi5wcmV2aW91c1xuIiAiLnNlY3Rpb24gLmFsdGluc3RydWN0
aW9ucyxcImFcIlxuIiAiIC5sb25nIDFiIC0gLlxuIiAiIC5sb25nIDBcbiIgIiAud29yZCAlUFtm
ZWF0dXJlXVxuIiAiIC5ieXRlIDNiIC0gMWJcbiIgIiAuYnl0ZSAwXG4iICIgLmJ5dGUgMFxuIiAi
LnByZXZpb3VzXG4iICIuc2VjdGlvbiAuYWx0aW5zdHJfYXV4LFwiYXhcIlxuIiAiNjpcbiIgIiB0
ZXN0YiAlW2JpdG51bV0sJVtjYXBfYnl0ZV1cbiIgIiBqbnogJWxbdF95ZXNdXG4iICIgam1wICVs
W3Rfbm9dXG4iICIucHJldmlvdXNcbiIgOiA6IFtmZWF0dXJlXSAiaSIgKGJpdCksIFthbHdheXNd
ICJpIiAoKCAzKjMyKzIxKSksIFtiaXRudW1dICJpIiAoMSA8PCAoYml0ICYgNykpLCBbY2FwX2J5
dGVdICJtIiAoKChjb25zdCBjaGFyICopYm9vdF9jcHVfZGF0YS54ODZfY2FwYWJpbGl0eSlbYml0
ID4+IDNdKSA6IDogdF95ZXMsIHRfbm8pOyBhc20gKCIiKTsgfSB3aGlsZSAoMCkKMTQ0NzQ6ICMg
MjEwICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaCIKMTQ0NzQ6ICAgICAgICAg
ICAgICAgICAgICA7CjE0NDc0OiB0X3llczoKMTQ0NzQ6ICByZXR1cm4gdHJ1ZTsKMTQ0NzQ6IHRf
bm86CjE0NDc0OiAgcmV0dXJuIGZhbHNlOwoxNDQ3NDogfQoxNDQ3NDogIyA1NCAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IHRocmVhZF9pbmZvIHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGZsYWdzOwoxNDQ3NDogIHUz
MiBzdGF0dXM7CjE0NDc0OiB9OwoxNDQ3NDogIyAxODYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
dGhyZWFkX2luZm8uaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBhcmNoX3dpdGhpbl9zdGFja19mcmFtZXMoY29uc3Qg
dm9pZCAqIGNvbnN0IHN0YWNrLAoxNDQ3NDogICAgICAgICBjb25zdCB2b2lkICogY29uc3Qgc3Rh
Y2tlbmQsCjE0NDc0OiAgICAgICAgIGNvbnN0IHZvaWQgKm9iaiwgdW5zaWduZWQgbG9uZyBsZW4p
CjE0NDc0OiB7CjE0NDc0OiAjIDIxOCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS90aHJlYWRfaW5m
by5oIgoxNDQ3NDogIHJldHVybiBOT1RfU1RBQ0s7CjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6ICMg
MjQyICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgiCjE0NDc0OiBleHRlcm4g
dm9pZCBhcmNoX3Rhc2tfY2FjaGVfaW5pdCh2b2lkKTsKMTQ0NzQ6IGV4dGVybiBpbnQgYXJjaF9k
dXBfdGFza19zdHJ1Y3Qoc3RydWN0IHRhc2tfc3RydWN0ICpkc3QsIHN0cnVjdCB0YXNrX3N0cnVj
dCAqc3JjKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGFyY2hfcmVsZWFzZV90YXNrX3N0cnVjdChzdHJ1
Y3QgdGFza19zdHJ1Y3QgKnRzayk7CjE0NDc0OiBleHRlcm4gdm9pZCBhcmNoX3NldHVwX25ld19l
eGVjKHZvaWQpOwoxNDQ3NDogIyAzOSAiLi9pbmNsdWRlL2xpbnV4L3RocmVhZF9pbmZvLmgiIDIK
MTQ0NzQ6ICMgNTMgIi4vaW5jbHVkZS9saW51eC90aHJlYWRfaW5mby5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBz
ZXRfdGlfdGhyZWFkX2ZsYWcoc3RydWN0IHRocmVhZF9pbmZvICp0aSwgaW50IGZsYWcpCjE0NDc0
OiB7CjE0NDc0OiAgc2V0X2JpdChmbGFnLCAodW5zaWduZWQgbG9uZyAqKSZ0aS0+ZmxhZ3MpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNsZWFyX3RpX3RocmVhZF9mbGFnKHN0cnVjdCB0
aHJlYWRfaW5mbyAqdGksIGludCBmbGFnKQoxNDQ3NDogewoxNDQ3NDogIGNsZWFyX2JpdChmbGFn
LCAodW5zaWduZWQgbG9uZyAqKSZ0aS0+ZmxhZ3MpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIHVwZGF0ZV90aV90aHJlYWRfZmxhZyhzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpLCBpbnQgZmxh
ZywKMTQ0NzQ6ICAgICAgIGJvb2wgdmFsdWUpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKHZhbHVlKQox
NDQ3NDogICBzZXRfdGlfdGhyZWFkX2ZsYWcodGksIGZsYWcpOwoxNDQ3NDogIGVsc2UKMTQ0NzQ6
ICAgY2xlYXJfdGlfdGhyZWFkX2ZsYWcodGksIGZsYWcpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQgdGVzdF9hbmRfc2V0X3RpX3RocmVhZF9mbGFnKHN0cnVjdCB0aHJlYWRfaW5mbyAqdGks
IGludCBmbGFnKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB0ZXN0X2FuZF9zZXRfYml0KGZsYWcs
ICh1bnNpZ25lZCBsb25nICopJnRpLT5mbGFncyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dCB0ZXN0X2FuZF9jbGVhcl90aV90aHJlYWRfZmxhZyhzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpLCBp
bnQgZmxhZykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdGVzdF9hbmRfY2xlYXJfYml0KGZsYWcs
ICh1bnNpZ25lZCBsb25nICopJnRpLT5mbGFncyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dCB0ZXN0X3RpX3RocmVhZF9mbGFnKHN0cnVjdCB0aHJlYWRfaW5mbyAqdGksIGludCBmbGFnKQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiB0ZXN0X2JpdChmbGFnLCAodW5zaWduZWQgbG9uZyAqKSZ0
aS0+ZmxhZ3MpOwoxNDQ3NDogfQoxNDQ3NDogIyAxMjIgIi4vaW5jbHVkZS9saW51eC90aHJlYWRf
aW5mby5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBjaGVja19vYmplY3Rfc2l6ZShjb25zdCB2b2lkICpwdHIsIHVu
c2lnbmVkIGxvbmcgbiwKMTQ0NzQ6ICAgICAgICAgIGJvb2wgdG9fdXNlcikKMTQ0NzQ6IHsgfQox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIF9fYXR0cmlidXRlX18oKF9fZXJyb3Jf
XygiY29weSBzb3VyY2Ugc2l6ZSBpcyB0b28gc21hbGwiKSkpCjE0NDc0OiBfX2JhZF9jb3B5X2Zy
b20odm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oImNv
cHkgZGVzdGluYXRpb24gc2l6ZSBpcyB0b28gc21hbGwiKSkpCjE0NDc0OiBfX2JhZF9jb3B5X3Rv
KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNvcHlfb3ZlcmZsb3coaW50IHNpemUsIHVuc2ln
bmVkIGxvbmcgY291bnQpCjE0NDc0OiB7CjE0NDc0OiAgKHsgaW50IF9fcmV0X3dhcm5fb24gPSAh
ISgxKTsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApKSBkbyB7IF9f
d2Fybl9wcmludGsoIkJ1ZmZlciBvdmVyZmxvdyBkZXRlY3RlZCAoJWQgPCAlbHUpIVxuIiwgc2l6
ZSwgY291bnQpOyBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUg
MHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpc
dCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQi
ICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQg
JWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5
OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNs
dWRlL2xpbnV4L3RocmVhZF9pbmZvLmgiKSwgImkiICgxMzQpLCAiaSIgKCgxIDw8IDApfCgoMSA8
PCAzKSB8ICgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkpKTsgfSB3
aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2Nh
cmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIg
OiA6ICJpIiAoMCkpOyB9KTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5fZXhw
ZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9f
YXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX193YXJuX3Vu
dXNlZF9yZXN1bHRfXykpIGJvb2wKMTQ0NzQ6IGNoZWNrX2NvcHlfc2l6ZShjb25zdCB2b2lkICph
ZGRyLCBzaXplX3QgYnl0ZXMsIGJvb2wgaXNfc291cmNlKQoxNDQ3NDogewoxNDQ3NDogIGludCBz
eiA9IF9fYnVpbHRpbl9vYmplY3Rfc2l6ZShhZGRyLCAwKTsKMTQ0NzQ6ICBpZiAoX19idWlsdGlu
X2V4cGVjdCghIShzeiA+PSAwICYmIHN6IDwgYnl0ZXMpLCAwKSkgewoxNDQ3NDogICBpZiAoIV9f
YnVpbHRpbl9jb25zdGFudF9wKGJ5dGVzKSkKMTQ0NzQ6ICAgIGNvcHlfb3ZlcmZsb3coc3osIGJ5
dGVzKTsKMTQ0NzQ6ICAgZWxzZSBpZiAoaXNfc291cmNlKQoxNDQ3NDogICAgX19iYWRfY29weV9m
cm9tKCk7CjE0NDc0OiAgIGVsc2UKMTQ0NzQ6ICAgIF9fYmFkX2NvcHlfdG8oKTsKMTQ0NzQ6ICAg
cmV0dXJuIGZhbHNlOwoxNDQ3NDogIH0KMTQ0NzQ6ICBpZiAoKHsgaW50IF9fcmV0X3dhcm5fb24g
PSAhIShieXRlcyA+ICgoaW50KSh+MFUgPj4gMSkpKTsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEo
X19yZXRfd2Fybl9vbiksIDApKSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0
IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdc
IlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRk
clxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIg
Ilx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMg
YnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAi
aSIgKCJpbmNsdWRlL2xpbnV4L3RocmVhZF9pbmZvLmgiKSwgImkiICgxNTApLCAiaSIgKCgxIDw8
IDApfCgoMSA8PCAxKSB8ICgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRy
eSkpKTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rp
b24gLmRpc2NhcmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0
aW9uXG5cdCIgOiA6ICJpIiAoMSkpOyB9KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBlY3Qo
ISEoX19yZXRfd2Fybl9vbiksIDApOyB9KSkKMTQ0NzQ6ICAgcmV0dXJuIGZhbHNlOwoxNDQ3NDog
IGNoZWNrX29iamVjdF9zaXplKGFkZHIsIGJ5dGVzLCBpc19zb3VyY2UpOwoxNDQ3NDogIHJldHVy
biB0cnVlOwoxNDQ3NDogfQoxNDQ3NDogIyA4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3ByZWVt
cHQuaCIgMgoxNDQ3NDogCjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmRh
dGEuLnBlcmNwdSIgIiIpKSkgX190eXBlb2ZfXyhpbnQpIF9fcHJlZW1wdF9jb3VudDsKMTQ0NzQ6
ICMgMjQgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJlZW1wdC5oIgoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgcHJlZW1wdF9jb3VudCh2b2lkKQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiAoeyB0eXBlb2YoX19wcmVlbXB0X2NvdW50KSBwZm9fcmV0X187IHN3
aXRjaCAoc2l6ZW9mKF9fcHJlZW1wdF9jb3VudCkpIHsgY2FzZSAxOiBhc20gKCJtb3YiICJiICIi
JSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0iIChfX3ByZWVt
cHRfY291bnQpKTsgYnJlYWs7IGNhc2UgMjogYXNtICgibW92IiAidyAiIiUlIiJncyIiOiIgIiUi
ICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoX19wcmVlbXB0X2NvdW50KSk7IGJy
ZWFrOyBjYXNlIDQ6IGFzbSAoIm1vdiIgImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9
ciIgKHBmb19yZXRfXykgOiAibSIgKF9fcHJlZW1wdF9jb3VudCkpOyBicmVhazsgY2FzZSA4OiBh
c20gKCJtb3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18p
IDogIm0iIChfX3ByZWVtcHRfY291bnQpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9z
aXplKCk7IH0gcGZvX3JldF9fOyB9KSAmIH4weDgwMDAwMDAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgcHJlZW1wdF9jb3Vu
dF9zZXQoaW50IHBjKQoxNDQ3NDogewoxNDQ3NDogIGludCBvbGQsIG5ldzsKMTQ0NzQ6IAoxNDQ3
NDogIGRvIHsKMTQ0NzQ6ICAgb2xkID0gKHsgdHlwZW9mKF9fcHJlZW1wdF9jb3VudCkgcGZvX3Jl
dF9fOyBzd2l0Y2ggKHNpemVvZihfX3ByZWVtcHRfY291bnQpKSB7IGNhc2UgMTogYXNtICgibW92
IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAo
X19wcmVlbXB0X2NvdW50KSk7IGJyZWFrOyBjYXNlIDI6IGFzbSAoIm1vdiIgIncgIiIlJSIiZ3Mi
IjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKF9fcHJlZW1wdF9jb3Vu
dCkpOyBicmVhazsgY2FzZSA0OiBhc20gKCJtb3YiICJsICIiJSUiImdzIiI6IiAiJSIgIjEiIiwl
MCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChfX3ByZWVtcHRfY291bnQpKTsgYnJlYWs7IGNh
c2UgODogYXNtICgibW92IiAicSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZv
X3JldF9fKSA6ICJtIiAoX19wcmVlbXB0X2NvdW50KSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9w
ZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsgfSk7CjE0NDc0OiAgIG5ldyA9IChvbGQgJiAweDgw
MDAwMDAwKSB8CjE0NDc0OiAgICAocGMgJiB+MHg4MDAwMDAwMCk7CjE0NDc0OiAgfSB3aGlsZSAo
KHsgdHlwZW9mKF9fcHJlZW1wdF9jb3VudCkgcGNvX3JldF9fOyB0eXBlb2YoX19wcmVlbXB0X2Nv
dW50KSBwY29fb2xkX18gPSAob2xkKTsgdHlwZW9mKF9fcHJlZW1wdF9jb3VudCkgcGNvX25ld19f
ID0gKG5ldyk7IHN3aXRjaCAoc2l6ZW9mKF9fcHJlZW1wdF9jb3VudCkpIHsgY2FzZSAxOiBhc20g
KCJjbXB4Y2hnYiAlMiwgIiIlJSIiZ3MiIjoiICIlIiAiMSIgOiAiPWEiIChwY29fcmV0X18pLCAi
K20iIChfX3ByZWVtcHRfY291bnQpIDogInEiIChwY29fbmV3X18pLCAiMCIgKHBjb19vbGRfXykg
OiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDI6IGFzbSAoImNtcHhjaGd3ICUyLCAiIiUlIiJncyIi
OiIgIiUiICIxIiA6ICI9YSIgKHBjb19yZXRfXyksICIrbSIgKF9fcHJlZW1wdF9jb3VudCkgOiAi
ciIgKHBjb19uZXdfXyksICIwIiAocGNvX29sZF9fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2Ug
NDogYXNtICgiY21weGNoZ2wgJTIsICIiJSUiImdzIiI6IiAiJSIgIjEiIDogIj1hIiAocGNvX3Jl
dF9fKSwgIittIiAoX19wcmVlbXB0X2NvdW50KSA6ICJyIiAocGNvX25ld19fKSwgIjAiIChwY29f
b2xkX18pIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBhc20gKCJjbXB4Y2hncSAlMiwgIiIl
JSIiZ3MiIjoiICIlIiAiMSIgOiAiPWEiIChwY29fcmV0X18pLCAiK20iIChfX3ByZWVtcHRfY291
bnQpIDogInIiIChwY29fbmV3X18pLCAiMCIgKHBjb19vbGRfXykgOiAibWVtb3J5Iik7IGJyZWFr
OyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBjb19yZXRfXzsgfSkgIT0gb2xkKTsK
MTQ0NzQ6IH0KMTQ0NzQ6ICMgNTggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJlZW1wdC5oIgox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIHNldF9wcmVlbXB0
X25lZWRfcmVzY2hlZCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgdHlwZWRlZiB0eXBlb2Yo
KF9fcHJlZW1wdF9jb3VudCkpIHB0b19UX187IGlmICgwKSB7IHB0b19UX18gcHRvX3RtcF9fOyBw
dG9fdG1wX18gPSAofjB4ODAwMDAwMDApOyAodm9pZClwdG9fdG1wX187IH0gc3dpdGNoIChzaXpl
b2YoKF9fcHJlZW1wdF9jb3VudCkpKSB7IGNhc2UgMTogYXNtICgiYW5kIiAiYiAlMSwiIiUlIiJn
cyIiOiIgIiUiICIwIiA6ICIrbSIgKChfX3ByZWVtcHRfY291bnQpKSA6ICJxaSIgKChwdG9fVF9f
KSh+MHg4MDAwMDAwMCkpKTsgYnJlYWs7IGNhc2UgMjogYXNtICgiYW5kIiAidyAlMSwiIiUlIiJn
cyIiOiIgIiUiICIwIiA6ICIrbSIgKChfX3ByZWVtcHRfY291bnQpKSA6ICJyaSIgKChwdG9fVF9f
KSh+MHg4MDAwMDAwMCkpKTsgYnJlYWs7IGNhc2UgNDogYXNtICgiYW5kIiAibCAlMSwiIiUlIiJn
cyIiOiIgIiUiICIwIiA6ICIrbSIgKChfX3ByZWVtcHRfY291bnQpKSA6ICJyaSIgKChwdG9fVF9f
KSh+MHg4MDAwMDAwMCkpKTsgYnJlYWs7IGNhc2UgODogYXNtICgiYW5kIiAicSAlMSwiIiUlIiJn
cyIiOiIgIiUiICIwIiA6ICIrbSIgKChfX3ByZWVtcHRfY291bnQpKSA6ICJyZSIgKChwdG9fVF9f
KSh+MHg4MDAwMDAwMCkpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0g
fSB3aGlsZSAoMCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgdm9pZCBjbGVhcl9wcmVlbXB0X25lZWRfcmVzY2hlZCh2b2lkKQoxNDQ3
NDogewoxNDQ3NDogIGRvIHsgdHlwZWRlZiB0eXBlb2YoKF9fcHJlZW1wdF9jb3VudCkpIHB0b19U
X187IGlmICgwKSB7IHB0b19UX18gcHRvX3RtcF9fOyBwdG9fdG1wX18gPSAoMHg4MDAwMDAwMCk7
ICh2b2lkKXB0b190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoX19wcmVlbXB0X2NvdW50KSkpIHsg
Y2FzZSAxOiBhc20gKCJvciIgImIgJTEsIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19w
cmVlbXB0X2NvdW50KSkgOiAicWkiICgocHRvX1RfXykoMHg4MDAwMDAwMCkpKTsgYnJlYWs7IGNh
c2UgMjogYXNtICgib3IiICJ3ICUxLCIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKF9fcHJl
ZW1wdF9jb3VudCkpIDogInJpIiAoKHB0b19UX18pKDB4ODAwMDAwMDApKSk7IGJyZWFrOyBjYXNl
IDQ6IGFzbSAoIm9yIiAibCAlMSwiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChfX3ByZWVt
cHRfY291bnQpKSA6ICJyaSIgKChwdG9fVF9fKSgweDgwMDAwMDAwKSkpOyBicmVhazsgY2FzZSA4
OiBhc20gKCJvciIgInEgJTEsIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0
X2NvdW50KSkgOiAicmUiICgocHRvX1RfXykoMHg4MDAwMDAwMCkpKTsgYnJlYWs7IGRlZmF1bHQ6
IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9vbCB0ZXN0X3ByZWVtcHRf
bmVlZF9yZXNjaGVkKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICEoKHsgdHlwZW9mKF9f
cHJlZW1wdF9jb3VudCkgcGZvX3JldF9fOyBzd2l0Y2ggKHNpemVvZihfX3ByZWVtcHRfY291bnQp
KSB7IGNhc2UgMTogYXNtICgibW92IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1x
IiAocGZvX3JldF9fKSA6ICJtIiAoX19wcmVlbXB0X2NvdW50KSk7IGJyZWFrOyBjYXNlIDI6IGFz
bSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykg
OiAibSIgKF9fcHJlZW1wdF9jb3VudCkpOyBicmVhazsgY2FzZSA0OiBhc20gKCJtb3YiICJsICIi
JSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChfX3ByZWVt
cHRfY291bnQpKTsgYnJlYWs7IGNhc2UgODogYXNtICgibW92IiAicSAiIiUlIiJncyIiOiIgIiUi
ICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoX19wcmVlbXB0X2NvdW50KSk7IGJy
ZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsgfSkgJiAweDgw
MDAwMDAwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19wcmVlbXB0
X2NvdW50X2FkZChpbnQgdmFsKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgdHlwZWRlZiB0eXBlb2Yo
KF9fcHJlZW1wdF9jb3VudCkpIHBhb19UX187IGNvbnN0IGludCBwYW9fSURfXyA9IChfX2J1aWx0
aW5fY29uc3RhbnRfcCh2YWwpICYmICgodmFsKSA9PSAxIHx8ICh2YWwpID09IC0xKSkgPyAoaW50
KSh2YWwpIDogMDsgaWYgKDApIHsgcGFvX1RfXyBwYW9fdG1wX187IHBhb190bXBfXyA9ICh2YWwp
OyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKF9fcHJlZW1wdF9jb3VudCkpKSB7
IGNhc2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkg
YXNtICgiZGVjYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChfX3ByZWVtcHRfY291bnQp
KSk7IGVsc2UgYXNtICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19w
cmVlbXB0X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykodmFsKSkpOyBicmVhazsgY2FzZSAyOiBp
ZiAocGFvX0lEX18gPT0gMSkgYXNtICgiaW5jdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIg
KChfX3ByZWVtcHRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWN3
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKF9fcHJlZW1wdF9jb3VudCkpKTsgZWxzZSBh
c20gKCJhZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChfX3ByZWVtcHRfY291
bnQpKSA6ICJyaSIgKChwYW9fVF9fKSh2YWwpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURf
XyA9PSAxKSBhc20gKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKF9fcHJlZW1w
dF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2wgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkpOyBlbHNlIGFzbSAoImFkZGwg
JTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKF9fcHJlZW1wdF9jb3VudCkpIDogInJp
IiAoKHBhb19UX18pKHZhbCkpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFz
bSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkp
OyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtICgiZGVjcSAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKChfX3ByZWVtcHRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkcSAlMSwgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkgOiAicmUiICgocGFvX1Rf
XykodmFsKSkpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxl
ICgwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5s
aW5lX18pKSB2b2lkIF9fcHJlZW1wdF9jb3VudF9zdWIoaW50IHZhbCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICBkbyB7IHR5cGVkZWYgdHlwZW9mKChfX3ByZWVtcHRfY291bnQpKSBwYW9fVF9fOyBjb25zdCBp
bnQgcGFvX0lEX18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoLXZhbCkgJiYgKCgtdmFsKSA9PSAx
IHx8ICgtdmFsKSA9PSAtMSkpID8gKGludCkoLXZhbCkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBh
b190bXBfXzsgcGFvX3RtcF9fID0gKC12YWwpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChz
aXplb2YoKF9fcHJlZW1wdF9jb3VudCkpKSB7IGNhc2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFz
bSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkp
OyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtICgiZGVjYiAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKChfX3ByZWVtcHRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkYiAlMSwgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkgOiAicWkiICgocGFvX1Rf
XykoLXZhbCkpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY3cg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkpOyBlbHNlIGlm
IChwYW9fSURfXyA9PSAtMSkgYXNtICgiZGVjdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIg
KChfX3ByZWVtcHRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoLXZhbCkp
KTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2wgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURf
XyA9PSAtMSkgYXNtICgiZGVjbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChfX3ByZWVt
cHRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoX19wcmVlbXB0X2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoLXZhbCkpKTsgYnJlYWs7
IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkg
YXNtICgiZGVjcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChfX3ByZWVtcHRfY291bnQp
KSk7IGVsc2UgYXNtICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19w
cmVlbXB0X2NvdW50KSkgOiAicmUiICgocGFvX1RfXykoLXZhbCkpKTsgYnJlYWs7IGRlZmF1bHQ6
IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIGJvb2wgX19wcmVlbXB0X2NvdW50X2RlY19hbmRfdGVzdCh2
b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoeyBib29sIGM7IGFzbSB2b2xhdGlsZSAoImRl
Y2wiICIgIiAiJSUiImdzIiI6IiAiJSIgIlt2YXJdIiAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24g
Y29kZSAiICJlIiAiKi9cbiIgOiBbdmFyXSAiK20iIChfX3ByZWVtcHRfY291bnQpLCAiPUBjYyIg
ImUiIChjKSA6IDogIm1lbW9yeSIpOyBjOyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBi
b29sIHNob3VsZF9yZXNjaGVkKGludCBwcmVlbXB0X29mZnNldCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4gX19idWlsdGluX2V4cGVjdCghISgoeyB0eXBlb2YoX19wcmVlbXB0X2NvdW50KSBwZm9f
cmV0X187IHN3aXRjaCAoc2l6ZW9mKF9fcHJlZW1wdF9jb3VudCkpIHsgY2FzZSAxOiBhc20gKCJt
b3YiICJiICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0i
IChfX3ByZWVtcHRfY291bnQpKTsgYnJlYWs7IGNhc2UgMjogYXNtICgibW92IiAidyAiIiUlIiJn
cyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoX19wcmVlbXB0X2Nv
dW50KSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSAoIm1vdiIgImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIi
LCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKF9fcHJlZW1wdF9jb3VudCkpOyBicmVhazsg
Y2FzZSA4OiBhc20gKCJtb3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChw
Zm9fcmV0X18pIDogIm0iIChfX3ByZWVtcHRfY291bnQpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFk
X3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KSA9PSBwcmVlbXB0X29mZnNldCksIDApOwox
NDQ3NDogfQoxNDQ3NDogIyA3OSAiLi9pbmNsdWRlL2xpbnV4L3ByZWVtcHQuaCIgMgoxNDQ3NDog
IyAyNzcgIi4vaW5jbHVkZS9saW51eC9wcmVlbXB0LmgiCjE0NDc0OiBzdHJ1Y3QgcHJlZW1wdF9u
b3RpZmllcjsKMTQ0NzQ6ICMgMjkzICIuL2luY2x1ZGUvbGludXgvcHJlZW1wdC5oIgoxNDQ3NDog
c3RydWN0IHByZWVtcHRfb3BzIHsKMTQ0NzQ6ICB2b2lkICgqc2NoZWRfaW4pKHN0cnVjdCBwcmVl
bXB0X25vdGlmaWVyICpub3RpZmllciwgaW50IGNwdSk7CjE0NDc0OiAgdm9pZCAoKnNjaGVkX291
dCkoc3RydWN0IHByZWVtcHRfbm90aWZpZXIgKm5vdGlmaWVyLAoxNDQ3NDogICAgICBzdHJ1Y3Qg
dGFza19zdHJ1Y3QgKm5leHQpOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzA2ICIuL2luY2x1ZGUvbGlu
dXgvcHJlZW1wdC5oIgoxNDQ3NDogc3RydWN0IHByZWVtcHRfbm90aWZpZXIgewoxNDQ3NDogIHN0
cnVjdCBobGlzdF9ub2RlIGxpbms7CjE0NDc0OiAgc3RydWN0IHByZWVtcHRfb3BzICpvcHM7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB2b2lkIHByZWVtcHRfbm90aWZpZXJfaW5jKHZvaWQpOwox
NDQ3NDogdm9pZCBwcmVlbXB0X25vdGlmaWVyX2RlYyh2b2lkKTsKMTQ0NzQ6IHZvaWQgcHJlZW1w
dF9ub3RpZmllcl9yZWdpc3RlcihzdHJ1Y3QgcHJlZW1wdF9ub3RpZmllciAqbm90aWZpZXIpOwox
NDQ3NDogdm9pZCBwcmVlbXB0X25vdGlmaWVyX3VucmVnaXN0ZXIoc3RydWN0IHByZWVtcHRfbm90
aWZpZXIgKm5vdGlmaWVyKTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwcmVlbXB0X25vdGlmaWVyX2lu
aXQoc3RydWN0IHByZWVtcHRfbm90aWZpZXIgKm5vdGlmaWVyLAoxNDQ3NDogICAgICAgICAgc3Ry
dWN0IHByZWVtcHRfb3BzICpvcHMpCjE0NDc0OiB7CjE0NDc0OiAgSU5JVF9ITElTVF9OT0RFKCZu
b3RpZmllci0+bGluayk7CjE0NDc0OiAgbm90aWZpZXItPm9wcyA9IG9wczsKMTQ0NzQ6IH0KMTQ0
NzQ6ICMgNTIgIi4vaW5jbHVkZS9saW51eC9zcGlubG9jay5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51
eC9ib3R0b21faGFsZi5oIiAxCjE0NDc0OiAjIDEwICIuL2luY2x1ZGUvbGludXgvYm90dG9tX2hh
bGYuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX2xv
Y2FsX2JoX2Rpc2FibGVfaXAodW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgaW50IGNudCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICBfX3ByZWVtcHRfY291bnRfYWRkKGNudCk7CjE0NDc0OiAgX19hc21fXyBf
X3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGxvY2FsX2JoX2Rpc2FibGUodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX2xvY2Fs
X2JoX2Rpc2FibGVfaXAoKHsgX19sYWJlbF9fIF9faGVyZTsgX19oZXJlOiAodW5zaWduZWQgbG9u
ZykmJl9faGVyZTsgfSksICgyICogKDFVTCA8PCAoMCArIDgpKSkpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gdm9pZCBfbG9jYWxfYmhfZW5hYmxlKHZvaWQpOwoxNDQ3NDogZXh0ZXJu
IHZvaWQgX19sb2NhbF9iaF9lbmFibGVfaXAodW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgaW50
IGNudCk7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbG9jYWxfYmhfZW5hYmxlX2lwKHVuc2lnbmVkIGxv
bmcgaXApCjE0NDc0OiB7CjE0NDc0OiAgX19sb2NhbF9iaF9lbmFibGVfaXAoaXAsICgyICogKDFV
TCA8PCAoMCArIDgpKSkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxvY2FsX2JoX2Vu
YWJsZSh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIF9fbG9jYWxfYmhfZW5hYmxlX2lwKCh7IF9fbGFi
ZWxfXyBfX2hlcmU7IF9faGVyZTogKHVuc2lnbmVkIGxvbmcpJiZfX2hlcmU7IH0pLCAoMiAqICgx
VUwgPDwgKDAgKyA4KSkpKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNTkgIi4vaW5jbHVkZS9saW51eC9z
cGlubG9jay5oIiAyCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2dlbmVy
YXRlZC9hc20vbW1pb3diLmgiIDEKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL21t
aW93Yi5oIiAxCjE0NDc0OiAjIDIgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvYXNtL21t
aW93Yi5oIiAyCjE0NDc0OiAjIDYxICIuL2luY2x1ZGUvbGludXgvc3BpbmxvY2suaCIgMgoxNDQ3
NDogIyA4MyAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVk
ZS9saW51eC9zcGlubG9ja190eXBlcy5oIiAxCjE0NDc0OiAjIDE4ICIuL2luY2x1ZGUvbGludXgv
c3BpbmxvY2tfdHlwZXMuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2xvY2tkZXAuaCIg
MQoxNDQ3NDogIyAxMyAiLi9pbmNsdWRlL2xpbnV4L2xvY2tkZXAuaCIKMTQ0NzQ6IHN0cnVjdCB0
YXNrX3N0cnVjdDsKMTQ0NzQ6IHN0cnVjdCBsb2NrZGVwX21hcDsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBleHRlcm4gaW50IHByb3ZlX2xvY2tpbmc7CjE0NDc0OiBleHRlcm4gaW50IGxvY2tfc3Rh
dDsKMTQ0NzQ6ICMgNDEzICIuL2luY2x1ZGUvbGludXgvbG9ja2RlcC5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBs
b2NrZGVwX2luaXRfdGFzayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spCjE0NDc0OiB7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbG9ja2RlcF9vZmYodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsb2NrZGVwX29uKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgbG9ja2RlcF9zZXRfc2VsZnRlc3RfdGFzayhzdHJ1Y3QgdGFz
a19zdHJ1Y3QgKnRhc2spCjE0NDc0OiB7CjE0NDc0OiB9CjE0NDc0OiAjIDQ1OCAiLi9pbmNsdWRl
L2xpbnV4L2xvY2tkZXAuaCIKMTQ0NzQ6IHN0cnVjdCBsb2NrX2NsYXNzX2tleSB7IH07CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgbG9ja2RlcF9yZWdpc3Rlcl9rZXkoc3RydWN0IGxvY2tfY2xhc3Nfa2V5
ICprZXkpCjE0NDc0OiB7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbG9ja2RlcF91bnJl
Z2lzdGVyX2tleShzdHJ1Y3QgbG9ja19jbGFzc19rZXkgKmtleSkKMTQ0NzQ6IHsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGxvY2tkZXBfbWFw
IHsgfTsKMTQ0NzQ6ICMgNDg0ICIuL2luY2x1ZGUvbGludXgvbG9ja2RlcC5oIgoxNDQ3NDogc3Ry
dWN0IHBpbl9jb29raWUgeyB9OwoxNDQ3NDogIyA0OTQgIi4vaW5jbHVkZS9saW51eC9sb2NrZGVw
LmgiCjE0NDc0OiBlbnVtIHhobG9ja19jb250ZXh0X3QgewoxNDQ3NDogIFhITE9DS19IQVJELAox
NDQ3NDogIFhITE9DS19TT0ZULAoxNDQ3NDogIFhITE9DS19DVFhfTlIsCjE0NDc0OiB9OwoxNDQ3
NDogIyA1MDggIi4vaW5jbHVkZS9saW51eC9sb2NrZGVwLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxvY2tkZXBf
aW52YXJpYW50X3N0YXRlKGJvb2wgZm9yY2UpIHt9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxvY2tkZXBfZnJlZV90
YXNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykge30KMTQ0NzQ6ICMgNTcwICIuL2luY2x1ZGUv
bGludXgvbG9ja2RlcC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwcmludF9pcnF0cmFjZV9ldmVudHMoc3RydWN0
IHRhc2tfc3RydWN0ICpjdXJyKQoxNDQ3NDogewoxNDQ3NDogfQoxNDQ3NDogIyA2NjggIi4vaW5j
bHVkZS9saW51eC9sb2NrZGVwLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBsb2NrZGVwX3JjdV9zdXNw
aWNpb3VzKGNvbnN0IGNoYXIgKmZpbGUsIGNvbnN0IGludCBsaW5lLCBjb25zdCBjaGFyICpzKQox
NDQ3NDogewoxNDQ3NDogfQoxNDQ3NDogIyAxOSAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrX3R5
cGVzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgcmF3X3NwaW5sb2NrIHsKMTQ0
NzQ6ICBhcmNoX3NwaW5sb2NrX3QgcmF3X2xvY2s7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH0gcmF3X3NwaW5sb2NrX3Q7CjE0
NDc0OiAjIDYxICIuL2luY2x1ZGUvbGludXgvc3BpbmxvY2tfdHlwZXMuaCIKMTQ0NzQ6IHR5cGVk
ZWYgc3RydWN0IHNwaW5sb2NrIHsKMTQ0NzQ6ICB1bmlvbiB7CjE0NDc0OiAgIHN0cnVjdCByYXdf
c3BpbmxvY2sgcmxvY2s7CjE0NDc0OiAjIDcyICIuL2luY2x1ZGUvbGludXgvc3BpbmxvY2tfdHlw
ZXMuaCIKMTQ0NzQ6ICB9OwoxNDQ3NDogfSBzcGlubG9ja190OwoxNDQ3NDogIyA4MyAiLi9pbmNs
dWRlL2xpbnV4L3NwaW5sb2NrX3R5cGVzLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9y
d2xvY2tfdHlwZXMuaCIgMQoxNDQ3NDogIyAxMSAiLi9pbmNsdWRlL2xpbnV4L3J3bG9ja190eXBl
cy5oIgoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgewoxNDQ3NDogIGFyY2hfcndsb2NrX3QgcmF3X2xv
Y2s7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IH0gcndsb2NrX3Q7CjE0NDc0OiAjIDg0ICIuL2luY2x1ZGUvbGludXgvc3Bpbmxv
Y2tfdHlwZXMuaCIgMgoxNDQ3NDogIyA4NCAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgiIDIK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vc3BpbmxvY2suaCIgMQoxNDQ3NDogIyAxMCAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zcGlubG9jay5oIgoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L3BhcmF2aXJ0LmgiIDEKMTQ0NzQ6ICMgMTggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZp
cnQuaCIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9mcmFtZS5oIiAxCjE0NDc0
OiAjIDE5ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0LmgiIDIKMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdW5zaWduZWQgbG9uZyBsb25nIHBhcmF2aXJ0X3NjaGVkX2Nsb2NrKHZvaWQpCjE0NDc0OiB7
CjE0NDc0OiAgcmV0dXJuICh7IHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JldDsgdW5zaWduZWQgbG9u
ZyBfX2VkaSA9IF9fZWRpLCBfX2VzaSA9IF9fZXNpLCBfX2VkeCA9IF9fZWR4LCBfX2VjeCA9IF9f
ZWN4LCBfX2VheCA9IF9fZWF4OzsgKCh2b2lkKXB2X29wcy50aW1lLnNjaGVkX2Nsb2NrKTsgaWYg
KHNpemVvZih1bnNpZ25lZCBsb25nIGxvbmcpID4gc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKSB7IGFz
bSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2Fy
ZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIgIiAiIDk5OWJcblx0IiAiLnBvcHNl
Y3Rpb25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJdOyIgIlxuIiAiNzcyOlxuIiAiLnB1
c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgIiAiLmJhbGlnbiA4IiAiICIg
IlxuIiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5ieXRlICIgIiVjW3BhcmF2aXJ0X3R5
cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAiICAuc2hvcnQgIiAiJWNbcGFyYXZp
cnRfY2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIiIDogIj1EIiAoX19lZGkpLCAiPVMi
IChfX2VzaSksICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19lY3gpLCAiPWEiIChfX2VheCksICIrciIg
KGN1cnJlbnRfc3RhY2tfcG9pbnRlcikgOiBbcGFyYXZpcnRfdHlwZW51bV0gImkiICgoX19idWls
dGluX29mZnNldG9mKHN0cnVjdCBwYXJhdmlydF9wYXRjaF90ZW1wbGF0ZSwgdGltZS5zY2hlZF9j
bG9jaykgLyBzaXplb2Yodm9pZCAqKSkpLCBbcGFyYXZpcnRfb3BwdHJdICJpIiAoJihwdl9vcHMu
dGltZS5zY2hlZF9jbG9jaykpLCBbcGFyYXZpcnRfY2xvYmJlcl0gImkiICgoKDEgPDwgOSkgLSAx
KSkgOiAibWVtb3J5IiwgImNjIiAsICJyOCIsICJyOSIsICJyMTAiLCAicjExIik7IF9fcmV0ID0g
KHVuc2lnbmVkIGxvbmcgbG9uZykoKCgodTY0KV9fZWR4KSA8PCAzMikgfCBfX2VheCk7IH0gZWxz
ZSB7IGFzbSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIgIi5wdXNoc2VjdGlvbiAu
ZGlzY2FyZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIgIiAiIDk5OWJcblx0IiAi
LnBvcHNlY3Rpb25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJdOyIgIlxuIiAiNzcyOlxu
IiAiLnB1c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgIiAiLmJhbGlnbiA4
IiAiICIgIlxuIiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5ieXRlICIgIiVjW3BhcmF2
aXJ0X3R5cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAiICAuc2hvcnQgIiAiJWNb
cGFyYXZpcnRfY2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIiIDogIj1EIiAoX19lZGkp
LCAiPVMiIChfX2VzaSksICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19lY3gpLCAiPWEiIChfX2VheCks
ICIrciIgKGN1cnJlbnRfc3RhY2tfcG9pbnRlcikgOiBbcGFyYXZpcnRfdHlwZW51bV0gImkiICgo
X19idWlsdGluX29mZnNldG9mKHN0cnVjdCBwYXJhdmlydF9wYXRjaF90ZW1wbGF0ZSwgdGltZS5z
Y2hlZF9jbG9jaykgLyBzaXplb2Yodm9pZCAqKSkpLCBbcGFyYXZpcnRfb3BwdHJdICJpIiAoJihw
dl9vcHMudGltZS5zY2hlZF9jbG9jaykpLCBbcGFyYXZpcnRfY2xvYmJlcl0gImkiICgoKDEgPDwg
OSkgLSAxKSkgOiAibWVtb3J5IiwgImNjIiAsICJyOCIsICJyOSIsICJyMTAiLCAicjExIik7IF9f
cmV0ID0gKHVuc2lnbmVkIGxvbmcgbG9uZykoX19lYXggJiAoeyB1bnNpZ25lZCBsb25nIF9fbWFz
ayA9IH4wVUw7IHN3aXRjaCAoc2l6ZW9mKHVuc2lnbmVkIGxvbmcgbG9uZykpIHsgY2FzZSAxOiBf
X21hc2sgPSAweGZmVUw7IGJyZWFrOyBjYXNlIDI6IF9fbWFzayA9IDB4ZmZmZlVMOyBicmVhazsg
Y2FzZSA0OiBfX21hc2sgPSAweGZmZmZmZmZmVUw7IGJyZWFrOyBkZWZhdWx0OiBicmVhazsgfSBf
X21hc2s7IH0pKTsgfSBfX3JldDsgfSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBz
dGF0aWNfa2V5OwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBzdGF0aWNfa2V5IHBhcmF2aXJ0X3N0ZWFs
X2VuYWJsZWQ7CjE0NDc0OiBleHRlcm4gc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxf
cnFfZW5hYmxlZDsKMTQ0NzQ6IAoxNDQ3NDogX19hdHRyaWJ1dGVfXygoX19leHRlcm5hbGx5X3Zp
c2libGVfXykpIHZvaWQgX19uYXRpdmVfcXVldWVkX3NwaW5fdW5sb2NrKHN0cnVjdCBxc3Bpbmxv
Y2sgKmxvY2spOwoxNDQ3NDogYm9vbCBwdl9pc19uYXRpdmVfc3Bpbl91bmxvY2sodm9pZCk7CjE0
NDc0OiBfX2F0dHJpYnV0ZV9fKChfX2V4dGVybmFsbHlfdmlzaWJsZV9fKSkgYm9vbCBfX25hdGl2
ZV92Y3B1X2lzX3ByZWVtcHRlZChsb25nIGNwdSk7CjE0NDc0OiBib29sIHB2X2lzX25hdGl2ZV92
Y3B1X2lzX3ByZWVtcHRlZCh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTY0IHBhcmF2aXJ0X3N0ZWFs
X2Nsb2NrKGludCBjcHUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IHU2NCBfX3JldDsgdW5z
aWduZWQgbG9uZyBfX2VkaSA9IF9fZWRpLCBfX2VzaSA9IF9fZXNpLCBfX2VkeCA9IF9fZWR4LCBf
X2VjeCA9IF9fZWN4LCBfX2VheCA9IF9fZWF4OzsgKCh2b2lkKXB2X29wcy50aW1lLnN0ZWFsX2Ns
b2NrKTsgaWYgKHNpemVvZih1NjQpID4gc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKSB7IGFzbSB2b2xh
dGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZXRw
b2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIgIiAiIDk5OWJcblx0IiAiLnBvcHNlY3Rpb25c
blx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJdOyIgIlxuIiAiNzcyOlxuIiAiLnB1c2hzZWN0
aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgIiAiLmJhbGlnbiA4IiAiICIgIlxuIiAi
ICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5ieXRlICIgIiVjW3BhcmF2aXJ0X3R5cGVudW1d
IiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAiICAuc2hvcnQgIiAiJWNbcGFyYXZpcnRfY2xv
YmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIiIDogIj1EIiAoX19lZGkpLCAiPVMiIChfX2Vz
aSksICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19lY3gpLCAiPWEiIChfX2VheCksICIrciIgKGN1cnJl
bnRfc3RhY2tfcG9pbnRlcikgOiBbcGFyYXZpcnRfdHlwZW51bV0gImkiICgoX19idWlsdGluX29m
ZnNldG9mKHN0cnVjdCBwYXJhdmlydF9wYXRjaF90ZW1wbGF0ZSwgdGltZS5zdGVhbF9jbG9jaykg
LyBzaXplb2Yodm9pZCAqKSkpLCBbcGFyYXZpcnRfb3BwdHJdICJpIiAoJihwdl9vcHMudGltZS5z
dGVhbF9jbG9jaykpLCBbcGFyYXZpcnRfY2xvYmJlcl0gImkiICgoKDEgPDwgOSkgLSAxKSksICJE
IiAoKHVuc2lnbmVkIGxvbmcpKGNwdSkpIDogIm1lbW9yeSIsICJjYyIgLCAicjgiLCAicjkiLCAi
cjEwIiwgInIxMSIpOyBfX3JldCA9ICh1NjQpKCgoKHU2NClfX2VkeCkgPDwgMzIpIHwgX19lYXgp
OyB9IGVsc2UgeyBhc20gdm9sYXRpbGUoIiIgIjc3MTpcblx0IiAiOTk5OlxuXHQiICIucHVzaHNl
Y3Rpb24gLmRpc2NhcmQucmV0cG9saW5lX3NhZmVcblx0IiAiICIgIi5xdWFkIiAiICIgIiA5OTli
XG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgImNhbGwgKiVjW3BhcmF2aXJ0X29wcHRyXTsiICJcbiIg
Ijc3MjpcbiIgIi5wdXNoc2VjdGlvbiAucGFyYWluc3RydWN0aW9ucyxcImFcIlxuIiAiICIgIi5i
YWxpZ24gOCIgIiAiICJcbiIgIiAiICIucXVhZCIgIiAiICIgNzcxYlxuIiAiICAuYnl0ZSAiICIl
Y1twYXJhdmlydF90eXBlbnVtXSIgIlxuIiAiICAuYnl0ZSA3NzJiLTc3MWJcbiIgIiAgLnNob3J0
ICIgIiVjW3BhcmF2aXJ0X2Nsb2JiZXJdIiAiXG4iICIucG9wc2VjdGlvblxuIiAiIiA6ICI9RCIg
KF9fZWRpKSwgIj1TIiAoX19lc2kpLCAiPWQiIChfX2VkeCksICI9YyIgKF9fZWN4KSwgIj1hIiAo
X19lYXgpLCAiK3IiIChjdXJyZW50X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5cGVudW1d
ICJpIiAoKF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUs
IHRpbWUuc3RlYWxfY2xvY2spIC8gc2l6ZW9mKHZvaWQgKikpKSwgW3BhcmF2aXJ0X29wcHRyXSAi
aSIgKCYocHZfb3BzLnRpbWUuc3RlYWxfY2xvY2spKSwgW3BhcmF2aXJ0X2Nsb2JiZXJdICJpIiAo
KCgxIDw8IDkpIC0gMSkpLCAiRCIgKCh1bnNpZ25lZCBsb25nKShjcHUpKSA6ICJtZW1vcnkiLCAi
Y2MiICwgInI4IiwgInI5IiwgInIxMCIsICJyMTEiKTsgX19yZXQgPSAodTY0KShfX2VheCAmICh7
IHVuc2lnbmVkIGxvbmcgX19tYXNrID0gfjBVTDsgc3dpdGNoIChzaXplb2YodTY0KSkgeyBjYXNl
IDE6IF9fbWFzayA9IDB4ZmZVTDsgYnJlYWs7IGNhc2UgMjogX19tYXNrID0gMHhmZmZmVUw7IGJy
ZWFrOyBjYXNlIDQ6IF9fbWFzayA9IDB4ZmZmZmZmZmZVTDsgYnJlYWs7IGRlZmF1bHQ6IGJyZWFr
OyB9IF9fbWFzazsgfSkpOyB9IF9fcmV0OyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIHNsb3dfZG93bl9pbyh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHB2X29wcy5jcHUu
aW9fZGVsYXkoKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19mbHVzaF90bGIodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICAoeyB1bnNpZ25lZCBsb25nIF9fZWRpID0gX19lZGksIF9fZXNpID0gX19lc2ksIF9fZWR4ID0g
X19lZHgsIF9fZWN4ID0gX19lY3gsIF9fZWF4ID0gX19lYXg7OyAoKHZvaWQpcHZfb3BzLm1tdS5m
bHVzaF90bGJfdXNlcik7IGFzbSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIgIi5w
dXNoc2VjdGlvbiAuZGlzY2FyZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIgIiAi
IDk5OWJcblx0IiAiLnBvcHNlY3Rpb25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJdOyIg
IlxuIiAiNzcyOlxuIiAiLnB1c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIg
IiAiLmJhbGlnbiA4IiAiICIgIlxuIiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5ieXRl
ICIgIiVjW3BhcmF2aXJ0X3R5cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAiICAu
c2hvcnQgIiAiJWNbcGFyYXZpcnRfY2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIiIDog
Ij1EIiAoX19lZGkpLCAiPVMiIChfX2VzaSksICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19lY3gpLCAi
K3IiIChjdXJyZW50X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5cGVudW1dICJpIiAoKF9f
YnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUsIG1tdS5mbHVz
aF90bGJfdXNlcikgLyBzaXplb2Yodm9pZCAqKSkpLCBbcGFyYXZpcnRfb3BwdHJdICJpIiAoJihw
dl9vcHMubW11LmZsdXNoX3RsYl91c2VyKSksIFtwYXJhdmlydF9jbG9iYmVyXSAiaSIgKCgoMSA8
PCA5KSAtIDEpKSA6ICJtZW1vcnkiLCAiY2MiICwgInJheCIsICJyOCIsICJyOSIsICJyMTAiLCAi
cjExIik7IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fZmx1c2hfdGxiX2dsb2Jh
bCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogICh7IHVuc2lnbmVkIGxvbmcgX19lZGkgPSBfX2VkaSwg
X19lc2kgPSBfX2VzaSwgX19lZHggPSBfX2VkeCwgX19lY3ggPSBfX2VjeCwgX19lYXggPSBfX2Vh
eDs7ICgodm9pZClwdl9vcHMubW11LmZsdXNoX3RsYl9rZXJuZWwpOyBhc20gdm9sYXRpbGUoIiIg
Ijc3MTpcblx0IiAiOTk5OlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmV0cG9saW5lX3Nh
ZmVcblx0IiAiICIgIi5xdWFkIiAiICIgIiA5OTliXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgImNh
bGwgKiVjW3BhcmF2aXJ0X29wcHRyXTsiICJcbiIgIjc3MjpcbiIgIi5wdXNoc2VjdGlvbiAucGFy
YWluc3RydWN0aW9ucyxcImFcIlxuIiAiICIgIi5iYWxpZ24gOCIgIiAiICJcbiIgIiAiICIucXVh
ZCIgIiAiICIgNzcxYlxuIiAiICAuYnl0ZSAiICIlY1twYXJhdmlydF90eXBlbnVtXSIgIlxuIiAi
ICAuYnl0ZSA3NzJiLTc3MWJcbiIgIiAgLnNob3J0ICIgIiVjW3BhcmF2aXJ0X2Nsb2JiZXJdIiAi
XG4iICIucG9wc2VjdGlvblxuIiAiIiA6ICI9RCIgKF9fZWRpKSwgIj1TIiAoX19lc2kpLCAiPWQi
IChfX2VkeCksICI9YyIgKF9fZWN4KSwgIityIiAoY3VycmVudF9zdGFja19wb2ludGVyKSA6IFtw
YXJhdmlydF90eXBlbnVtXSAiaSIgKChfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IHBhcmF2aXJ0
X3BhdGNoX3RlbXBsYXRlLCBtbXUuZmx1c2hfdGxiX2tlcm5lbCkgLyBzaXplb2Yodm9pZCAqKSkp
LCBbcGFyYXZpcnRfb3BwdHJdICJpIiAoJihwdl9vcHMubW11LmZsdXNoX3RsYl9rZXJuZWwpKSwg
W3BhcmF2aXJ0X2Nsb2JiZXJdICJpIiAoKCgxIDw8IDkpIC0gMSkpIDogIm1lbW9yeSIsICJjYyIg
LCAicmF4IiwgInI4IiwgInI5IiwgInIxMCIsICJyMTEiKTsgfSk7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgX19mbHVzaF90bGJfb25lX3VzZXIodW5zaWduZWQgbG9uZyBhZGRyKQoxNDQ3
NDogewoxNDQ3NDogICh7IHVuc2lnbmVkIGxvbmcgX19lZGkgPSBfX2VkaSwgX19lc2kgPSBfX2Vz
aSwgX19lZHggPSBfX2VkeCwgX19lY3ggPSBfX2VjeCwgX19lYXggPSBfX2VheDs7ICgodm9pZClw
dl9vcHMubW11LmZsdXNoX3RsYl9vbmVfdXNlcik7IGFzbSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQi
ICI5OTk6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIg
IiAiLnF1YWQiICIgIiAiIDk5OWJcblx0IiAiLnBvcHNlY3Rpb25cblx0IiAiY2FsbCAqJWNbcGFy
YXZpcnRfb3BwdHJdOyIgIlxuIiAiNzcyOlxuIiAiLnB1c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rp
b25zLFwiYVwiXG4iICIgIiAiLmJhbGlnbiA4IiAiICIgIlxuIiAiICIgIi5xdWFkIiAiICIgIiA3
NzFiXG4iICIgIC5ieXRlICIgIiVjW3BhcmF2aXJ0X3R5cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3
MmItNzcxYlxuIiAiICAuc2hvcnQgIiAiJWNbcGFyYXZpcnRfY2xvYmJlcl0iICJcbiIgIi5wb3Bz
ZWN0aW9uXG4iICIiIDogIj1EIiAoX19lZGkpLCAiPVMiIChfX2VzaSksICI9ZCIgKF9fZWR4KSwg
Ij1jIiAoX19lY3gpLCAiK3IiIChjdXJyZW50X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5
cGVudW1dICJpIiAoKF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVt
cGxhdGUsIG1tdS5mbHVzaF90bGJfb25lX3VzZXIpIC8gc2l6ZW9mKHZvaWQgKikpKSwgW3BhcmF2
aXJ0X29wcHRyXSAiaSIgKCYocHZfb3BzLm1tdS5mbHVzaF90bGJfb25lX3VzZXIpKSwgW3BhcmF2
aXJ0X2Nsb2JiZXJdICJpIiAoKCgxIDw8IDkpIC0gMSkpLCAiRCIgKCh1bnNpZ25lZCBsb25nKShh
ZGRyKSkgOiAibWVtb3J5IiwgImNjIiAsICJyYXgiLCAicjgiLCAicjkiLCAicjEwIiwgInIxMSIp
OyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBmbHVzaF90bGJfb3RoZXJzKGNvbnN0
IHN0cnVjdCBjcHVtYXNrICpjcHVtYXNrLAoxNDQ3NDogICAgICAgICBjb25zdCBzdHJ1Y3QgZmx1
c2hfdGxiX2luZm8gKmluZm8pCjE0NDc0OiB7CjE0NDc0OiAgKHsgdW5zaWduZWQgbG9uZyBfX2Vk
aSA9IF9fZWRpLCBfX2VzaSA9IF9fZXNpLCBfX2VkeCA9IF9fZWR4LCBfX2VjeCA9IF9fZWN4LCBf
X2VheCA9IF9fZWF4OzsgKCh2b2lkKXB2X29wcy5tbXUuZmx1c2hfdGxiX290aGVycyk7IGFzbSB2
b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5y
ZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIgIiAiIDk5OWJcblx0IiAiLnBvcHNlY3Rp
b25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJdOyIgIlxuIiAiNzcyOlxuIiAiLnB1c2hz
ZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgIiAiLmJhbGlnbiA4IiAiICIgIlxu
IiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5ieXRlICIgIiVjW3BhcmF2aXJ0X3R5cGVu
dW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAiICAuc2hvcnQgIiAiJWNbcGFyYXZpcnRf
Y2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIiIDogIj1EIiAoX19lZGkpLCAiPVMiIChf
X2VzaSksICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19lY3gpLCAiK3IiIChjdXJyZW50X3N0YWNrX3Bv
aW50ZXIpIDogW3BhcmF2aXJ0X3R5cGVudW1dICJpIiAoKF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1
Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUsIG1tdS5mbHVzaF90bGJfb3RoZXJzKSAvIHNpemVv
Zih2b2lkICopKSksIFtwYXJhdmlydF9vcHB0cl0gImkiICgmKHB2X29wcy5tbXUuZmx1c2hfdGxi
X290aGVycykpLCBbcGFyYXZpcnRfY2xvYmJlcl0gImkiICgoKDEgPDwgOSkgLSAxKSksICJEIiAo
KHVuc2lnbmVkIGxvbmcpKGNwdW1hc2spKSwgIlMiICgodW5zaWduZWQgbG9uZykoaW5mbykpIDog
Im1lbW9yeSIsICJjYyIgLCAicmF4IiwgInI4IiwgInI5IiwgInIxMCIsICJyMTEiKTsgfSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcGFyYXZpcnRfdGxiX3JlbW92ZV90YWJsZShzdHJ1
Y3QgbW11X2dhdGhlciAqdGxiLCB2b2lkICp0YWJsZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoeyB1bnNp
Z25lZCBsb25nIF9fZWRpID0gX19lZGksIF9fZXNpID0gX19lc2ksIF9fZWR4ID0gX19lZHgsIF9f
ZWN4ID0gX19lY3gsIF9fZWF4ID0gX19lYXg7OyAoKHZvaWQpcHZfb3BzLm1tdS50bGJfcmVtb3Zl
X3RhYmxlKTsgYXNtIHZvbGF0aWxlKCIiICI3NzE6XG5cdCIgIjk5OTpcblx0IiAiLnB1c2hzZWN0
aW9uIC5kaXNjYXJkLnJldHBvbGluZV9zYWZlXG5cdCIgIiAiICIucXVhZCIgIiAiICIgOTk5Ylxu
XHQiICIucG9wc2VjdGlvblxuXHQiICJjYWxsIColY1twYXJhdmlydF9vcHB0cl07IiAiXG4iICI3
NzI6XG4iICIucHVzaHNlY3Rpb24gLnBhcmFpbnN0cnVjdGlvbnMsXCJhXCJcbiIgIiAiICIuYmFs
aWduIDgiICIgIiAiXG4iICIgIiAiLnF1YWQiICIgIiAiIDc3MWJcbiIgIiAgLmJ5dGUgIiAiJWNb
cGFyYXZpcnRfdHlwZW51bV0iICJcbiIgIiAgLmJ5dGUgNzcyYi03NzFiXG4iICIgIC5zaG9ydCAi
ICIlY1twYXJhdmlydF9jbG9iYmVyXSIgIlxuIiAiLnBvcHNlY3Rpb25cbiIgIiIgOiAiPUQiIChf
X2VkaSksICI9UyIgKF9fZXNpKSwgIj1kIiAoX19lZHgpLCAiPWMiIChfX2VjeCksICIrciIgKGN1
cnJlbnRfc3RhY2tfcG9pbnRlcikgOiBbcGFyYXZpcnRfdHlwZW51bV0gImkiICgoX19idWlsdGlu
X29mZnNldG9mKHN0cnVjdCBwYXJhdmlydF9wYXRjaF90ZW1wbGF0ZSwgbW11LnRsYl9yZW1vdmVf
dGFibGUpIC8gc2l6ZW9mKHZvaWQgKikpKSwgW3BhcmF2aXJ0X29wcHRyXSAiaSIgKCYocHZfb3Bz
Lm1tdS50bGJfcmVtb3ZlX3RhYmxlKSksIFtwYXJhdmlydF9jbG9iYmVyXSAiaSIgKCgoMSA8PCA5
KSAtIDEpKSwgIkQiICgodW5zaWduZWQgbG9uZykodGxiKSksICJTIiAoKHVuc2lnbmVkIGxvbmcp
KHRhYmxlKSkgOiAibWVtb3J5IiwgImNjIiAsICJyYXgiLCAicjgiLCAicjkiLCAicjEwIiwgInIx
MSIpOyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwYXJhdmlydF9hcmNoX2V4aXRf
bW1hcChzdHJ1Y3QgbW1fc3RydWN0ICptbSkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoeyB1bnNpZ25lZCBs
b25nIF9fZWRpID0gX19lZGksIF9fZXNpID0gX19lc2ksIF9fZWR4ID0gX19lZHgsIF9fZWN4ID0g
X19lY3gsIF9fZWF4ID0gX19lYXg7OyAoKHZvaWQpcHZfb3BzLm1tdS5leGl0X21tYXApOyBhc20g
dm9sYXRpbGUoIiIgIjc3MTpcblx0IiAiOTk5OlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQu
cmV0cG9saW5lX3NhZmVcblx0IiAiICIgIi5xdWFkIiAiICIgIiA5OTliXG5cdCIgIi5wb3BzZWN0
aW9uXG5cdCIgImNhbGwgKiVjW3BhcmF2aXJ0X29wcHRyXTsiICJcbiIgIjc3MjpcbiIgIi5wdXNo
c2VjdGlvbiAucGFyYWluc3RydWN0aW9ucyxcImFcIlxuIiAiICIgIi5iYWxpZ24gOCIgIiAiICJc
biIgIiAiICIucXVhZCIgIiAiICIgNzcxYlxuIiAiICAuYnl0ZSAiICIlY1twYXJhdmlydF90eXBl
bnVtXSIgIlxuIiAiICAuYnl0ZSA3NzJiLTc3MWJcbiIgIiAgLnNob3J0ICIgIiVjW3BhcmF2aXJ0
X2Nsb2JiZXJdIiAiXG4iICIucG9wc2VjdGlvblxuIiAiIiA6ICI9RCIgKF9fZWRpKSwgIj1TIiAo
X19lc2kpLCAiPWQiIChfX2VkeCksICI9YyIgKF9fZWN4KSwgIityIiAoY3VycmVudF9zdGFja19w
b2ludGVyKSA6IFtwYXJhdmlydF90eXBlbnVtXSAiaSIgKChfX2J1aWx0aW5fb2Zmc2V0b2Yoc3Ry
dWN0IHBhcmF2aXJ0X3BhdGNoX3RlbXBsYXRlLCBtbXUuZXhpdF9tbWFwKSAvIHNpemVvZih2b2lk
ICopKSksIFtwYXJhdmlydF9vcHB0cl0gImkiICgmKHB2X29wcy5tbXUuZXhpdF9tbWFwKSksIFtw
YXJhdmlydF9jbG9iYmVyXSAiaSIgKCgoMSA8PCA5KSAtIDEpKSwgIkQiICgodW5zaWduZWQgbG9u
ZykobW0pKSA6ICJtZW1vcnkiLCAiY2MiICwgInJheCIsICJyOCIsICJyOSIsICJyMTAiLCAicjEx
Iik7IH0pOwoxNDQ3NDogfQoxNDQ3NDogIyA2NDIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFy
YXZpcnQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBw
dl9xdWV1ZWRfc3Bpbl9sb2NrX3Nsb3dwYXRoKHN0cnVjdCBxc3BpbmxvY2sgKmxvY2ssCjE0NDc0
OiAgICAgICAgdTMyIHZhbCkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoeyB1bnNpZ25lZCBsb25nIF9fZWRp
ID0gX19lZGksIF9fZXNpID0gX19lc2ksIF9fZWR4ID0gX19lZHgsIF9fZWN4ID0gX19lY3gsIF9f
ZWF4ID0gX19lYXg7OyAoKHZvaWQpcHZfb3BzLmxvY2sucXVldWVkX3NwaW5fbG9ja19zbG93cGF0
aCk7IGFzbSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIgIi5wdXNoc2VjdGlvbiAu
ZGlzY2FyZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIgIiAiIDk5OWJcblx0IiAi
LnBvcHNlY3Rpb25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJdOyIgIlxuIiAiNzcyOlxu
IiAiLnB1c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgIiAiLmJhbGlnbiA4
IiAiICIgIlxuIiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5ieXRlICIgIiVjW3BhcmF2
aXJ0X3R5cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAiICAuc2hvcnQgIiAiJWNb
cGFyYXZpcnRfY2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIiIDogIj1EIiAoX19lZGkp
LCAiPVMiIChfX2VzaSksICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19lY3gpLCAiK3IiIChjdXJyZW50
X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5cGVudW1dICJpIiAoKF9fYnVpbHRpbl9vZmZz
ZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUsIGxvY2sucXVldWVkX3NwaW5fbG9j
a19zbG93cGF0aCkgLyBzaXplb2Yodm9pZCAqKSkpLCBbcGFyYXZpcnRfb3BwdHJdICJpIiAoJihw
dl9vcHMubG9jay5xdWV1ZWRfc3Bpbl9sb2NrX3Nsb3dwYXRoKSksIFtwYXJhdmlydF9jbG9iYmVy
XSAiaSIgKCgoMSA8PCA5KSAtIDEpKSwgIkQiICgodW5zaWduZWQgbG9uZykobG9jaykpLCAiUyIg
KCh1bnNpZ25lZCBsb25nKSh2YWwpKSA6ICJtZW1vcnkiLCAiY2MiICwgInJheCIsICJyOCIsICJy
OSIsICJyMTAiLCAicjExIik7IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0
ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgcHZfcXVldWVkX3NwaW5fdW5sb2NrKHN0cnVj
dCBxc3BpbmxvY2sgKmxvY2spCjE0NDc0OiB7CjE0NDc0OiAgKHsgdW5zaWduZWQgbG9uZyBfX2Vk
aSA9IF9fZWRpLCBfX2VzaSA9IF9fZXNpLCBfX2VkeCA9IF9fZWR4LCBfX2VjeCA9IF9fZWN4LCBf
X2VheCA9IF9fZWF4OzsgKCh2b2lkKXB2X29wcy5sb2NrLnF1ZXVlZF9zcGluX3VubG9jay5mdW5j
KTsgYXNtIHZvbGF0aWxlKCIiICI3NzE6XG5cdCIgIjk5OTpcblx0IiAiLnB1c2hzZWN0aW9uIC5k
aXNjYXJkLnJldHBvbGluZV9zYWZlXG5cdCIgIiAiICIucXVhZCIgIiAiICIgOTk5YlxuXHQiICIu
cG9wc2VjdGlvblxuXHQiICJjYWxsIColY1twYXJhdmlydF9vcHB0cl07IiAiXG4iICI3NzI6XG4i
ICIucHVzaHNlY3Rpb24gLnBhcmFpbnN0cnVjdGlvbnMsXCJhXCJcbiIgIiAiICIuYmFsaWduIDgi
ICIgIiAiXG4iICIgIiAiLnF1YWQiICIgIiAiIDc3MWJcbiIgIiAgLmJ5dGUgIiAiJWNbcGFyYXZp
cnRfdHlwZW51bV0iICJcbiIgIiAgLmJ5dGUgNzcyYi03NzFiXG4iICIgIC5zaG9ydCAiICIlY1tw
YXJhdmlydF9jbG9iYmVyXSIgIlxuIiAiLnBvcHNlY3Rpb25cbiIgIiIgOiAiPWEiIChfX2VheCks
ICIrciIgKGN1cnJlbnRfc3RhY2tfcG9pbnRlcikgOiBbcGFyYXZpcnRfdHlwZW51bV0gImkiICgo
X19idWlsdGluX29mZnNldG9mKHN0cnVjdCBwYXJhdmlydF9wYXRjaF90ZW1wbGF0ZSwgbG9jay5x
dWV1ZWRfc3Bpbl91bmxvY2suZnVuYykgLyBzaXplb2Yodm9pZCAqKSkpLCBbcGFyYXZpcnRfb3Bw
dHJdICJpIiAoJihwdl9vcHMubG9jay5xdWV1ZWRfc3Bpbl91bmxvY2suZnVuYykpLCBbcGFyYXZp
cnRfY2xvYmJlcl0gImkiICgoKDEgPDwgMCkpKSwgIkQiICgodW5zaWduZWQgbG9uZykobG9jaykp
IDogIm1lbW9yeSIsICJjYyIgKTsgfSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmli
dXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBwdl93YWl0KHU4ICpwdHIsIHU4IHZhbCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICAoeyB1bnNpZ25lZCBsb25nIF9fZWRpID0gX19lZGksIF9fZXNpID0g
X19lc2ksIF9fZWR4ID0gX19lZHgsIF9fZWN4ID0gX19lY3gsIF9fZWF4ID0gX19lYXg7OyAoKHZv
aWQpcHZfb3BzLmxvY2sud2FpdCk7IGFzbSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5c
dCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQi
ICIgIiAiIDk5OWJcblx0IiAiLnBvcHNlY3Rpb25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3Bw
dHJdOyIgIlxuIiAiNzcyOlxuIiAiLnB1c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwi
XG4iICIgIiAiLmJhbGlnbiA4IiAiICIgIlxuIiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIg
IC5ieXRlICIgIiVjW3BhcmF2aXJ0X3R5cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxu
IiAiICAuc2hvcnQgIiAiJWNbcGFyYXZpcnRfY2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4i
ICIiIDogIj1EIiAoX19lZGkpLCAiPVMiIChfX2VzaSksICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19l
Y3gpLCAiK3IiIChjdXJyZW50X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5cGVudW1dICJp
IiAoKF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUsIGxv
Y2sud2FpdCkgLyBzaXplb2Yodm9pZCAqKSkpLCBbcGFyYXZpcnRfb3BwdHJdICJpIiAoJihwdl9v
cHMubG9jay53YWl0KSksIFtwYXJhdmlydF9jbG9iYmVyXSAiaSIgKCgoMSA8PCA5KSAtIDEpKSwg
IkQiICgodW5zaWduZWQgbG9uZykocHRyKSksICJTIiAoKHVuc2lnbmVkIGxvbmcpKHZhbCkpIDog
Im1lbW9yeSIsICJjYyIgLCAicmF4IiwgInI4IiwgInI5IiwgInIxMCIsICJyMTEiKTsgfSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
dm9pZCBwdl9raWNrKGludCBjcHUpCjE0NDc0OiB7CjE0NDc0OiAgKHsgdW5zaWduZWQgbG9uZyBf
X2VkaSA9IF9fZWRpLCBfX2VzaSA9IF9fZXNpLCBfX2VkeCA9IF9fZWR4LCBfX2VjeCA9IF9fZWN4
LCBfX2VheCA9IF9fZWF4OzsgKCh2b2lkKXB2X29wcy5sb2NrLmtpY2spOyBhc20gdm9sYXRpbGUo
IiIgIjc3MTpcblx0IiAiOTk5OlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmV0cG9saW5l
X3NhZmVcblx0IiAiICIgIi5xdWFkIiAiICIgIiA5OTliXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIg
ImNhbGwgKiVjW3BhcmF2aXJ0X29wcHRyXTsiICJcbiIgIjc3MjpcbiIgIi5wdXNoc2VjdGlvbiAu
cGFyYWluc3RydWN0aW9ucyxcImFcIlxuIiAiICIgIi5iYWxpZ24gOCIgIiAiICJcbiIgIiAiICIu
cXVhZCIgIiAiICIgNzcxYlxuIiAiICAuYnl0ZSAiICIlY1twYXJhdmlydF90eXBlbnVtXSIgIlxu
IiAiICAuYnl0ZSA3NzJiLTc3MWJcbiIgIiAgLnNob3J0ICIgIiVjW3BhcmF2aXJ0X2Nsb2JiZXJd
IiAiXG4iICIucG9wc2VjdGlvblxuIiAiIiA6ICI9RCIgKF9fZWRpKSwgIj1TIiAoX19lc2kpLCAi
PWQiIChfX2VkeCksICI9YyIgKF9fZWN4KSwgIityIiAoY3VycmVudF9zdGFja19wb2ludGVyKSA6
IFtwYXJhdmlydF90eXBlbnVtXSAiaSIgKChfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IHBhcmF2
aXJ0X3BhdGNoX3RlbXBsYXRlLCBsb2NrLmtpY2spIC8gc2l6ZW9mKHZvaWQgKikpKSwgW3BhcmF2
aXJ0X29wcHRyXSAiaSIgKCYocHZfb3BzLmxvY2sua2ljaykpLCBbcGFyYXZpcnRfY2xvYmJlcl0g
ImkiICgoKDEgPDwgOSkgLSAxKSksICJEIiAoKHVuc2lnbmVkIGxvbmcpKGNwdSkpIDogIm1lbW9y
eSIsICJjYyIgLCAicmF4IiwgInI4IiwgInI5IiwgInIxMCIsICJyMTEiKTsgfSk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9vbCBw
dl92Y3B1X2lzX3ByZWVtcHRlZChsb25nIGNwdSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHsg
Ym9vbCBfX3JldDsgdW5zaWduZWQgbG9uZyBfX2VkaSA9IF9fZWRpLCBfX2VzaSA9IF9fZXNpLCBf
X2VkeCA9IF9fZWR4LCBfX2VjeCA9IF9fZWN4LCBfX2VheCA9IF9fZWF4OzsgKCh2b2lkKXB2X29w
cy5sb2NrLnZjcHVfaXNfcHJlZW1wdGVkLmZ1bmMpOyBpZiAoc2l6ZW9mKGJvb2wpID4gc2l6ZW9m
KHVuc2lnbmVkIGxvbmcpKSB7IGFzbSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIg
Ii5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIg
IiAiIDk5OWJcblx0IiAiLnBvcHNlY3Rpb25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJd
OyIgIlxuIiAiNzcyOlxuIiAiLnB1c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4i
ICIgIiAiLmJhbGlnbiA4IiAiICIgIlxuIiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5i
eXRlICIgIiVjW3BhcmF2aXJ0X3R5cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAi
ICAuc2hvcnQgIiAiJWNbcGFyYXZpcnRfY2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIi
IDogIj1hIiAoX19lYXgpLCAiK3IiIChjdXJyZW50X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0
X3R5cGVudW1dICJpIiAoKF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hf
dGVtcGxhdGUsIGxvY2sudmNwdV9pc19wcmVlbXB0ZWQuZnVuYykgLyBzaXplb2Yodm9pZCAqKSkp
LCBbcGFyYXZpcnRfb3BwdHJdICJpIiAoJihwdl9vcHMubG9jay52Y3B1X2lzX3ByZWVtcHRlZC5m
dW5jKSksIFtwYXJhdmlydF9jbG9iYmVyXSAiaSIgKCgoMSA8PCAwKSkpLCAiRCIgKCh1bnNpZ25l
ZCBsb25nKShjcHUpKSA6ICJtZW1vcnkiLCAiY2MiICk7IF9fcmV0ID0gKGJvb2wpKCgoKHU2NClf
X2VkeCkgPDwgMzIpIHwgX19lYXgpOyB9IGVsc2UgeyBhc20gdm9sYXRpbGUoIiIgIjc3MTpcblx0
IiAiOTk5OlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmV0cG9saW5lX3NhZmVcblx0IiAi
ICIgIi5xdWFkIiAiICIgIiA5OTliXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgImNhbGwgKiVjW3Bh
cmF2aXJ0X29wcHRyXTsiICJcbiIgIjc3MjpcbiIgIi5wdXNoc2VjdGlvbiAucGFyYWluc3RydWN0
aW9ucyxcImFcIlxuIiAiICIgIi5iYWxpZ24gOCIgIiAiICJcbiIgIiAiICIucXVhZCIgIiAiICIg
NzcxYlxuIiAiICAuYnl0ZSAiICIlY1twYXJhdmlydF90eXBlbnVtXSIgIlxuIiAiICAuYnl0ZSA3
NzJiLTc3MWJcbiIgIiAgLnNob3J0ICIgIiVjW3BhcmF2aXJ0X2Nsb2JiZXJdIiAiXG4iICIucG9w
c2VjdGlvblxuIiAiIiA6ICI9YSIgKF9fZWF4KSwgIityIiAoY3VycmVudF9zdGFja19wb2ludGVy
KSA6IFtwYXJhdmlydF90eXBlbnVtXSAiaSIgKChfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IHBh
cmF2aXJ0X3BhdGNoX3RlbXBsYXRlLCBsb2NrLnZjcHVfaXNfcHJlZW1wdGVkLmZ1bmMpIC8gc2l6
ZW9mKHZvaWQgKikpKSwgW3BhcmF2aXJ0X29wcHRyXSAiaSIgKCYocHZfb3BzLmxvY2sudmNwdV9p
c19wcmVlbXB0ZWQuZnVuYykpLCBbcGFyYXZpcnRfY2xvYmJlcl0gImkiICgoKDEgPDwgMCkpKSwg
IkQiICgodW5zaWduZWQgbG9uZykoY3B1KSkgOiAibWVtb3J5IiwgImNjIiApOyBfX3JldCA9IChi
b29sKShfX2VheCAmICh7IHVuc2lnbmVkIGxvbmcgX19tYXNrID0gfjBVTDsgc3dpdGNoIChzaXpl
b2YoYm9vbCkpIHsgY2FzZSAxOiBfX21hc2sgPSAweGZmVUw7IGJyZWFrOyBjYXNlIDI6IF9fbWFz
ayA9IDB4ZmZmZlVMOyBicmVhazsgY2FzZSA0OiBfX21hc2sgPSAweGZmZmZmZmZmVUw7IGJyZWFr
OyBkZWZhdWx0OiBicmVhazsgfSBfX21hc2s7IH0pKTsgfSBfX3JldDsgfSk7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHZvaWQgX19yYXdfY2FsbGVlX3NhdmVfX19uYXRpdmVfcXVldWVkX3NwaW5f
dW5sb2NrKHN0cnVjdCBxc3BpbmxvY2sgKmxvY2spOwoxNDQ3NDogYm9vbCBfX3Jhd19jYWxsZWVf
c2F2ZV9fX25hdGl2ZV92Y3B1X2lzX3ByZWVtcHRlZChsb25nIGNwdSk7CjE0NDc0OiAjIDc5OCAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydC5oIgoxNDQ3NDogZXh0ZXJuIHZvaWQgZGVm
YXVsdF9iYW5uZXIodm9pZCk7CjE0NDc0OiAjIDkzOSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w
YXJhdmlydC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwYXJhdmlydF9hcmNoX2R1cF9tbWFwKHN0cnVjdCBtbV9z
dHJ1Y3QgKm9sZG1tLAoxNDQ3NDogICAgICAgIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQoxNDQ3NDog
ewoxNDQ3NDogfQoxNDQ3NDogIyAxMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zcGlubG9jay5o
IiAyCjE0NDc0OiAjIDI3ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NwaW5sb2NrLmgiCjE0NDc0
OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcXNwaW5sb2NrLmgiIDEKMTQ0NzQ6ICMgMTQg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vcXNwaW5sb2NrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIHUzMiBxdWV1ZWRfZmV0Y2hfc2V0X3BlbmRpbmdfYWNxdWly
ZShzdHJ1Y3QgcXNwaW5sb2NrICpsb2NrKQoxNDQ3NDogewoxNDQ3NDogIHUzMiB2YWw7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdmFsID0g
KHsgYm9vbCBjOyBhc20gdm9sYXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxu
IiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToi
ICJcblx0bG9jazsgIiAiYnRzbCIgIiAlW3ZhbF0sICIgIiVbdmFyXSIgIlxuXHQvKiBvdXRwdXQg
Y29uZGl0aW9uIGNvZGUgIiAiYyIgIiovXG4iIDogW3Zhcl0gIittIiAobG9jay0+dmFsLmNvdW50
ZXIpLCAiPUBjYyIgImMiIChjKSA6IFt2YWxdICJJIiAoKDAgKyA4KSkgOiAibWVtb3J5Iik7IGM7
IH0pCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAoMVUgPDwgKDAg
KyA4KSk7CjE0NDc0OiAgdmFsIHw9IGF0b21pY19yZWFkKCZsb2NrLT52YWwpICYgfigoKDFVIDw8
IDgpIC0gMSkgPDwgKDAgKyA4KSk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gdmFsOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIG5hdGl2ZV9xdWV1ZWRfc3Bpbl9s
b2NrX3Nsb3dwYXRoKHN0cnVjdCBxc3BpbmxvY2sgKmxvY2ssIHUzMiB2YWwpOwoxNDQ3NDogZXh0
ZXJuIHZvaWQgX19wdl9pbml0X2xvY2tfaGFzaCh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIF9f
cHZfcXVldWVkX3NwaW5fbG9ja19zbG93cGF0aChzdHJ1Y3QgcXNwaW5sb2NrICpsb2NrLCB1MzIg
dmFsKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIF9fcmF3X2NhbGxlZV9zYXZlX19fcHZfcXVldWVkX3Nw
aW5fdW5sb2NrKHN0cnVjdCBxc3BpbmxvY2sgKmxvY2spOwoxNDQ3NDogIyA0MyAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9xc3BpbmxvY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbmF0aXZlX3F1ZXVlZF9zcGlu
X3VubG9jayhzdHJ1Y3QgcXNwaW5sb2NrICpsb2NrKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgZG8g
eyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF80NSh2b2lkKSBfX2F0dHJpYnV0ZV9f
KChfX2Vycm9yX18oIk5lZWQgbmF0aXZlIHdvcmQgc2l6ZWQgc3RvcmVzL2xvYWRzIGZvciBhdG9t
aWNpdHkuIikpKTsgaWYgKCEoKHNpemVvZigqJmxvY2stPmxvY2tlZCkgPT0gc2l6ZW9mKGNoYXIp
IHx8IHNpemVvZigqJmxvY2stPmxvY2tlZCkgPT0gc2l6ZW9mKHNob3J0KSB8fCBzaXplb2YoKiZs
b2NrLT5sb2NrZWQpID09IHNpemVvZihpbnQpIHx8IHNpemVvZigqJmxvY2stPmxvY2tlZCkgPT0g
c2l6ZW9mKGxvbmcpKSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzQ1KCk7IH0gd2hpbGUgKDApOyBf
X2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyAoeyB1bmlvbiB7IHR5cGVvZigq
JmxvY2stPmxvY2tlZCkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0
eXBlb2YoKiZsb2NrLT5sb2NrZWQpKSAoMCkgfTsgX193cml0ZV9vbmNlX3NpemUoJigqJmxvY2st
PmxvY2tlZCksIF9fdS5fX2MsIHNpemVvZigqJmxvY2stPmxvY2tlZCkpOyBfX3UuX192YWw7IH0p
OyB9IHdoaWxlICgwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBxdWV1ZWRfc3Bpbl9s
b2NrX3Nsb3dwYXRoKHN0cnVjdCBxc3BpbmxvY2sgKmxvY2ssIHUzMiB2YWwpCjE0NDc0OiB7CjE0
NDc0OiAgcHZfcXVldWVkX3NwaW5fbG9ja19zbG93cGF0aChsb2NrLCB2YWwpOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIHF1ZXVlZF9zcGluX3VubG9jayhzdHJ1Y3QgcXNwaW5sb2NrICps
b2NrKQoxNDQ3NDogewoxNDQ3NDogIHB2X3F1ZXVlZF9zcGluX3VubG9jayhsb2NrKTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHZjcHVfaXNfcHJlZW1wdGVkKGxvbmcgY3B1
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBwdl92Y3B1X2lzX3ByZWVtcHRlZChjcHUpOwoxNDQ3
NDogfQoxNDQ3NDogIyA3MyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9xc3BpbmxvY2suaCIKMTQ0
NzQ6IGV4dGVybiBzdHJ1Y3Qgc3RhdGljX2tleV90cnVlIHZpcnRfc3Bpbl9sb2NrX2tleTsKMTQ0
NzQ6IAoxNDQ3NDogdm9pZCBuYXRpdmVfcHZfbG9ja19pbml0KHZvaWQpIF9fYXR0cmlidXRlX18o
KF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIDsK
MTQ0NzQ6ICMgODYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcXNwaW5sb2NrLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBi
b29sIHZpcnRfc3Bpbl9sb2NrKHN0cnVjdCBxc3BpbmxvY2sgKmxvY2spCjE0NDc0OiB7CjE0NDc0
OiAgaWYgKCEoeyBib29sIGJyYW5jaDsgaWYgKF9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3Ao
dHlwZW9mKComdmlydF9zcGluX2xvY2tfa2V5KSwgc3RydWN0IHN0YXRpY19rZXlfdHJ1ZSkpIGJy
YW5jaCA9ICFhcmNoX3N0YXRpY19icmFuY2goJigmdmlydF9zcGluX2xvY2tfa2V5KS0+a2V5LCB0
cnVlKTsgZWxzZSBpZiAoX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0eXBlb2YoKiZ2aXJ0
X3NwaW5fbG9ja19rZXkpLCBzdHJ1Y3Qgc3RhdGljX2tleV9mYWxzZSkpIGJyYW5jaCA9ICFhcmNo
X3N0YXRpY19icmFuY2hfanVtcCgmKCZ2aXJ0X3NwaW5fbG9ja19rZXkpLT5rZXksIHRydWUpOyBl
bHNlIGJyYW5jaCA9IF9fX193cm9uZ19icmFuY2hfZXJyb3IoKTsgX19idWlsdGluX2V4cGVjdCgh
IShicmFuY2gpLCAxKTsgfSkpCjE0NDc0OiAgIHJldHVybiBmYWxzZTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGRvIHsKMTQ0
NzQ6ICAgd2hpbGUgKGF0b21pY19yZWFkKCZsb2NrLT52YWwpICE9IDApCjE0NDc0OiAgICBjcHVf
cmVsYXgoKTsKMTQ0NzQ6ICB9IHdoaWxlIChhdG9taWNfY21weGNoZygmbG9jay0+dmFsLCAwLCAo
MVUgPDwgMCkpICE9IDApOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIHRydWU7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEg
Ii4vaW5jbHVkZS9hc20tZ2VuZXJpYy9xc3BpbmxvY2suaCIgMQoxNDQ3NDogIyAyMCAiLi9pbmNs
dWRlL2FzbS1nZW5lcmljL3FzcGlubG9jay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdh
eXNfaW5saW5lX18pKSBpbnQgcXVldWVkX3NwaW5faXNfbG9ja2VkKHN0cnVjdCBxc3BpbmxvY2sg
KmxvY2spCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBy
ZXR1cm4gYXRvbWljX3JlYWQoJmxvY2stPnZhbCk7CjE0NDc0OiB9CjE0NDc0OiAjIDM5ICIuL2lu
Y2x1ZGUvYXNtLWdlbmVyaWMvcXNwaW5sb2NrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIGludCBxdWV1ZWRfc3Bpbl92YWx1ZV91bmxvY2tlZChzdHJ1Y3QgcXNw
aW5sb2NrIGxvY2spCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICFhdG9taWNfcmVhZCgmbG9jay52
YWwpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgcXVldWVk
X3NwaW5faXNfY29udGVuZGVkKHN0cnVjdCBxc3BpbmxvY2sgKmxvY2spCjE0NDc0OiB7CjE0NDc0
OiAgcmV0dXJuIGF0b21pY19yZWFkKCZsb2NrLT52YWwpICYgfigoKDFVIDw8IDgpIC0gMSkgPDwg
MCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgcXVldWVkX3NwaW5fdHJ5
bG9jayhzdHJ1Y3QgcXNwaW5sb2NrICpsb2NrKQoxNDQ3NDogewoxNDQ3NDogIHUzMiB2YWwgPSBh
dG9taWNfcmVhZCgmbG9jay0+dmFsKTsKMTQ0NzQ6IAoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhw
ZWN0KCEhKHZhbCksIDApKQoxNDQ3NDogICByZXR1cm4gMDsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVy
biBfX2J1aWx0aW5fZXhwZWN0KCEhKGF0b21pY190cnlfY21weGNoZygmbG9jay0+dmFsLCAmdmFs
LCAoMVUgPDwgMCkpKSwgMSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIHF1
ZXVlZF9zcGluX2xvY2tfc2xvd3BhdGgoc3RydWN0IHFzcGlubG9jayAqbG9jaywgdTMyIHZhbCk7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIHF1ZXVlZF9zcGluX2xvY2soc3RydWN0IHFz
cGlubG9jayAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICB1MzIgdmFsID0gMDsKMTQ0NzQ6IAoxNDQ3
NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKGF0b21pY190cnlfY21weGNoZygmbG9jay0+dmFs
LCAmdmFsLCAoMVUgPDwgMCkpKSwgMSkpCjE0NDc0OiAgIHJldHVybjsKMTQ0NzQ6IAoxNDQ3NDog
IHF1ZXVlZF9zcGluX2xvY2tfc2xvd3BhdGgobG9jaywgdmFsKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMg
MTExICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3FzcGlubG9jay5oIiAyCjE0NDc0OiAjIDI4ICIu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL3NwaW5sb2NrLmgiIDIKMTQ0NzQ6ICMgNDMgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vc3BpbmxvY2suaCIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9xcndsb2NrLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9xcndsb2NrLmgiIDEKMTQ0NzQ6ICMg
MzAgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9xcndsb2NrLmgiCjE0NDc0OiBleHRlcm4gdm9pZCBx
dWV1ZWRfcmVhZF9sb2NrX3Nsb3dwYXRoKHN0cnVjdCBxcndsb2NrICpsb2NrKTsKMTQ0NzQ6IGV4
dGVybiB2b2lkIHF1ZXVlZF93cml0ZV9sb2NrX3Nsb3dwYXRoKHN0cnVjdCBxcndsb2NrICpsb2Nr
KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBxdWV1ZWRfcmVhZF90cnlsb2NrKHN0cnVjdCBxcndsb2NrICpsb2NrKQoxNDQ3NDogewox
NDQ3NDogIHUzMiBjbnRzOwoxNDQ3NDogCjE0NDc0OiAgY250cyA9IGF0b21pY19yZWFkKCZsb2Nr
LT5jbnRzKTsKMTQ0NzQ6ICBpZiAoX19idWlsdGluX2V4cGVjdCghISghKGNudHMgJiAweDFmZikp
LCAxKSkgewoxNDQ3NDogICBjbnRzID0gKHUzMilhdG9taWNfYWRkX3JldHVybigoMVUgPDwgOSks
ICZsb2NrLT5jbnRzKTsKMTQ0NzQ6ICAgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoIShjbnRzICYg
MHgxZmYpKSwgMSkpCjE0NDc0OiAgICByZXR1cm4gMTsKMTQ0NzQ6ICAgYXRvbWljX3N1YigoMVUg
PDwgOSksICZsb2NrLT5jbnRzKTsKMTQ0NzQ6ICB9CjE0NDc0OiAgcmV0dXJuIDA7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQgcXVldWVkX3dyaXRlX3RyeWxvY2soc3RydWN0IHFyd2xvY2sgKmxvY2spCjE0NDc0OiB7CjE0
NDc0OiAgdTMyIGNudHM7CjE0NDc0OiAKMTQ0NzQ6ICBjbnRzID0gYXRvbWljX3JlYWQoJmxvY2st
PmNudHMpOwoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKGNudHMpLCAwKSkKMTQ0NzQ6
ICAgcmV0dXJuIDA7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gX19idWlsdGluX2V4cGVjdCghIShh
dG9taWNfdHJ5X2NtcHhjaGcoJmxvY2stPmNudHMsICZjbnRzLCAweDBmZikpLCAxKQoxNDQ3NDog
ICAgICAgICAgICAgICAgIDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBxdWV1ZWRfcmVhZF9sb2NrKHN0cnVjdCBxcndsb2NrICpsb2NrKQoxNDQ3
NDogewoxNDQ3NDogIHUzMiBjbnRzOwoxNDQ3NDogCjE0NDc0OiAgY250cyA9IGF0b21pY19hZGRf
cmV0dXJuKCgxVSA8PCA5KSwgJmxvY2stPmNudHMpOwoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhw
ZWN0KCEhKCEoY250cyAmIDB4MWZmKSksIDEpKQoxNDQ3NDogICByZXR1cm47CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogIHF1ZXVlZF9yZWFkX2xvY2tfc2xvd3BhdGgobG9jayk7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBxdWV1ZWRf
d3JpdGVfbG9jayhzdHJ1Y3QgcXJ3bG9jayAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICB1MzIgY250
cyA9IDA7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoX19idWlsdGluX2V4cGVjdCghIShhdG9taWNfdHJ5
X2NtcHhjaGcoJmxvY2stPmNudHMsICZjbnRzLCAweDBmZikpLCAxKSkKMTQ0NzQ6ICAgcmV0dXJu
OwoxNDQ3NDogCjE0NDc0OiAgcXVldWVkX3dyaXRlX2xvY2tfc2xvd3BhdGgobG9jayk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBx
dWV1ZWRfcmVhZF91bmxvY2soc3RydWN0IHFyd2xvY2sgKmxvY2spCjE0NDc0OiB7CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgKHZvaWQpYXRvbWljX3N1Yl9yZXR1cm4oKDFVIDw8IDkp
LCAmbG9jay0+Y250cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBxdWV1ZWRfd3JpdGVfdW5sb2NrKHN0cnVjdCBxcndsb2NrICps
b2NrKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1l
X2Fzc2VydF8xMTYodm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJOZWVkIG5hdGl2ZSB3
b3JkIHNpemVkIHN0b3Jlcy9sb2FkcyBmb3IgYXRvbWljaXR5LiIpKSk7IGlmICghKChzaXplb2Yo
KiZsb2NrLT53bG9ja2VkKSA9PSBzaXplb2YoY2hhcikgfHwgc2l6ZW9mKCombG9jay0+d2xvY2tl
ZCkgPT0gc2l6ZW9mKHNob3J0KSB8fCBzaXplb2YoKiZsb2NrLT53bG9ja2VkKSA9PSBzaXplb2Yo
aW50KSB8fCBzaXplb2YoKiZsb2NrLT53bG9ja2VkKSA9PSBzaXplb2YobG9uZykpKSkgX19jb21w
aWxldGltZV9hc3NlcnRfMTE2KCk7IH0gd2hpbGUgKDApOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygi
IjogOiA6Im1lbW9yeSIpOyAoeyB1bmlvbiB7IHR5cGVvZigqJmxvY2stPndsb2NrZWQpIF9fdmFs
OyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKCombG9jay0+d2xvY2tl
ZCkpICgwKSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKCombG9jay0+d2xvY2tlZCksIF9fdS5fX2Ms
IHNpemVvZigqJmxvY2stPndsb2NrZWQpKTsgX191Ll9fdmFsOyB9KTsgfSB3aGlsZSAoMCk7CjE0
NDc0OiB9CjE0NDc0OiAjIDcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcXJ3bG9jay5oIiAyCjE0
NDc0OiAjIDQ0ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NwaW5sb2NrLmgiIDIKMTQ0NzQ6ICMg
OTAgIi4vaW5jbHVkZS9saW51eC9zcGlubG9jay5oIiAyCjE0NDc0OiAjIDE3OCAiLi9pbmNsdWRl
L2xpbnV4L3NwaW5sb2NrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGRvX3Jhd19zcGluX2xvY2socmF3X3NwaW5s
b2NrX3QgKmxvY2spCjE0NDc0OiB7CjE0NDc0OiAgKHZvaWQpMDsKMTQ0NzQ6ICBxdWV1ZWRfc3Bp
bl9sb2NrKCZsb2NrLT5yYXdfbG9jayk7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0
NDc0OiBkb19yYXdfc3Bpbl9sb2NrX2ZsYWdzKHJhd19zcGlubG9ja190ICpsb2NrLCB1bnNpZ25l
ZCBsb25nICpmbGFncykKMTQ0NzQ6IHsKMTQ0NzQ6ICAodm9pZCkwOwoxNDQ3NDogIHF1ZXVlZF9z
cGluX2xvY2soJmxvY2stPnJhd19sb2NrKTsKMTQ0NzQ6ICBkbyB7IH0gd2hpbGUgKDApOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgZG9fcmF3X3NwaW5fdHJ5bG9jayhyYXdfc3BpbmxvY2tf
dCAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpbnQgcmV0ID0gcXVldWVkX3NwaW5fdHJ5bG9jaygm
KGxvY2spLT5yYXdfbG9jayk7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAocmV0KQoxNDQ3NDogICBkbyB7
IH0gd2hpbGUgKDApOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIHJldDsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBkb19yYXdfc3Bpbl91bmxvY2socmF3X3NwaW5sb2NrX3QgKmxvY2spCjE0
NDc0OiB7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBxdWV1ZWRfc3Bpbl91bmxv
Y2soJmxvY2stPnJhd19sb2NrKTsKMTQ0NzQ6ICAodm9pZCkwOwoxNDQ3NDogfQoxNDQ3NDogIyAz
MTAgIi4vaW5jbHVkZS9saW51eC9zcGlubG9jay5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGlu
dXgvcndsb2NrLmgiIDEKMTQ0NzQ6ICMgMzExICIuL2luY2x1ZGUvbGludXgvc3BpbmxvY2suaCIg
MgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9p
bmNsdWRlL2xpbnV4L3NwaW5sb2NrX2FwaV9zbXAuaCIgMQoxNDQ3NDogIyAxOCAiLi9pbmNsdWRl
L2xpbnV4L3NwaW5sb2NrX2FwaV9zbXAuaCIKMTQ0NzQ6IGludCBpbl9sb2NrX2Z1bmN0aW9ucyh1
bnNpZ25lZCBsb25nIGFkZHIpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBf
X2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkgX3Jhd19zcGluX2xvY2so
cmF3X3NwaW5sb2NrX3QgKmxvY2spIDsKMTQ0NzQ6IHZvaWQgX19hdHRyaWJ1dGVfXygoc2VjdGlv
bigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfc3Bpbl9sb2NrX25lc3RlZChyYXdfc3BpbmxvY2tf
dCAqbG9jaywgaW50IHN1YmNsYXNzKQoxNDQ3NDogICAgICAgICA7CjE0NDc0OiB2b2lkIF9fYXR0
cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9jay50ZXh0IikpKQoxNDQ3NDogX3Jhd19zcGluX2xv
Y2tfbmVzdF9sb2NrKHJhd19zcGlubG9ja190ICpsb2NrLCBzdHJ1Y3QgbG9ja2RlcF9tYXAgKm1h
cCkKMTQ0NzQ6ICAgICAgICAgOwoxNDQ3NDogdm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIu
c3BpbmxvY2sudGV4dCIpKSkgX3Jhd19zcGluX2xvY2tfYmgocmF3X3NwaW5sb2NrX3QgKmxvY2sp
IDsKMTQ0NzQ6IHZvaWQgX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkp
IF9yYXdfc3Bpbl9sb2NrX2lycShyYXdfc3BpbmxvY2tfdCAqbG9jaykKMTQ0NzQ6ICAgICAgICAg
OwoxNDQ3NDogCjE0NDc0OiB1bnNpZ25lZCBsb25nIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5z
cGlubG9jay50ZXh0IikpKSBfcmF3X3NwaW5fbG9ja19pcnFzYXZlKHJhd19zcGlubG9ja190ICps
b2NrKQoxNDQ3NDogICAgICAgICA7CjE0NDc0OiB1bnNpZ25lZCBsb25nIF9fYXR0cmlidXRlX18o
KHNlY3Rpb24oIi5zcGlubG9jay50ZXh0IikpKQoxNDQ3NDogX3Jhd19zcGluX2xvY2tfaXJxc2F2
ZV9uZXN0ZWQocmF3X3NwaW5sb2NrX3QgKmxvY2ssIGludCBzdWJjbGFzcykKMTQ0NzQ6ICAgICAg
ICAgOwoxNDQ3NDogaW50IF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9jay50ZXh0Iikp
KSBfcmF3X3NwaW5fdHJ5bG9jayhyYXdfc3BpbmxvY2tfdCAqbG9jayk7CjE0NDc0OiBpbnQgX19h
dHRyaWJ1dGVfXygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfc3Bpbl90cnlsb2Nr
X2JoKHJhd19zcGlubG9ja190ICpsb2NrKTsKMTQ0NzQ6IHZvaWQgX19hdHRyaWJ1dGVfXygoc2Vj
dGlvbigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfc3Bpbl91bmxvY2socmF3X3NwaW5sb2NrX3Qg
KmxvY2spIDsKMTQ0NzQ6IHZvaWQgX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLnNwaW5sb2NrLnRl
eHQiKSkpIF9yYXdfc3Bpbl91bmxvY2tfYmgocmF3X3NwaW5sb2NrX3QgKmxvY2spIDsKMTQ0NzQ6
IHZvaWQgX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfc3Bp
bl91bmxvY2tfaXJxKHJhd19zcGlubG9ja190ICpsb2NrKSA7CjE0NDc0OiB2b2lkIF9fYXR0cmli
dXRlX18oKHNlY3Rpb24oIi5zcGlubG9jay50ZXh0IikpKQoxNDQ3NDogX3Jhd19zcGluX3VubG9j
a19pcnFyZXN0b3JlKHJhd19zcGlubG9ja190ICpsb2NrLCB1bnNpZ25lZCBsb25nIGZsYWdzKQox
NDQ3NDogICAgICAgICA7CjE0NDc0OiAjIDg2ICIuL2luY2x1ZGUvbGludXgvc3BpbmxvY2tfYXBp
X3NtcC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50IF9fcmF3X3NwaW5fdHJ5bG9jayhyYXdfc3BpbmxvY2tfdCAqbG9j
aykKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIp
OwoxNDQ3NDogIGlmIChkb19yYXdfc3Bpbl90cnlsb2NrKGxvY2spKSB7CjE0NDc0OiAgIGRvIHsg
fSB3aGlsZSAoMCk7CjE0NDc0OiAgIHJldHVybiAxOwoxNDQ3NDogIH0KMTQ0NzQ6ICBfX2FzbV9f
IF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoxNDQ3NDogIHJldHVybiAwOwoxNDQ3NDog
fQoxNDQ3NDogIyAxMDQgIi4vaW5jbHVkZS9saW51eC9zcGlubG9ja19hcGlfc21wLmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB1bnNpZ25lZCBsb25nIF9fcmF3X3NwaW5fbG9ja19pcnFzYXZlKHJhd19zcGlubG9ja190ICps
b2NrKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CjE0NDc0OiAKMTQ0NzQ6
ICBkbyB7IGRvIHsgKHsgdW5zaWduZWQgbG9uZyBfX2R1bW15OyB0eXBlb2YoZmxhZ3MpIF9fZHVt
bXkyOyAodm9pZCkoJl9fZHVtbXkgPT0gJl9fZHVtbXkyKTsgMTsgfSk7IGZsYWdzID0gYXJjaF9s
b2NhbF9pcnFfc2F2ZSgpOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgX19hc21f
XyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKMTQ0NzQ6ICBkbyB7IH0gd2hpbGUgKDAp
OwoxNDQ3NDogIyAxMTkgIi4vaW5jbHVkZS9saW51eC9zcGlubG9ja19hcGlfc21wLmgiCjE0NDc0
OiAgZG9fcmF3X3NwaW5fbG9ja19mbGFncyhsb2NrLCAmZmxhZ3MpOwoxNDQ3NDogCjE0NDc0OiAg
cmV0dXJuIGZsYWdzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmF3X3NwaW5fbG9j
a19pcnEocmF3X3NwaW5sb2NrX3QgKmxvY2spCjE0NDc0OiB7CjE0NDc0OiAgZG8geyBhcmNoX2xv
Y2FsX2lycV9kaXNhYmxlKCk7IH0gd2hpbGUgKDApOwoxNDQ3NDogIF9fYXNtX18gX192b2xhdGls
ZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBk
b19yYXdfc3Bpbl9sb2NrKGxvY2spOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmF3
X3NwaW5fbG9ja19iaChyYXdfc3BpbmxvY2tfdCAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX2xv
Y2FsX2JoX2Rpc2FibGVfaXAoKHVuc2lnbmVkIGxvbmcpX19idWlsdGluX3JldHVybl9hZGRyZXNz
KDApLCAoKDIgKiAoMVVMIDw8ICgwICsgOCkpKSArIDApKTsKMTQ0NzQ6ICBkbyB7IH0gd2hpbGUg
KDApOwoxNDQ3NDogIGRvX3Jhd19zcGluX2xvY2sobG9jayk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgX19yYXdfc3Bpbl9sb2NrKHJhd19zcGlubG9ja190ICpsb2NrKQoxNDQ3NDogewox
NDQ3NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiAgZG8g
eyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBkb19yYXdfc3Bpbl9sb2NrKGxvY2spOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX3Jhd19zcGluX3VubG9jayhyYXdf
c3BpbmxvY2tfdCAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBkbyB7IH0gd2hpbGUgKDApOwoxNDQ3
NDogIGRvX3Jhd19zcGluX3VubG9jayhsb2NrKTsKMTQ0NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVf
XygiIjogOiA6Im1lbW9yeSIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmF3X3Nw
aW5fdW5sb2NrX2lycXJlc3RvcmUocmF3X3NwaW5sb2NrX3QgKmxvY2ssCjE0NDc0OiAgICAgICAg
ICB1bnNpZ25lZCBsb25nIGZsYWdzKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgfSB3aGlsZSAoMCk7
CjE0NDc0OiAgZG9fcmF3X3NwaW5fdW5sb2NrKGxvY2spOwoxNDQ3NDogIGRvIHsgZG8geyAoeyB1
bnNpZ25lZCBsb25nIF9fZHVtbXk7IHR5cGVvZihmbGFncykgX19kdW1teTI7ICh2b2lkKSgmX19k
dW1teSA9PSAmX19kdW1teTIpOyAxOyB9KTsgYXJjaF9sb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7
IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygi
IjogOiA6Im1lbW9yeSIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmF3X3NwaW5f
dW5sb2NrX2lycShyYXdfc3BpbmxvY2tfdCAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBkbyB7IH0g
d2hpbGUgKDApOwoxNDQ3NDogIGRvX3Jhd19zcGluX3VubG9jayhsb2NrKTsKMTQ0NzQ6ICBkbyB7
IGFyY2hfbG9jYWxfaXJxX2VuYWJsZSgpOyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBfX2FzbV9fIF9f
dm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IF9fcmF3X3NwaW5fdW5sb2NrX2JoKHJhd19zcGlubG9ja190ICpsb2NrKQoxNDQ3NDogewoxNDQ3
NDogIGRvIHsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgZG9fcmF3X3NwaW5fdW5sb2NrKGxvY2spOwox
NDQ3NDogIF9fbG9jYWxfYmhfZW5hYmxlX2lwKCh1bnNpZ25lZCBsb25nKV9fYnVpbHRpbl9yZXR1
cm5fYWRkcmVzcygwKSwgKCgyICogKDFVTCA8PCAoMCArIDgpKSkgKyAwKSk7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGludCBfX3Jhd19zcGluX3RyeWxvY2tfYmgocmF3X3NwaW5sb2NrX3QgKmxv
Y2spCjE0NDc0OiB7CjE0NDc0OiAgX19sb2NhbF9iaF9kaXNhYmxlX2lwKCh1bnNpZ25lZCBsb25n
KV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSwgKCgyICogKDFVTCA8PCAoMCArIDgpKSkgKyAw
KSk7CjE0NDc0OiAgaWYgKGRvX3Jhd19zcGluX3RyeWxvY2sobG9jaykpIHsKMTQ0NzQ6ICAgZG8g
eyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICAgcmV0dXJuIDE7CjE0NDc0OiAgfQoxNDQ3NDogIF9fbG9j
YWxfYmhfZW5hYmxlX2lwKCh1bnNpZ25lZCBsb25nKV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygw
KSwgKCgyICogKDFVTCA8PCAoMCArIDgpKSkgKyAwKSk7CjE0NDc0OiAgcmV0dXJuIDA7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3J3bG9ja19hcGlfc21wLmgi
IDEKMTQ0NzQ6ICMgMTggIi4vaW5jbHVkZS9saW51eC9yd2xvY2tfYXBpX3NtcC5oIgoxNDQ3NDog
dm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkgX3Jhd19yZWFk
X2xvY2socndsb2NrX3QgKmxvY2spIDsKMTQ0NzQ6IHZvaWQgX19hdHRyaWJ1dGVfXygoc2VjdGlv
bigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfd3JpdGVfbG9jayhyd2xvY2tfdCAqbG9jaykgOwox
NDQ3NDogdm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkgX3Jh
d19yZWFkX2xvY2tfYmgocndsb2NrX3QgKmxvY2spIDsKMTQ0NzQ6IHZvaWQgX19hdHRyaWJ1dGVf
Xygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfd3JpdGVfbG9ja19iaChyd2xvY2tf
dCAqbG9jaykgOwoxNDQ3NDogdm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2su
dGV4dCIpKSkgX3Jhd19yZWFkX2xvY2tfaXJxKHJ3bG9ja190ICpsb2NrKSA7CjE0NDc0OiB2b2lk
IF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9jay50ZXh0IikpKSBfcmF3X3dyaXRlX2xv
Y2tfaXJxKHJ3bG9ja190ICpsb2NrKSA7CjE0NDc0OiB1bnNpZ25lZCBsb25nIF9fYXR0cmlidXRl
X18oKHNlY3Rpb24oIi5zcGlubG9jay50ZXh0IikpKSBfcmF3X3JlYWRfbG9ja19pcnFzYXZlKHJ3
bG9ja190ICpsb2NrKQoxNDQ3NDogICAgICAgIDsKMTQ0NzQ6IHVuc2lnbmVkIGxvbmcgX19hdHRy
aWJ1dGVfXygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfd3JpdGVfbG9ja19pcnFz
YXZlKHJ3bG9ja190ICpsb2NrKQoxNDQ3NDogICAgICAgIDsKMTQ0NzQ6IGludCBfX2F0dHJpYnV0
ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkgX3Jhd19yZWFkX3RyeWxvY2socndsb2Nr
X3QgKmxvY2spOwoxNDQ3NDogaW50IF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9jay50
ZXh0IikpKSBfcmF3X3dyaXRlX3RyeWxvY2socndsb2NrX3QgKmxvY2spOwoxNDQ3NDogdm9pZCBf
X2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkgX3Jhd19yZWFkX3VubG9j
ayhyd2xvY2tfdCAqbG9jaykgOwoxNDQ3NDogdm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIu
c3BpbmxvY2sudGV4dCIpKSkgX3Jhd193cml0ZV91bmxvY2socndsb2NrX3QgKmxvY2spIDsKMTQ0
NzQ6IHZvaWQgX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdf
cmVhZF91bmxvY2tfYmgocndsb2NrX3QgKmxvY2spIDsKMTQ0NzQ6IHZvaWQgX19hdHRyaWJ1dGVf
Xygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfd3JpdGVfdW5sb2NrX2JoKHJ3bG9j
a190ICpsb2NrKSA7CjE0NDc0OiB2b2lkIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9j
ay50ZXh0IikpKSBfcmF3X3JlYWRfdW5sb2NrX2lycShyd2xvY2tfdCAqbG9jaykgOwoxNDQ3NDog
dm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkgX3Jhd193cml0
ZV91bmxvY2tfaXJxKHJ3bG9ja190ICpsb2NrKSA7CjE0NDc0OiB2b2lkIF9fYXR0cmlidXRlX18o
KHNlY3Rpb24oIi5zcGlubG9jay50ZXh0IikpKQoxNDQ3NDogX3Jhd19yZWFkX3VubG9ja19pcnFy
ZXN0b3JlKHJ3bG9ja190ICpsb2NrLCB1bnNpZ25lZCBsb25nIGZsYWdzKQoxNDQ3NDogICAgICAg
IDsKMTQ0NzQ6IHZvaWQgX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkp
CjE0NDc0OiBfcmF3X3dyaXRlX3VubG9ja19pcnFyZXN0b3JlKHJ3bG9ja190ICpsb2NrLCB1bnNp
Z25lZCBsb25nIGZsYWdzKQoxNDQ3NDogICAgICAgIDsKMTQ0NzQ6ICMgMTE3ICIuL2luY2x1ZGUv
bGludXgvcndsb2NrX2FwaV9zbXAuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX3Jhd19yZWFkX3RyeWxvY2socnds
b2NrX3QgKmxvY2spCjE0NDc0OiB7CjE0NDc0OiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDog
OiJtZW1vcnkiKTsKMTQ0NzQ6ICBpZiAocXVldWVkX3JlYWRfdHJ5bG9jaygmKGxvY2spLT5yYXdf
bG9jaykpIHsKMTQ0NzQ6ICAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICAgcmV0dXJuIDE7CjE0
NDc0OiAgfQoxNDQ3NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0
NDc0OiAgcmV0dXJuIDA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX3Jhd193cml0ZV90
cnlsb2NrKHJ3bG9ja190ICpsb2NrKQoxNDQ3NDogewoxNDQ3NDogIF9fYXNtX18gX192b2xhdGls
ZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiAgaWYgKHF1ZXVlZF93cml0ZV90cnlsb2NrKCYo
bG9jayktPnJhd19sb2NrKSkgewoxNDQ3NDogICBkbyB7IH0gd2hpbGUgKDApOwoxNDQ3NDogICBy
ZXR1cm4gMTsKMTQ0NzQ6ICB9CjE0NDc0OiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJt
ZW1vcnkiKTsKMTQ0NzQ6ICByZXR1cm4gMDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTQ2ICIuL2luY2x1
ZGUvbGludXgvcndsb2NrX2FwaV9zbXAuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19yYXdfcmVhZF9sb2NrKHJ3
bG9ja190ICpsb2NrKQoxNDQ3NDogewoxNDQ3NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6
IDoibWVtb3J5Iik7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBkbyB7KHZvaWQp
MDsgcXVldWVkX3JlYWRfbG9jaygmKGxvY2spLT5yYXdfbG9jayk7IH0gd2hpbGUgKDApOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIF9fcmF3X3JlYWRfbG9ja19pcnFzYXZl
KHJ3bG9ja190ICpsb2NrKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CjE0
NDc0OiAKMTQ0NzQ6ICBkbyB7IGRvIHsgKHsgdW5zaWduZWQgbG9uZyBfX2R1bW15OyB0eXBlb2Yo
ZmxhZ3MpIF9fZHVtbXkyOyAodm9pZCkoJl9fZHVtbXkgPT0gJl9fZHVtbXkyKTsgMTsgfSk7IGZs
YWdzID0gYXJjaF9sb2NhbF9pcnFfc2F2ZSgpOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7CjE0
NDc0OiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKMTQ0NzQ6ICBkbyB7
IH0gd2hpbGUgKDApOwoxNDQ3NDogIGRvIHsodm9pZCkwOyBxdWV1ZWRfcmVhZF9sb2NrKCYoKGxv
Y2spKS0+cmF3X2xvY2spOyB9IHdoaWxlICgwKQoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOwoxNDQ3NDogIHJldHVybiBmbGFnczsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBfX3Jhd19yZWFkX2xvY2tfaXJxKHJ3bG9ja190ICpsb2NrKQoxNDQ3NDog
ewoxNDQ3NDogIGRvIHsgYXJjaF9sb2NhbF9pcnFfZGlzYWJsZSgpOyB9IHdoaWxlICgwKTsKMTQ0
NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoxNDQ3NDogIGRvIHsg
fSB3aGlsZSAoMCk7CjE0NDc0OiAgZG8geyh2b2lkKTA7IHF1ZXVlZF9yZWFkX2xvY2soJihsb2Nr
KS0+cmF3X2xvY2spOyB9IHdoaWxlICgwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBf
X3Jhd19yZWFkX2xvY2tfYmgocndsb2NrX3QgKmxvY2spCjE0NDc0OiB7CjE0NDc0OiAgX19sb2Nh
bF9iaF9kaXNhYmxlX2lwKCh1bnNpZ25lZCBsb25nKV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygw
KSwgKCgyICogKDFVTCA8PCAoMCArIDgpKSkgKyAwKSk7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgw
KTsKMTQ0NzQ6ICBkbyB7KHZvaWQpMDsgcXVldWVkX3JlYWRfbG9jaygmKGxvY2spLT5yYXdfbG9j
ayk7IH0gd2hpbGUgKDApOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIF9f
cmF3X3dyaXRlX2xvY2tfaXJxc2F2ZShyd2xvY2tfdCAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICB1
bnNpZ25lZCBsb25nIGZsYWdzOwoxNDQ3NDogCjE0NDc0OiAgZG8geyBkbyB7ICh7IHVuc2lnbmVk
IGxvbmcgX19kdW1teTsgdHlwZW9mKGZsYWdzKSBfX2R1bW15MjsgKHZvaWQpKCZfX2R1bW15ID09
ICZfX2R1bW15Mik7IDE7IH0pOyBmbGFncyA9IGFyY2hfbG9jYWxfaXJxX3NhdmUoKTsgfSB3aGls
ZSAoMCk7IH0gd2hpbGUgKDApOwoxNDQ3NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoi
bWVtb3J5Iik7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBkbyB7KHZvaWQpMDsg
cXVldWVkX3dyaXRlX2xvY2soJigobG9jaykpLT5yYXdfbG9jayk7IH0gd2hpbGUgKDApCjE0NDc0
OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwoxNDQ3NDogIHJldHVy
biBmbGFnczsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX3Jhd193cml0ZV9sb2NrX2ly
cShyd2xvY2tfdCAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBkbyB7IGFyY2hfbG9jYWxfaXJxX2Rp
c2FibGUoKTsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDog
OiJtZW1vcnkiKTsKMTQ0NzQ6ICBkbyB7IH0gd2hpbGUgKDApOwoxNDQ3NDogIGRvIHsodm9pZCkw
OyBxdWV1ZWRfd3JpdGVfbG9jaygmKGxvY2spLT5yYXdfbG9jayk7IH0gd2hpbGUgKDApOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmF3X3dyaXRlX2xvY2tfYmgocndsb2NrX3QgKmxv
Y2spCjE0NDc0OiB7CjE0NDc0OiAgX19sb2NhbF9iaF9kaXNhYmxlX2lwKCh1bnNpZ25lZCBsb25n
KV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSwgKCgyICogKDFVTCA8PCAoMCArIDgpKSkgKyAw
KSk7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBkbyB7KHZvaWQpMDsgcXVldWVk
X3dyaXRlX2xvY2soJihsb2NrKS0+cmF3X2xvY2spOyB9IHdoaWxlICgwKTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBfX3Jhd193cml0ZV9sb2NrKHJ3bG9ja190ICpsb2NrKQoxNDQ3NDog
ewoxNDQ3NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiAg
ZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBkbyB7KHZvaWQpMDsgcXVldWVkX3dyaXRlX2xvY2so
Jihsb2NrKS0+cmF3X2xvY2spOyB9IHdoaWxlICgwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgX19yYXdfd3JpdGVfdW5sb2NrKHJ3bG9ja190ICpsb2NrKQox
NDQ3NDogewoxNDQ3NDogIGRvIHsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgZG8ge3F1ZXVlZF93cml0
ZV91bmxvY2soJihsb2NrKS0+cmF3X2xvY2spOyAodm9pZCkwOyB9IHdoaWxlICgwKTsKMTQ0NzQ6
ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIF9fcmF3X3JlYWRfdW5sb2NrKHJ3bG9ja190ICpsb2NrKQoxNDQ3NDogewox
NDQ3NDogIGRvIHsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgZG8ge3F1ZXVlZF9yZWFkX3VubG9jaygm
KGxvY2spLT5yYXdfbG9jayk7ICh2b2lkKTA7IH0gd2hpbGUgKDApOwoxNDQ3NDogIF9fYXNtX18g
X192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQKMTQ0NzQ6IF9fcmF3X3JlYWRfdW5sb2NrX2lycXJlc3RvcmUocndsb2NrX3QgKmxvY2ssIHVu
c2lnbmVkIGxvbmcgZmxhZ3MpCjE0NDc0OiB7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKTsKMTQ0
NzQ6ICBkbyB7cXVldWVkX3JlYWRfdW5sb2NrKCYobG9jayktPnJhd19sb2NrKTsgKHZvaWQpMDsg
fSB3aGlsZSAoMCk7CjE0NDc0OiAgZG8geyBkbyB7ICh7IHVuc2lnbmVkIGxvbmcgX19kdW1teTsg
dHlwZW9mKGZsYWdzKSBfX2R1bW15MjsgKHZvaWQpKCZfX2R1bW15ID09ICZfX2R1bW15Mik7IDE7
IH0pOyBhcmNoX2xvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUg
KDApOwoxNDQ3NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19yYXdfcmVhZF91bmxvY2tfaXJxKHJ3bG9ja190ICps
b2NrKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgZG8ge3F1ZXVl
ZF9yZWFkX3VubG9jaygmKGxvY2spLT5yYXdfbG9jayk7ICh2b2lkKTA7IH0gd2hpbGUgKDApOwox
NDQ3NDogIGRvIHsgYXJjaF9sb2NhbF9pcnFfZW5hYmxlKCk7IH0gd2hpbGUgKDApOwoxNDQ3NDog
IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgX19yYXdfcmVhZF91bmxvY2tfYmgocndsb2NrX3QgKmxvY2spCjE0NDc0OiB7
CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBkbyB7cXVldWVkX3JlYWRfdW5sb2Nr
KCYobG9jayktPnJhd19sb2NrKTsgKHZvaWQpMDsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgX19sb2Nh
bF9iaF9lbmFibGVfaXAoKHVuc2lnbmVkIGxvbmcpX19idWlsdGluX3JldHVybl9hZGRyZXNzKDAp
LCAoKDIgKiAoMVVMIDw8ICgwICsgOCkpKSArIDApKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBfX3Jhd193cml0ZV91bmxvY2tfaXJxcmVzdG9yZShyd2xvY2tfdCAqbG9jaywKMTQ0NzQ6
ICAgICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgfSB3
aGlsZSAoMCk7CjE0NDc0OiAgZG8ge3F1ZXVlZF93cml0ZV91bmxvY2soJihsb2NrKS0+cmF3X2xv
Y2spOyAodm9pZCkwOyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBkbyB7IGRvIHsgKHsgdW5zaWduZWQg
bG9uZyBfX2R1bW15OyB0eXBlb2YoZmxhZ3MpIF9fZHVtbXkyOyAodm9pZCkoJl9fZHVtbXkgPT0g
Jl9fZHVtbXkyKTsgMTsgfSk7IGFyY2hfbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOyB9IHdoaWxl
ICgwKTsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJt
ZW1vcnkiKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX3Jhd193cml0ZV91bmxvY2tf
aXJxKHJ3bG9ja190ICpsb2NrKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgfSB3aGlsZSAoMCk7CjE0
NDc0OiAgZG8ge3F1ZXVlZF93cml0ZV91bmxvY2soJihsb2NrKS0+cmF3X2xvY2spOyAodm9pZCkw
OyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBkbyB7IGFyY2hfbG9jYWxfaXJxX2VuYWJsZSgpOyB9IHdo
aWxlICgwKTsKMTQ0NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmF3X3dyaXRlX3VubG9ja19iaChyd2xvY2tf
dCAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBkbyB7IH0gd2hpbGUgKDApOwoxNDQ3NDogIGRvIHtx
dWV1ZWRfd3JpdGVfdW5sb2NrKCYobG9jayktPnJhd19sb2NrKTsgKHZvaWQpMDsgfSB3aGlsZSAo
MCk7CjE0NDc0OiAgX19sb2NhbF9iaF9lbmFibGVfaXAoKHVuc2lnbmVkIGxvbmcpX19idWlsdGlu
X3JldHVybl9hZGRyZXNzKDApLCAoKDIgKiAoMVVMIDw8ICgwICsgOCkpKSArIDApKTsKMTQ0NzQ6
IH0KMTQ0NzQ6ICMgMTkxICIuL2luY2x1ZGUvbGludXgvc3BpbmxvY2tfYXBpX3NtcC5oIiAyCjE0
NDc0OiAjIDMxNyAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgiIDIKMTQ0NzQ6ICMgMzI1ICIu
L2luY2x1ZGUvbGludXgvc3BpbmxvY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlz
X2lubGluZV9fKSkgcmF3X3NwaW5sb2NrX3QgKnNwaW5sb2NrX2NoZWNrKHNwaW5sb2NrX3QgKmxv
Y2spCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICZsb2NrLT5ybG9jazsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIHNwaW5fbG9jayhzcGlubG9j
a190ICpsb2NrKQoxNDQ3NDogewoxNDQ3NDogIF9yYXdfc3Bpbl9sb2NrKCZsb2NrLT5ybG9jayk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9f
KSkgdm9pZCBzcGluX2xvY2tfYmgoc3BpbmxvY2tfdCAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBf
cmF3X3NwaW5fbG9ja19iaCgmbG9jay0+cmxvY2spOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBf
X2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBzcGluX3RyeWxvY2soc3Bpbmxv
Y2tfdCAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKF9yYXdfc3Bpbl90cnlsb2NrKCZs
b2NrLT5ybG9jaykpOwoxNDQ3NDogfQoxNDQ3NDogIyAzNjEgIi4vaW5jbHVkZS9saW51eC9zcGlu
bG9jay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIHNw
aW5fbG9ja19pcnEoc3BpbmxvY2tfdCAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBfcmF3X3NwaW5f
bG9ja19pcnEoJmxvY2stPnJsb2NrKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMzc2ICIuL2luY2x1ZGUv
bGludXgvc3BpbmxvY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9f
KSkgdm9pZCBzcGluX3VubG9jayhzcGlubG9ja190ICpsb2NrKQoxNDQ3NDogewoxNDQ3NDogIF9f
cmF3X3NwaW5fdW5sb2NrKCZsb2NrLT5ybG9jayk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9f
YXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBzcGluX3VubG9ja19iaChzcGlu
bG9ja190ICpsb2NrKQoxNDQ3NDogewoxNDQ3NDogIF9yYXdfc3Bpbl91bmxvY2tfYmgoJmxvY2st
PnJsb2NrKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKSB2b2lkIHNwaW5fdW5sb2NrX2lycShzcGlubG9ja190ICpsb2NrKQoxNDQ3NDog
ewoxNDQ3NDogIF9fcmF3X3NwaW5fdW5sb2NrX2lycSgmbG9jay0+cmxvY2spOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgc3Bp
bl91bmxvY2tfaXJxcmVzdG9yZShzcGlubG9ja190ICpsb2NrLCB1bnNpZ25lZCBsb25nIGZsYWdz
KQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgKHsgdW5zaWduZWQgbG9uZyBfX2R1bW15OyB0eXBlb2Yo
ZmxhZ3MpIF9fZHVtbXkyOyAodm9pZCkoJl9fZHVtbXkgPT0gJl9fZHVtbXkyKTsgMTsgfSk7IF9y
YXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbG9jay0+cmxvY2ssIGZsYWdzKTsgfSB3aGlsZSAo
MCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgaW50IHNwaW5fdHJ5bG9ja19iaChzcGlubG9ja190ICpsb2NrKQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiAoX3Jhd19zcGluX3RyeWxvY2tfYmgoJmxvY2stPnJsb2NrKSk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IHNw
aW5fdHJ5bG9ja19pcnEoc3BpbmxvY2tfdCAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
KHsgZG8geyBhcmNoX2xvY2FsX2lycV9kaXNhYmxlKCk7IH0gd2hpbGUgKDApOyAoX3Jhd19zcGlu
X3RyeWxvY2soJmxvY2stPnJsb2NrKSkgPyAxIDogKHsgZG8geyBhcmNoX2xvY2FsX2lycV9lbmFi
bGUoKTsgfSB3aGlsZSAoMCk7IDA7IH0pOyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNDI5ICIuL2lu
Y2x1ZGUvbGludXgvc3BpbmxvY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lu
bGluZV9fKSkgaW50IHNwaW5faXNfbG9ja2VkKHNwaW5sb2NrX3QgKmxvY2spCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuIHF1ZXVlZF9zcGluX2lzX2xvY2tlZCgmKCZsb2NrLT5ybG9jayktPnJhd19s
b2NrKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5s
aW5lX18pKSBpbnQgc3Bpbl9pc19jb250ZW5kZWQoc3BpbmxvY2tfdCAqbG9jaykKMTQ0NzQ6IHsK
MTQ0NzQ6ICByZXR1cm4gcXVldWVkX3NwaW5faXNfY29udGVuZGVkKCYoJmxvY2stPnJsb2NrKS0+
cmF3X2xvY2spOwoxNDQ3NDogfQoxNDQ3NDogIyA0NTQgIi4vaW5jbHVkZS9saW51eC9zcGlubG9j
ay5oIgoxNDQ3NDogZXh0ZXJuIGludCBfYXRvbWljX2RlY19hbmRfbG9jayhhdG9taWNfdCAqYXRv
bWljLCBzcGlubG9ja190ICpsb2NrKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4
dGVybiBpbnQgX2F0b21pY19kZWNfYW5kX2xvY2tfaXJxc2F2ZShhdG9taWNfdCAqYXRvbWljLCBz
cGlubG9ja190ICpsb2NrLAoxNDQ3NDogICAgICB1bnNpZ25lZCBsb25nICpmbGFncyk7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBpbnQgX19hbGxvY19idWNrZXRfc3BpbmxvY2tzKHNw
aW5sb2NrX3QgKipsb2NrcywgdW5zaWduZWQgaW50ICpsb2NrX21hc2ssCjE0NDc0OiAgICAgICAg
IHNpemVfdCBtYXhfc2l6ZSwgdW5zaWduZWQgaW50IGNwdV9tdWx0LAoxNDQ3NDogICAgICAgICBn
ZnBfdCBnZnAsIGNvbnN0IGNoYXIgKm5hbWUsCjE0NDc0OiAgICAgICAgIHN0cnVjdCBsb2NrX2Ns
YXNzX2tleSAqa2V5KTsKMTQ0NzQ6ICMgNDc4ICIuL2luY2x1ZGUvbGludXgvc3BpbmxvY2suaCIK
MTQ0NzQ6IHZvaWQgZnJlZV9idWNrZXRfc3BpbmxvY2tzKHNwaW5sb2NrX3QgKmxvY2tzKTsKMTQ0
NzQ6ICMgMTcgIi4vaW5jbHVkZS9saW51eC9rcmVmLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRl
L2xpbnV4L3JlZmNvdW50LmgiIDEKMTQ0NzQ6ICMgODggIi4vaW5jbHVkZS9saW51eC9yZWZjb3Vu
dC5oIgoxNDQ3NDogc3RydWN0IG11dGV4OwoxNDQ3NDogIyA5OCAiLi9pbmNsdWRlL2xpbnV4L3Jl
ZmNvdW50LmgiCjE0NDc0OiB0eXBlZGVmIHN0cnVjdCByZWZjb3VudF9zdHJ1Y3QgewoxNDQ3NDog
IGF0b21pY190IHJlZnM7CjE0NDc0OiB9IHJlZmNvdW50X3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSByZWZjb3VudF9zYXR1cmF0aW9uX3R5cGUg
ewoxNDQ3NDogIFJFRkNPVU5UX0FERF9OT1RfWkVST19PVkYsCjE0NDc0OiAgUkVGQ09VTlRfQURE
X09WRiwKMTQ0NzQ6ICBSRUZDT1VOVF9BRERfVUFGLAoxNDQ3NDogIFJFRkNPVU5UX1NVQl9VQUYs
CjE0NDc0OiAgUkVGQ09VTlRfREVDX0xFQUssCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB2b2lk
IHJlZmNvdW50X3dhcm5fc2F0dXJhdGUocmVmY291bnRfdCAqciwgZW51bSByZWZjb3VudF9zYXR1
cmF0aW9uX3R5cGUgdCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIHJlZmNvdW50X3NldChyZWZjb3VudF90ICpyLCBpbnQgbikKMTQ0
NzQ6IHsKMTQ0NzQ6ICBhdG9taWNfc2V0KCZyLT5yZWZzLCBuKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5z
aWduZWQgaW50IHJlZmNvdW50X3JlYWQoY29uc3QgcmVmY291bnRfdCAqcikKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gYXRvbWljX3JlYWQoJnItPnJlZnMpOwoxNDQ3NDogfQoxNDQ3NDogIyAxNTUg
Ii4vaW5jbHVkZS9saW51eC9yZWZjb3VudC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpIGJvb2wgcmVmY291bnRfYWRkX25vdF96ZXJvKGludCBpLCByZWZj
b3VudF90ICpyKQoxNDQ3NDogewoxNDQ3NDogIGludCBvbGQgPSByZWZjb3VudF9yZWFkKHIpOwox
NDQ3NDogCjE0NDc0OiAgZG8gewoxNDQ3NDogICBpZiAoIW9sZCkKMTQ0NzQ6ICAgIGJyZWFrOwox
NDQ3NDogIH0gd2hpbGUgKCFhdG9taWNfdHJ5X2NtcHhjaGcoJnItPnJlZnMsICZvbGQsIG9sZCAr
IGkpKTsKMTQ0NzQ6IAoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKG9sZCA8IDAgfHwg
b2xkICsgaSA8IDApLCAwKSkKMTQ0NzQ6ICAgcmVmY291bnRfd2Fybl9zYXR1cmF0ZShyLCBSRUZD
T1VOVF9BRERfTk9UX1pFUk9fT1ZGKTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBvbGQ7CjE0NDc0
OiB9CjE0NDc0OiAjIDE4NiAiLi9pbmNsdWRlL2xpbnV4L3JlZmNvdW50LmgiCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IHJlZmNvdW50X2FkZChpbnQgaSwgcmVmY291bnRfdCAqcikKMTQ0NzQ6IHsKMTQ0NzQ6ICBpbnQg
b2xkID0gYXRvbWljX2ZldGNoX2FkZChpLCAmci0+cmVmcyk7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAo
X19idWlsdGluX2V4cGVjdCghISghb2xkKSwgMCkpCjE0NDc0OiAgIHJlZmNvdW50X3dhcm5fc2F0
dXJhdGUociwgUkVGQ09VTlRfQUREX1VBRik7CjE0NDc0OiAgZWxzZSBpZiAoX19idWlsdGluX2V4
cGVjdCghIShvbGQgPCAwIHx8IG9sZCArIGkgPCAwKSwgMCkpCjE0NDc0OiAgIHJlZmNvdW50X3dh
cm5fc2F0dXJhdGUociwgUkVGQ09VTlRfQUREX09WRik7CjE0NDc0OiB9CjE0NDc0OiAjIDIwOSAi
Li9pbmNsdWRlL2xpbnV4L3JlZmNvdW50LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX3dhcm5f
dW51c2VkX3Jlc3VsdF9fKSkgYm9vbCByZWZjb3VudF9pbmNfbm90X3plcm8ocmVmY291bnRfdCAq
cikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gcmVmY291bnRfYWRkX25vdF96ZXJvKDEsIHIpOwox
NDQ3NDogfQoxNDQ3NDogIyAyMjYgIi4vaW5jbHVkZS9saW51eC9yZWZjb3VudC5oIgoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCByZWZjb3VudF9pbmMocmVmY291bnRfdCAqcikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZWZjb3Vu
dF9hZGQoMSwgcik7CjE0NDc0OiB9CjE0NDc0OiAjIDI1MSAiLi9pbmNsdWRlL2xpbnV4L3JlZmNv
dW50LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgYm9v
bCByZWZjb3VudF9zdWJfYW5kX3Rlc3QoaW50IGksIHJlZmNvdW50X3QgKnIpCjE0NDc0OiB7CjE0
NDc0OiAgaW50IG9sZCA9IGF0b21pY19mZXRjaF9zdWIoaSwgJnItPnJlZnMpOwoxNDQ3NDogCjE0
NDc0OiAgaWYgKG9sZCA9PSBpKSB7CjE0NDc0OiAgIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6
IDoibWVtb3J5Iik7CjE0NDc0OiAgIHJldHVybiB0cnVlOwoxNDQ3NDogIH0KMTQ0NzQ6IAoxNDQ3
NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKG9sZCA8IDAgfHwgb2xkIC0gaSA8IDApLCAwKSkK
MTQ0NzQ6ICAgcmVmY291bnRfd2Fybl9zYXR1cmF0ZShyLCBSRUZDT1VOVF9TVUJfVUFGKTsKMTQ0
NzQ6IAoxNDQ3NDogIHJldHVybiBmYWxzZTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjc5ICIuL2luY2x1
ZGUvbGludXgvcmVmY291bnQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRf
cmVzdWx0X18pKSBib29sIHJlZmNvdW50X2RlY19hbmRfdGVzdChyZWZjb3VudF90ICpyKQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiByZWZjb3VudF9zdWJfYW5kX3Rlc3QoMSwgcik7CjE0NDc0OiB9
CjE0NDc0OiAjIDI5NCAiLi9pbmNsdWRlL2xpbnV4L3JlZmNvdW50LmgiCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJl
ZmNvdW50X2RlYyhyZWZjb3VudF90ICpyKQoxNDQ3NDogewoxNDQ3NDogIGlmIChfX2J1aWx0aW5f
ZXhwZWN0KCEhKGF0b21pY19mZXRjaF9zdWIoMSwgJnItPnJlZnMpIDw9IDEpLCAwKSkKMTQ0NzQ6
ICAgcmVmY291bnRfd2Fybl9zYXR1cmF0ZShyLCBSRUZDT1VOVF9ERUNfTEVBSyk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3Vs
dF9fKSkgYm9vbCByZWZjb3VudF9kZWNfaWZfb25lKHJlZmNvdW50X3QgKnIpOwoxNDQ3NDogZXh0
ZXJuIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBib29sIHJlZmNvdW50
X2RlY19ub3Rfb25lKHJlZmNvdW50X3QgKnIpOwoxNDQ3NDogZXh0ZXJuIF9fYXR0cmlidXRlX18o
KF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBib29sIHJlZmNvdW50X2RlY19hbmRfbXV0ZXhfbG9j
ayhyZWZjb3VudF90ICpyLCBzdHJ1Y3QgbXV0ZXggKmxvY2spOwoxNDQ3NDogZXh0ZXJuIF9fYXR0
cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBib29sIHJlZmNvdW50X2RlY19hbmRf
bG9jayhyZWZjb3VudF90ICpyLCBzcGlubG9ja190ICpsb2NrKTsKMTQ0NzQ6IGV4dGVybiBfX2F0
dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgYm9vbCByZWZjb3VudF9kZWNfYW5k
X2xvY2tfaXJxc2F2ZShyZWZjb3VudF90ICpyLAoxNDQ3NDogICAgICAgICAgICAgIHNwaW5sb2Nr
X3QgKmxvY2ssCjE0NDc0OiAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyAqZmxhZ3MpOwoxNDQ3
NDogIyAxOCAiLi9pbmNsdWRlL2xpbnV4L2tyZWYuaCIgMgoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
a3JlZiB7CjE0NDc0OiAgcmVmY291bnRfdCByZWZjb3VudDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
a3JlZl9pbml0KHN0cnVjdCBrcmVmICprcmVmKQoxNDQ3NDogewoxNDQ3NDogIHJlZmNvdW50X3Nl
dCgma3JlZi0+cmVmY291bnQsIDEpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBp
bnQga3JlZl9yZWFkKGNvbnN0IHN0cnVjdCBrcmVmICprcmVmKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiByZWZjb3VudF9yZWFkKCZrcmVmLT5yZWZjb3VudCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrcmVmX2dldChzdHJ1Y3Qg
a3JlZiAqa3JlZikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZWZjb3VudF9pbmMoJmtyZWYtPnJlZmNvdW50
KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNjIgIi4vaW5jbHVkZS9saW51eC9rcmVmLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQga3JlZl9wdXQoc3RydWN0IGtyZWYgKmtyZWYsIHZvaWQgKCpyZWxlYXNlKShzdHJ1Y3Qga3Jl
ZiAqa3JlZikpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKHJlZmNvdW50X2RlY19hbmRfdGVzdCgma3Jl
Zi0+cmVmY291bnQpKSB7CjE0NDc0OiAgIHJlbGVhc2Uoa3JlZik7CjE0NDc0OiAgIHJldHVybiAx
OwoxNDQ3NDogIH0KMTQ0NzQ6ICByZXR1cm4gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50
IGtyZWZfcHV0X211dGV4KHN0cnVjdCBrcmVmICprcmVmLAoxNDQ3NDogICAgICB2b2lkICgqcmVs
ZWFzZSkoc3RydWN0IGtyZWYgKmtyZWYpLAoxNDQ3NDogICAgICBzdHJ1Y3QgbXV0ZXggKmxvY2sp
CjE0NDc0OiB7CjE0NDc0OiAgaWYgKHJlZmNvdW50X2RlY19hbmRfbXV0ZXhfbG9jaygma3JlZi0+
cmVmY291bnQsIGxvY2spKSB7CjE0NDc0OiAgIHJlbGVhc2Uoa3JlZik7CjE0NDc0OiAgIHJldHVy
biAxOwoxNDQ3NDogIH0KMTQ0NzQ6ICByZXR1cm4gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
aW50IGtyZWZfcHV0X2xvY2soc3RydWN0IGtyZWYgKmtyZWYsCjE0NDc0OiAgICAgdm9pZCAoKnJl
bGVhc2UpKHN0cnVjdCBrcmVmICprcmVmKSwKMTQ0NzQ6ICAgICBzcGlubG9ja190ICpsb2NrKQox
NDQ3NDogewoxNDQ3NDogIGlmIChyZWZjb3VudF9kZWNfYW5kX2xvY2soJmtyZWYtPnJlZmNvdW50
LCBsb2NrKSkgewoxNDQ3NDogICByZWxlYXNlKGtyZWYpOwoxNDQ3NDogICByZXR1cm4gMTsKMTQ0
NzQ6ICB9CjE0NDc0OiAgcmV0dXJuIDA7CjE0NDc0OiB9CjE0NDc0OiAjIDEwOSAiLi9pbmNsdWRl
L2xpbnV4L2tyZWYuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jl
c3VsdF9fKSkga3JlZl9nZXRfdW5sZXNzX3plcm8oc3RydWN0IGtyZWYgKmtyZWYpCjE0NDc0OiB7
CjE0NDc0OiAgcmV0dXJuIHJlZmNvdW50X2luY19ub3RfemVybygma3JlZi0+cmVmY291bnQpOwox
NDQ3NDogfQoxNDQ3NDogIyAzMiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2RjL29zX3R5cGVzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgv
c2xhYi5oIiAxCjE0NDc0OiAjIDE1ICIuL2luY2x1ZGUvbGludXgvc2xhYi5oIgoxNDQ3NDogIyAx
ICIuL2luY2x1ZGUvbGludXgvZ2ZwLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvbW1kZWJ1Zy5oIiAxCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBw
YWdlOwoxNDQ3NDogc3RydWN0IHZtX2FyZWFfc3RydWN0OwoxNDQ3NDogc3RydWN0IG1tX3N0cnVj
dDsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgZHVtcF9wYWdlKHN0cnVjdCBwYWdlICpwYWdl
LCBjb25zdCBjaGFyICpyZWFzb24pOwoxNDQ3NDogZXh0ZXJuIHZvaWQgX19kdW1wX3BhZ2Uoc3Ry
dWN0IHBhZ2UgKnBhZ2UsIGNvbnN0IGNoYXIgKnJlYXNvbik7CjE0NDc0OiB2b2lkIGR1bXBfdm1h
KGNvbnN0IHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKMTQ0NzQ6IHZvaWQgZHVtcF9tbShj
b25zdCBzdHJ1Y3QgbW1fc3RydWN0ICptbSk7CjE0NDc0OiAjIDYgIi4vaW5jbHVkZS9saW51eC9n
ZnAuaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiIDEKMTQ0NzQ6ICMg
MTAgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4
L3dhaXQuaCIgMQoxNDQ3NDogIyAxMiAiLi9pbmNsdWRlL2xpbnV4L3dhaXQuaCIKMTQ0NzQ6ICMg
MSAiLi9pbmNsdWRlL3VhcGkvbGludXgvd2FpdC5oIiAxCjE0NDc0OiAjIDEzICIuL2luY2x1ZGUv
bGludXgvd2FpdC5oIiAyCjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IHdhaXRfcXVldWVf
ZW50cnkgd2FpdF9xdWV1ZV9lbnRyeV90OwoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIGludCAoKndh
aXRfcXVldWVfZnVuY190KShzdHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRyeSAqd3FfZW50cnksIHVuc2ln
bmVkIG1vZGUsIGludCBmbGFncywgdm9pZCAqa2V5KTsKMTQ0NzQ6IGludCBkZWZhdWx0X3dha2Vf
ZnVuY3Rpb24oc3RydWN0IHdhaXRfcXVldWVfZW50cnkgKndxX2VudHJ5LCB1bnNpZ25lZCBtb2Rl
LCBpbnQgZmxhZ3MsIHZvaWQgKmtleSk7CjE0NDc0OiAjIDI3ICIuL2luY2x1ZGUvbGludXgvd2Fp
dC5oIgoxNDQ3NDogc3RydWN0IHdhaXRfcXVldWVfZW50cnkgewoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBmbGFnczsKMTQ0NzQ6ICB2b2lkICpwcml2YXRlOwoxNDQ3NDogIHdhaXRfcXVldWVfZnVuY190
IGZ1bmM7CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBlbnRyeTsKMTQ0NzQ6IH07CjE0NDc0OiAK
MTQ0NzQ6IHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgewoxNDQ3NDogIHNwaW5sb2NrX3QgbG9jazsK
MTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7CjE0NDc0OiB9OwoxNDQ3NDogdHlwZWRlZiBz
dHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkIHdhaXRfcXVldWVfaGVhZF90OwoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3QgdGFza19zdHJ1Y3Q7CjE0NDc0OiAjIDYxICIuL2luY2x1ZGUvbGludXgvd2FpdC5oIgox
NDQ3NDogZXh0ZXJuIHZvaWQgX19pbml0X3dhaXRxdWV1ZV9oZWFkKHN0cnVjdCB3YWl0X3F1ZXVl
X2hlYWQgKndxX2hlYWQsIGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBsb2NrX2NsYXNzX2tleSAq
KTsKMTQ0NzQ6ICMgNzkgIi4vaW5jbHVkZS9saW51eC93YWl0LmgiCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGluaXRf
d2FpdHF1ZXVlX2VudHJ5KHN0cnVjdCB3YWl0X3F1ZXVlX2VudHJ5ICp3cV9lbnRyeSwgc3RydWN0
IHRhc2tfc3RydWN0ICpwKQoxNDQ3NDogewoxNDQ3NDogIHdxX2VudHJ5LT5mbGFncyA9IDA7CjE0
NDc0OiAgd3FfZW50cnktPnByaXZhdGUgPSBwOwoxNDQ3NDogIHdxX2VudHJ5LT5mdW5jID0gZGVm
YXVsdF93YWtlX2Z1bmN0aW9uOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBp
bml0X3dhaXRxdWV1ZV9mdW5jX2VudHJ5KHN0cnVjdCB3YWl0X3F1ZXVlX2VudHJ5ICp3cV9lbnRy
eSwgd2FpdF9xdWV1ZV9mdW5jX3QgZnVuYykKMTQ0NzQ6IHsKMTQ0NzQ6ICB3cV9lbnRyeS0+Zmxh
Z3MgPSAwOwoxNDQ3NDogIHdxX2VudHJ5LT5wcml2YXRlID0gKCh2b2lkICopMCk7CjE0NDc0OiAg
d3FfZW50cnktPmZ1bmMgPSBmdW5jOwoxNDQ3NDogfQoxNDQ3NDogIyAxMjQgIi4vaW5jbHVkZS9s
aW51eC93YWl0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgd2FpdHF1ZXVlX2FjdGl2ZShzdHJ1Y3Qgd2FpdF9xdWV1
ZV9oZWFkICp3cV9oZWFkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAhbGlzdF9lbXB0eSgmd3Ff
aGVhZC0+aGVhZCk7CjE0NDc0OiB9CjE0NDc0OiAjIDEzNyAiLi9pbmNsdWRlL2xpbnV4L3dhaXQu
aCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGJvb2wgd3FfaGFzX3NpbmdsZV9zbGVlcGVyKHN0cnVjdCB3YWl0X3F1ZXVlX2hl
YWQgKndxX2hlYWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGxpc3RfaXNfc2luZ3VsYXIoJndx
X2hlYWQtPmhlYWQpOwoxNDQ3NDogfQoxNDQ3NDogIyAxNTAgIi4vaW5jbHVkZS9saW51eC93YWl0
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBib29sIHdxX2hhc19zbGVlcGVyKHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKndx
X2hlYWQpCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBhc20gdm9sYXRpbGUoImxvY2s7IGFkZGwgJDAsLTQoJSVy
c3ApIiA6OjogIm1lbW9yeSIsICJjYyIpOwoxNDQ3NDogIHJldHVybiB3YWl0cXVldWVfYWN0aXZl
KHdxX2hlYWQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBhZGRfd2FpdF9x
dWV1ZShzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9oZWFkLCBzdHJ1Y3Qgd2FpdF9xdWV1ZV9l
bnRyeSAqd3FfZW50cnkpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgYWRkX3dhaXRfcXVldWVfZXhjbHVz
aXZlKHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKndxX2hlYWQsIHN0cnVjdCB3YWl0X3F1ZXVlX2Vu
dHJ5ICp3cV9lbnRyeSk7CjE0NDc0OiBleHRlcm4gdm9pZCByZW1vdmVfd2FpdF9xdWV1ZShzdHJ1
Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9oZWFkLCBzdHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRyeSAqd3Ff
ZW50cnkpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fYWRkX3dhaXRfcXVldWUoc3RydWN0IHdhaXRf
cXVldWVfaGVhZCAqd3FfaGVhZCwgc3RydWN0IHdhaXRfcXVldWVfZW50cnkgKndxX2VudHJ5KQox
NDQ3NDogewoxNDQ3NDogIGxpc3RfYWRkKCZ3cV9lbnRyeS0+ZW50cnksICZ3cV9oZWFkLT5oZWFk
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAox
NDQ3NDogX19hZGRfd2FpdF9xdWV1ZV9leGNsdXNpdmUoc3RydWN0IHdhaXRfcXVldWVfaGVhZCAq
d3FfaGVhZCwgc3RydWN0IHdhaXRfcXVldWVfZW50cnkgKndxX2VudHJ5KQoxNDQ3NDogewoxNDQ3
NDogIHdxX2VudHJ5LT5mbGFncyB8PSAweDAxOwoxNDQ3NDogIF9fYWRkX3dhaXRfcXVldWUod3Ff
aGVhZCwgd3FfZW50cnkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fYWRkX3dhaXRf
cXVldWVfZW50cnlfdGFpbChzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9oZWFkLCBzdHJ1Y3Qg
d2FpdF9xdWV1ZV9lbnRyeSAqd3FfZW50cnkpCjE0NDc0OiB7CjE0NDc0OiAgbGlzdF9hZGRfdGFp
bCgmd3FfZW50cnktPmVudHJ5LCAmd3FfaGVhZC0+aGVhZCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQKMTQ0NzQ6IF9fYWRkX3dhaXRfcXVldWVfZW50cnlfdGFpbF9leGNsdXNpdmUoc3Ry
dWN0IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgc3RydWN0IHdhaXRfcXVldWVfZW50cnkgKndx
X2VudHJ5KQoxNDQ3NDogewoxNDQ3NDogIHdxX2VudHJ5LT5mbGFncyB8PSAweDAxOwoxNDQ3NDog
IF9fYWRkX3dhaXRfcXVldWVfZW50cnlfdGFpbCh3cV9oZWFkLCB3cV9lbnRyeSk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQKMTQ0NzQ6IF9fcmVtb3ZlX3dhaXRfcXVldWUoc3RydWN0IHdh
aXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgc3RydWN0IHdhaXRfcXVldWVfZW50cnkgKndxX2VudHJ5
KQoxNDQ3NDogewoxNDQ3NDogIGxpc3RfZGVsKCZ3cV9lbnRyeS0+ZW50cnkpOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiB2b2lkIF9fd2FrZV91cChzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9o
ZWFkLCB1bnNpZ25lZCBpbnQgbW9kZSwgaW50IG5yLCB2b2lkICprZXkpOwoxNDQ3NDogdm9pZCBf
X3dha2VfdXBfbG9ja2VkX2tleShzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9oZWFkLCB1bnNp
Z25lZCBpbnQgbW9kZSwgdm9pZCAqa2V5KTsKMTQ0NzQ6IHZvaWQgX193YWtlX3VwX2xvY2tlZF9r
ZXlfYm9va21hcmsoc3RydWN0IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwKMTQ0NzQ6ICAgdW5z
aWduZWQgaW50IG1vZGUsIHZvaWQgKmtleSwgd2FpdF9xdWV1ZV9lbnRyeV90ICpib29rbWFyayk7
CjE0NDc0OiB2b2lkIF9fd2FrZV91cF9zeW5jX2tleShzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3
cV9oZWFkLCB1bnNpZ25lZCBpbnQgbW9kZSwgdm9pZCAqa2V5KTsKMTQ0NzQ6IHZvaWQgX193YWtl
X3VwX2xvY2tlZF9zeW5jX2tleShzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9oZWFkLCB1bnNp
Z25lZCBpbnQgbW9kZSwgdm9pZCAqa2V5KTsKMTQ0NzQ6IHZvaWQgX193YWtlX3VwX2xvY2tlZChz
dHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9oZWFkLCB1bnNpZ25lZCBpbnQgbW9kZSwgaW50IG5y
KTsKMTQ0NzQ6IHZvaWQgX193YWtlX3VwX3N5bmMoc3RydWN0IHdhaXRfcXVldWVfaGVhZCAqd3Ff
aGVhZCwgdW5zaWduZWQgaW50IG1vZGUpOwoxNDQ3NDogIyAyNDggIi4vaW5jbHVkZS9saW51eC93
YWl0LmgiCjE0NDc0OiBleHRlcm4gdm9pZCBpbml0X3dhaXRfZW50cnkoc3RydWN0IHdhaXRfcXVl
dWVfZW50cnkgKndxX2VudHJ5LCBpbnQgZmxhZ3MpOwoxNDQ3NDogIyA3MzIgIi4vaW5jbHVkZS9s
aW51eC93YWl0LmgiCjE0NDc0OiBleHRlcm4gaW50IGRvX3dhaXRfaW50cih3YWl0X3F1ZXVlX2hl
YWRfdCAqLCB3YWl0X3F1ZXVlX2VudHJ5X3QgKik7CjE0NDc0OiBleHRlcm4gaW50IGRvX3dhaXRf
aW50cl9pcnEod2FpdF9xdWV1ZV9oZWFkX3QgKiwgd2FpdF9xdWV1ZV9lbnRyeV90ICopOwoxNDQ3
NDogIyAxMTI2ICIuL2luY2x1ZGUvbGludXgvd2FpdC5oIgoxNDQ3NDogdm9pZCBwcmVwYXJlX3Rv
X3dhaXQoc3RydWN0IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgc3RydWN0IHdhaXRfcXVldWVf
ZW50cnkgKndxX2VudHJ5LCBpbnQgc3RhdGUpOwoxNDQ3NDogdm9pZCBwcmVwYXJlX3RvX3dhaXRf
ZXhjbHVzaXZlKHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKndxX2hlYWQsIHN0cnVjdCB3YWl0X3F1
ZXVlX2VudHJ5ICp3cV9lbnRyeSwgaW50IHN0YXRlKTsKMTQ0NzQ6IGxvbmcgcHJlcGFyZV90b193
YWl0X2V2ZW50KHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKndxX2hlYWQsIHN0cnVjdCB3YWl0X3F1
ZXVlX2VudHJ5ICp3cV9lbnRyeSwgaW50IHN0YXRlKTsKMTQ0NzQ6IHZvaWQgZmluaXNoX3dhaXQo
c3RydWN0IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgc3RydWN0IHdhaXRfcXVldWVfZW50cnkg
KndxX2VudHJ5KTsKMTQ0NzQ6IGxvbmcgd2FpdF93b2tlbihzdHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRy
eSAqd3FfZW50cnksIHVuc2lnbmVkIG1vZGUsIGxvbmcgdGltZW91dCk7CjE0NDc0OiBpbnQgd29r
ZW5fd2FrZV9mdW5jdGlvbihzdHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRyeSAqd3FfZW50cnksIHVuc2ln
bmVkIG1vZGUsIGludCBzeW5jLCB2b2lkICprZXkpOwoxNDQ3NDogaW50IGF1dG9yZW1vdmVfd2Fr
ZV9mdW5jdGlvbihzdHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRyeSAqd3FfZW50cnksIHVuc2lnbmVkIG1v
ZGUsIGludCBzeW5jLCB2b2lkICprZXkpOwoxNDQ3NDogIyAxMSAiLi9pbmNsdWRlL2xpbnV4L21t
em9uZS5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9s
aW51eC9udW1hLmgiIDEKMTQ0NzQ6ICMgMTUgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIgMgox
NDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9zZXFsb2NrLmgiIDEKMTQ0NzQ6ICMg
NDggIi4vaW5jbHVkZS9saW51eC9zZXFsb2NrLmgiCjE0NDc0OiB0eXBlZGVmIHN0cnVjdCBzZXFj
b3VudCB7CjE0NDc0OiAgdW5zaWduZWQgc2VxdWVuY2U7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiB9IHNlcWNvdW50X3Q7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19zZXFjb3VudF9pbml0
KHNlcWNvdW50X3QgKnMsIGNvbnN0IGNoYXIgKm5hbWUsCjE0NDc0OiAgICAgICAgc3RydWN0IGxv
Y2tfY2xhc3Nfa2V5ICprZXkpCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAgZG8geyAodm9pZCkobmFtZSk7ICh2b2lkKShrZXkpOyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBz
LT5zZXF1ZW5jZSA9IDA7CjE0NDc0OiB9CjE0NDc0OiAjIDEwOCAiLi9pbmNsdWRlL2xpbnV4L3Nl
cWxvY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIF9fcmVhZF9zZXFjb3VudF9iZWdpbihjb25zdCBzZXFj
b3VudF90ICpzKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIHJldDsKMTQ0NzQ6IAoxNDQ3NDog
cmVwZWF0OgoxNDQ3NDogIHJldCA9ICh7IHVuaW9uIHsgdHlwZW9mKHMtPnNlcXVlbmNlKSBfX3Zh
bDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKHMtPnNlcXVl
bmNlKSwgX191Ll9fYywgc2l6ZW9mKHMtPnNlcXVlbmNlKSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6
ZV9ub2NoZWNrKCYocy0+c2VxdWVuY2UpLCBfX3UuX19jLCBzaXplb2Yocy0+c2VxdWVuY2UpKTsg
ZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsKMTQ0NzQ6ICBpZiAoX19idWlsdGluX2V4
cGVjdCghIShyZXQgJiAxKSwgMCkpIHsKMTQ0NzQ6ICAgY3B1X3JlbGF4KCk7CjE0NDc0OiAgIGdv
dG8gcmVwZWF0OwoxNDQ3NDogIH0KMTQ0NzQ6ICByZXR1cm4gcmV0OwoxNDQ3NDogfQoxNDQ3NDog
IyAxMzAgIi4vaW5jbHVkZS9saW51eC9zZXFsb2NrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCByYXdfcmVh
ZF9zZXFjb3VudChjb25zdCBzZXFjb3VudF90ICpzKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVk
IHJldCA9ICh7IHVuaW9uIHsgdHlwZW9mKHMtPnNlcXVlbmNlKSBfX3ZhbDsgY2hhciBfX2NbMV07
IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKHMtPnNlcXVlbmNlKSwgX191Ll9fYywg
c2l6ZW9mKHMtPnNlcXVlbmNlKSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYocy0+
c2VxdWVuY2UpLCBfX3UuX19jLCBzaXplb2Yocy0+c2VxdWVuY2UpKTsgZG8geyB9IHdoaWxlICgw
KTsgX191Ll9fdmFsOyB9KTsKMTQ0NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1l
bW9yeSIpOwoxNDQ3NDogIHJldHVybiByZXQ7CjE0NDc0OiB9CjE0NDc0OiAjIDE0NiAiLi9pbmNs
dWRlL2xpbnV4L3NlcWxvY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIHJhd19yZWFkX3NlcWNvdW50X2Jl
Z2luKGNvbnN0IHNlcWNvdW50X3QgKnMpCjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgcmV0ID0g
X19yZWFkX3NlcWNvdW50X2JlZ2luKHMpOwoxNDQ3NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIi
OiA6IDoibWVtb3J5Iik7CjE0NDc0OiAgcmV0dXJuIHJldDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTYy
ICIuL2luY2x1ZGUvbGludXgvc2VxbG9jay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgcmVhZF9zZXFjb3Vu
dF9iZWdpbihjb25zdCBzZXFjb3VudF90ICpzKQoxNDQ3NDogewoxNDQ3NDogIDsKMTQ0NzQ6ICBy
ZXR1cm4gcmF3X3JlYWRfc2VxY291bnRfYmVnaW4ocyk7CjE0NDc0OiB9CjE0NDc0OiAjIDE4MiAi
Li9pbmNsdWRlL2xpbnV4L3NlcWxvY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIHJhd19zZXFjb3VudF9i
ZWdpbihjb25zdCBzZXFjb3VudF90ICpzKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIHJldCA9
ICh7IHVuaW9uIHsgdHlwZW9mKHMtPnNlcXVlbmNlKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191
OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKHMtPnNlcXVlbmNlKSwgX191Ll9fYywgc2l6ZW9m
KHMtPnNlcXVlbmNlKSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYocy0+c2VxdWVu
Y2UpLCBfX3UuX19jLCBzaXplb2Yocy0+c2VxdWVuY2UpKTsgZG8geyB9IHdoaWxlICgwKTsgX191
Ll9fdmFsOyB9KTsKMTQ0NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIp
OwoxNDQ3NDogIHJldHVybiByZXQgJiB+MTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjAzICIuL2luY2x1
ZGUvbGludXgvc2VxbG9jay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fcmVhZF9zZXFjb3VudF9yZXRyeShjb25z
dCBzZXFjb3VudF90ICpzLCB1bnNpZ25lZCBzdGFydCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
X19idWlsdGluX2V4cGVjdCghIShzLT5zZXF1ZW5jZSAhPSBzdGFydCksIDApOwoxNDQ3NDogfQox
NDQ3NDogIyAyMTggIi4vaW5jbHVkZS9saW51eC9zZXFsb2NrLmgiCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcmVhZF9z
ZXFjb3VudF9yZXRyeShjb25zdCBzZXFjb3VudF90ICpzLCB1bnNpZ25lZCBzdGFydCkKMTQ0NzQ6
IHsKMTQ0NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoxNDQ3NDog
IHJldHVybiBfX3JlYWRfc2VxY291bnRfcmV0cnkocywgc3RhcnQpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByYXdfd3JpdGVfc2VxY291bnRfYmVnaW4oc2Vx
Y291bnRfdCAqcykKMTQ0NzQ6IHsKMTQ0NzQ6ICBzLT5zZXF1ZW5jZSsrOwoxNDQ3NDogIF9fYXNt
X18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgcmF3X3dyaXRlX3NlcWNvdW50X2VuZChzZXFjb3VudF90ICpzKQoxNDQ3NDogewoxNDQ3
NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiAgcy0+c2Vx
dWVuY2UrKzsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjcyICIuL2luY2x1ZGUvbGludXgvc2VxbG9jay5o
IgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCByYXdfd3JpdGVfc2VxY291bnRfYmFycmllcihzZXFjb3VudF90ICpzKQox
NDQ3NDogewoxNDQ3NDogIHMtPnNlcXVlbmNlKys7CjE0NDc0OiAgX19hc21fXyBfX3ZvbGF0aWxl
X18oIiI6IDogOiJtZW1vcnkiKTsKMTQ0NzQ6ICBzLT5zZXF1ZW5jZSsrOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBpbnQgcmF3X3JlYWRfc2VxY291bnRfbGF0Y2goc2VxY291bnRfdCAqcykKMTQ0
NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogIGludCBzZXEgPSAoeyB1bmlvbiB7IHR5cGVvZihzLT5zZXF1
ZW5jZSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUo
JihzLT5zZXF1ZW5jZSksIF9fdS5fX2MsIHNpemVvZihzLT5zZXF1ZW5jZSkpOyBlbHNlIF9fcmVh
ZF9vbmNlX3NpemVfbm9jaGVjaygmKHMtPnNlcXVlbmNlKSwgX191Ll9fYywgc2l6ZW9mKHMtPnNl
cXVlbmNlKSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7CjE0NDc0OiAgcmV0dXJu
IHNlcTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMzYzICIuL2luY2x1ZGUvbGludXgvc2VxbG9jay5oIgox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCByYXdfd3JpdGVfc2VxY291bnRfbGF0Y2goc2VxY291bnRfdCAqcykKMTQ0NzQ6
IHsKMTQ0NzQ6ICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwox
NDQ3NDogICAgICAgIHMtPnNlcXVlbmNlKys7CjE0NDc0OiAgICAgICAgX19hc21fXyBfX3ZvbGF0
aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHdyaXRlX3NlcWNvdW50X2JlZ2luX25lc3RlZChz
ZXFjb3VudF90ICpzLCBpbnQgc3ViY2xhc3MpCjE0NDc0OiB7CjE0NDc0OiAgcmF3X3dyaXRlX3Nl
cWNvdW50X2JlZ2luKHMpOwoxNDQ3NDogIGRvIHsgfSB3aGlsZSAoMCk7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgd3JpdGVfc2VxY291bnRfYmVnaW4oc2VxY291bnRfdCAqcykKMTQ0NzQ6
IHsKMTQ0NzQ6ICB3cml0ZV9zZXFjb3VudF9iZWdpbl9uZXN0ZWQocywgMCk7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgd3JpdGVfc2VxY291bnRfZW5kKHNlcWNvdW50X3QgKnMpCjE0NDc0
OiB7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICByYXdfd3JpdGVfc2VxY291bnRf
ZW5kKHMpOwoxNDQ3NDogfQoxNDQ3NDogIyAzOTggIi4vaW5jbHVkZS9saW51eC9zZXFsb2NrLmgi
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIHdyaXRlX3NlcWNvdW50X2ludmFsaWRhdGUoc2VxY291bnRfdCAqcykKMTQ0
NzQ6IHsKMTQ0NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoxNDQ3
NDogIHMtPnNlcXVlbmNlKz0yOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHN0cnVj
dCB7CjE0NDc0OiAgc3RydWN0IHNlcWNvdW50IHNlcWNvdW50OwoxNDQ3NDogIHNwaW5sb2NrX3Qg
bG9jazsKMTQ0NzQ6IH0gc2VxbG9ja190OwoxNDQ3NDogIyA0MzEgIi4vaW5jbHVkZS9saW51eC9z
ZXFsb2NrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCByZWFkX3NlcWJlZ2luKGNvbnN0IHNlcWxvY2tfdCAq
c2wpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHJlYWRfc2VxY291bnRfYmVnaW4oJnNsLT5zZXFj
b3VudCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIHJlYWRfc2VxcmV0cnkoY29u
c3Qgc2VxbG9ja190ICpzbCwgdW5zaWduZWQgc3RhcnQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
IHJlYWRfc2VxY291bnRfcmV0cnkoJnNsLT5zZXFjb3VudCwgc3RhcnQpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB3
cml0ZV9zZXFsb2NrKHNlcWxvY2tfdCAqc2wpCjE0NDc0OiB7CjE0NDc0OiAgc3Bpbl9sb2NrKCZz
bC0+bG9jayk7CjE0NDc0OiAgd3JpdGVfc2VxY291bnRfYmVnaW4oJnNsLT5zZXFjb3VudCk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgd3JpdGVfc2VxdW5sb2NrKHNlcWxvY2tfdCAqc2wp
CjE0NDc0OiB7CjE0NDc0OiAgd3JpdGVfc2VxY291bnRfZW5kKCZzbC0+c2VxY291bnQpOwoxNDQ3
NDogIHNwaW5fdW5sb2NrKCZzbC0+bG9jayk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
d3JpdGVfc2VxbG9ja19iaChzZXFsb2NrX3QgKnNsKQoxNDQ3NDogewoxNDQ3NDogIHNwaW5fbG9j
a19iaCgmc2wtPmxvY2spOwoxNDQ3NDogIHdyaXRlX3NlcWNvdW50X2JlZ2luKCZzbC0+c2VxY291
bnQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHdyaXRlX3NlcXVubG9ja19iaChzZXFs
b2NrX3QgKnNsKQoxNDQ3NDogewoxNDQ3NDogIHdyaXRlX3NlcWNvdW50X2VuZCgmc2wtPnNlcWNv
dW50KTsKMTQ0NzQ6ICBzcGluX3VubG9ja19iaCgmc2wtPmxvY2spOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIHdyaXRlX3NlcWxvY2tfaXJxKHNlcWxvY2tfdCAqc2wpCjE0NDc0OiB7CjE0
NDc0OiAgc3Bpbl9sb2NrX2lycSgmc2wtPmxvY2spOwoxNDQ3NDogIHdyaXRlX3NlcWNvdW50X2Jl
Z2luKCZzbC0+c2VxY291bnQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHdyaXRlX3Nl
cXVubG9ja19pcnEoc2VxbG9ja190ICpzbCkKMTQ0NzQ6IHsKMTQ0NzQ6ICB3cml0ZV9zZXFjb3Vu
dF9lbmQoJnNsLT5zZXFjb3VudCk7CjE0NDc0OiAgc3Bpbl91bmxvY2tfaXJxKCZzbC0+bG9jayk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgX193cml0ZV9zZXFsb2NrX2ly
cXNhdmUoc2VxbG9ja190ICpzbCkKMTQ0NzQ6IHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGZsYWdz
OwoxNDQ3NDogCjE0NDc0OiAgZG8geyBkbyB7ICh7IHVuc2lnbmVkIGxvbmcgX19kdW1teTsgdHlw
ZW9mKGZsYWdzKSBfX2R1bW15MjsgKHZvaWQpKCZfX2R1bW15ID09ICZfX2R1bW15Mik7IDE7IH0p
OyBmbGFncyA9IF9yYXdfc3Bpbl9sb2NrX2lycXNhdmUoc3BpbmxvY2tfY2hlY2soJnNsLT5sb2Nr
KSk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICB3cml0ZV9zZXFjb3VudF9iZWdp
bigmc2wtPnNlcWNvdW50KTsKMTQ0NzQ6ICByZXR1cm4gZmxhZ3M7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKMTQ0NzQ6IHdyaXRlX3NlcXVubG9j
a19pcnFyZXN0b3JlKHNlcWxvY2tfdCAqc2wsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCjE0NDc0OiB7
CjE0NDc0OiAgd3JpdGVfc2VxY291bnRfZW5kKCZzbC0+c2VxY291bnQpOwoxNDQ3NDogIHNwaW5f
dW5sb2NrX2lycXJlc3RvcmUoJnNsLT5sb2NrLCBmbGFncyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJlYWRfc2Vx
bG9ja19leGNsKHNlcWxvY2tfdCAqc2wpCjE0NDc0OiB7CjE0NDc0OiAgc3Bpbl9sb2NrKCZzbC0+
bG9jayk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcmVhZF9zZXF1bmxvY2tfZXhjbChz
ZXFsb2NrX3QgKnNsKQoxNDQ3NDogewoxNDQ3NDogIHNwaW5fdW5sb2NrKCZzbC0+bG9jayk7CjE0
NDc0OiB9CjE0NDc0OiAjIDUyNiAiLi9pbmNsdWRlL2xpbnV4L3NlcWxvY2suaCIKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgcmVhZF9zZXFiZWdpbl9vcl9sb2NrKHNlcWxvY2tfdCAqbG9jaywgaW50ICpzZXEpCjE0NDc0
OiB7CjE0NDc0OiAgaWYgKCEoKnNlcSAmIDEpKQoxNDQ3NDogICAqc2VxID0gcmVhZF9zZXFiZWdp
bihsb2NrKTsKMTQ0NzQ6ICBlbHNlCjE0NDc0OiAgIHJlYWRfc2VxbG9ja19leGNsKGxvY2spOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgbmVlZF9zZXFyZXRyeShzZXFsb2NrX3QgKmxvY2ss
IGludCBzZXEpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICEoc2VxICYgMSkgJiYgcmVhZF9zZXFy
ZXRyeShsb2NrLCBzZXEpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGRvbmVfc2VxcmV0
cnkoc2VxbG9ja190ICpsb2NrLCBpbnQgc2VxKQoxNDQ3NDogewoxNDQ3NDogIGlmIChzZXEgJiAx
KQoxNDQ3NDogICByZWFkX3NlcXVubG9ja19leGNsKGxvY2spOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIHJlYWRfc2VxbG9ja19leGNsX2JoKHNlcWxvY2tfdCAqc2wpCjE0NDc0OiB7CjE0
NDc0OiAgc3Bpbl9sb2NrX2JoKCZzbC0+bG9jayk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgcmVhZF9zZXF1bmxvY2tfZXhjbF9iaChzZXFsb2NrX3QgKnNsKQoxNDQ3NDogewoxNDQ3NDog
IHNwaW5fdW5sb2NrX2JoKCZzbC0+bG9jayk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
cmVhZF9zZXFsb2NrX2V4Y2xfaXJxKHNlcWxvY2tfdCAqc2wpCjE0NDc0OiB7CjE0NDc0OiAgc3Bp
bl9sb2NrX2lycSgmc2wtPmxvY2spOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJlYWRf
c2VxdW5sb2NrX2V4Y2xfaXJxKHNlcWxvY2tfdCAqc2wpCjE0NDc0OiB7CjE0NDc0OiAgc3Bpbl91
bmxvY2tfaXJxKCZzbC0+bG9jayk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxv
bmcgX19yZWFkX3NlcWxvY2tfZXhjbF9pcnFzYXZlKHNlcWxvY2tfdCAqc2wpCjE0NDc0OiB7CjE0
NDc0OiAgdW5zaWduZWQgbG9uZyBmbGFnczsKMTQ0NzQ6IAoxNDQ3NDogIGRvIHsgZG8geyAoeyB1
bnNpZ25lZCBsb25nIF9fZHVtbXk7IHR5cGVvZihmbGFncykgX19kdW1teTI7ICh2b2lkKSgmX19k
dW1teSA9PSAmX19kdW1teTIpOyAxOyB9KTsgZmxhZ3MgPSBfcmF3X3NwaW5fbG9ja19pcnFzYXZl
KHNwaW5sb2NrX2NoZWNrKCZzbC0+bG9jaykpOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7CjE0
NDc0OiAgcmV0dXJuIGZsYWdzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiByZWFkX3NlcXVubG9ja19leGNsX2lycXJlc3RvcmUoc2Vx
bG9ja190ICpzbCwgdW5zaWduZWQgbG9uZyBmbGFncykKMTQ0NzQ6IHsKMTQ0NzQ6ICBzcGluX3Vu
bG9ja19pcnFyZXN0b3JlKCZzbC0+bG9jaywgZmxhZ3MpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB1bnNpZ25lZCBsb25nCjE0NDc0OiByZWFkX3NlcWJlZ2luX29yX2xvY2tfaXJxc2F2ZShzZXFs
b2NrX3QgKmxvY2ssIGludCAqc2VxKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZmxh
Z3MgPSAwOwoxNDQ3NDogCjE0NDc0OiAgaWYgKCEoKnNlcSAmIDEpKQoxNDQ3NDogICAqc2VxID0g
cmVhZF9zZXFiZWdpbihsb2NrKTsKMTQ0NzQ6ICBlbHNlCjE0NDc0OiAgIGRvIHsgZmxhZ3MgPSBf
X3JlYWRfc2VxbG9ja19leGNsX2lycXNhdmUobG9jayk7IH0gd2hpbGUgKDApOwoxNDQ3NDogCjE0
NDc0OiAgcmV0dXJuIGZsYWdzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBk
b25lX3NlcXJldHJ5X2lycXJlc3RvcmUoc2VxbG9ja190ICpsb2NrLCBpbnQgc2VxLCB1bnNpZ25l
ZCBsb25nIGZsYWdzKQoxNDQ3NDogewoxNDQ3NDogIGlmIChzZXEgJiAxKQoxNDQ3NDogICByZWFk
X3NlcXVubG9ja19leGNsX2lycXJlc3RvcmUobG9jaywgZmxhZ3MpOwoxNDQ3NDogfQoxNDQ3NDog
IyAxNyAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9s
aW51eC9ub2RlbWFzay5oIiAxCjE0NDc0OiAjIDk4ICIuL2luY2x1ZGUvbGludXgvbm9kZW1hc2su
aCIKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IHsgdW5zaWduZWQgbG9uZyBiaXRzWygoKCgxIDw8IDAp
KSArICgoc2l6ZW9mKGxvbmcpICogOCkpIC0gMSkgLyAoKHNpemVvZihsb25nKSAqIDgpKSldOyB9
IG5vZGVtYXNrX3Q7CjE0NDc0OiBleHRlcm4gbm9kZW1hc2tfdCBfdW51c2VkX25vZGVtYXNrX2Fy
Z187CjE0NDc0OiAjIDEwOSAiLi9pbmNsdWRlL2xpbnV4L25vZGVtYXNrLmgiCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNp
Z25lZCBpbnQgX19ub2RlbWFza19wcl9udW1ub2Rlcyhjb25zdCBub2RlbWFza190ICptKQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiBtID8gKDEgPDwgMCkgOiAwOwoxNDQ3NDogfQoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY29u
c3QgdW5zaWduZWQgbG9uZyAqX19ub2RlbWFza19wcl9iaXRzKGNvbnN0IG5vZGVtYXNrX3QgKm0p
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIG0gPyBtLT5iaXRzIDogKCh2b2lkICopMCk7CjE0NDc0
OiB9CjE0NDc0OiAjIDEyOCAiLi9pbmNsdWRlL2xpbnV4L25vZGVtYXNrLmgiCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0
dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19ub2RlX3NldChpbnQgbm9kZSwg
dm9sYXRpbGUgbm9kZW1hc2tfdCAqZHN0cCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBzZXRfYml0KG5vZGUs
IGRzdHAtPmJpdHMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19ub2Rl
X2NsZWFyKGludCBub2RlLCB2b2xhdGlsZSBub2RlbWFza190ICpkc3RwKQoxNDQ3NDogewoxNDQ3
NDogIGNsZWFyX2JpdChub2RlLCBkc3RwLT5iaXRzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIF9fbm9kZXNfc2V0YWxsKG5vZGVtYXNrX3QgKmRzdHAsIHVuc2lnbmVkIGlu
dCBuYml0cykKMTQ0NzQ6IHsKMTQ0NzQ6ICBiaXRtYXBfZmlsbChkc3RwLT5iaXRzLCBuYml0cyk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX25vZGVzX2NsZWFyKG5vZGVt
YXNrX3QgKmRzdHAsIHVuc2lnbmVkIGludCBuYml0cykKMTQ0NzQ6IHsKMTQ0NzQ6ICBiaXRtYXBf
emVybyhkc3RwLT5iaXRzLCBuYml0cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19ub2RlX3Rlc3RfYW5kX3NldChp
bnQgbm9kZSwgbm9kZW1hc2tfdCAqYWRkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdGVzdF9h
bmRfc2V0X2JpdChub2RlLCBhZGRyLT5iaXRzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgX19ub2Rlc19hbmQobm9kZW1hc2tfdCAqZHN0cCwgY29uc3Qgbm9k
ZW1hc2tfdCAqc3JjMXAsCjE0NDc0OiAgICAgIGNvbnN0IG5vZGVtYXNrX3QgKnNyYzJwLCB1bnNp
Z25lZCBpbnQgbmJpdHMpCjE0NDc0OiB7CjE0NDc0OiAgYml0bWFwX2FuZChkc3RwLT5iaXRzLCBz
cmMxcC0+Yml0cywgc3JjMnAtPmJpdHMsIG5iaXRzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgX19ub2Rlc19vcihub2RlbWFza190ICpkc3RwLCBjb25zdCBu
b2RlbWFza190ICpzcmMxcCwKMTQ0NzQ6ICAgICAgY29uc3Qgbm9kZW1hc2tfdCAqc3JjMnAsIHVu
c2lnbmVkIGludCBuYml0cykKMTQ0NzQ6IHsKMTQ0NzQ6ICBiaXRtYXBfb3IoZHN0cC0+Yml0cywg
c3JjMXAtPmJpdHMsIHNyYzJwLT5iaXRzLCBuYml0cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fbm9kZXNfeG9yKG5vZGVtYXNrX3QgKmRzdHAsIGNvbnN0
IG5vZGVtYXNrX3QgKnNyYzFwLAoxNDQ3NDogICAgICBjb25zdCBub2RlbWFza190ICpzcmMycCwg
dW5zaWduZWQgaW50IG5iaXRzKQoxNDQ3NDogewoxNDQ3NDogIGJpdG1hcF94b3IoZHN0cC0+Yml0
cywgc3JjMXAtPmJpdHMsIHNyYzJwLT5iaXRzLCBuYml0cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fbm9kZXNfYW5kbm90KG5vZGVtYXNrX3QgKmRzdHAs
IGNvbnN0IG5vZGVtYXNrX3QgKnNyYzFwLAoxNDQ3NDogICAgICBjb25zdCBub2RlbWFza190ICpz
cmMycCwgdW5zaWduZWQgaW50IG5iaXRzKQoxNDQ3NDogewoxNDQ3NDogIGJpdG1hcF9hbmRub3Qo
ZHN0cC0+Yml0cywgc3JjMXAtPmJpdHMsIHNyYzJwLT5iaXRzLCBuYml0cyk7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fbm9kZXNfY29tcGxlbWVudChub2Rl
bWFza190ICpkc3RwLAoxNDQ3NDogICAgICBjb25zdCBub2RlbWFza190ICpzcmNwLCB1bnNpZ25l
ZCBpbnQgbmJpdHMpCjE0NDc0OiB7CjE0NDc0OiAgYml0bWFwX2NvbXBsZW1lbnQoZHN0cC0+Yml0
cywgc3JjcC0+Yml0cywgbmJpdHMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgaW50IF9fbm9kZXNfZXF1YWwoY29uc3Qgbm9kZW1hc2tfdCAqc3JjMXAsCjE0NDc0OiAg
ICAgIGNvbnN0IG5vZGVtYXNrX3QgKnNyYzJwLCB1bnNpZ25lZCBpbnQgbmJpdHMpCjE0NDc0OiB7
CjE0NDc0OiAgcmV0dXJuIGJpdG1hcF9lcXVhbChzcmMxcC0+Yml0cywgc3JjMnAtPmJpdHMsIG5i
aXRzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX25vZGVz
X2ludGVyc2VjdHMoY29uc3Qgbm9kZW1hc2tfdCAqc3JjMXAsCjE0NDc0OiAgICAgIGNvbnN0IG5v
ZGVtYXNrX3QgKnNyYzJwLCB1bnNpZ25lZCBpbnQgbmJpdHMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuIGJpdG1hcF9pbnRlcnNlY3RzKHNyYzFwLT5iaXRzLCBzcmMycC0+Yml0cywgbmJpdHMpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fbm9kZXNfc3Vic2V0
KGNvbnN0IG5vZGVtYXNrX3QgKnNyYzFwLAoxNDQ3NDogICAgICBjb25zdCBub2RlbWFza190ICpz
cmMycCwgdW5zaWduZWQgaW50IG5iaXRzKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBiaXRtYXBf
c3Vic2V0KHNyYzFwLT5iaXRzLCBzcmMycC0+Yml0cywgbmJpdHMpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludCBfX25vZGVzX2VtcHR5KGNvbnN0IG5vZGVtYXNrX3QgKnNyY3As
IHVuc2lnbmVkIGludCBuYml0cykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYml0bWFwX2VtcHR5
KHNyY3AtPmJpdHMsIG5iaXRzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
X19ub2Rlc19mdWxsKGNvbnN0IG5vZGVtYXNrX3QgKnNyY3AsIHVuc2lnbmVkIGludCBuYml0cykK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYml0bWFwX2Z1bGwoc3JjcC0+Yml0cywgbmJpdHMpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX25vZGVzX3dlaWdodChjb25zdCBu
b2RlbWFza190ICpzcmNwLCB1bnNpZ25lZCBpbnQgbmJpdHMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuIGJpdG1hcF93ZWlnaHQoc3JjcC0+Yml0cywgbmJpdHMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX25vZGVzX3NoaWZ0X3JpZ2h0KG5vZGVtYXNrX3Qg
KmRzdHAsCjE0NDc0OiAgICAgIGNvbnN0IG5vZGVtYXNrX3QgKnNyY3AsIGludCBuLCBpbnQgbmJp
dHMpCjE0NDc0OiB7CjE0NDc0OiAgYml0bWFwX3NoaWZ0X3JpZ2h0KGRzdHAtPmJpdHMsIHNyY3At
PmJpdHMsIG4sIG5iaXRzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgX19ub2Rlc19zaGlmdF9sZWZ0KG5vZGVtYXNrX3QgKmRzdHAsCjE0NDc0OiAgICAgIGNv
bnN0IG5vZGVtYXNrX3QgKnNyY3AsIGludCBuLCBpbnQgbmJpdHMpCjE0NDc0OiB7CjE0NDc0OiAg
Yml0bWFwX3NoaWZ0X2xlZnQoZHN0cC0+Yml0cywgc3JjcC0+Yml0cywgbiwgbmJpdHMpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBf
X2ZpcnN0X25vZGUoY29uc3Qgbm9kZW1hc2tfdCAqc3JjcCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gX19idWlsdGluX2Nob29zZV9leHByKCgoISEoc2l6ZW9mKCh0eXBlb2YoKGludCkoKDEgPDwg
MCkpKSAqKTEgPT0gKHR5cGVvZigoaW50KShmaW5kX2ZpcnN0X2JpdChzcmNwLT5iaXRzLCAoMSA8
PCAwKSkpKSAqKTEpKSkgJiYgKChzaXplb2YoaW50KSA9PSBzaXplb2YoKig4ID8gKCh2b2lkICop
KChsb25nKSgoaW50KSgoMSA8PCAwKSkpICogMGwpKSA6IChpbnQgKik4KSkpICYmIChzaXplb2Yo
aW50KSA9PSBzaXplb2YoKig4ID8gKCh2b2lkICopKChsb25nKSgoaW50KShmaW5kX2ZpcnN0X2Jp
dChzcmNwLT5iaXRzLCAoMSA8PCAwKSkpKSAqIDBsKSkgOiAoaW50ICopOCkpKSkpLCAoKChpbnQp
KCgxIDw8IDApKSkgPCAoKGludCkoZmluZF9maXJzdF9iaXQoc3JjcC0+Yml0cywgKDEgPDwgMCkp
KSkgPyAoKGludCkoKDEgPDwgMCkpKSA6ICgoaW50KShmaW5kX2ZpcnN0X2JpdChzcmNwLT5iaXRz
LCAoMSA8PCAwKSkpKSksICh7IHR5cGVvZigoaW50KSgoMSA8PCAwKSkpIF9fVU5JUVVFX0lEX19f
eDIgPSAoKGludCkoKDEgPDwgMCkpKTsgdHlwZW9mKChpbnQpKGZpbmRfZmlyc3RfYml0KHNyY3At
PmJpdHMsICgxIDw8IDApKSkpIF9fVU5JUVVFX0lEX19feTMgPSAoKGludCkoZmluZF9maXJzdF9i
aXQoc3JjcC0+Yml0cywgKDEgPDwgMCkpKSk7ICgoX19VTklRVUVfSURfX194MikgPCAoX19VTklR
VUVfSURfX195MykgPyAoX19VTklRVUVfSURfX194MikgOiAoX19VTklRVUVfSURfX195MykpOyB9
KSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fbmV4dF9ub2RlKGludCBu
LCBjb25zdCBub2RlbWFza190ICpzcmNwKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2J1aWx0
aW5fY2hvb3NlX2V4cHIoKCghIShzaXplb2YoKHR5cGVvZigoaW50KSgoMSA8PCAwKSkpICopMSA9
PSAodHlwZW9mKChpbnQpKGZpbmRfbmV4dF9iaXQoc3JjcC0+Yml0cywgKDEgPDwgMCksIG4rMSkp
KSAqKTEpKSkgJiYgKChzaXplb2YoaW50KSA9PSBzaXplb2YoKig4ID8gKCh2b2lkICopKChsb25n
KSgoaW50KSgoMSA8PCAwKSkpICogMGwpKSA6IChpbnQgKik4KSkpICYmIChzaXplb2YoaW50KSA9
PSBzaXplb2YoKig4ID8gKCh2b2lkICopKChsb25nKSgoaW50KShmaW5kX25leHRfYml0KHNyY3At
PmJpdHMsICgxIDw8IDApLCBuKzEpKSkgKiAwbCkpIDogKGludCAqKTgpKSkpKSwgKCgoaW50KSgo
MSA8PCAwKSkpIDwgKChpbnQpKGZpbmRfbmV4dF9iaXQoc3JjcC0+Yml0cywgKDEgPDwgMCksIG4r
MSkpKSA/ICgoaW50KSgoMSA8PCAwKSkpIDogKChpbnQpKGZpbmRfbmV4dF9iaXQoc3JjcC0+Yml0
cywgKDEgPDwgMCksIG4rMSkpKSksICh7IHR5cGVvZigoaW50KSgoMSA8PCAwKSkpIF9fVU5JUVVF
X0lEX19feDQgPSAoKGludCkoKDEgPDwgMCkpKTsgdHlwZW9mKChpbnQpKGZpbmRfbmV4dF9iaXQo
c3JjcC0+Yml0cywgKDEgPDwgMCksIG4rMSkpKSBfX1VOSVFVRV9JRF9fX3k1ID0gKChpbnQpKGZp
bmRfbmV4dF9iaXQoc3JjcC0+Yml0cywgKDEgPDwgMCksIG4rMSkpKTsgKChfX1VOSVFVRV9JRF9f
X3g0KSA8IChfX1VOSVFVRV9JRF9fX3k1KSA/IChfX1VOSVFVRV9JRF9fX3g0KSA6IChfX1VOSVFV
RV9JRF9fX3k1KSk7IH0pKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGludCBfX25leHRfbm9kZV9pbihpbnQgbm9kZSwgY29u
c3Qgbm9kZW1hc2tfdCAqc3JjcCk7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaW5pdF9ub2RlbWFza19v
Zl9ub2RlKG5vZGVtYXNrX3QgKm1hc2ssIGludCBub2RlKQoxNDQ3NDogewoxNDQ3NDogIF9fbm9k
ZXNfY2xlYXIoJigqbWFzayksICgxIDw8IDApKTsKMTQ0NzQ6ICBfX25vZGVfc2V0KChub2RlKSwg
JigqbWFzaykpOwoxNDQ3NDogfQoxNDQ3NDogIyAyOTkgIi4vaW5jbHVkZS9saW51eC9ub2RlbWFz
ay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgaW50IF9fZmlyc3RfdW5zZXRfbm9kZShjb25zdCBub2RlbWFza190ICptYXNr
cCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19idWlsdGluX2Nob29zZV9leHByKCgoISEoc2l6
ZW9mKCh0eXBlb2YoKGludCkoKDEgPDwgMCkpKSAqKTEgPT0gKHR5cGVvZigoaW50KShmaW5kX2Zp
cnN0X3plcm9fYml0KG1hc2twLT5iaXRzLCAoMSA8PCAwKSkpKSAqKTEpKSkgJiYgKChzaXplb2Yo
aW50KSA9PSBzaXplb2YoKig4ID8gKCh2b2lkICopKChsb25nKSgoaW50KSgoMSA8PCAwKSkpICog
MGwpKSA6IChpbnQgKik4KSkpICYmIChzaXplb2YoaW50KSA9PSBzaXplb2YoKig4ID8gKCh2b2lk
ICopKChsb25nKSgoaW50KShmaW5kX2ZpcnN0X3plcm9fYml0KG1hc2twLT5iaXRzLCAoMSA8PCAw
KSkpKSAqIDBsKSkgOiAoaW50ICopOCkpKSkpLCAoKChpbnQpKCgxIDw8IDApKSkgPCAoKGludCko
ZmluZF9maXJzdF96ZXJvX2JpdChtYXNrcC0+Yml0cywgKDEgPDwgMCkpKSkgPyAoKGludCkoKDEg
PDwgMCkpKSA6ICgoaW50KShmaW5kX2ZpcnN0X3plcm9fYml0KG1hc2twLT5iaXRzLCAoMSA8PCAw
KSkpKSksICh7IHR5cGVvZigoaW50KSgoMSA8PCAwKSkpIF9fVU5JUVVFX0lEX19feDYgPSAoKGlu
dCkoKDEgPDwgMCkpKTsgdHlwZW9mKChpbnQpKGZpbmRfZmlyc3RfemVyb19iaXQobWFza3AtPmJp
dHMsICgxIDw8IDApKSkpIF9fVU5JUVVFX0lEX19feTcgPSAoKGludCkoZmluZF9maXJzdF96ZXJv
X2JpdChtYXNrcC0+Yml0cywgKDEgPDwgMCkpKSk7ICgoX19VTklRVUVfSURfX194NikgPCAoX19V
TklRVUVfSURfX195NykgPyAoX19VTklRVUVfSURfX194NikgOiAoX19VTklRVUVfSURfX195Nykp
OyB9KSkKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOwoxNDQ3NDogfQoxNDQ3NDogIyAzMzMgIi4vaW5jbHVkZS9saW51eC9ub2RlbWFzay5o
IgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50IF9fbm9kZW1hc2tfcGFyc2VfdXNlcihjb25zdCBjaGFyICpidWYsIGludCBs
ZW4sCjE0NDc0OiAgICAgIG5vZGVtYXNrX3QgKmRzdHAsIGludCBuYml0cykKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gYml0bWFwX3BhcnNlX3VzZXIoYnVmLCBsZW4sIGRzdHAtPmJpdHMsIG5iaXRz
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19ub2RlbGlzdF9wYXJzZShj
b25zdCBjaGFyICpidWYsIG5vZGVtYXNrX3QgKmRzdHAsIGludCBuYml0cykKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gYml0bWFwX3BhcnNlbGlzdChidWYsIGRzdHAtPmJpdHMsIG5iaXRzKTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX25vZGVfcmVtYXAoaW50
IG9sZGJpdCwKMTQ0NzQ6ICAgY29uc3Qgbm9kZW1hc2tfdCAqb2xkcCwgY29uc3Qgbm9kZW1hc2tf
dCAqbmV3cCwgaW50IG5iaXRzKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBiaXRtYXBfYml0cmVt
YXAob2xkYml0LCBvbGRwLT5iaXRzLCBuZXdwLT5iaXRzLCBuYml0cyk7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fbm9kZXNfcmVtYXAobm9kZW1hc2tfdCAq
ZHN0cCwgY29uc3Qgbm9kZW1hc2tfdCAqc3JjcCwKMTQ0NzQ6ICAgY29uc3Qgbm9kZW1hc2tfdCAq
b2xkcCwgY29uc3Qgbm9kZW1hc2tfdCAqbmV3cCwgaW50IG5iaXRzKQoxNDQ3NDogewoxNDQ3NDog
IGJpdG1hcF9yZW1hcChkc3RwLT5iaXRzLCBzcmNwLT5iaXRzLCBvbGRwLT5iaXRzLCBuZXdwLT5i
aXRzLCBuYml0cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IF9fbm9kZXNfb250byhub2RlbWFza190ICpkc3RwLCBjb25zdCBub2RlbWFza190ICpvcmlncCwK
MTQ0NzQ6ICAgY29uc3Qgbm9kZW1hc2tfdCAqcmVsbWFwcCwgaW50IG5iaXRzKQoxNDQ3NDogewox
NDQ3NDogIGJpdG1hcF9vbnRvKGRzdHAtPmJpdHMsIG9yaWdwLT5iaXRzLCByZWxtYXBwLT5iaXRz
LCBuYml0cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9f
bm9kZXNfZm9sZChub2RlbWFza190ICpkc3RwLCBjb25zdCBub2RlbWFza190ICpvcmlncCwKMTQ0
NzQ6ICAgaW50IHN6LCBpbnQgbmJpdHMpCjE0NDc0OiB7CjE0NDc0OiAgYml0bWFwX2ZvbGQoZHN0
cC0+Yml0cywgb3JpZ3AtPmJpdHMsIHN6LCBuYml0cyk7CjE0NDc0OiB9CjE0NDc0OiAjIDM5MSAi
Li9pbmNsdWRlL2xpbnV4L25vZGVtYXNrLmgiCjE0NDc0OiBlbnVtIG5vZGVfc3RhdGVzIHsKMTQ0
NzQ6ICBOX1BPU1NJQkxFLAoxNDQ3NDogIE5fT05MSU5FLAoxNDQ3NDogIE5fTk9STUFMX01FTU9S
WSwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBOX0hJR0hfTUVNT1JZID0gTl9OT1JN
QUxfTUVNT1JZLAoxNDQ3NDogCjE0NDc0OiAgTl9NRU1PUlksCjE0NDc0OiAgTl9DUFUsCjE0NDc0
OiAgTlJfTk9ERV9TVEFURVMKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gbm9kZW1hc2tfdCBub2RlX3N0YXRlc1tO
Ul9OT0RFX1NUQVRFU107CjE0NDc0OiAjIDQ2NCAiLi9pbmNsdWRlL2xpbnV4L25vZGVtYXNrLmgi
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBpbnQgbm9kZV9zdGF0ZShpbnQgbm9kZSwgZW51bSBub2RlX3N0YXRlcyBzdGF0ZSkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gbm9kZSA9PSAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIG5vZGVfc2V0X3N0YXRlKGludCBub2RlLCBlbnVtIG5vZGVfc3RhdGVzIHN0YXRlKQox
NDQ3NDogewoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIG5vZGVfY2xlYXJfc3RhdGUoaW50
IG5vZGUsIGVudW0gbm9kZV9zdGF0ZXMgc3RhdGUpCjE0NDc0OiB7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGludCBudW1fbm9kZV9zdGF0ZShlbnVtIG5vZGVfc3RhdGVzIHN0YXRlKQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiAxOwoxNDQ3NDogfQoxNDQ3NDogIyA0OTkgIi4vaW5jbHVkZS9saW51
eC9ub2RlbWFzay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IG5vZGVfcmFuZG9tKGNvbnN0IG5vZGVtYXNrX3QgKm1h
c2spCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIDA7CjE0NDc0OiB9CjE0NDc0OiAjIDUzMSAiLi9p
bmNsdWRlL2xpbnV4L25vZGVtYXNrLmgiCjE0NDc0OiBzdHJ1Y3Qgbm9kZW1hc2tfc2NyYXRjaCB7
CjE0NDc0OiAgbm9kZW1hc2tfdCBtYXNrMTsKMTQ0NzQ6ICBub2RlbWFza190IG1hc2syOwoxNDQ3
NDogfTsKMTQ0NzQ6ICMgMTggIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIgMgoxNDQ3NDogIyAx
ICIuL2luY2x1ZGUvbGludXgvcGFnZWJsb2NrLWZsYWdzLmgiIDEKMTQ0NzQ6ICMgMTggIi4vaW5j
bHVkZS9saW51eC9wYWdlYmxvY2stZmxhZ3MuaCIKMTQ0NzQ6IGVudW0gcGFnZWJsb2NrX2JpdHMg
ewoxNDQ3NDogIFBCX21pZ3JhdGUsCjE0NDc0OiAgUEJfbWlncmF0ZV9lbmQgPSBQQl9taWdyYXRl
ICsgMyAtIDEsCjE0NDc0OiAKMTQ0NzQ6ICBQQl9taWdyYXRlX3NraXAsCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIE5SX1BBR0VCTE9DS19CSVRTCjE0NDc0
OiB9OwoxNDQ3NDogIyA1NSAiLi9pbmNsdWRlL2xpbnV4L3BhZ2VibG9jay1mbGFncy5oIgoxNDQ3
NDogc3RydWN0IHBhZ2U7CjE0NDc0OiAKMTQ0NzQ6IHVuc2lnbmVkIGxvbmcgZ2V0X3BmbmJsb2Nr
X2ZsYWdzX21hc2soc3RydWN0IHBhZ2UgKnBhZ2UsCjE0NDc0OiAgICAgdW5zaWduZWQgbG9uZyBw
Zm4sCjE0NDc0OiAgICAgdW5zaWduZWQgbG9uZyBlbmRfYml0aWR4LAoxNDQ3NDogICAgIHVuc2ln
bmVkIGxvbmcgbWFzayk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgc2V0X3BmbmJsb2NrX2ZsYWdzX21h
c2soc3RydWN0IHBhZ2UgKnBhZ2UsCjE0NDc0OiAgICAgdW5zaWduZWQgbG9uZyBmbGFncywKMTQ0
NzQ6ICAgICB1bnNpZ25lZCBsb25nIHBmbiwKMTQ0NzQ6ICAgICB1bnNpZ25lZCBsb25nIGVuZF9i
aXRpZHgsCjE0NDc0OiAgICAgdW5zaWduZWQgbG9uZyBtYXNrKTsKMTQ0NzQ6ICMgMTkgIi4vaW5j
bHVkZS9saW51eC9tbXpvbmUuaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvcGFnZS1m
bGFncy1sYXlvdXQuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2dlbmVyYXRlZC9ib3VuZHMuaCIgMQoxNDQ3NDogIyA3ICIu
L2luY2x1ZGUvbGludXgvcGFnZS1mbGFncy1sYXlvdXQuaCIgMgoxNDQ3NDogIyAyMCAiLi9pbmNs
dWRlL2xpbnV4L21tem9uZS5oIiAyCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4
L21tX3R5cGVzLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAx
ICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXNfdGFzay5oIiAxCjE0NDc0OiAjIDE5ICIuL2luY2x1
ZGUvbGludXgvbW1fdHlwZXNfdGFzay5oIgoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL3RsYmJhdGNoLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhcmNoX3RsYmZsdXNoX3VubWFwX2JhdGNoIHsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBjcHVtYXNrIGNwdW1hc2s7
CjE0NDc0OiB9OwoxNDQ3NDogIyAyMCAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzX3Rhc2suaCIg
MgoxNDQ3NDogIyAzNCAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzX3Rhc2suaCIKMTQ0NzQ6IHN0
cnVjdCB2bWFjYWNoZSB7CjE0NDc0OiAgdTY0IHNlcW51bTsKMTQ0NzQ6ICBzdHJ1Y3Qgdm1fYXJl
YV9zdHJ1Y3QgKnZtYXNbKDFVIDw8IDIpXTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAgTU1fRklMRVBBR0VTLAox
NDQ3NDogIE1NX0FOT05QQUdFUywKMTQ0NzQ6ICBNTV9TV0FQRU5UUywKMTQ0NzQ6ICBNTV9TSE1F
TVBBR0VTLAoxNDQ3NDogIE5SX01NX0NPVU5URVJTCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgdGFza19yc3Nfc3RhdCB7CjE0NDc0OiAgaW50
IGV2ZW50czsKMTQ0NzQ6ICBpbnQgY291bnRbTlJfTU1fQ09VTlRFUlNdOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgbW1fcnNzX3N0YXQgewoxNDQ3NDogIGF0b21pY19s
b25nX3QgY291bnRbTlJfTU1fQ09VTlRFUlNdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IHBhZ2VfZnJhZyB7CjE0NDc0OiAgc3RydWN0IHBhZ2UgKnBhZ2U7CjE0NDc0OiAKMTQ0NzQ6
ICBfX3UzMiBvZmZzZXQ7CjE0NDc0OiAgX191MzIgc2l6ZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgdGxiZmx1
c2hfdW5tYXBfYmF0Y2ggewoxNDQ3NDogIyA4NSAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzX3Rh
c2suaCIKMTQ0NzQ6ICBzdHJ1Y3QgYXJjaF90bGJmbHVzaF91bm1hcF9iYXRjaCBhcmNoOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICBib29sIGZsdXNoX3JlcXVpcmVkOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgd3JpdGFibGU7CjE0
NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAjIDYgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIiAy
CjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2F1eHZlYy5oIiAxCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgv
YXV4dmVjLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIu
L2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgiIDEKMTQ0NzQ6ICMgNiAiLi9pbmNs
dWRlL3VhcGkvbGludXgvYXV4dmVjLmgiIDIKMTQ0NzQ6ICMgNiAiLi9pbmNsdWRlL2xpbnV4L2F1
eHZlYy5oIiAyCjE0NDc0OiAjIDggIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIiAyCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvcmJ0cmVlLmgiIDEKMTQ0NzQ6
ICMgMjIgIi4vaW5jbHVkZS9saW51eC9yYnRyZWUuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xp
bnV4L3JjdXBkYXRlLmgiIDEKMTQ0NzQ6ICMgMzggIi4vaW5jbHVkZS9saW51eC9yY3VwZGF0ZS5o
IgoxNDQ3NDogdm9pZCBjYWxsX3JjdShzdHJ1Y3QgY2FsbGJhY2tfaGVhZCAqaGVhZCwgcmN1X2Nh
bGxiYWNrX3QgZnVuYyk7CjE0NDc0OiB2b2lkIHJjdV9iYXJyaWVyX3Rhc2tzKHZvaWQpOwoxNDQ3
NDogdm9pZCBzeW5jaHJvbml6ZV9yY3Uodm9pZCk7CjE0NDc0OiAjIDU3ICIuL2luY2x1ZGUvbGlu
dXgvcmN1cGRhdGUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19yY3VfcmVhZF9sb2NrKHZvaWQpCjE0NDc0OiB7
CjE0NDc0OiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBfX3JjdV9yZWFkX3VubG9jayh2b2lkKQoxNDQ3NDogewoxNDQ3
NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGludCByY3VfcHJlZW1wdF9kZXB0aCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2
b2lkIHJjdV9pbml0KHZvaWQpOwoxNDQ3NDogZXh0ZXJuIGludCByY3Vfc2NoZWR1bGVyX2FjdGl2
ZSBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmRhdGEuLnJlYWRfbW9zdGx5IikpKTsKMTQ0
NzQ6IHZvaWQgcmN1X3NjaGVkX2Nsb2NrX2lycShpbnQgdXNlcik7CjE0NDc0OiB2b2lkIHJjdV9y
ZXBvcnRfZGVhZCh1bnNpZ25lZCBpbnQgY3B1KTsKMTQ0NzQ6IHZvaWQgcmN1dHJlZV9taWdyYXRl
X2NhbGxiYWNrcyhpbnQgY3B1KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lkIHJjdV9zeXNy
cV9zdGFydCh2b2lkKTsKMTQ0NzQ6IHZvaWQgcmN1X3N5c3JxX2VuZCh2b2lkKTsKMTQ0NzQ6ICMg
OTMgIi4vaW5jbHVkZS9saW51eC9yY3VwZGF0ZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByY3VfdXNlcl9lbnRl
cih2b2lkKSB7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcmN1X3VzZXJfZXhpdCh2b2lkKSB7IH0KMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJjdV9pbml0X25vaHoo
dm9pZCkgeyB9CjE0NDc0OiAjIDE0OCAiLi9pbmNsdWRlL2xpbnV4L3JjdXBkYXRlLmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGV4aXRfdGFza3NfcmN1X3N0YXJ0KHZvaWQpIHsgfQoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBleGl0X3Rh
c2tzX3JjdV9maW5pc2godm9pZCkgeyB9CjE0NDc0OiAjIDE3MSAiLi9pbmNsdWRlL2xpbnV4L3Jj
dXBkYXRlLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9yY3V0cmVlLmgiIDEKMTQ0NzQ6
ICMgMjAgIi4vaW5jbHVkZS9saW51eC9yY3V0cmVlLmgiCjE0NDc0OiB2b2lkIHJjdV9zb2Z0aXJx
X3FzKHZvaWQpOwoxNDQ3NDogdm9pZCByY3Vfbm90ZV9jb250ZXh0X3N3aXRjaChib29sIHByZWVt
cHQpOwoxNDQ3NDogaW50IHJjdV9uZWVkc19jcHUodTY0IGJhc2VtLCB1NjQgKm5leHRldnQpOwox
NDQ3NDogdm9pZCByY3VfY3B1X3N0YWxsX3Jlc2V0KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByY3VfdmlydF9ub3RlX2Nv
bnRleHRfc3dpdGNoKGludCBjcHUpCjE0NDc0OiB7CjE0NDc0OiAgcmN1X25vdGVfY29udGV4dF9z
d2l0Y2goZmFsc2UpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiB2b2lkIHN5bmNocm9uaXplX3Jj
dV9leHBlZGl0ZWQodm9pZCk7CjE0NDc0OiB2b2lkIGtmcmVlX2NhbGxfcmN1KHN0cnVjdCBjYWxs
YmFja19oZWFkICpoZWFkLCByY3VfY2FsbGJhY2tfdCBmdW5jKTsKMTQ0NzQ6IAoxNDQ3NDogdm9p
ZCByY3VfYmFycmllcih2b2lkKTsKMTQ0NzQ6IGJvb2wgcmN1X2Vxc19zcGVjaWFsX3NldChpbnQg
Y3B1KTsKMTQ0NzQ6IHZvaWQgcmN1X21vbWVudGFyeV9keW50aWNrX2lkbGUodm9pZCk7CjE0NDc0
OiB2b2lkIGtmcmVlX3JjdV9zY2hlZHVsZXJfcnVubmluZyh2b2lkKTsKMTQ0NzQ6IHVuc2lnbmVk
IGxvbmcgZ2V0X3N0YXRlX3N5bmNocm9uaXplX3JjdSh2b2lkKTsKMTQ0NzQ6IHZvaWQgY29uZF9z
eW5jaHJvbml6ZV9yY3UodW5zaWduZWQgbG9uZyBvbGRzdGF0ZSk7CjE0NDc0OiAKMTQ0NzQ6IHZv
aWQgcmN1X2lkbGVfZW50ZXIodm9pZCk7CjE0NDc0OiB2b2lkIHJjdV9pZGxlX2V4aXQodm9pZCk7
CjE0NDc0OiB2b2lkIHJjdV9pcnFfZW50ZXIodm9pZCk7CjE0NDc0OiB2b2lkIHJjdV9pcnFfZXhp
dCh2b2lkKTsKMTQ0NzQ6IHZvaWQgcmN1X2lycV9lbnRlcl9pcnFzb24odm9pZCk7CjE0NDc0OiB2
b2lkIHJjdV9pcnFfZXhpdF9pcnFzb24odm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZXhpdF9y
Y3Uodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgcmN1X3NjaGVkdWxlcl9zdGFydGluZyh2b2lk
KTsKMTQ0NzQ6IGV4dGVybiBpbnQgcmN1X3NjaGVkdWxlcl9hY3RpdmUgX19hdHRyaWJ1dGVfXygo
X19zZWN0aW9uX18oIi5kYXRhLi5yZWFkX21vc3RseSIpKSk7CjE0NDc0OiB2b2lkIHJjdV9lbmRf
aW5rZXJuZWxfYm9vdCh2b2lkKTsKMTQ0NzQ6IGJvb2wgcmN1X2lzX3dhdGNoaW5nKHZvaWQpOwox
NDQ3NDogCjE0NDc0OiB2b2lkIHJjdV9hbGxfcXModm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBpbnQgcmN1dHJlZV9wcmVwYXJlX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKMTQ0
NzQ6IGludCByY3V0cmVlX29ubGluZV9jcHUodW5zaWduZWQgaW50IGNwdSk7CjE0NDc0OiBpbnQg
cmN1dHJlZV9vZmZsaW5lX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKMTQ0NzQ6IGludCByY3V0cmVl
X2RlYWRfY3B1KHVuc2lnbmVkIGludCBjcHUpOwoxNDQ3NDogaW50IHJjdXRyZWVfZHlpbmdfY3B1
KHVuc2lnbmVkIGludCBjcHUpOwoxNDQ3NDogdm9pZCByY3VfY3B1X3N0YXJ0aW5nKHVuc2lnbmVk
IGludCBjcHUpOwoxNDQ3NDogIyAxNzIgIi4vaW5jbHVkZS9saW51eC9yY3VwZGF0ZS5oIiAyCjE0
NDc0OiAjIDE5MiAiLi9pbmNsdWRlL2xpbnV4L3JjdXBkYXRlLmgiCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGluaXRf
cmN1X2hlYWQoc3RydWN0IGNhbGxiYWNrX2hlYWQgKmhlYWQpIHsgfQoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXN0
cm95X3JjdV9oZWFkKHN0cnVjdCBjYWxsYmFja19oZWFkICpoZWFkKSB7IH0KMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
aW5pdF9yY3VfaGVhZF9vbl9zdGFjayhzdHJ1Y3QgY2FsbGJhY2tfaGVhZCAqaGVhZCkgeyB9CjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGRlc3Ryb3lfcmN1X2hlYWRfb25fc3RhY2soc3RydWN0IGNhbGxiYWNrX2hlYWQg
KmhlYWQpIHsgfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGJvb2wgcmN1X2xvY2tkZXBfY3VycmVudF9jcHVfb25saW5lKHZvaWQpIHsgcmV0dXJuIHRydWU7
IH0KMTQ0NzQ6ICMgMjMxICIuL2luY2x1ZGUvbGludXgvcmN1cGRhdGUuaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBy
Y3VfcmVhZF9sb2NrX2hlbGQodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gMTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJjdV9yZWFkX2xvY2tfYmhfaGVsZCh2b2lkKQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiAxOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcmN1X3JlYWRf
bG9ja19zY2hlZF9oZWxkKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICEwOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBpbnQgcmN1X3JlYWRfbG9ja19hbnlfaGVsZCh2b2lkKQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiAhMDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNTk3ICIuL2luY2x1ZGUvbGlu
dXgvcmN1cGRhdGUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
dm9pZCByY3VfcmVhZF9sb2NrKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgX19yY3VfcmVhZF9sb2Nr
KCk7CjE0NDc0OiAgKHZvaWQpMDsKMTQ0NzQ6ICBkbyB7IH0gd2hpbGUgKDApOwoxNDQ3NDogIGRv
IHsgfSB3aGlsZSAoMCkKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNjQ5ICIuL2luY2x1ZGUvbGludXgvcmN1
cGRhdGUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgcmN1X3JlYWRfdW5sb2NrKHZvaWQpCjE0NDc0OiB7CjE0NDc0
OiAgZG8geyB9IHdoaWxlICgwKQoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA7CjE0NDc0OiAgKHZvaWQpMDsKMTQ0NzQ6ICBfX3JjdV9yZWFk
X3VubG9jaygpOwoxNDQ3NDogIGRvIHsgfSB3aGlsZSAoMCk7CjE0NDc0OiB9CjE0NDc0OiAjIDY3
MCAiLi9pbmNsdWRlL2xpbnV4L3JjdXBkYXRlLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJjdV9yZWFkX2xvY2tf
Ymgodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBsb2NhbF9iaF9kaXNhYmxlKCk7CjE0NDc0OiAgKHZv
aWQpMDsKMTQ0NzQ6ICBkbyB7IH0gd2hpbGUgKDApOwoxNDQ3NDogIGRvIHsgfSB3aGlsZSAoMCkK
MTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgcmN1X3JlYWRfdW5sb2NrX2JoKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAg
ZG8geyB9IHdoaWxlICgwKQoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICAo
dm9pZCkwOwoxNDQ3NDogIGxvY2FsX2JoX2VuYWJsZSgpOwoxNDQ3NDogfQoxNDQ3NDogIyA3MDUg
Ii4vaW5jbHVkZS9saW51eC9yY3VwZGF0ZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByY3VfcmVhZF9sb2NrX3Nj
aGVkKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJt
ZW1vcnkiKTsKMTQ0NzQ6ICAodm9pZCkwOwoxNDQ3NDogIGRvIHsgfSB3aGlsZSAoMCk7CjE0NDc0
OiAgZG8geyB9IHdoaWxlICgwKQoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJjdV9yZWFkX2xv
Y2tfc2NoZWRfbm90cmFjZSh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIF9fYXNtX18gX192b2xhdGls
ZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiAgKHZvaWQpMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcmN1X3Jl
YWRfdW5sb2NrX3NjaGVkKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKQox
NDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICAodm9pZCkwOwoxNDQ3NDog
IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgcmN1X3JlYWRfdW5sb2NrX3NjaGVkX25vdHJhY2Uodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICAo
dm9pZCkwOwoxNDQ3NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0
NDc0OiB9CjE0NDc0OiAjIDg3MCAiLi9pbmNsdWRlL2xpbnV4L3JjdXBkYXRlLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIHJjdV9oZWFkX2luaXQoc3RydWN0IGNhbGxiYWNrX2hlYWQgKnJocCkKMTQ0NzQ6IHsKMTQ0
NzQ6ICByaHAtPmZ1bmMgPSAocmN1X2NhbGxiYWNrX3QpfjBMOwoxNDQ3NDogfQoxNDQ3NDogIyA4
ODggIi4vaW5jbHVkZS9saW51eC9yY3VwZGF0ZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAoxNDQ3NDogcmN1X2hl
YWRfYWZ0ZXJfY2FsbF9yY3Uoc3RydWN0IGNhbGxiYWNrX2hlYWQgKnJocCwgcmN1X2NhbGxiYWNr
X3QgZikKMTQ0NzQ6IHsKMTQ0NzQ6ICByY3VfY2FsbGJhY2tfdCBmdW5jID0gKHsgdW5pb24geyB0
eXBlb2YocmhwLT5mdW5jKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFk
X29uY2Vfc2l6ZSgmKHJocC0+ZnVuYyksIF9fdS5fX2MsIHNpemVvZihyaHAtPmZ1bmMpKTsgZWxz
ZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJihyaHAtPmZ1bmMpLCBfX3UuX19jLCBzaXplb2Yo
cmhwLT5mdW5jKSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7CjE0NDc0OiAKMTQ0
NzQ6ICBpZiAoZnVuYyA9PSBmKQoxNDQ3NDogICByZXR1cm4gdHJ1ZTsKMTQ0NzQ6ICAoeyBpbnQg
X19yZXRfd2Fybl9vbiA9ICEhKGZ1bmMgIT0gKHJjdV9jYWxsYmFja190KX4wTCk7IGlmIChfX2J1
aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGlu
ZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBf
X2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1
Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVn
X2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0
LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5w
b3BzZWN0aW9uIiA6IDogImkiICgiaW5jbHVkZS9saW51eC9yY3VwZGF0ZS5oIiksICJpIiAoODk1
KSwgImkiICgoMSA8PCAwKXwoKDEgPDwgMSkgfCAoKDkpIDw8IDgpKSksICJpIiAoc2l6ZW9mKHN0
cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0
IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxu
XHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDgpKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1
aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSk7CjE0NDc0OiAgcmV0dXJuIGZh
bHNlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgcmN1X2V4cGVk
aXRlZDsKMTQ0NzQ6IGV4dGVybiBpbnQgcmN1X25vcm1hbDsKMTQ0NzQ6ICMgMjMgIi4vaW5jbHVk
ZS9saW51eC9yYnRyZWUuaCIgMgoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcmJfbm9kZSB7CjE0NDc0
OiAgdW5zaWduZWQgbG9uZyBfX3JiX3BhcmVudF9jb2xvcjsKMTQ0NzQ6ICBzdHJ1Y3QgcmJfbm9k
ZSAqcmJfcmlnaHQ7CjE0NDc0OiAgc3RydWN0IHJiX25vZGUgKnJiX2xlZnQ7CjE0NDc0OiB9IF9f
YXR0cmlidXRlX18oKGFsaWduZWQoc2l6ZW9mKGxvbmcpKSkpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCByYl9yb290IHsKMTQ0NzQ6ICBzdHJ1Y3QgcmJfbm9kZSAqcmJfbm9kZTsKMTQ0
NzQ6IH07CjE0NDc0OiAjIDQ5ICIuL2luY2x1ZGUvbGludXgvcmJ0cmVlLmgiCjE0NDc0OiBleHRl
cm4gdm9pZCByYl9pbnNlcnRfY29sb3Ioc3RydWN0IHJiX25vZGUgKiwgc3RydWN0IHJiX3Jvb3Qg
Kik7CjE0NDc0OiBleHRlcm4gdm9pZCByYl9lcmFzZShzdHJ1Y3QgcmJfbm9kZSAqLCBzdHJ1Y3Qg
cmJfcm9vdCAqKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qg
cmJfbm9kZSAqcmJfbmV4dChjb25zdCBzdHJ1Y3QgcmJfbm9kZSAqKTsKMTQ0NzQ6IGV4dGVybiBz
dHJ1Y3QgcmJfbm9kZSAqcmJfcHJldihjb25zdCBzdHJ1Y3QgcmJfbm9kZSAqKTsKMTQ0NzQ6IGV4
dGVybiBzdHJ1Y3QgcmJfbm9kZSAqcmJfZmlyc3QoY29uc3Qgc3RydWN0IHJiX3Jvb3QgKik7CjE0
NDc0OiBleHRlcm4gc3RydWN0IHJiX25vZGUgKnJiX2xhc3QoY29uc3Qgc3RydWN0IHJiX3Jvb3Qg
Kik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCByYl9ub2RlICpyYl9maXJz
dF9wb3N0b3JkZXIoY29uc3Qgc3RydWN0IHJiX3Jvb3QgKik7CjE0NDc0OiBleHRlcm4gc3RydWN0
IHJiX25vZGUgKnJiX25leHRfcG9zdG9yZGVyKGNvbnN0IHN0cnVjdCByYl9ub2RlICopOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIHJiX3JlcGxhY2Vfbm9kZShzdHJ1Y3QgcmJf
bm9kZSAqdmljdGltLCBzdHJ1Y3QgcmJfbm9kZSAqbmV3LAoxNDQ3NDogICAgICAgIHN0cnVjdCBy
Yl9yb290ICpyb290KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHJiX3JlcGxhY2Vfbm9kZV9yY3Uoc3Ry
dWN0IHJiX25vZGUgKnZpY3RpbSwgc3RydWN0IHJiX25vZGUgKm5ldywKMTQ0NzQ6ICAgICBzdHJ1
Y3QgcmJfcm9vdCAqcm9vdCk7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcmJfbGlua19ub2RlKHN0cnVj
dCByYl9ub2RlICpub2RlLCBzdHJ1Y3QgcmJfbm9kZSAqcGFyZW50LAoxNDQ3NDogICAgIHN0cnVj
dCByYl9ub2RlICoqcmJfbGluaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBub2RlLT5fX3JiX3BhcmVudF9j
b2xvciA9ICh1bnNpZ25lZCBsb25nKXBhcmVudDsKMTQ0NzQ6ICBub2RlLT5yYl9sZWZ0ID0gbm9k
ZS0+cmJfcmlnaHQgPSAoKHZvaWQgKikwKTsKMTQ0NzQ6IAoxNDQ3NDogICpyYl9saW5rID0gbm9k
ZTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByYl9saW5rX25vZGVfcmN1KHN0cnVjdCBy
Yl9ub2RlICpub2RlLCBzdHJ1Y3QgcmJfbm9kZSAqcGFyZW50LAoxNDQ3NDogICAgICAgICBzdHJ1
Y3QgcmJfbm9kZSAqKnJiX2xpbmspCjE0NDc0OiB7CjE0NDc0OiAgbm9kZS0+X19yYl9wYXJlbnRf
Y29sb3IgPSAodW5zaWduZWQgbG9uZylwYXJlbnQ7CjE0NDc0OiAgbm9kZS0+cmJfbGVmdCA9IG5v
ZGUtPnJiX3JpZ2h0ID0gKCh2b2lkICopMCk7CjE0NDc0OiAKMTQ0NzQ6ICBkbyB7IHVpbnRwdHJf
dCBfcl9hX3BfX3YgPSAodWludHB0cl90KShub2RlKTsgOyBpZiAoX19idWlsdGluX2NvbnN0YW50
X3Aobm9kZSkgJiYgKF9yX2FfcF9fdikgPT0gKHVpbnRwdHJfdCkoKHZvaWQgKikwKSkgKHsgdW5p
b24geyB0eXBlb2YoKCpyYl9saW5rKSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9f
dmFsID0gKCB0eXBlb2YoKCpyYl9saW5rKSkpICgodHlwZW9mKCpyYl9saW5rKSkoX3JfYV9wX192
KSkgfTsgX193cml0ZV9vbmNlX3NpemUoJigoKnJiX2xpbmspKSwgX191Ll9fYywgc2l6ZW9mKCgq
cmJfbGluaykpKTsgX191Ll9fdmFsOyB9KTsgZWxzZSBkbyB7IGRvIHsgZXh0ZXJuIHZvaWQgX19j
b21waWxldGltZV9hc3NlcnRfODQodm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJOZWVk
IG5hdGl2ZSB3b3JkIHNpemVkIHN0b3Jlcy9sb2FkcyBmb3IgYXRvbWljaXR5LiIpKSk7IGlmICgh
KChzaXplb2YoKiYqcmJfbGluaykgPT0gc2l6ZW9mKGNoYXIpIHx8IHNpemVvZigqJipyYl9saW5r
KSA9PSBzaXplb2Yoc2hvcnQpIHx8IHNpemVvZigqJipyYl9saW5rKSA9PSBzaXplb2YoaW50KSB8
fCBzaXplb2YoKiYqcmJfbGluaykgPT0gc2l6ZW9mKGxvbmcpKSkpIF9fY29tcGlsZXRpbWVfYXNz
ZXJ0Xzg0KCk7IH0gd2hpbGUgKDApOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9y
eSIpOyAoeyB1bmlvbiB7IHR5cGVvZigqJipyYl9saW5rKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0g
X191ID0geyAuX192YWwgPSAoIHR5cGVvZigqJipyYl9saW5rKSkgKCh0eXBlb2YoKigodHlwZW9m
KCpyYl9saW5rKSlfcl9hX3BfX3YpKSAqKSgodHlwZW9mKCpyYl9saW5rKSlfcl9hX3BfX3YpKSB9
OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKComKnJiX2xpbmspLCBfX3UuX19jLCBzaXplb2YoKiYqcmJf
bGluaykpOyBfX3UuX192YWw7IH0pOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7CjE0NDc0OiB9
CjE0NDc0OiAjIDEyNSAiLi9pbmNsdWRlL2xpbnV4L3JidHJlZS5oIgoxNDQ3NDogc3RydWN0IHJi
X3Jvb3RfY2FjaGVkIHsKMTQ0NzQ6ICBzdHJ1Y3QgcmJfcm9vdCByYl9yb290OwoxNDQ3NDogIHN0
cnVjdCByYl9ub2RlICpyYl9sZWZ0bW9zdDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJiX2luc2VydF9jb2xvcl9j
YWNoZWQoc3RydWN0IHJiX25vZGUgKm5vZGUsCjE0NDc0OiAgICAgICAgc3RydWN0IHJiX3Jvb3Rf
Y2FjaGVkICpyb290LAoxNDQ3NDogICAgICAgIGJvb2wgbGVmdG1vc3QpCjE0NDc0OiB7CjE0NDc0
OiAgaWYgKGxlZnRtb3N0KQoxNDQ3NDogICByb290LT5yYl9sZWZ0bW9zdCA9IG5vZGU7CjE0NDc0
OiAgcmJfaW5zZXJ0X2NvbG9yKG5vZGUsICZyb290LT5yYl9yb290KTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCByYl9lcmFzZV9jYWNoZWQoc3RydWN0IHJiX25vZGUgKm5vZGUsCjE0NDc0
OiAgICAgICAgc3RydWN0IHJiX3Jvb3RfY2FjaGVkICpyb290KQoxNDQ3NDogewoxNDQ3NDogIGlm
IChyb290LT5yYl9sZWZ0bW9zdCA9PSBub2RlKQoxNDQ3NDogICByb290LT5yYl9sZWZ0bW9zdCA9
IHJiX25leHQobm9kZSk7CjE0NDc0OiAgcmJfZXJhc2Uobm9kZSwgJnJvb3QtPnJiX3Jvb3QpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJiX3JlcGxhY2Vfbm9kZV9jYWNoZWQoc3RydWN0
IHJiX25vZGUgKnZpY3RpbSwKMTQ0NzQ6ICAgICAgICBzdHJ1Y3QgcmJfbm9kZSAqbmV3LAoxNDQ3
NDogICAgICAgIHN0cnVjdCByYl9yb290X2NhY2hlZCAqcm9vdCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBp
ZiAocm9vdC0+cmJfbGVmdG1vc3QgPT0gdmljdGltKQoxNDQ3NDogICByb290LT5yYl9sZWZ0bW9z
dCA9IG5ldzsKMTQ0NzQ6ICByYl9yZXBsYWNlX25vZGUodmljdGltLCBuZXcsICZyb290LT5yYl9y
b290KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTEgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIiAy
CjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9yd3NlbS5oIiAxCjE0NDc0OiAjIDIwICIuL2lu
Y2x1ZGUvbGludXgvcndzZW0uaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L29zcV9sb2Nr
LmgiIDEKMTQ0NzQ6ICMgOSAiLi9pbmNsdWRlL2xpbnV4L29zcV9sb2NrLmgiCjE0NDc0OiBzdHJ1
Y3Qgb3B0aW1pc3RpY19zcGluX25vZGUgewoxNDQ3NDogIHN0cnVjdCBvcHRpbWlzdGljX3NwaW5f
bm9kZSAqbmV4dCwgKnByZXY7CjE0NDc0OiAgaW50IGxvY2tlZDsKMTQ0NzQ6ICBpbnQgY3B1Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG9wdGltaXN0aWNfc3Bpbl9xdWV1ZSB7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBhdG9taWNfdCB0YWlsOwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgb3NxX2xvY2tfaW5pdChzdHJ1Y3Qgb3B0aW1pc3RpY19zcGluX3F1ZXVlICpsb2Nr
KQoxNDQ3NDogewoxNDQ3NDogIGF0b21pY19zZXQoJmxvY2stPnRhaWwsICgwKSk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBib29sIG9zcV9sb2NrKHN0cnVjdCBvcHRpbWlzdGljX3Nw
aW5fcXVldWUgKmxvY2spOwoxNDQ3NDogZXh0ZXJuIHZvaWQgb3NxX3VubG9jayhzdHJ1Y3Qgb3B0
aW1pc3RpY19zcGluX3F1ZXVlICpsb2NrKTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBvc3FfaXNfbG9j
a2VkKHN0cnVjdCBvcHRpbWlzdGljX3NwaW5fcXVldWUgKmxvY2spCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIGF0b21pY19yZWFkKCZsb2NrLT50YWlsKSAhPSAoMCk7CjE0NDc0OiB9CjE0NDc0OiAj
IDIxICIuL2luY2x1ZGUvbGludXgvcndzZW0uaCIgMgoxNDQ3NDogIyAzNSAiLi9pbmNsdWRlL2xp
bnV4L3J3c2VtLmgiCjE0NDc0OiBzdHJ1Y3Qgcndfc2VtYXBob3JlIHsKMTQ0NzQ6ICBhdG9taWNf
bG9uZ190IGNvdW50OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICBhdG9taWNfbG9uZ190IG93bmVyOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IG9wdGltaXN0
aWNfc3Bpbl9xdWV1ZSBvc3E7CjE0NDc0OiAKMTQ0NzQ6ICByYXdfc3BpbmxvY2tfdCB3YWl0X2xv
Y2s7CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCB3YWl0X2xpc3Q7CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDogIyA2MyAiLi9p
bmNsdWRlL2xpbnV4L3J3c2VtLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcndzZW1faXNfbG9ja2VkKHN0cnVjdCBy
d19zZW1hcGhvcmUgKnNlbSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljX2xvbmdfcmVh
ZCgmc2VtLT5jb3VudCkgIT0gMDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTAzICIuL2luY2x1ZGUvbGlu
dXgvcndzZW0uaCIKMTQ0NzQ6IGV4dGVybiB2b2lkIF9faW5pdF9yd3NlbShzdHJ1Y3Qgcndfc2Vt
YXBob3JlICpzZW0sIGNvbnN0IGNoYXIgKm5hbWUsCjE0NDc0OiAgICAgc3RydWN0IGxvY2tfY2xh
c3Nfa2V5ICprZXkpOwoxNDQ3NDogIyAxMTkgIi4vaW5jbHVkZS9saW51eC9yd3NlbS5oIgoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgaW50IHJ3c2VtX2lzX2NvbnRlbmRlZChzdHJ1Y3Qgcndfc2VtYXBob3JlICpzZW0pCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuICFsaXN0X2VtcHR5KCZzZW0tPndhaXRfbGlzdCk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGRvd25f
cmVhZChzdHJ1Y3Qgcndfc2VtYXBob3JlICpzZW0pOwoxNDQ3NDogZXh0ZXJuIGludCBfX2F0dHJp
YnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgZG93bl9yZWFkX2tpbGxhYmxlKHN0cnVj
dCByd19zZW1hcGhvcmUgKnNlbSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGV4dGVybiBpbnQgZG93bl9yZWFkX3RyeWxvY2soc3RydWN0IHJ3X3NlbWFwaG9yZSAqc2Vt
KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgZG93
bl93cml0ZShzdHJ1Y3Qgcndfc2VtYXBob3JlICpzZW0pOwoxNDQ3NDogZXh0ZXJuIGludCBfX2F0
dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgZG93bl93cml0ZV9raWxsYWJsZShz
dHJ1Y3Qgcndfc2VtYXBob3JlICpzZW0pOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gaW50IGRvd25fd3JpdGVfdHJ5bG9jayhzdHJ1Y3Qgcndfc2VtYXBob3Jl
ICpzZW0pOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9p
ZCB1cF9yZWFkKHN0cnVjdCByd19zZW1hcGhvcmUgKnNlbSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIHVwX3dyaXRlKHN0cnVjdCByd19zZW1hcGhv
cmUgKnNlbSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2
b2lkIGRvd25ncmFkZV93cml0ZShzdHJ1Y3Qgcndfc2VtYXBob3JlICpzZW0pOwoxNDQ3NDogIyAx
MiAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xp
bnV4L2NvbXBsZXRpb24uaCIgMQoxNDQ3NDogIyAyNiAiLi9pbmNsdWRlL2xpbnV4L2NvbXBsZXRp
b24uaCIKMTQ0NzQ6IHN0cnVjdCBjb21wbGV0aW9uIHsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZG9u
ZTsKMTQ0NzQ6ICB3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY29tcGxldGVfYWNxdWlyZShzdHJ1Y3QgY29tcGxldGlv
biAqeCkge30KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgY29tcGxldGVfcmVsZWFzZShzdHJ1Y3QgY29tcGxldGlvbiAq
eCkge30KMTQ0NzQ6ICMgODUgIi4vaW5jbHVkZS9saW51eC9jb21wbGV0aW9uLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIF9faW5pdF9jb21wbGV0aW9uKHN0cnVjdCBjb21wbGV0aW9uICp4KQoxNDQ3NDogewoxNDQ3
NDogIHgtPmRvbmUgPSAwOwoxNDQ3NDogIGRvIHsgc3RhdGljIHN0cnVjdCBsb2NrX2NsYXNzX2tl
eSBfX2tleTsgX19pbml0X3dhaXRxdWV1ZV9oZWFkKCgmeC0+d2FpdCksICImeC0+d2FpdCIsICZf
X2tleSk7IH0gd2hpbGUgKDApOwoxNDQ3NDogfQoxNDQ3NDogIyA5OCAiLi9pbmNsdWRlL2xpbnV4
L2NvbXBsZXRpb24uaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcmVpbml0X2NvbXBsZXRpb24oc3RydWN0IGNvbXBs
ZXRpb24gKngpCjE0NDc0OiB7CjE0NDc0OiAgeC0+ZG9uZSA9IDA7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IGV4dGVybiB2b2lkIHdhaXRfZm9yX2NvbXBsZXRpb24oc3RydWN0IGNvbXBsZXRpb24g
Kik7CjE0NDc0OiBleHRlcm4gdm9pZCB3YWl0X2Zvcl9jb21wbGV0aW9uX2lvKHN0cnVjdCBjb21w
bGV0aW9uICopOwoxNDQ3NDogZXh0ZXJuIGludCB3YWl0X2Zvcl9jb21wbGV0aW9uX2ludGVycnVw
dGlibGUoc3RydWN0IGNvbXBsZXRpb24gKngpOwoxNDQ3NDogZXh0ZXJuIGludCB3YWl0X2Zvcl9j
b21wbGV0aW9uX2tpbGxhYmxlKHN0cnVjdCBjb21wbGV0aW9uICp4KTsKMTQ0NzQ6IGV4dGVybiB1
bnNpZ25lZCBsb25nIHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dChzdHJ1Y3QgY29tcGxldGlv
biAqeCwKMTQ0NzQ6ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgdGltZW91dCk7CjE0NDc0OiBleHRl
cm4gdW5zaWduZWQgbG9uZyB3YWl0X2Zvcl9jb21wbGV0aW9uX2lvX3RpbWVvdXQoc3RydWN0IGNv
bXBsZXRpb24gKngsCjE0NDc0OiAgICAgICAgICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0KTsKMTQ0
NzQ6IGV4dGVybiBsb25nIHdhaXRfZm9yX2NvbXBsZXRpb25faW50ZXJydXB0aWJsZV90aW1lb3V0
KAoxNDQ3NDogIHN0cnVjdCBjb21wbGV0aW9uICp4LCB1bnNpZ25lZCBsb25nIHRpbWVvdXQpOwox
NDQ3NDogZXh0ZXJuIGxvbmcgd2FpdF9mb3JfY29tcGxldGlvbl9raWxsYWJsZV90aW1lb3V0KAox
NDQ3NDogIHN0cnVjdCBjb21wbGV0aW9uICp4LCB1bnNpZ25lZCBsb25nIHRpbWVvdXQpOwoxNDQ3
NDogZXh0ZXJuIGJvb2wgdHJ5X3dhaXRfZm9yX2NvbXBsZXRpb24oc3RydWN0IGNvbXBsZXRpb24g
KngpOwoxNDQ3NDogZXh0ZXJuIGJvb2wgY29tcGxldGlvbl9kb25lKHN0cnVjdCBjb21wbGV0aW9u
ICp4KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgY29tcGxldGUoc3RydWN0IGNvbXBsZXRp
b24gKik7CjE0NDc0OiBleHRlcm4gdm9pZCBjb21wbGV0ZV9hbGwoc3RydWN0IGNvbXBsZXRpb24g
Kik7CjE0NDc0OiAjIDEzICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIgMgoxNDQ3NDogCjE0
NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC91cHJvYmVzLmgiIDEKMTQ0NzQ6ICMgMTkgIi4vaW5j
bHVkZS9saW51eC91cHJvYmVzLmgiCjE0NDc0OiBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Q7CjE0NDc0
OiBzdHJ1Y3QgbW1fc3RydWN0OwoxNDQ3NDogc3RydWN0IGlub2RlOwoxNDQ3NDogc3RydWN0IG5v
dGlmaWVyX2Jsb2NrOwoxNDQ3NDogc3RydWN0IHBhZ2U7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHVwcm9iZV9maWx0ZXJfY3R4IHsK
MTQ0NzQ6ICBVUFJPQkVfRklMVEVSX1JFR0lTVEVSLAoxNDQ3NDogIFVQUk9CRV9GSUxURVJfVU5S
RUdJU1RFUiwKMTQ0NzQ6ICBVUFJPQkVfRklMVEVSX01NQVAsCjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgdXByb2JlX2NvbnN1bWVyIHsKMTQ0NzQ6ICBpbnQgKCpoYW5kbGVyKShzdHJ1
Y3QgdXByb2JlX2NvbnN1bWVyICpzZWxmLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CjE0NDc0OiAg
aW50ICgqcmV0X2hhbmRsZXIpKHN0cnVjdCB1cHJvYmVfY29uc3VtZXIgKnNlbGYsCjE0NDc0OiAg
ICAgdW5zaWduZWQgbG9uZyBmdW5jLAoxNDQ3NDogICAgIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsK
MTQ0NzQ6ICBib29sICgqZmlsdGVyKShzdHJ1Y3QgdXByb2JlX2NvbnN1bWVyICpzZWxmLAoxNDQ3
NDogICAgIGVudW0gdXByb2JlX2ZpbHRlcl9jdHggY3R4LAoxNDQ3NDogICAgIHN0cnVjdCBtbV9z
dHJ1Y3QgKm1tKTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCB1cHJvYmVfY29uc3VtZXIgKm5leHQ7
CjE0NDc0OiB9OwoxNDQ3NDogIyAxNDIgIi4vaW5jbHVkZS9saW51eC91cHJvYmVzLmgiCjE0NDc0
OiBzdHJ1Y3QgdXByb2Jlc19zdGF0ZSB7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHVw
cm9iZXNfaW5pdCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50CjE0NDc0OiB1cHJvYmVfcmVnaXN0ZXIoc3RydWN0IGlub2RlICppbm9kZSwg
bG9mZl90IG9mZnNldCwgc3RydWN0IHVwcm9iZV9jb25zdW1lciAqdWMpCjE0NDc0OiB7CjE0NDc0
OiAgcmV0dXJuIC0zODsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB1cHJvYmVfcmVnaXN0ZXJfcmVmY3Ry
KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGxvZmZfdCBvZmZzZXQsIGxvZmZfdCByZWZfY3RyX29mZnNl
dCwgc3RydWN0IHVwcm9iZV9jb25zdW1lciAqdWMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIC0z
ODsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGludAoxNDQ3NDogdXByb2JlX2FwcGx5KHN0cnVjdCBpbm9kZSAq
aW5vZGUsIGxvZmZfdCBvZmZzZXQsIHN0cnVjdCB1cHJvYmVfY29uc3VtZXIgKnVjLCBib29sIGFk
ZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gLTM4OwoxNDQ3NDogfQoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3
NDogdXByb2JlX3VucmVnaXN0ZXIoc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IG9mZnNldCwg
c3RydWN0IHVwcm9iZV9jb25zdW1lciAqdWMpCjE0NDc0OiB7CjE0NDc0OiB9CjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
dXByb2JlX21tYXAoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIDA7CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiB1cHJvYmVfbXVubWFwKHN0cnVj
dCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25n
IGVuZCkKMTQ0NzQ6IHsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdXByb2JlX3N0YXJ0X2R1cF9tbWFw
KHZvaWQpCjE0NDc0OiB7CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHVwcm9iZV9lbmRfZHVwX21tYXAo
dm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKMTQ0NzQ6IHVwcm9iZV9kdXBfbW1h
cChzdHJ1Y3QgbW1fc3RydWN0ICpvbGRtbSwgc3RydWN0IG1tX3N0cnVjdCAqbmV3bW0pCjE0NDc0
OiB7CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHVwcm9iZV9ub3RpZnlfcmVzdW1lKHN0cnVjdCBwdF9y
ZWdzICpyZWdzKQoxNDQ3NDogewoxNDQ3NDogfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB1cHJvYmVfZGVueV9zaWdu
YWwodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gZmFsc2U7CjE0NDc0OiB9CjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIHVwcm9iZV9mcmVlX3V0YXNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqdCkKMTQ0NzQ6IHsKMTQ0
NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgdXByb2JlX2NvcHlfcHJvY2VzcyhzdHJ1Y3QgdGFza19zdHJ1Y3Qg
KnQsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCjE0NDc0OiB7CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHVw
cm9iZV9jbGVhcl9zdGF0ZShzdHJ1Y3QgbW1fc3RydWN0ICptbSkKMTQ0NzQ6IHsKMTQ0NzQ6IH0K
MTQ0NzQ6ICMgMTUgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIiAyCjE0NDc0OiAKMTQ0NzQ6
ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3dvcmtxdWV1ZS5oIiAxCjE0NDc0OiAjIDkgIi4vaW5jbHVk
ZS9saW51eC93b3JrcXVldWUuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3RpbWVyLmgi
IDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4v
aW5jbHVkZS9saW51eC9rdGltZS5oIiAxCjE0NDc0OiAjIDI0ICIuL2luY2x1ZGUvbGludXgva3Rp
bWUuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3RpbWUuaCIgMQoxNDQ3NDogIyAxMCAi
Li9pbmNsdWRlL2xpbnV4L3RpbWUuaCIKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgdGltZXpvbmUgc3lz
X3R6OwoxNDQ3NDogCjE0NDc0OiBpbnQgZ2V0X3RpbWVzcGVjNjQoc3RydWN0IHRpbWVzcGVjNjQg
KnRzLAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgX19rZXJuZWxfdGltZXNwZWMgKnV0cyk7CjE0NDc0
OiBpbnQgcHV0X3RpbWVzcGVjNjQoY29uc3Qgc3RydWN0IHRpbWVzcGVjNjQgKnRzLAoxNDQ3NDog
ICBzdHJ1Y3QgX19rZXJuZWxfdGltZXNwZWMgKnV0cyk7CjE0NDc0OiBpbnQgZ2V0X2l0aW1lcnNw
ZWM2NChzdHJ1Y3QgaXRpbWVyc3BlYzY0ICppdCwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCBfX2tl
cm5lbF9pdGltZXJzcGVjICp1aXQpOwoxNDQ3NDogaW50IHB1dF9pdGltZXJzcGVjNjQoY29uc3Qg
c3RydWN0IGl0aW1lcnNwZWM2NCAqaXQsCjE0NDc0OiAgICBzdHJ1Y3QgX19rZXJuZWxfaXRpbWVy
c3BlYyAqdWl0KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHRpbWU2NF90IG1rdGltZTY0KGNvbnN0
IHVuc2lnbmVkIGludCB5ZWFyLCBjb25zdCB1bnNpZ25lZCBpbnQgbW9uLAoxNDQ3NDogICAgY29u
c3QgdW5zaWduZWQgaW50IGRheSwgY29uc3QgdW5zaWduZWQgaW50IGhvdXIsCjE0NDc0OiAgICBj
b25zdCB1bnNpZ25lZCBpbnQgbWluLCBjb25zdCB1bnNpZ25lZCBpbnQgc2VjKTsKMTQ0NzQ6ICMg
MzkgIi4vaW5jbHVkZS9saW51eC90aW1lLmgiCjE0NDc0OiBleHRlcm4gdm9pZCBjbGVhcl9pdGlt
ZXIodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBs
b25nIGRvX3V0aW1lcyhpbnQgZGZkLCBjb25zdCBjaGFyICpmaWxlbmFtZSwgc3RydWN0IHRpbWVz
cGVjNjQgKnRpbWVzLCBpbnQgZmxhZ3MpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0bSB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICBpbnQgdG1fc2VjOwoxNDQ3NDogCjE0NDc0OiAgaW50IHRtX21pbjsKMTQ0NzQ6
IAoxNDQ3NDogIGludCB0bV9ob3VyOwoxNDQ3NDogCjE0NDc0OiAgaW50IHRtX21kYXk7CjE0NDc0
OiAKMTQ0NzQ6ICBpbnQgdG1fbW9uOwoxNDQ3NDogCjE0NDc0OiAgbG9uZyB0bV95ZWFyOwoxNDQ3
NDogCjE0NDc0OiAgaW50IHRtX3dkYXk7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgdG1feWRheTsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgdGltZTY0X3RvX3RtKHRpbWU2NF90IHRvdGFsc2Vj
cywgaW50IG9mZnNldCwgc3RydWN0IHRtICpyZXN1bHQpOwoxNDQ3NDogCjE0NDc0OiAjIDEgIi4v
aW5jbHVkZS9saW51eC90aW1lMzIuaCIgMQoxNDQ3NDogIyAxMyAiLi9pbmNsdWRlL2xpbnV4L3Rp
bWUzMi5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvdGltZXguaCIgMQoxNDQ3NDogIyA1
NiAiLi9pbmNsdWRlL2xpbnV4L3RpbWV4LmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2xp
bnV4L3RpbWV4LmgiIDEKMTQ0NzQ6ICMgNTYgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3RpbWV4Lmgi
CjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC90aW1lLmgiIDEKMTQ0NzQ6ICMgNTcgIi4vaW5j
bHVkZS91YXBpL2xpbnV4L3RpbWV4LmgiIDIKMTQ0NzQ6ICMgOTcgIi4vaW5jbHVkZS91YXBpL2xp
bnV4L3RpbWV4LmgiCjE0NDc0OiBzdHJ1Y3QgX19rZXJuZWxfdGltZXhfdGltZXZhbCB7CjE0NDc0
OiAgX19rZXJuZWxfdGltZTY0X3QgdHZfc2VjOwoxNDQ3NDogIGxvbmcgbG9uZyB0dl91c2VjOwox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IF9fa2VybmVsX3RpbWV4IHsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgbW9kZXM7CjE0NDc0OiAgaW50IDozMjsKMTQ0NzQ6ICBsb25nIGxvbmcgb2Zm
c2V0OwoxNDQ3NDogIGxvbmcgbG9uZyBmcmVxOwoxNDQ3NDogIGxvbmcgbG9uZyBtYXhlcnJvcjsK
MTQ0NzQ6ICBsb25nIGxvbmcgZXN0ZXJyb3I7CjE0NDc0OiAgaW50IHN0YXR1czsKMTQ0NzQ6ICBp
bnQgOjMyOwoxNDQ3NDogIGxvbmcgbG9uZyBjb25zdGFudDsKMTQ0NzQ6ICBsb25nIGxvbmcgcHJl
Y2lzaW9uOwoxNDQ3NDogIGxvbmcgbG9uZyB0b2xlcmFuY2U7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIHN0cnVjdCBfX2tlcm5lbF90aW1leF90aW1ldmFsIHRpbWU7CjE0NDc0OiAgbG9uZyBsb25n
IHRpY2s7CjE0NDc0OiAKMTQ0NzQ6ICBsb25nIGxvbmcgcHBzZnJlcTsKMTQ0NzQ6ICBsb25nIGxv
bmcgaml0dGVyOwoxNDQ3NDogIGludCBzaGlmdDsKMTQ0NzQ6ICBpbnQgOjMyOwoxNDQ3NDogIGxv
bmcgbG9uZyBzdGFiaWw7CjE0NDc0OiAgbG9uZyBsb25nIGppdGNudDsKMTQ0NzQ6ICBsb25nIGxv
bmcgY2FsY250OwoxNDQ3NDogIGxvbmcgbG9uZyBlcnJjbnQ7CjE0NDc0OiAgbG9uZyBsb25nIHN0
YmNudDsKMTQ0NzQ6IAoxNDQ3NDogIGludCB0YWk7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgOjMyOyBp
bnQgOjMyOyBpbnQgOjMyOyBpbnQgOjMyOwoxNDQ3NDogIGludCA6MzI7IGludCA6MzI7IGludCA6
MzI7IGludCA6MzI7CjE0NDc0OiAgaW50IDozMjsgaW50IDozMjsgaW50IDozMjsKMTQ0NzQ6IH07
CjE0NDc0OiAjIDU3ICIuL2luY2x1ZGUvbGludXgvdGltZXguaCIgMgoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFw
aS9saW51eC9wYXJhbS5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZC91YXBpL2FzbS9wYXJhbS5oIiAxCjE0
NDc0OiAjIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9wYXJhbS5oIiAxCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMv
cGFyYW0uaCIgMQoxNDQ3NDogIyA2ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGFyYW0uaCIgMgox
NDQ3NDogIyAyICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL3BhcmFtLmgi
IDIKMTQ0NzQ6ICMgNiAiLi9pbmNsdWRlL3VhcGkvbGludXgvcGFyYW0uaCIgMgoxNDQ3NDogIyA2
NCAiLi9pbmNsdWRlL2xpbnV4L3RpbWV4LmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL3RpbWV4LmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vdHNjLmgiIDEKMTQ0
NzQ6ICMgMTYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vdHNjLmgiCjE0NDc0OiB0eXBlZGVmIHVu
c2lnbmVkIGxvbmcgbG9uZyBjeWNsZXNfdDsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVk
IGludCBjcHVfa2h6OwoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGludCB0c2Nfa2h6OwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gdm9pZCBkaXNhYmxlX1RTQyh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY3lj
bGVzX3QgZ2V0X2N5Y2xlcyh2b2lkKQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gcmR0c2MoKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogZXh0ZXJuIHN0cnVjdCBzeXN0ZW1fY291bnRlcnZhbF90IGNvbnZlcnRfYXJ0X3RvX3Rz
Yyh1NjQgYXJ0KTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qgc3lzdGVtX2NvdW50ZXJ2YWxfdCBjb252
ZXJ0X2FydF9uc190b190c2ModTY0IGFydF9ucyk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lk
IHRzY19lYXJseV9pbml0KHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgdHNjX2luaXQodm9pZCk7
CjE0NDc0OiBleHRlcm4gdW5zaWduZWQgbG9uZyBjYWxpYnJhdGVfZGVsYXlfaXNfa25vd24odm9p
ZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBtYXJrX3RzY191bnN0YWJsZShjaGFyICpyZWFzb24pOwox
NDQ3NDogZXh0ZXJuIGludCB1bnN5bmNocm9uaXplZF90c2Modm9pZCk7CjE0NDc0OiBleHRlcm4g
aW50IGNoZWNrX3RzY191bnN0YWJsZSh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIG1hcmtfdHNj
X2FzeW5jX3Jlc2V0cyhjaGFyICpyZWFzb24pOwoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGxvbmcg
bmF0aXZlX2NhbGlicmF0ZV9jcHVfZWFybHkodm9pZCk7CjE0NDc0OiBleHRlcm4gdW5zaWduZWQg
bG9uZyBuYXRpdmVfY2FsaWJyYXRlX3RzYyh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBs
b25nIGxvbmcgbmF0aXZlX3NjaGVkX2Nsb2NrX2Zyb21fdHNjKHU2NCB0c2MpOwoxNDQ3NDogCjE0
NDc0OiBleHRlcm4gaW50IHRzY19jbG9ja3NvdXJjZV9yZWxpYWJsZTsKMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIGJvb2wgdHNjX2FzeW5jX3Jlc2V0czsKMTQ0NzQ6ICMgNTkgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vdHNjLmgiCjE0NDc0OiBleHRlcm4gYm9vbCB0c2Nfc3RvcmVfYW5kX2NoZWNrX3Rz
Y19hZGp1c3QoYm9vbCBib290Y3B1KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHRzY192ZXJpZnlfdHNj
X2FkanVzdChib29sIHJlc3VtZSk7CjE0NDc0OiBleHRlcm4gdm9pZCBjaGVja190c2Nfc3luY19z
b3VyY2UoaW50IGNwdSk7CjE0NDc0OiBleHRlcm4gdm9pZCBjaGVja190c2Nfc3luY190YXJnZXQo
dm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgbm90c2Nfc2V0dXAoY2hhciAqKTsKMTQ0NzQ6IGV4dGVy
biB2b2lkIHRzY19zYXZlX3NjaGVkX2Nsb2NrX3N0YXRlKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZv
aWQgdHNjX3Jlc3RvcmVfc2NoZWRfY2xvY2tfc3RhdGUodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IHVu
c2lnbmVkIGxvbmcgY3B1X2toel9mcm9tX21zcih2b2lkKTsKMTQ0NzQ6ICMgNyAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS90aW1leC5oIiAyCjE0NDc0OiAjIDY2ICIuL2luY2x1ZGUvbGludXgvdGlt
ZXguaCIgMgoxNDQ3NDogIyAxMzkgIi4vaW5jbHVkZS9saW51eC90aW1leC5oIgoxNDQ3NDogZXh0
ZXJuIHVuc2lnbmVkIGxvbmcgdGlja191c2VjOwoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGxvbmcg
dGlja19uc2VjOwoxNDQ3NDogIyAxNTQgIi4vaW5jbHVkZS9saW51eC90aW1leC5oIgoxNDQ3NDog
ZXh0ZXJuIGludCBkb19hZGp0aW1leChzdHJ1Y3QgX19rZXJuZWxfdGltZXggKik7CjE0NDc0OiBl
eHRlcm4gaW50IGRvX2Nsb2NrX2FkanRpbWUoY29uc3QgY2xvY2tpZF90IHdoaWNoX2Nsb2NrLCBz
dHJ1Y3QgX19rZXJuZWxfdGltZXggKiBrdHgpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBo
YXJkcHBzKGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICosIGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0
ICopOwoxNDQ3NDogCjE0NDc0OiBpbnQgcmVhZF9jdXJyZW50X3RpbWVyKHVuc2lnbmVkIGxvbmcg
KnRpbWVyX3ZhbCk7CjE0NDc0OiB2b2lkIG50cF9ub3RpZnlfY21vc190aW1lcih2b2lkKTsKMTQ0
NzQ6ICMgMTQgIi4vaW5jbHVkZS9saW51eC90aW1lMzIuaCIgMgoxNDQ3NDogCjE0NDc0OiB0eXBl
ZGVmIHMzMiBvbGRfdGltZTMyX3Q7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBvbGRfdGltZXNwZWMz
MiB7CjE0NDc0OiAgb2xkX3RpbWUzMl90IHR2X3NlYzsKMTQ0NzQ6ICBzMzIgdHZfbnNlYzsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBvbGRfdGltZXZhbDMyIHsKMTQ0NzQ6ICBvbGRf
dGltZTMyX3QgdHZfc2VjOwoxNDQ3NDogIHMzMiB0dl91c2VjOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IG9sZF9pdGltZXJzcGVjMzIgewoxNDQ3NDogIHN0cnVjdCBvbGRfdGltZXNw
ZWMzMiBpdF9pbnRlcnZhbDsKMTQ0NzQ6ICBzdHJ1Y3Qgb2xkX3RpbWVzcGVjMzIgaXRfdmFsdWU7
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgb2xkX3V0aW1idWYzMiB7CjE0NDc0OiAg
b2xkX3RpbWUzMl90IGFjdGltZTsKMTQ0NzQ6ICBvbGRfdGltZTMyX3QgbW9kdGltZTsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBvbGRfdGltZXgzMiB7CjE0NDc0OiAgdTMyIG1vZGVz
OwoxNDQ3NDogIHMzMiBvZmZzZXQ7CjE0NDc0OiAgczMyIGZyZXE7CjE0NDc0OiAgczMyIG1heGVy
cm9yOwoxNDQ3NDogIHMzMiBlc3RlcnJvcjsKMTQ0NzQ6ICBzMzIgc3RhdHVzOwoxNDQ3NDogIHMz
MiBjb25zdGFudDsKMTQ0NzQ6ICBzMzIgcHJlY2lzaW9uOwoxNDQ3NDogIHMzMiB0b2xlcmFuY2U7
CjE0NDc0OiAgc3RydWN0IG9sZF90aW1ldmFsMzIgdGltZTsKMTQ0NzQ6ICBzMzIgdGljazsKMTQ0
NzQ6ICBzMzIgcHBzZnJlcTsKMTQ0NzQ6ICBzMzIgaml0dGVyOwoxNDQ3NDogIHMzMiBzaGlmdDsK
MTQ0NzQ6ICBzMzIgc3RhYmlsOwoxNDQ3NDogIHMzMiBqaXRjbnQ7CjE0NDc0OiAgczMyIGNhbGNu
dDsKMTQ0NzQ6ICBzMzIgZXJyY250OwoxNDQ3NDogIHMzMiBzdGJjbnQ7CjE0NDc0OiAgczMyIHRh
aTsKMTQ0NzQ6IAoxNDQ3NDogIHMzMjozMjsgczMyOjMyOyBzMzI6MzI7IHMzMjozMjsKMTQ0NzQ6
ICBzMzI6MzI7IHMzMjozMjsgczMyOjMyOyBzMzI6MzI7CjE0NDc0OiAgczMyOjMyOyBzMzI6MzI7
IHMzMjozMjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgZ2V0X29sZF90aW1l
c3BlYzMyKHN0cnVjdCB0aW1lc3BlYzY0ICosIGNvbnN0IHZvaWQgKik7CjE0NDc0OiBleHRlcm4g
aW50IHB1dF9vbGRfdGltZXNwZWMzMihjb25zdCBzdHJ1Y3QgdGltZXNwZWM2NCAqLCB2b2lkICop
OwoxNDQ3NDogZXh0ZXJuIGludCBnZXRfb2xkX2l0aW1lcnNwZWMzMihzdHJ1Y3QgaXRpbWVyc3Bl
YzY0ICppdHMsCjE0NDc0OiAgICBjb25zdCBzdHJ1Y3Qgb2xkX2l0aW1lcnNwZWMzMiAqdWl0cyk7
CjE0NDc0OiBleHRlcm4gaW50IHB1dF9vbGRfaXRpbWVyc3BlYzMyKGNvbnN0IHN0cnVjdCBpdGlt
ZXJzcGVjNjQgKml0cywKMTQ0NzQ6ICAgIHN0cnVjdCBvbGRfaXRpbWVyc3BlYzMyICp1aXRzKTsK
MTQ0NzQ6IHN0cnVjdCBfX2tlcm5lbF90aW1leDsKMTQ0NzQ6IGludCBnZXRfb2xkX3RpbWV4MzIo
c3RydWN0IF9fa2VybmVsX3RpbWV4ICosIGNvbnN0IHN0cnVjdCBvbGRfdGltZXgzMiAqKTsKMTQ0
NzQ6IGludCBwdXRfb2xkX3RpbWV4MzIoc3RydWN0IG9sZF90aW1leDMyICosIGNvbnN0IHN0cnVj
dCBfX2tlcm5lbF90aW1leCAqKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBfX2tlcm5lbF9vbGRfdGlt
ZXZhbCBuc190b19rZXJuZWxfb2xkX3RpbWV2YWwoczY0IG5zZWMpOwoxNDQ3NDogIyA3NSAiLi9p
bmNsdWRlL2xpbnV4L3RpbWUuaCIgMgoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGl0aW1lcnNwZWM2NF92
YWxpZChjb25zdCBzdHJ1Y3QgaXRpbWVyc3BlYzY0ICppdHMpCjE0NDc0OiB7CjE0NDc0OiAgaWYg
KCF0aW1lc3BlYzY0X3ZhbGlkKCYoaXRzLT5pdF9pbnRlcnZhbCkpIHx8CjE0NDc0OiAgICF0aW1l
c3BlYzY0X3ZhbGlkKCYoaXRzLT5pdF92YWx1ZSkpKQoxNDQ3NDogICByZXR1cm4gZmFsc2U7CjE0
NDc0OiAKMTQ0NzQ6ICByZXR1cm4gdHJ1ZTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTE0ICIuL2luY2x1
ZGUvbGludXgvdGltZS5oIgoxNDQ3NDogc3RydWN0IHRpbWVuc19vZmZzZXQgewoxNDQ3NDogIHM2
NCBzZWM7CjE0NDc0OiAgdTY0IG5zZWM7CjE0NDc0OiB9OwoxNDQ3NDogIyAyNSAiLi9pbmNsdWRl
L2xpbnV4L2t0aW1lLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2ppZmZpZXMuaCIg
MQoxNDQ3NDogIyAxMSAiLi9pbmNsdWRlL2xpbnV4L2ppZmZpZXMuaCIKMTQ0NzQ6ICMgMSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZC91YXBpL2FzbS9wYXJhbS5oIiAxCjE0NDc0OiAjIDEy
ICIuL2luY2x1ZGUvbGludXgvamlmZmllcy5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9nZW5l
cmF0ZWQvdGltZWNvbnN0LmgiIDEKMTQ0NzQ6ICMgMTMgIi4vaW5jbHVkZS9saW51eC9qaWZmaWVz
LmgiIDIKMTQ0NzQ6ICMgNjAgIi4vaW5jbHVkZS9saW51eC9qaWZmaWVzLmgiCjE0NDc0OiBleHRl
cm4gaW50IHJlZ2lzdGVyX3JlZmluZWRfamlmZmllcyhsb25nIGNsb2NrX3RpY2tfcmF0ZSk7CjE0
NDc0OiAjIDgwICIuL2luY2x1ZGUvbGludXgvamlmZmllcy5oIgoxNDQ3NDogZXh0ZXJuIHU2NCBf
X2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygoMSA8PCAoNikpKSwgX19zZWN0aW9uX18oIi5kYXRh
Li5jYWNoZWxpbmVfYWxpZ25lZCIpKSkgamlmZmllc182NDsKMTQ0NzQ6IGV4dGVybiB1bnNpZ25l
ZCBsb25nIHZvbGF0aWxlIF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKCgxIDw8ICg2KSkpLCBf
X3NlY3Rpb25fXygiLmRhdGEuLmNhY2hlbGluZV9hbGlnbmVkIikpKSBqaWZmaWVzOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1NjQgZ2V0X2ppZmZpZXNfNjQodm9pZCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHU2NClqaWZmaWVzOwoxNDQ3NDogfQoxNDQ3NDogIyAx
OTAgIi4vaW5jbHVkZS9saW51eC9qaWZmaWVzLmgiCjE0NDc0OiBleHRlcm4gdW5zaWduZWQgbG9u
ZyBwcmVzZXRfbHBqOwoxNDQ3NDogIyAyOTEgIi4vaW5jbHVkZS9saW51eC9qaWZmaWVzLmgiCjE0
NDc0OiBleHRlcm4gdW5zaWduZWQgaW50IGppZmZpZXNfdG9fbXNlY3MoY29uc3QgdW5zaWduZWQg
bG9uZyBqKTsKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBpbnQgamlmZmllc190b191c2Vjcyhjb25z
dCB1bnNpZ25lZCBsb25nIGopOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1NjQgamlmZmllc190b19uc2Vjcyhj
b25zdCB1bnNpZ25lZCBsb25nIGopCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh1NjQpamlmZmll
c190b191c2VjcyhqKSAqIDEwMDBMOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdTY0
IGppZmZpZXM2NF90b19uc2Vjcyh1NjQgaik7CjE0NDc0OiBleHRlcm4gdTY0IGppZmZpZXM2NF90
b19tc2Vjcyh1NjQgaik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBsb25nIF9fbXNl
Y3NfdG9famlmZmllcyhjb25zdCB1bnNpZ25lZCBpbnQgbSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIF9tc2Vjc190
b19qaWZmaWVzKGNvbnN0IHVuc2lnbmVkIGludCBtKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAo
bSArICgxMDAwTCAvIDI1MCkgLSAxKSAvICgxMDAwTCAvIDI1MCk7CjE0NDc0OiB9CjE0NDc0OiAj
IDM2NCAiLi9pbmNsdWRlL2xpbnV4L2ppZmZpZXMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9f
YWx3YXlzX2lubGluZV9fKSkgdW5zaWduZWQgbG9uZyBtc2Vjc190b19qaWZmaWVzKGNvbnN0IHVu
c2lnbmVkIGludCBtKQoxNDQ3NDogewoxNDQ3NDogIGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcCht
KSkgewoxNDQ3NDogICBpZiAoKGludCltIDwgMCkKMTQ0NzQ6ICAgIHJldHVybiAoKCgobG9uZyko
fjBVTCA+PiAxKSkgPj4gMSktMSk7CjE0NDc0OiAgIHJldHVybiBfbXNlY3NfdG9famlmZmllcyht
KTsKMTQ0NzQ6ICB9IGVsc2UgewoxNDQ3NDogICByZXR1cm4gX19tc2Vjc190b19qaWZmaWVzKG0p
OwoxNDQ3NDogIH0KMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGxvbmcg
X191c2Vjc190b19qaWZmaWVzKGNvbnN0IHVuc2lnbmVkIGludCB1KTsKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dW5zaWduZWQgbG9uZyBfdXNlY3NfdG9famlmZmllcyhjb25zdCB1bnNpZ25lZCBpbnQgdSkKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHUgKyAoMTAwMDAwMEwgLyAyNTApIC0gMSkgLyAoMTAwMDAw
MEwgLyAyNTApOwoxNDQ3NDogfQoxNDQ3NDogIyA0MTEgIi4vaW5jbHVkZS9saW51eC9qaWZmaWVz
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHVuc2lnbmVkIGxv
bmcgdXNlY3NfdG9famlmZmllcyhjb25zdCB1bnNpZ25lZCBpbnQgdSkKMTQ0NzQ6IHsKMTQ0NzQ6
ICBpZiAoX19idWlsdGluX2NvbnN0YW50X3AodSkpIHsKMTQ0NzQ6ICAgaWYgKHUgPiBqaWZmaWVz
X3RvX3VzZWNzKCgoKChsb25nKSh+MFVMID4+IDEpKSA+PiAxKS0xKSkpCjE0NDc0OiAgICByZXR1
cm4gKCgoKGxvbmcpKH4wVUwgPj4gMSkpID4+IDEpLTEpOwoxNDQ3NDogICByZXR1cm4gX3VzZWNz
X3RvX2ppZmZpZXModSk7CjE0NDc0OiAgfSBlbHNlIHsKMTQ0NzQ6ICAgcmV0dXJuIF9fdXNlY3Nf
dG9famlmZmllcyh1KTsKMTQ0NzQ6ICB9CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB1
bnNpZ25lZCBsb25nIHRpbWVzcGVjNjRfdG9famlmZmllcyhjb25zdCBzdHJ1Y3QgdGltZXNwZWM2
NCAqdmFsdWUpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgamlmZmllc190b190aW1lc3BlYzY0KGNvbnN0
IHVuc2lnbmVkIGxvbmcgamlmZmllcywKMTQ0NzQ6ICAgICAgIHN0cnVjdCB0aW1lc3BlYzY0ICp2
YWx1ZSk7CjE0NDc0OiBleHRlcm4gY2xvY2tfdCBqaWZmaWVzX3RvX2Nsb2NrX3QodW5zaWduZWQg
bG9uZyB4KTsKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGNsb2NrX3QgamlmZmllc19kZWx0YV90b19jbG9ja190KGxvbmcgZGVs
dGEpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGppZmZpZXNfdG9fY2xvY2tfdChfX2J1aWx0aW5f
Y2hvb3NlX2V4cHIoKCghIShzaXplb2YoKHR5cGVvZigwTCkgKikxID09ICh0eXBlb2YoZGVsdGEp
ICopMSkpKSAmJiAoKHNpemVvZihpbnQpID09IHNpemVvZigqKDggPyAoKHZvaWQgKikoKGxvbmcp
KDBMKSAqIDBsKSkgOiAoaW50ICopOCkpKSAmJiAoc2l6ZW9mKGludCkgPT0gc2l6ZW9mKCooOCA/
ICgodm9pZCAqKSgobG9uZykoZGVsdGEpICogMGwpKSA6IChpbnQgKik4KSkpKSksICgoMEwpID4g
KGRlbHRhKSA/ICgwTCkgOiAoZGVsdGEpKSwgKHsgdHlwZW9mKDBMKSBfX1VOSVFVRV9JRF9fX3g5
ID0gKDBMKTsgdHlwZW9mKGRlbHRhKSBfX1VOSVFVRV9JRF9fX3kxMCA9IChkZWx0YSk7ICgoX19V
TklRVUVfSURfX194OSkgPiAoX19VTklRVUVfSURfX195MTApID8gKF9fVU5JUVVFX0lEX19feDkp
IDogKF9fVU5JUVVFX0lEX19feTEwKSk7IH0pKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVu
c2lnbmVkIGludCBqaWZmaWVzX2RlbHRhX3RvX21zZWNzKGxvbmcgZGVsdGEpCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuIGppZmZpZXNfdG9fbXNlY3MoX19idWlsdGluX2Nob29zZV9leHByKCgoISEo
c2l6ZW9mKCh0eXBlb2YoMEwpICopMSA9PSAodHlwZW9mKGRlbHRhKSAqKTEpKSkgJiYgKChzaXpl
b2YoaW50KSA9PSBzaXplb2YoKig4ID8gKCh2b2lkICopKChsb25nKSgwTCkgKiAwbCkpIDogKGlu
dCAqKTgpKSkgJiYgKHNpemVvZihpbnQpID09IHNpemVvZigqKDggPyAoKHZvaWQgKikoKGxvbmcp
KGRlbHRhKSAqIDBsKSkgOiAoaW50ICopOCkpKSkpLCAoKDBMKSA+IChkZWx0YSkgPyAoMEwpIDog
KGRlbHRhKSksICh7IHR5cGVvZigwTCkgX19VTklRVUVfSURfX194MTEgPSAoMEwpOyB0eXBlb2Yo
ZGVsdGEpIF9fVU5JUVVFX0lEX19feTEyID0gKGRlbHRhKTsgKChfX1VOSVFVRV9JRF9fX3gxMSkg
PiAoX19VTklRVUVfSURfX195MTIpID8gKF9fVU5JUVVFX0lEX19feDExKSA6IChfX1VOSVFVRV9J
RF9fX3kxMikpOyB9KSkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdW5zaWduZWQg
bG9uZyBjbG9ja190X3RvX2ppZmZpZXModW5zaWduZWQgbG9uZyB4KTsKMTQ0NzQ6IGV4dGVybiB1
NjQgamlmZmllc182NF90b19jbG9ja190KHU2NCB4KTsKMTQ0NzQ6IGV4dGVybiB1NjQgbnNlY190
b19jbG9ja190KHU2NCB4KTsKMTQ0NzQ6IGV4dGVybiB1NjQgbnNlY3NfdG9famlmZmllczY0KHU2
NCBuKTsKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBsb25nIG5zZWNzX3RvX2ppZmZpZXModTY0IG4p
OwoxNDQ3NDogIyAyNiAiLi9pbmNsdWRlL2xpbnV4L2t0aW1lLmgiIDIKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiB0eXBlZGVmIHM2NCBrdGltZV90OwoxNDQ3NDogIyAzNyAiLi9pbmNsdWRlL2xpbnV4
L2t0aW1lLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBrdGltZV90IGt0aW1lX3NldChjb25zdCBzNjQgc2VjcywgY29uc3Qg
dW5zaWduZWQgbG9uZyBuc2VjcykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoX19idWlsdGluX2V4cGVj
dCghIShzZWNzID49ICgoKHM2NCl+KCh1NjQpMSA8PCA2MykpIC8gMTAwMDAwMDAwMEwpKSwgMCkp
CjE0NDc0OiAgIHJldHVybiAoKHM2NCl+KCh1NjQpMSA8PCA2MykpOwoxNDQ3NDogCjE0NDc0OiAg
cmV0dXJuIHNlY3MgKiAxMDAwMDAwMDAwTCArIChzNjQpbnNlY3M7CjE0NDc0OiB9CjE0NDc0OiAj
IDcwICIuL2luY2x1ZGUvbGludXgva3RpbWUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGt0aW1lX3QgdGltZXNwZWM2NF90
b19rdGltZShzdHJ1Y3QgdGltZXNwZWM2NCB0cykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4ga3Rp
bWVfc2V0KHRzLnR2X3NlYywgdHMudHZfbnNlYyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0IGt0aW1lX3RvX25zKGNvbnN0IGt0aW1l
X3Qga3QpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGt0OwoxNDQ3NDogfQoxNDQ3NDogIyA5NCAi
Li9pbmNsdWRlL2xpbnV4L2t0aW1lLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQga3RpbWVfY29tcGFyZShjb25zdCBr
dGltZV90IGNtcDEsIGNvbnN0IGt0aW1lX3QgY21wMikKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoY21w
MSA8IGNtcDIpCjE0NDc0OiAgIHJldHVybiAtMTsKMTQ0NzQ6ICBpZiAoY21wMSA+IGNtcDIpCjE0
NDc0OiAgIHJldHVybiAxOwoxNDQ3NDogIHJldHVybiAwOwoxNDQ3NDogfQoxNDQ3NDogIyAxMTAg
Ii4vaW5jbHVkZS9saW51eC9rdGltZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBrdGltZV9hZnRlcihjb25zdCBr
dGltZV90IGNtcDEsIGNvbnN0IGt0aW1lX3QgY21wMikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
a3RpbWVfY29tcGFyZShjbXAxLCBjbXAyKSA+IDA7CjE0NDc0OiB9CjE0NDc0OiAjIDEyMiAiLi9p
bmNsdWRlL2xpbnV4L2t0aW1lLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGt0aW1lX2JlZm9yZShjb25zdCBrdGlt
ZV90IGNtcDEsIGNvbnN0IGt0aW1lX3QgY21wMikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4ga3Rp
bWVfY29tcGFyZShjbXAxLCBjbXAyKSA8IDA7CjE0NDc0OiB9CjE0NDc0OiAjIDE0NyAiLi9pbmNs
dWRlL2xpbnV4L2t0aW1lLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQga3RpbWVfZGl2bnMoY29uc3Qga3RpbWVfdCBr
dCwgczY0IGRpdikKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogICh7IGludCBfX3JldF93YXJuX29uID0gISEoZGl2IDwgMCk7IGlmIChfX2J1aWx0aW5fZXhw
ZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGls
ZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJs
ZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6
YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5Ojpm
aWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMy
IiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9u
IiA6IDogImkiICgiaW5jbHVkZS9saW51eC9rdGltZS5oIiksICJpIiAoMTUzKSwgImkiICgoMSA8
PCAwKXwoKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdo
aWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2Fy
ZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IiA6
IDogImkiICgxMykpOyB9KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRf
d2Fybl9vbiksIDApOyB9KTsKMTQ0NzQ6ICByZXR1cm4ga3QgLyBkaXY7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgczY0IGt0aW1lX3RvX3VzKGNvbnN0IGt0aW1lX3Qga3QpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIGt0aW1lX2Rpdm5zKGt0LCAxMDAwTCk7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHM2NCBrdGltZV90b19tcyhjb25zdCBrdGltZV90IGt0KQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiBrdGltZV9kaXZucyhrdCwgMTAwMDAwMEwpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBzNjQga3RpbWVfdXNfZGVsdGEoY29uc3Qga3RpbWVfdCBsYXRlciwgY29uc3Qga3RpbWVf
dCBlYXJsaWVyKQoxNDQ3NDogewoxNDQ3NDogICAgICAgIHJldHVybiBrdGltZV90b191cygoKGxh
dGVyKSAtIChlYXJsaWVyKSkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQga3RpbWVfbXNf
ZGVsdGEoY29uc3Qga3RpbWVfdCBsYXRlciwgY29uc3Qga3RpbWVfdCBlYXJsaWVyKQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiBrdGltZV90b19tcygoKGxhdGVyKSAtIChlYXJsaWVyKSkpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBrdGltZV90IGt0aW1lX2FkZF91cyhjb25zdCBrdGltZV90IGt0
LCBjb25zdCB1NjQgdXNlYykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKChrdCkgKyAodXNlYyAq
IDEwMDBMKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGt0aW1lX3Qga3RpbWVfYWRkX21zKGNv
bnN0IGt0aW1lX3Qga3QsIGNvbnN0IHU2NCBtc2VjKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAo
KGt0KSArIChtc2VjICogMTAwMDAwMEwpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga3RpbWVf
dCBrdGltZV9zdWJfdXMoY29uc3Qga3RpbWVfdCBrdCwgY29uc3QgdTY0IHVzZWMpCjE0NDc0OiB7
CjE0NDc0OiAgcmV0dXJuICgoa3QpIC0gKHVzZWMgKiAxMDAwTCkpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBrdGltZV90IGt0aW1lX3N1Yl9tcyhjb25zdCBrdGltZV90IGt0LCBjb25zdCB1NjQg
bXNlYykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKChrdCkgLSAobXNlYyAqIDEwMDAwMDBMKSk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBrdGltZV90IGt0aW1lX2FkZF9zYWZlKGNv
bnN0IGt0aW1lX3QgbGhzLCBjb25zdCBrdGltZV90IHJocyk7CjE0NDc0OiAjIDIwOCAiLi9pbmNs
dWRlL2xpbnV4L2t0aW1lLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jl
c3VsdF9fKSkgYm9vbCBrdGltZV90b190aW1lc3BlYzY0X2NvbmQoY29uc3Qga3RpbWVfdCBrdCwK
MTQ0NzQ6ICAgICAgICAgICAgICBzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpCjE0NDc0OiB7CjE0NDc0
OiAgaWYgKGt0KSB7CjE0NDc0OiAgICp0cyA9IG5zX3RvX3RpbWVzcGVjNjQoKGt0KSk7CjE0NDc0
OiAgIHJldHVybiB0cnVlOwoxNDQ3NDogIH0gZWxzZSB7CjE0NDc0OiAgIHJldHVybiBmYWxzZTsK
MTQ0NzQ6ICB9CjE0NDc0OiB9CjE0NDc0OiAjIDIyOCAiLi9pbmNsdWRlL2xpbnV4L2t0aW1lLmgi
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBrdGltZV90IG5zX3RvX2t0aW1lKHU2NCBucykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gbnM7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGt0aW1lX3QgbXNfdG9fa3RpbWUodTY0IG1z
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBtcyAqIDEwMDAwMDBMOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC90aW1la2VlcGluZy5oIiAxCjE0NDc0OiAjIDkg
Ii4vaW5jbHVkZS9saW51eC90aW1la2VlcGluZy5oIgoxNDQ3NDogdm9pZCB0aW1la2VlcGluZ19p
bml0KHZvaWQpOwoxNDQ3NDogZXh0ZXJuIGludCB0aW1la2VlcGluZ19zdXNwZW5kZWQ7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgdXBkYXRlX3Byb2Nlc3NfdGltZXMoaW50IHVz
ZXIpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgeHRpbWVfdXBkYXRlKHVuc2lnbmVkIGxvbmcgdGlja3Mp
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGRvX3Nl
dHRpbWVvZmRheTY0KGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICp0cyk7CjE0NDc0OiBleHRlcm4g
aW50IGRvX3N5c19zZXR0aW1lb2ZkYXk2NChjb25zdCBzdHJ1Y3QgdGltZXNwZWM2NCAqdHYsCjE0
NDc0OiAgICAgIGNvbnN0IHN0cnVjdCB0aW1lem9uZSAqdHopOwoxNDQ3NDogIyA0MSAiLi9pbmNs
dWRlL2xpbnV4L3RpbWVrZWVwaW5nLmgiCjE0NDc0OiBleHRlcm4gdm9pZCBrdGltZV9nZXRfcmF3
X3RzNjQoc3RydWN0IHRpbWVzcGVjNjQgKnRzKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGt0aW1lX2dl
dF90czY0KHN0cnVjdCB0aW1lc3BlYzY0ICp0cyk7CjE0NDc0OiBleHRlcm4gdm9pZCBrdGltZV9n
ZXRfcmVhbF90czY0KHN0cnVjdCB0aW1lc3BlYzY0ICp0dik7CjE0NDc0OiBleHRlcm4gdm9pZCBr
dGltZV9nZXRfY29hcnNlX3RzNjQoc3RydWN0IHRpbWVzcGVjNjQgKnRzKTsKMTQ0NzQ6IGV4dGVy
biB2b2lkIGt0aW1lX2dldF9jb2Fyc2VfcmVhbF90czY0KHN0cnVjdCB0aW1lc3BlYzY0ICp0cyk7
CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZ2V0Ym9vdHRpbWU2NChzdHJ1Y3QgdGltZXNwZWM2NCAqdHMp
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdGltZTY0X3Qg
a3RpbWVfZ2V0X3NlY29uZHModm9pZCk7CjE0NDc0OiBleHRlcm4gdGltZTY0X3QgX19rdGltZV9n
ZXRfcmVhbF9zZWNvbmRzKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHRpbWU2NF90IGt0aW1lX2dldF9y
ZWFsX3NlY29uZHModm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogZW51bSB0a19vZmZzZXRzIHsKMTQ0NzQ6ICBUS19PRkZTX1JFQUwsCjE0NDc0OiAg
VEtfT0ZGU19CT09ULAoxNDQ3NDogIFRLX09GRlNfVEFJLAoxNDQ3NDogIFRLX09GRlNfTUFYLAox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGt0aW1lX3Qga3RpbWVfZ2V0KHZvaWQpOwox
NDQ3NDogZXh0ZXJuIGt0aW1lX3Qga3RpbWVfZ2V0X3dpdGhfb2Zmc2V0KGVudW0gdGtfb2Zmc2V0
cyBvZmZzKTsKMTQ0NzQ6IGV4dGVybiBrdGltZV90IGt0aW1lX2dldF9jb2Fyc2Vfd2l0aF9vZmZz
ZXQoZW51bSB0a19vZmZzZXRzIG9mZnMpOwoxNDQ3NDogZXh0ZXJuIGt0aW1lX3Qga3RpbWVfbW9u
b190b19hbnkoa3RpbWVfdCB0bW9ubywgZW51bSB0a19vZmZzZXRzIG9mZnMpOwoxNDQ3NDogZXh0
ZXJuIGt0aW1lX3Qga3RpbWVfZ2V0X3Jhdyh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB1MzIga3RpbWVf
Z2V0X3Jlc29sdXRpb25fbnModm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGt0aW1lX3Qga3RpbWVfZ2V0X3JlYWwodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4ga3RpbWVfZ2V0X3dpdGhfb2Zmc2V0KFRLX09GRlNfUkVBTCk7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGt0aW1lX3Qga3RpbWVfZ2V0X2NvYXJzZV9yZWFsKHZvaWQpCjE0NDc0OiB7CjE0NDc0
OiAgcmV0dXJuIGt0aW1lX2dldF9jb2Fyc2Vfd2l0aF9vZmZzZXQoVEtfT0ZGU19SRUFMKTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkga3RpbWVfdCBrdGltZV9nZXRfYm9vdHRpbWUodm9pZCkKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4ga3RpbWVfZ2V0X3dpdGhfb2Zmc2V0KFRLX09GRlNfQk9PVCk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGt0aW1lX3Qga3RpbWVfZ2V0X2NvYXJzZV9ib290dGltZSh2b2lkKQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiBrdGltZV9nZXRfY29hcnNlX3dpdGhfb2Zmc2V0KFRLX09G
RlNfQk9PVCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGt0aW1lX3Qga3RpbWVfZ2V0X2Nsb2NrdGFpKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
IGt0aW1lX2dldF93aXRoX29mZnNldChUS19PRkZTX1RBSSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGt0aW1lX3Qga3RpbWVfZ2V0X2NvYXJzZV9jbG9ja3RhaSh2b2lkKQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiBrdGltZV9nZXRfY29hcnNlX3dpdGhfb2Zmc2V0KFRLX09GRlNfVEFJKTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkga3RpbWVfdCBrdGltZV9nZXRfY29hcnNlKHZvaWQpCjE0NDc0
OiB7CjE0NDc0OiAgc3RydWN0IHRpbWVzcGVjNjQgdHM7CjE0NDc0OiAKMTQ0NzQ6ICBrdGltZV9n
ZXRfY29hcnNlX3RzNjQoJnRzKTsKMTQ0NzQ6ICByZXR1cm4gdGltZXNwZWM2NF90b19rdGltZSh0
cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2NCBrdGltZV9nZXRfY29hcnNlX25zKHZvaWQp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGt0aW1lX3RvX25zKGt0aW1lX2dldF9jb2Fyc2UoKSk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2NCBrdGltZV9nZXRfY29hcnNlX3JlYWxfbnModm9p
ZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4ga3RpbWVfdG9fbnMoa3RpbWVfZ2V0X2NvYXJzZV9y
ZWFsKCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1NjQga3RpbWVfZ2V0X2NvYXJzZV9ib290
dGltZV9ucyh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrdGltZV90b19ucyhrdGltZV9n
ZXRfY29hcnNlX2Jvb3R0aW1lKCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1NjQga3RpbWVf
Z2V0X2NvYXJzZV9jbG9ja3RhaV9ucyh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrdGlt
ZV90b19ucyhrdGltZV9nZXRfY29hcnNlX2Nsb2NrdGFpKCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBrdGltZV90IGt0aW1lX21vbm9fdG9fcmVhbChr
dGltZV90IG1vbm8pCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGt0aW1lX21vbm9fdG9fYW55KG1v
bm8sIFRLX09GRlNfUkVBTCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2NCBrdGltZV9nZXRf
bnModm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4ga3RpbWVfdG9fbnMoa3RpbWVfZ2V0KCkp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1NjQga3RpbWVfZ2V0X3JlYWxfbnModm9pZCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4ga3RpbWVfdG9fbnMoa3RpbWVfZ2V0X3JlYWwoKSk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHU2NCBrdGltZV9nZXRfYm9vdHRpbWVfbnModm9pZCkKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4ga3RpbWVfdG9fbnMoa3RpbWVfZ2V0X2Jvb3R0aW1lKCkpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB1NjQga3RpbWVfZ2V0X2Nsb2NrdGFpX25zKHZvaWQpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIGt0aW1lX3RvX25zKGt0aW1lX2dldF9jbG9ja3RhaSgpKTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdTY0IGt0aW1lX2dldF9yYXdfbnModm9pZCkKMTQ0NzQ6IHsK
MTQ0NzQ6ICByZXR1cm4ga3RpbWVfdG9fbnMoa3RpbWVfZ2V0X3JhdygpKTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogZXh0ZXJuIHU2NCBrdGltZV9nZXRfbW9ub19mYXN0X25zKHZvaWQpOwoxNDQ3
NDogZXh0ZXJuIHU2NCBrdGltZV9nZXRfcmF3X2Zhc3RfbnModm9pZCk7CjE0NDc0OiBleHRlcm4g
dTY0IGt0aW1lX2dldF9ib290X2Zhc3RfbnModm9pZCk7CjE0NDc0OiBleHRlcm4gdTY0IGt0aW1l
X2dldF9yZWFsX2Zhc3RfbnModm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGt0aW1lX2dldF9ib290dGltZV90czY0KHN0cnVj
dCB0aW1lc3BlYzY0ICp0cykKMTQ0NzQ6IHsKMTQ0NzQ6ICAqdHMgPSBuc190b190aW1lc3BlYzY0
KChrdGltZV9nZXRfYm9vdHRpbWUoKSkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGt0
aW1lX2dldF9jb2Fyc2VfYm9vdHRpbWVfdHM2NChzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpCjE0NDc0
OiB7CjE0NDc0OiAgKnRzID0gbnNfdG9fdGltZXNwZWM2NCgoa3RpbWVfZ2V0X2NvYXJzZV9ib290
dGltZSgpKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHRpbWU2NF90IGt0aW1lX2dldF9ib290
dGltZV9zZWNvbmRzKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGt0aW1lX2Rpdm5zKGt0
aW1lX2dldF9jb2Fyc2VfYm9vdHRpbWUoKSwgMTAwMDAwMDAwMEwpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGt0aW1lX2dldF9jbG9ja3RhaV90czY0KHN0cnVjdCB0aW1lc3BlYzY0ICp0
cykKMTQ0NzQ6IHsKMTQ0NzQ6ICAqdHMgPSBuc190b190aW1lc3BlYzY0KChrdGltZV9nZXRfY2xv
Y2t0YWkoKSkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGt0aW1lX2dldF9jb2Fyc2Vf
Y2xvY2t0YWlfdHM2NChzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpCjE0NDc0OiB7CjE0NDc0OiAgKnRz
ID0gbnNfdG9fdGltZXNwZWM2NCgoa3RpbWVfZ2V0X2NvYXJzZV9jbG9ja3RhaSgpKSk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHRpbWU2NF90IGt0aW1lX2dldF9jbG9ja3RhaV9zZWNvbmRzKHZv
aWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGt0aW1lX2Rpdm5zKGt0aW1lX2dldF9jb2Fyc2Vf
Y2xvY2t0YWkoKSwgMTAwMDAwMDAwMEwpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gYm9vbCB0aW1la2VlcGluZ19ydGNfc2tpcHN1c3BlbmQo
dm9pZCk7CjE0NDc0OiBleHRlcm4gYm9vbCB0aW1la2VlcGluZ19ydGNfc2tpcHJlc3VtZSh2b2lk
KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgdGltZWtlZXBpbmdfaW5qZWN0X3NsZWVwdGlt
ZTY0KGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICpkZWx0YSk7CjE0NDc0OiAjIDIzNCAiLi9pbmNs
dWRlL2xpbnV4L3RpbWVrZWVwaW5nLmgiCjE0NDc0OiBzdHJ1Y3Qgc3lzdGVtX3RpbWVfc25hcHNo
b3QgewoxNDQ3NDogIHU2NCBjeWNsZXM7CjE0NDc0OiAga3RpbWVfdCByZWFsOwoxNDQ3NDogIGt0
aW1lX3QgcmF3OwoxNDQ3NDogIHVuc2lnbmVkIGludCBjbG9ja193YXNfc2V0X3NlcTsKMTQ0NzQ6
ICB1OCBjc193YXNfY2hhbmdlZF9zZXE7CjE0NDc0OiB9OwoxNDQ3NDogIyAyNDkgIi4vaW5jbHVk
ZS9saW51eC90aW1la2VlcGluZy5oIgoxNDQ3NDogc3RydWN0IHN5c3RlbV9kZXZpY2VfY3Jvc3N0
c3RhbXAgewoxNDQ3NDogIGt0aW1lX3QgZGV2aWNlOwoxNDQ3NDogIGt0aW1lX3Qgc3lzX3JlYWx0
aW1lOwoxNDQ3NDogIGt0aW1lX3Qgc3lzX21vbm9yYXc7CjE0NDc0OiB9OwoxNDQ3NDogIyAyNjIg
Ii4vaW5jbHVkZS9saW51eC90aW1la2VlcGluZy5oIgoxNDQ3NDogc3RydWN0IHN5c3RlbV9jb3Vu
dGVydmFsX3QgewoxNDQ3NDogIHU2NCBjeWNsZXM7CjE0NDc0OiAgc3RydWN0IGNsb2Nrc291cmNl
ICpjczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4
dGVybiBpbnQgZ2V0X2RldmljZV9zeXN0ZW1fY3Jvc3N0c3RhbXAoCjE0NDc0OiAgICBpbnQgKCpn
ZXRfdGltZV9mbikoa3RpbWVfdCAqZGV2aWNlX3RpbWUsCjE0NDc0OiAgICAgc3RydWN0IHN5c3Rl
bV9jb3VudGVydmFsX3QgKnN5c3RlbV9jb3VudGVydmFsLAoxNDQ3NDogICAgIHZvaWQgKmN0eCks
CjE0NDc0OiAgICB2b2lkICpjdHgsCjE0NDc0OiAgICBzdHJ1Y3Qgc3lzdGVtX3RpbWVfc25hcHNo
b3QgKmhpc3RvcnksCjE0NDc0OiAgICBzdHJ1Y3Qgc3lzdGVtX2RldmljZV9jcm9zc3RzdGFtcCAq
eHRzdGFtcCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2
b2lkIGt0aW1lX2dldF9zbmFwc2hvdChzdHJ1Y3Qgc3lzdGVtX3RpbWVfc25hcHNob3QgKnN5c3Rp
bWVfc25hcHNob3QpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRl
cm4gaW50IHBlcnNpc3RlbnRfY2xvY2tfaXNfbG9jYWw7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2
b2lkIHJlYWRfcGVyc2lzdGVudF9jbG9jazY0KHN0cnVjdCB0aW1lc3BlYzY0ICp0cyk7CjE0NDc0
OiB2b2lkIHJlYWRfcGVyc2lzdGVudF93YWxsX2FuZF9ib290X29mZnNldChzdHJ1Y3QgdGltZXNw
ZWM2NCAqd2FsbF9jbG9jaywKMTQ0NzQ6ICAgICAgICBzdHJ1Y3QgdGltZXNwZWM2NCAqYm9vdF9v
ZmZzZXQpOwoxNDQ3NDogZXh0ZXJuIGludCB1cGRhdGVfcGVyc2lzdGVudF9jbG9jazY0KHN0cnVj
dCB0aW1lc3BlYzY0IG5vdyk7CjE0NDc0OiAjIDIzOSAiLi9pbmNsdWRlL2xpbnV4L2t0aW1lLmgi
IDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3RpbWVrZWVwaW5nMzIuaCIgMQoxNDQ3NDog
IyA5ICIuL2luY2x1ZGUvbGludXgvdGltZWtlZXBpbmczMi5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9u
ZyBnZXRfc2Vjb25kcyh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrdGltZV9nZXRfcmVh
bF9zZWNvbmRzKCk7CjE0NDc0OiB9CjE0NDc0OiAjIDI0MCAiLi9pbmNsdWRlL2xpbnV4L2t0aW1l
LmgiIDIKMTQ0NzQ6ICMgNyAiLi9pbmNsdWRlL2xpbnV4L3RpbWVyLmgiIDIKMTQ0NzQ6IAoxNDQ3
NDogIyAxICIuL2luY2x1ZGUvbGludXgvZGVidWdvYmplY3RzLmgiIDEKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkZWJ1
Z19vYmpfc3RhdGUgewoxNDQ3NDogIE9ERUJVR19TVEFURV9OT05FLAoxNDQ3NDogIE9ERUJVR19T
VEFURV9JTklULAoxNDQ3NDogIE9ERUJVR19TVEFURV9JTkFDVElWRSwKMTQ0NzQ6ICBPREVCVUdf
U1RBVEVfQUNUSVZFLAoxNDQ3NDogIE9ERUJVR19TVEFURV9ERVNUUk9ZRUQsCjE0NDc0OiAgT0RF
QlVHX1NUQVRFX05PVEFWQUlMQUJMRSwKMTQ0NzQ6ICBPREVCVUdfU1RBVEVfTUFYLAoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRlYnVnX29ial9kZXNjcjsKMTQ0NzQ6ICMgMjggIi4v
aW5jbHVkZS9saW51eC9kZWJ1Z29iamVjdHMuaCIKMTQ0NzQ6IHN0cnVjdCBkZWJ1Z19vYmogewox
NDQ3NDogIHN0cnVjdCBobGlzdF9ub2RlIG5vZGU7CjE0NDc0OiAgZW51bSBkZWJ1Z19vYmpfc3Rh
dGUgc3RhdGU7CjE0NDc0OiAgdW5zaWduZWQgaW50IGFzdGF0ZTsKMTQ0NzQ6ICB2b2lkICpvYmpl
Y3Q7CjE0NDc0OiAgc3RydWN0IGRlYnVnX29ial9kZXNjciAqZGVzY3I7CjE0NDc0OiB9OwoxNDQ3
NDogIyA1NSAiLi9pbmNsdWRlL2xpbnV4L2RlYnVnb2JqZWN0cy5oIgoxNDQ3NDogc3RydWN0IGRl
YnVnX29ial9kZXNjciB7CjE0NDc0OiAgY29uc3QgY2hhciAqbmFtZTsKMTQ0NzQ6ICB2b2lkICoo
KmRlYnVnX2hpbnQpKHZvaWQgKmFkZHIpOwoxNDQ3NDogIGJvb2wgKCppc19zdGF0aWNfb2JqZWN0
KSh2b2lkICphZGRyKTsKMTQ0NzQ6ICBib29sICgqZml4dXBfaW5pdCkodm9pZCAqYWRkciwgZW51
bSBkZWJ1Z19vYmpfc3RhdGUgc3RhdGUpOwoxNDQ3NDogIGJvb2wgKCpmaXh1cF9hY3RpdmF0ZSko
dm9pZCAqYWRkciwgZW51bSBkZWJ1Z19vYmpfc3RhdGUgc3RhdGUpOwoxNDQ3NDogIGJvb2wgKCpm
aXh1cF9kZXN0cm95KSh2b2lkICphZGRyLCBlbnVtIGRlYnVnX29ial9zdGF0ZSBzdGF0ZSk7CjE0
NDc0OiAgYm9vbCAoKmZpeHVwX2ZyZWUpKHZvaWQgKmFkZHIsIGVudW0gZGVidWdfb2JqX3N0YXRl
IHN0YXRlKTsKMTQ0NzQ6ICBib29sICgqZml4dXBfYXNzZXJ0X2luaXQpKHZvaWQgKmFkZHIsIGVu
dW0gZGVidWdfb2JqX3N0YXRlIHN0YXRlKTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDg4ICIuL2luY2x1
ZGUvbGludXgvZGVidWdvYmplY3RzLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBkZWJ1Z19vYmplY3Rf
aW5pdCAodm9pZCAqYWRkciwgc3RydWN0IGRlYnVnX29ial9kZXNjciAqZGVzY3IpIHsgfQoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZAoxNDQ3NDogZGVidWdfb2JqZWN0X2luaXRfb25fc3RhY2sodm9pZCAqYWRkciwgc3Ry
dWN0IGRlYnVnX29ial9kZXNjciAqZGVzY3IpIHsgfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CjE0NDc0OiBkZWJ1Z19v
YmplY3RfYWN0aXZhdGUgKHZvaWQgKmFkZHIsIHN0cnVjdCBkZWJ1Z19vYmpfZGVzY3IgKmRlc2Ny
KSB7IHJldHVybiAwOyB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBkZWJ1Z19vYmplY3RfZGVhY3RpdmF0
ZSh2b2lkICphZGRyLCBzdHJ1Y3QgZGVidWdfb2JqX2Rlc2NyICpkZXNjcikgeyB9CjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkCjE0NDc0OiBkZWJ1Z19vYmplY3RfZGVzdHJveSAodm9pZCAqYWRkciwgc3RydWN0IGRlYnVn
X29ial9kZXNjciAqZGVzY3IpIHsgfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogZGVidWdfb2JqZWN0X2Zy
ZWUgKHZvaWQgKmFkZHIsIHN0cnVjdCBkZWJ1Z19vYmpfZGVzY3IgKmRlc2NyKSB7IH0KMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQKMTQ0NzQ6IGRlYnVnX29iamVjdF9hc3NlcnRfaW5pdCh2b2lkICphZGRyLCBzdHJ1Y3Qg
ZGVidWdfb2JqX2Rlc2NyICpkZXNjcikgeyB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZGVidWdfb2Jq
ZWN0c19lYXJseV9pbml0KHZvaWQpIHsgfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZWJ1Z19vYmplY3RzX21lbV9p
bml0KHZvaWQpIHsgfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQKMTQ0NzQ6IGRlYnVnX2NoZWNrX25vX29ial9mcmVlZChjb25zdCB2b2lkICphZGRy
ZXNzLCB1bnNpZ25lZCBsb25nIHNpemUpIHsgfQoxNDQ3NDogIyA5ICIuL2luY2x1ZGUvbGludXgv
dGltZXIuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0aW1lcl9saXN0IHsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBobGlzdF9ub2RlIGVu
dHJ5OwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZXhwaXJlczsKMTQ0NzQ6ICB2b2lkICgqZnVuY3Rp
b24pKHN0cnVjdCB0aW1lcl9saXN0ICopOwoxNDQ3NDogIHUzMiBmbGFnczsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6ICMgOTAgIi4vaW5jbHVkZS9saW51
eC90aW1lci5oIgoxNDQ3NDogdm9pZCBpbml0X3RpbWVyX2tleShzdHJ1Y3QgdGltZXJfbGlzdCAq
dGltZXIsCjE0NDc0OiAgICAgICB2b2lkICgqZnVuYykoc3RydWN0IHRpbWVyX2xpc3QgKiksIHVu
c2lnbmVkIGludCBmbGFncywKMTQ0NzQ6ICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBs
b2NrX2NsYXNzX2tleSAqa2V5KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbml0X3RpbWVyX29uX3N0YWNrX2tleShz
dHJ1Y3QgdGltZXJfbGlzdCAqdGltZXIsCjE0NDc0OiAgICAgICAgIHZvaWQgKCpmdW5jKShzdHJ1
Y3QgdGltZXJfbGlzdCAqKSwKMTQ0NzQ6ICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzLAoxNDQ3
NDogICAgICAgICBjb25zdCBjaGFyICpuYW1lLAoxNDQ3NDogICAgICAgICBzdHJ1Y3QgbG9ja19j
bGFzc19rZXkgKmtleSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpbml0X3RpbWVyX2tleSh0aW1lciwgZnVu
YywgZmxhZ3MsIG5hbWUsIGtleSk7CjE0NDc0OiB9CjE0NDc0OiAjIDE0OSAiLi9pbmNsdWRlL2xp
bnV4L3RpbWVyLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGRlc3Ryb3lfdGltZXJfb25fc3RhY2soc3RydWN0IHRp
bWVyX2xpc3QgKnRpbWVyKSB7IH0KMTQ0NzQ6ICMgMTY1ICIuL2luY2x1ZGUvbGludXgvdGltZXIu
aCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGludCB0aW1lcl9wZW5kaW5nKGNvbnN0IHN0cnVjdCB0aW1lcl9saXN0ICogdGlt
ZXIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHRpbWVyLT5lbnRyeS5wcHJldiAhPSAoKHZvaWQg
KikwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgYWRkX3RpbWVyX29uKHN0
cnVjdCB0aW1lcl9saXN0ICp0aW1lciwgaW50IGNwdSk7CjE0NDc0OiBleHRlcm4gaW50IGRlbF90
aW1lcihzdHJ1Y3QgdGltZXJfbGlzdCAqIHRpbWVyKTsKMTQ0NzQ6IGV4dGVybiBpbnQgbW9kX3Rp
bWVyKHN0cnVjdCB0aW1lcl9saXN0ICp0aW1lciwgdW5zaWduZWQgbG9uZyBleHBpcmVzKTsKMTQ0
NzQ6IGV4dGVybiBpbnQgbW9kX3RpbWVyX3BlbmRpbmcoc3RydWN0IHRpbWVyX2xpc3QgKnRpbWVy
LCB1bnNpZ25lZCBsb25nIGV4cGlyZXMpOwoxNDQ3NDogZXh0ZXJuIGludCB0aW1lcl9yZWR1Y2Uo
c3RydWN0IHRpbWVyX2xpc3QgKnRpbWVyLCB1bnNpZ25lZCBsb25nIGV4cGlyZXMpOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBl
eHRlcm4gdm9pZCBhZGRfdGltZXIoc3RydWN0IHRpbWVyX2xpc3QgKnRpbWVyKTsKMTQ0NzQ6IAox
NDQ3NDogZXh0ZXJuIGludCB0cnlfdG9fZGVsX3RpbWVyX3N5bmMoc3RydWN0IHRpbWVyX2xpc3Qg
KnRpbWVyKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIGV4dGVybiBpbnQgZGVsX3RpbWVyX3N5
bmMoc3RydWN0IHRpbWVyX2xpc3QgKnRpbWVyKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGluaXRfdGltZXJzKHZvaWQp
OwoxNDQ3NDogZXh0ZXJuIHZvaWQgcnVuX2xvY2FsX3RpbWVycyh2b2lkKTsKMTQ0NzQ6IHN0cnVj
dCBocnRpbWVyOwoxNDQ3NDogZXh0ZXJuIGVudW0gaHJ0aW1lcl9yZXN0YXJ0IGl0X3JlYWxfZm4o
c3RydWN0IGhydGltZXIgKik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGN0bF90YWJs
ZTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGludCBzeXNjdGxfdGltZXJfbWlncmF0
aW9uOwoxNDQ3NDogaW50IHRpbWVyX21pZ3JhdGlvbl9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUg
KnRhYmxlLCBpbnQgd3JpdGUsCjE0NDc0OiAgICAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxl
bnAsCjE0NDc0OiAgICAgICAgbG9mZl90ICpwcG9zKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB1
bnNpZ25lZCBsb25nIF9fcm91bmRfamlmZmllcyh1bnNpZ25lZCBsb25nIGosIGludCBjcHUpOwox
NDQ3NDogdW5zaWduZWQgbG9uZyBfX3JvdW5kX2ppZmZpZXNfcmVsYXRpdmUodW5zaWduZWQgbG9u
ZyBqLCBpbnQgY3B1KTsKMTQ0NzQ6IHVuc2lnbmVkIGxvbmcgcm91bmRfamlmZmllcyh1bnNpZ25l
ZCBsb25nIGopOwoxNDQ3NDogdW5zaWduZWQgbG9uZyByb3VuZF9qaWZmaWVzX3JlbGF0aXZlKHVu
c2lnbmVkIGxvbmcgaik7CjE0NDc0OiAKMTQ0NzQ6IHVuc2lnbmVkIGxvbmcgX19yb3VuZF9qaWZm
aWVzX3VwKHVuc2lnbmVkIGxvbmcgaiwgaW50IGNwdSk7CjE0NDc0OiB1bnNpZ25lZCBsb25nIF9f
cm91bmRfamlmZmllc191cF9yZWxhdGl2ZSh1bnNpZ25lZCBsb25nIGosIGludCBjcHUpOwoxNDQ3
NDogdW5zaWduZWQgbG9uZyByb3VuZF9qaWZmaWVzX3VwKHVuc2lnbmVkIGxvbmcgaik7CjE0NDc0
OiB1bnNpZ25lZCBsb25nIHJvdW5kX2ppZmZpZXNfdXBfcmVsYXRpdmUodW5zaWduZWQgbG9uZyBq
KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBpbnQgdGltZXJzX3ByZXBhcmVfY3B1KHVuc2lnbmVk
IGludCBjcHUpOwoxNDQ3NDogaW50IHRpbWVyc19kZWFkX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsK
MTQ0NzQ6ICMgMTAgIi4vaW5jbHVkZS9saW51eC93b3JrcXVldWUuaCIgMgoxNDQ3NDogIyAxOCAi
Li9pbmNsdWRlL2xpbnV4L3dvcmtxdWV1ZS5oIgoxNDQ3NDogc3RydWN0IHdvcmtxdWV1ZV9zdHJ1
Y3Q7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB3b3JrX3N0cnVjdDsKMTQ0NzQ6IHR5cGVkZWYgdm9p
ZCAoKndvcmtfZnVuY190KShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwoxNDQ3NDogdm9pZCBk
ZWxheWVkX3dvcmtfdGltZXJfZm4oc3RydWN0IHRpbWVyX2xpc3QgKnQpOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHsK
MTQ0NzQ6ICBXT1JLX1NUUlVDVF9QRU5ESU5HX0JJVCA9IDAsCjE0NDc0OiAgV09SS19TVFJVQ1Rf
REVMQVlFRF9CSVQgPSAxLAoxNDQ3NDogIFdPUktfU1RSVUNUX1BXUV9CSVQgPSAyLAoxNDQ3NDog
IFdPUktfU1RSVUNUX0xJTktFRF9CSVQgPSAzLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgV09SS19TVFJVQ1RfQ09MT1JfU0hJRlQgPSA0LAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6ICBXT1JLX1NUUlVDVF9DT0xPUl9CSVRTID0gNCwKMTQ0NzQ6IAoxNDQ3NDogIFdPUktf
U1RSVUNUX1BFTkRJTkcgPSAxIDw8IFdPUktfU1RSVUNUX1BFTkRJTkdfQklULAoxNDQ3NDogIFdP
UktfU1RSVUNUX0RFTEFZRUQgPSAxIDw8IFdPUktfU1RSVUNUX0RFTEFZRURfQklULAoxNDQ3NDog
IFdPUktfU1RSVUNUX1BXUSA9IDEgPDwgV09SS19TVFJVQ1RfUFdRX0JJVCwKMTQ0NzQ6ICBXT1JL
X1NUUlVDVF9MSU5LRUQgPSAxIDw8IFdPUktfU1RSVUNUX0xJTktFRF9CSVQsCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAgV09SS19TVFJVQ1RfU1RBVElDID0gMCwKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBXT1JLX05SX0NPTE9S
UyA9ICgxIDw8IFdPUktfU1RSVUNUX0NPTE9SX0JJVFMpIC0gMSwKMTQ0NzQ6ICBXT1JLX05PX0NP
TE9SID0gV09SS19OUl9DT0xPUlMsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIFdPUktfQ1BVX1VO
Qk9VTkQgPSA4LAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIFdPUktfU1RSVUNUX0ZMQUdfQklUUyA9IFdPUktfU1RSVUNUX0NPTE9SX1NISUZU
ICsKMTQ0NzQ6ICAgICAgIFdPUktfU1RSVUNUX0NPTE9SX0JJVFMsCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogIFdPUktfT0ZGUV9GTEFHX0JBU0UgPSBXT1JLX1NUUlVDVF9DT0xPUl9TSElGVCwKMTQ0
NzQ6IAoxNDQ3NDogIF9fV09SS19PRkZRX0NBTkNFTElORyA9IFdPUktfT0ZGUV9GTEFHX0JBU0Us
CjE0NDc0OiAgV09SS19PRkZRX0NBTkNFTElORyA9ICgxIDw8IF9fV09SS19PRkZRX0NBTkNFTElO
RyksCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAgV09SS19PRkZRX0ZMQUdfQklUUyA9IDEsCjE0NDc0OiAgV09SS19PRkZRX1BPT0xfU0hJRlQg
PSBXT1JLX09GRlFfRkxBR19CQVNFICsgV09SS19PRkZRX0ZMQUdfQklUUywKMTQ0NzQ6ICBXT1JL
X09GRlFfTEVGVCA9IDY0IC0gV09SS19PRkZRX1BPT0xfU0hJRlQsCjE0NDc0OiAgV09SS19PRkZR
X1BPT0xfQklUUyA9IFdPUktfT0ZGUV9MRUZUIDw9IDMxID8gV09SS19PRkZRX0xFRlQgOiAzMSwK
MTQ0NzQ6ICBXT1JLX09GRlFfUE9PTF9OT05FID0gKDFMVSA8PCBXT1JLX09GRlFfUE9PTF9CSVRT
KSAtIDEsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIFdPUktfU1RSVUNUX0ZMQUdfTUFTSyA9ICgx
VUwgPDwgV09SS19TVFJVQ1RfRkxBR19CSVRTKSAtIDEsCjE0NDc0OiAgV09SS19TVFJVQ1RfV1Ff
REFUQV9NQVNLID0gfldPUktfU1RSVUNUX0ZMQUdfTUFTSywKMTQ0NzQ6ICBXT1JLX1NUUlVDVF9O
T19QT09MID0gKHVuc2lnbmVkIGxvbmcpV09SS19PRkZRX1BPT0xfTk9ORSA8PCBXT1JLX09GRlFf
UE9PTF9TSElGVCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgV09SS19CVVNZX1BFTkRJTkcgPSAx
IDw8IDAsCjE0NDc0OiAgV09SS19CVVNZX1JVTk5JTkcgPSAxIDw8IDEsCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIFdPUktFUl9ERVNDX0xFTiA9IDI0LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IHdvcmtfc3RydWN0IHsKMTQ0NzQ6ICBhdG9taWNfbG9uZ190IGRhdGE7CjE0NDc0OiAg
c3RydWN0IGxpc3RfaGVhZCBlbnRyeTsKMTQ0NzQ6ICB3b3JrX2Z1bmNfdCBmdW5jOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGVsYXllZF93b3JrIHsKMTQ0NzQ6ICBzdHJ1Y3Qgd29y
a19zdHJ1Y3Qgd29yazsKMTQ0NzQ6ICBzdHJ1Y3QgdGltZXJfbGlzdCB0aW1lcjsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxOwoxNDQ3NDogIGludCBj
cHU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcmN1X3dvcmsgewoxNDQ3NDogIHN0
cnVjdCB3b3JrX3N0cnVjdCB3b3JrOwoxNDQ3NDogIHN0cnVjdCBjYWxsYmFja19oZWFkIHJjdTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxOwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCB3b3JrcXVldWVfYXR0cnMgewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIGludCBuaWNlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgY3B1
bWFza192YXJfdCBjcHVtYXNrOwoxNDQ3NDogIyAxNTUgIi4vaW5jbHVkZS9saW51eC93b3JrcXVl
dWUuaCIKMTQ0NzQ6ICBib29sIG5vX251bWE7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1
Y3QgZGVsYXllZF93b3JrICp0b19kZWxheWVkX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3Jr
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoeyB2b2lkICpfX21wdHIgPSAodm9pZCAqKSh3b3Jr
KTsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8xNjAodm9pZCkgX19hdHRy
aWJ1dGVfXygoX19lcnJvcl9fKCJwb2ludGVyIHR5cGUgbWlzbWF0Y2ggaW4gY29udGFpbmVyX29m
KCkiKSkpOyBpZiAoISghKCFfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZigqKHdv
cmspKSwgdHlwZW9mKCgoc3RydWN0IGRlbGF5ZWRfd29yayAqKTApLT53b3JrKSkgJiYgIV9fYnVp
bHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCood29yaykpLCB0eXBlb2Yodm9pZCkpKSkp
IF9fY29tcGlsZXRpbWVfYXNzZXJ0XzE2MCgpOyB9IHdoaWxlICgwKTsgKChzdHJ1Y3QgZGVsYXll
ZF93b3JrICopKF9fbXB0ciAtIF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgZGVsYXllZF93b3Jr
LCB3b3JrKSkpOyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IHJjdV93b3JrICp0
b19yY3Vfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuICh7IHZvaWQgKl9fbXB0ciA9ICh2b2lkICopKHdvcmspOyBkbyB7IGV4dGVybiB2b2lkIF9f
Y29tcGlsZXRpbWVfYXNzZXJ0XzE2NSh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oInBv
aW50ZXIgdHlwZSBtaXNtYXRjaCBpbiBjb250YWluZXJfb2YoKSIpKSk7IGlmICghKCEoIV9fYnVp
bHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCood29yaykpLCB0eXBlb2YoKChzdHJ1Y3Qg
cmN1X3dvcmsgKikwKS0+d29yaykpICYmICFfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5
cGVvZigqKHdvcmspKSwgdHlwZW9mKHZvaWQpKSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF8xNjUo
KTsgfSB3aGlsZSAoMCk7ICgoc3RydWN0IHJjdV93b3JrICopKF9fbXB0ciAtIF9fYnVpbHRpbl9v
ZmZzZXRvZihzdHJ1Y3QgcmN1X3dvcmssIHdvcmspKSk7IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgZXhlY3V0ZV93b3JrIHsKMTQ0NzQ6ICBzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29y
azsKMTQ0NzQ6IH07CjE0NDc0OiAjIDIxNSAiLi9pbmNsdWRlL2xpbnV4L3dvcmtxdWV1ZS5oIgox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBfX2luaXRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmssIGludCBvbnN0
YWNrKSB7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgZGVzdHJveV93b3JrX29uX3N0YWNrKHN0cnVjdCB3b3JrX3N0
cnVjdCAqd29yaykgeyB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGRlc3Ryb3lfZGVsYXllZF93b3JrX29uX3N0YWNr
KHN0cnVjdCBkZWxheWVkX3dvcmsgKndvcmspIHsgfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IHdvcmtf
c3RhdGljKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykgeyByZXR1cm4gMDsgfQoxNDQ3NDogIyAz
MDggIi4vaW5jbHVkZS9saW51eC93b3JrcXVldWUuaCIKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIFdR
X1VOQk9VTkQgPSAxIDw8IDEsCjE0NDc0OiAgV1FfRlJFRVpBQkxFID0gMSA8PCAyLAoxNDQ3NDog
IFdRX01FTV9SRUNMQUlNID0gMSA8PCAzLAoxNDQ3NDogIFdRX0hJR0hQUkkgPSAxIDw8IDQsCjE0
NDc0OiAgV1FfQ1BVX0lOVEVOU0lWRSA9IDEgPDwgNSwKMTQ0NzQ6ICBXUV9TWVNGUyA9IDEgPDwg
NiwKMTQ0NzQ6ICMgMzQxICIuL2luY2x1ZGUvbGludXgvd29ya3F1ZXVlLmgiCjE0NDc0OiAgV1Ff
UE9XRVJfRUZGSUNJRU5UID0gMSA8PCA3LAoxNDQ3NDogCjE0NDc0OiAgX19XUV9EUkFJTklORyA9
IDEgPDwgMTYsCjE0NDc0OiAgX19XUV9PUkRFUkVEID0gMSA8PCAxNywKMTQ0NzQ6ICBfX1dRX0xF
R0FDWSA9IDEgPDwgMTgsCjE0NDc0OiAgX19XUV9PUkRFUkVEX0VYUExJQ0lUID0gMSA8PCAxOSwK
MTQ0NzQ6IAoxNDQ3NDogIFdRX01BWF9BQ1RJVkUgPSA1MTIsCjE0NDc0OiAgV1FfTUFYX1VOQk9V
TkRfUEVSX0NQVSA9IDQsCjE0NDc0OiAgV1FfREZMX0FDVElWRSA9IFdRX01BWF9BQ1RJVkUgLyAy
LAoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzg1ICIuL2luY2x1ZGUvbGludXgvd29ya3F1ZXVlLmgiCjE0
NDc0OiBleHRlcm4gc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKnN5c3RlbV93cTsKMTQ0NzQ6IGV4
dGVybiBzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqc3lzdGVtX2hpZ2hwcmlfd3E7CjE0NDc0OiBl
eHRlcm4gc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKnN5c3RlbV9sb25nX3dxOwoxNDQ3NDogZXh0
ZXJuIHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpzeXN0ZW1fdW5ib3VuZF93cTsKMTQ0NzQ6IGV4
dGVybiBzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqc3lzdGVtX2ZyZWV6YWJsZV93cTsKMTQ0NzQ6
IGV4dGVybiBzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqc3lzdGVtX3Bvd2VyX2VmZmljaWVudF93
cTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqc3lzdGVtX2ZyZWV6YWJs
ZV9wb3dlcl9lZmZpY2llbnRfd3E7CjE0NDc0OiAjIDQwNyAiLi9pbmNsdWRlL2xpbnV4L3dvcmtx
dWV1ZS5oIgoxNDQ3NDogc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKmFsbG9jX3dvcmtxdWV1ZShj
b25zdCBjaGFyICpmbXQsCjE0NDc0OiAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MsCjE0NDc0OiAg
ICAgICBpbnQgbWF4X2FjdGl2ZSwgLi4uKTsKMTQ0NzQ6ICMgNDM2ICIuL2luY2x1ZGUvbGludXgv
d29ya3F1ZXVlLmgiCjE0NDc0OiBleHRlcm4gdm9pZCBkZXN0cm95X3dvcmtxdWV1ZShzdHJ1Y3Qg
d29ya3F1ZXVlX3N0cnVjdCAqd3EpOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgd29ya3F1ZXVlX2F0
dHJzICphbGxvY193b3JrcXVldWVfYXR0cnModm9pZCk7CjE0NDc0OiB2b2lkIGZyZWVfd29ya3F1
ZXVlX2F0dHJzKHN0cnVjdCB3b3JrcXVldWVfYXR0cnMgKmF0dHJzKTsKMTQ0NzQ6IGludCBhcHBs
eV93b3JrcXVldWVfYXR0cnMoc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxLAoxNDQ3NDogICAg
ICBjb25zdCBzdHJ1Y3Qgd29ya3F1ZXVlX2F0dHJzICphdHRycyk7CjE0NDc0OiBpbnQgd29ya3F1
ZXVlX3NldF91bmJvdW5kX2NwdW1hc2soY3B1bWFza192YXJfdCBjcHVtYXNrKTsKMTQ0NzQ6IAox
NDQ3NDogZXh0ZXJuIGJvb2wgcXVldWVfd29ya19vbihpbnQgY3B1LCBzdHJ1Y3Qgd29ya3F1ZXVl
X3N0cnVjdCAqd3EsCjE0NDc0OiAgICBzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwoxNDQ3NDog
ZXh0ZXJuIGJvb2wgcXVldWVfd29ya19ub2RlKGludCBub2RlLCBzdHJ1Y3Qgd29ya3F1ZXVlX3N0
cnVjdCAqd3EsCjE0NDc0OiAgICAgICAgc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKMTQ0NzQ6
IGV4dGVybiBib29sIHF1ZXVlX2RlbGF5ZWRfd29ya19vbihpbnQgY3B1LCBzdHJ1Y3Qgd29ya3F1
ZXVlX3N0cnVjdCAqd3EsCjE0NDc0OiAgICBzdHJ1Y3QgZGVsYXllZF93b3JrICp3b3JrLCB1bnNp
Z25lZCBsb25nIGRlbGF5KTsKMTQ0NzQ6IGV4dGVybiBib29sIG1vZF9kZWxheWVkX3dvcmtfb24o
aW50IGNwdSwgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxLAoxNDQ3NDogICAgc3RydWN0IGRl
bGF5ZWRfd29yayAqZHdvcmssIHVuc2lnbmVkIGxvbmcgZGVsYXkpOwoxNDQ3NDogZXh0ZXJuIGJv
b2wgcXVldWVfcmN1X3dvcmsoc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxLCBzdHJ1Y3QgcmN1
X3dvcmsgKnJ3b3JrKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgZmx1c2hfd29ya3F1ZXVl
KHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cSk7CjE0NDc0OiBleHRlcm4gdm9pZCBkcmFpbl93
b3JrcXVldWUoc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0
ZXJuIGludCBzY2hlZHVsZV9vbl9lYWNoX2NwdSh3b3JrX2Z1bmNfdCBmdW5jKTsKMTQ0NzQ6IAox
NDQ3NDogaW50IGV4ZWN1dGVfaW5fcHJvY2Vzc19jb250ZXh0KHdvcmtfZnVuY190IGZuLCBzdHJ1
Y3QgZXhlY3V0ZV93b3JrICopOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gYm9vbCBmbHVzaF93b3Jr
KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7CjE0NDc0OiBleHRlcm4gYm9vbCBjYW5jZWxfd29y
a19zeW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBi
b29sIGZsdXNoX2RlbGF5ZWRfd29yayhzdHJ1Y3QgZGVsYXllZF93b3JrICpkd29yayk7CjE0NDc0
OiBleHRlcm4gYm9vbCBjYW5jZWxfZGVsYXllZF93b3JrKHN0cnVjdCBkZWxheWVkX3dvcmsgKmR3
b3JrKTsKMTQ0NzQ6IGV4dGVybiBib29sIGNhbmNlbF9kZWxheWVkX3dvcmtfc3luYyhzdHJ1Y3Qg
ZGVsYXllZF93b3JrICpkd29yayk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBib29sIGZsdXNoX3Jj
dV93b3JrKHN0cnVjdCByY3Vfd29yayAqcndvcmspOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9p
ZCB3b3JrcXVldWVfc2V0X21heF9hY3RpdmUoc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxLAox
NDQ3NDogICAgICAgICAgaW50IG1heF9hY3RpdmUpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB3b3Jr
X3N0cnVjdCAqY3VycmVudF93b3JrKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIGJvb2wgY3VycmVudF9p
c193b3JrcXVldWVfcmVzY3Vlcih2b2lkKTsKMTQ0NzQ6IGV4dGVybiBib29sIHdvcmtxdWV1ZV9j
b25nZXN0ZWQoaW50IGNwdSwgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxKTsKMTQ0NzQ6IGV4
dGVybiB1bnNpZ25lZCBpbnQgd29ya19idXN5KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7CjE0
NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDEsIDIpKSkgdm9p
ZCBzZXRfd29ya2VyX2Rlc2MoY29uc3QgY2hhciAqZm10LCAuLi4pOwoxNDQ3NDogZXh0ZXJuIHZv
aWQgcHJpbnRfd29ya2VyX2luZm8oY29uc3QgY2hhciAqbG9nX2x2bCwgc3RydWN0IHRhc2tfc3Ry
dWN0ICp0YXNrKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHNob3dfd29ya3F1ZXVlX3N0YXRlKHZvaWQp
OwoxNDQ3NDogZXh0ZXJuIHZvaWQgd3Ffd29ya2VyX2NvbW0oY2hhciAqYnVmLCBzaXplX3Qgc2l6
ZSwgc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKTsKMTQ0NzQ6ICMgNTA0ICIuL2luY2x1ZGUvbGlu
dXgvd29ya3F1ZXVlLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHF1ZXVlX3dvcmsoc3RydWN0IHdvcmtxdWV1ZV9z
dHJ1Y3QgKndxLAoxNDQ3NDogICAgICAgICAgc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiBxdWV1ZV93b3JrX29uKFdPUktfQ1BVX1VOQk9VTkQsIHdxLCB3
b3JrKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNTE4ICIuL2luY2x1ZGUvbGludXgvd29ya3F1ZXVlLmgi
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBib29sIHF1ZXVlX2RlbGF5ZWRfd29yayhzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAq
d3EsCjE0NDc0OiAgICAgICAgICAgc3RydWN0IGRlbGF5ZWRfd29yayAqZHdvcmssCjE0NDc0OiAg
ICAgICAgICAgdW5zaWduZWQgbG9uZyBkZWxheSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gcXVl
dWVfZGVsYXllZF93b3JrX29uKFdPUktfQ1BVX1VOQk9VTkQsIHdxLCBkd29yaywgZGVsYXkpOwox
NDQ3NDogfQoxNDQ3NDogIyA1MzMgIi4vaW5jbHVkZS9saW51eC93b3JrcXVldWUuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGJvb2wgbW9kX2RlbGF5ZWRfd29yayhzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqd3EsCjE0NDc0
OiAgICAgICAgIHN0cnVjdCBkZWxheWVkX3dvcmsgKmR3b3JrLAoxNDQ3NDogICAgICAgICB1bnNp
Z25lZCBsb25nIGRlbGF5KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBtb2RfZGVsYXllZF93b3Jr
X29uKFdPUktfQ1BVX1VOQk9VTkQsIHdxLCBkd29yaywgZGVsYXkpOwoxNDQ3NDogfQoxNDQ3NDog
IyA1NDcgIi4vaW5jbHVkZS9saW51eC93b3JrcXVldWUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgc2NoZWR1bGVf
d29ya19vbihpbnQgY3B1LCBzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCjE0NDc0OiB7CjE0NDc0
OiAgcmV0dXJuIHF1ZXVlX3dvcmtfb24oY3B1LCBzeXN0ZW1fd3EsIHdvcmspOwoxNDQ3NDogfQox
NDQ3NDogIyA1NjYgIi4vaW5jbHVkZS9saW51eC93b3JrcXVldWUuaCIKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgc2No
ZWR1bGVfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuIHF1ZXVlX3dvcmsoc3lzdGVtX3dxLCB3b3JrKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNTk1ICIu
L2luY2x1ZGUvbGludXgvd29ya3F1ZXVlLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGZsdXNoX3NjaGVkdWxlZF93
b3JrKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgZmx1c2hfd29ya3F1ZXVlKHN5c3RlbV93cSk7CjE0
NDc0OiB9CjE0NDc0OiAjIDYwOSAiLi9pbmNsdWRlL2xpbnV4L3dvcmtxdWV1ZS5oIgoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBzY2hlZHVsZV9kZWxheWVkX3dvcmtfb24oaW50IGNwdSwgc3RydWN0IGRlbGF5ZWRfd29y
ayAqZHdvcmssCjE0NDc0OiAgICAgICAgICB1bnNpZ25lZCBsb25nIGRlbGF5KQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiBxdWV1ZV9kZWxheWVkX3dvcmtfb24oY3B1LCBzeXN0ZW1fd3EsIGR3b3Jr
LCBkZWxheSk7CjE0NDc0OiB9CjE0NDc0OiAjIDYyMyAiLi9pbmNsdWRlL2xpbnV4L3dvcmtxdWV1
ZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBzY2hlZHVsZV9kZWxheWVkX3dvcmsoc3RydWN0IGRlbGF5ZWRfd29y
ayAqZHdvcmssCjE0NDc0OiAgICAgICB1bnNpZ25lZCBsb25nIGRlbGF5KQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiBxdWV1ZV9kZWxheWVkX3dvcmsoc3lzdGVtX3dxLCBkd29yaywgZGVsYXkpOwox
NDQ3NDogfQoxNDQ3NDogIyA2MzkgIi4vaW5jbHVkZS9saW51eC93b3JrcXVldWUuaCIKMTQ0NzQ6
IGxvbmcgd29ya19vbl9jcHUoaW50IGNwdSwgbG9uZyAoKmZuKSh2b2lkICopLCB2b2lkICphcmcp
OwoxNDQ3NDogbG9uZyB3b3JrX29uX2NwdV9zYWZlKGludCBjcHUsIGxvbmcgKCpmbikodm9pZCAq
KSwgdm9pZCAqYXJnKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lk
IGZyZWV6ZV93b3JrcXVldWVzX2JlZ2luKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIGJvb2wgZnJlZXpl
X3dvcmtxdWV1ZXNfYnVzeSh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHRoYXdfd29ya3F1ZXVl
cyh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGludCB3b3JrcXVldWVfc3lz
ZnNfcmVnaXN0ZXIoc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxKTsKMTQ0NzQ6ICMgNjU5ICIu
L2luY2x1ZGUvbGludXgvd29ya3F1ZXVlLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHdxX3dhdGNoZG9nX3RvdWNo
KGludCBjcHUpIHsgfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogaW50IHdvcmtxdWV1
ZV9wcmVwYXJlX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKMTQ0NzQ6IGludCB3b3JrcXVldWVfb25s
aW5lX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKMTQ0NzQ6IGludCB3b3JrcXVldWVfb2ZmbGluZV9j
cHUodW5zaWduZWQgaW50IGNwdSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogaW50IF9fYXR0cmli
dXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRf
XykpIHdvcmtxdWV1ZV9pbml0X2Vhcmx5KHZvaWQpOwoxNDQ3NDogaW50IF9fYXR0cmlidXRlX18o
KF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIHdv
cmtxdWV1ZV9pbml0KHZvaWQpOwoxNDQ3NDogIyAxNyAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVz
LmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21tdS5oIiAx
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAj
IDEgIi4vaW5jbHVkZS9saW51eC9tdXRleC5oIiAxCjE0NDc0OiAjIDIxICIuL2luY2x1ZGUvbGlu
dXgvbXV0ZXguaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2RlYnVnX2xvY2tzLmgiIDEK
MTQ0NzQ6ICMgOSAiLi9pbmNsdWRlL2xpbnV4L2RlYnVnX2xvY2tzLmgiCjE0NDc0OiBzdHJ1Y3Qg
dGFza19zdHJ1Y3Q7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgZGVidWdfbG9ja3MgX19hdHRy
aWJ1dGVfXygoX19zZWN0aW9uX18oIi5kYXRhLi5yZWFkX21vc3RseSIpKSk7CjE0NDc0OiBleHRl
cm4gaW50IGRlYnVnX2xvY2tzX3NpbGVudCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmRh
dGEuLnJlYWRfbW9zdGx5IikpKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19kZWJ1Z19s
b2Nrc19vZmYodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHsgdHlwZW9mKCZkZWJ1Z19s
b2NrcykgX19haV9wdHIgPSAoJmRlYnVnX2xvY2tzKTsga2FzYW5fY2hlY2tfd3JpdGUoX19haV9w
dHIsIHNpemVvZigqX19haV9wdHIpKTsgKHsgX190eXBlb2ZfXyAoKigoX19haV9wdHIpKSkgX19y
ZXQgPSAoKDApKTsgc3dpdGNoIChzaXplb2YoKigoX19haV9wdHIpKSkpIHsgY2FzZSAxOiBhc20g
dm9sYXRpbGUgKCIiICJ4Y2hnIiAiYiAlYjAsICUxXG4iIDogIitxIiAoX19yZXQpLCAiK20iICgq
KChfX2FpX3B0cikpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2FzZSAyOiBhc20gdm9s
YXRpbGUgKCIiICJ4Y2hnIiAidyAldzAsICUxXG4iIDogIityIiAoX19yZXQpLCAiK20iICgqKChf
X2FpX3B0cikpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRp
bGUgKCIiICJ4Y2hnIiAibCAlMCwgJTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKF9fYWlf
cHRyKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAo
IiIgInhjaGciICJxICVxMCwgJTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKF9fYWlfcHRy
KSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBkZWZhdWx0OiBfX3hjaGdfd3Jvbmdfc2l6
ZSgpOyB9IF9fcmV0OyB9KTsgfSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgZGVidWdfbG9ja3Nfb2ZmKHZvaWQpOwoxNDQ3NDogIyA0
OSAiLi9pbmNsdWRlL2xpbnV4L2RlYnVnX2xvY2tzLmgiCjE0NDc0OiBzdHJ1Y3QgdGFza19zdHJ1
Y3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgZGVidWdfc2hvd19hbGxfbG9ja3Modm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZWJ1Z19zaG93X2hlbGRfbG9ja3Moc3RydWN0IHRhc2tf
c3RydWN0ICp0YXNrKQoxNDQ3NDogewoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0
OiBkZWJ1Z19jaGVja19ub19sb2Nrc19mcmVlZChjb25zdCB2b2lkICpmcm9tLCB1bnNpZ25lZCBs
b25nIGxlbikKMTQ0NzQ6IHsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogZGVi
dWdfY2hlY2tfbm9fbG9ja3NfaGVsZCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogfQoxNDQ3NDogIyAy
MiAiLi9pbmNsdWRlL2xpbnV4L211dGV4LmgiIDIKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHd3X2Fj
cXVpcmVfY3R4OwoxNDQ3NDogIyA1MyAiLi9pbmNsdWRlL2xpbnV4L211dGV4LmgiCjE0NDc0OiBz
dHJ1Y3QgbXV0ZXggewoxNDQ3NDogIGF0b21pY19sb25nX3Qgb3duZXI7CjE0NDc0OiAgc3Bpbmxv
Y2tfdCB3YWl0X2xvY2s7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qgb3B0aW1pc3RpY19zcGluX3F1
ZXVlIG9zcTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgd2FpdF9saXN0OwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgbXV0ZXhf
d2FpdGVyIHsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CjE0NDc0OiAgc3RydWN0IHRh
c2tfc3RydWN0ICp0YXNrOwoxNDQ3NDogIHN0cnVjdCB3d19hY3F1aXJlX2N0eCAqd3dfY3R4Owox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6ICMgOTIgIi4vaW5jbHVkZS9s
aW51eC9tdXRleC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBtdXRleF9kZXN0cm95KHN0cnVjdCBtdXRleCAqbG9j
aykge30KMTQ0NzQ6ICMgMTI4ICIuL2luY2x1ZGUvbGludXgvbXV0ZXguaCIKMTQ0NzQ6IGV4dGVy
biB2b2lkIF9fbXV0ZXhfaW5pdChzdHJ1Y3QgbXV0ZXggKmxvY2ssIGNvbnN0IGNoYXIgKm5hbWUs
CjE0NDc0OiAgICAgc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICprZXkpOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gYm9v
bCBtdXRleF9pc19sb2NrZWQoc3RydWN0IG11dGV4ICpsb2NrKTsKMTQ0NzQ6ICMgMTY1ICIuL2lu
Y2x1ZGUvbGludXgvbXV0ZXguaCIKMTQ0NzQ6IGV4dGVybiB2b2lkIG11dGV4X2xvY2soc3RydWN0
IG11dGV4ICpsb2NrKTsKMTQ0NzQ6IGV4dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3Vu
dXNlZF9yZXN1bHRfXykpIG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZShzdHJ1Y3QgbXV0ZXggKmxv
Y2spOwoxNDQ3NDogZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3Vs
dF9fKSkgbXV0ZXhfbG9ja19raWxsYWJsZShzdHJ1Y3QgbXV0ZXggKmxvY2spOwoxNDQ3NDogZXh0
ZXJuIHZvaWQgbXV0ZXhfbG9ja19pbyhzdHJ1Y3QgbXV0ZXggKmxvY2spOwoxNDQ3NDogIyAxODMg
Ii4vaW5jbHVkZS9saW51eC9tdXRleC5oIgoxNDQ3NDogZXh0ZXJuIGludCBtdXRleF90cnlsb2Nr
KHN0cnVjdCBtdXRleCAqbG9jayk7CjE0NDc0OiBleHRlcm4gdm9pZCBtdXRleF91bmxvY2soc3Ry
dWN0IG11dGV4ICpsb2NrKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBhdG9taWNfZGVjX2Fu
ZF9tdXRleF9sb2NrKGF0b21pY190ICpjbnQsIHN0cnVjdCBtdXRleCAqbG9jayk7CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBtdXRleF90cnlsb2Nr
X3JlY3Vyc2l2ZV9lbnVtIHsKMTQ0NzQ6ICBNVVRFWF9UUllMT0NLX0ZBSUxFRCA9IDAsCjE0NDc0
OiAgTVVURVhfVFJZTE9DS19TVUNDRVNTID0gMSwKMTQ0NzQ6ICBNVVRFWF9UUllMT0NLX1JFQ1VS
U0lWRSwKMTQ0NzQ6IH07CjE0NDc0OiAjIDIxMCAiLi9pbmNsdWRlL2xpbnV4L211dGV4LmgiCjE0
NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGVudW0g
bXV0ZXhfdHJ5bG9ja19yZWN1cnNpdmVfZW51bQoxNDQ3NDogbXV0ZXhfdHJ5bG9ja19yZWN1cnNp
dmUoc3RydWN0IG11dGV4ICpsb2NrKTsKMTQ0NzQ6ICMgOCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9tbXUuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHR5cGVkZWYgc3RydWN0IHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IHU2NCBjdHhfaWQ7CjE0NDc0OiAjIDI4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21tdS5oIgox
NDQ3NDogIGF0b21pYzY0X3QgdGxiX2dlbjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0
IHJ3X3NlbWFwaG9yZSBsZHRfdXNyX3NlbTsKMTQ0NzQ6ICBzdHJ1Y3QgbGR0X3N0cnVjdCAqbGR0
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgc2hvcnQg
aWEzMl9jb21wYXQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBtdXRleCBsb2NrOwox
NDQ3NDogIHZvaWQgKnZkc287CjE0NDc0OiAgY29uc3Qgc3RydWN0IHZkc29faW1hZ2UgKnZkc29f
aW1hZ2U7CjE0NDc0OiAKMTQ0NzQ6ICBhdG9taWNfdCBwZXJmX3JkcG1jX2FsbG93ZWQ7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHUxNiBwa2V5X2FsbG9j
YXRpb25fbWFwOwoxNDQ3NDogIHMxNiBleGVjdXRlX29ubHlfcGtleTsKMTQ0NzQ6IAoxNDQ3NDog
fSBtbV9jb250ZXh0X3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZvaWQgbGVhdmVfbW0oaW50IGNwdSk7CjE0NDc0OiAjIDE5
ICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYWRkcmVzc19zcGFj
ZTsKMTQ0NzQ6IHN0cnVjdCBtZW1fY2dyb3VwOwoxNDQ3NDogIyA2OCAiLi9pbmNsdWRlL2xpbnV4
L21tX3R5cGVzLmgiCjE0NDc0OiBzdHJ1Y3QgcGFnZSB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBm
bGFnczsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgc3RydWN0IHsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxydTsKMTQ0
NzQ6IAoxNDQ3NDogICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmc7CjE0NDc0OiAgICB1
bnNpZ25lZCBsb25nIGluZGV4OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogICAgdW5zaWduZWQgbG9uZyBwcml2YXRlOwoxNDQ3NDogICB9Owox
NDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
ICBkbWFfYWRkcl90IGRtYV9hZGRyOwoxNDQ3NDogICB9OwoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3
NDogICAgdW5pb24gewoxNDQ3NDogICAgIHN0cnVjdCBsaXN0X2hlYWQgc2xhYl9saXN0OwoxNDQ3
NDogICAgIHN0cnVjdCB7CjE0NDc0OiAgICAgIHN0cnVjdCBwYWdlICpuZXh0OwoxNDQ3NDogCjE0
NDc0OiAgICAgIGludCBwYWdlczsKMTQ0NzQ6ICAgICAgaW50IHBvYmplY3RzOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgICAgfTsKMTQ0NzQ6ICAgIH07CjE0NDc0OiAg
ICBzdHJ1Y3Qga21lbV9jYWNoZSAqc2xhYl9jYWNoZTsKMTQ0NzQ6IAoxNDQ3NDogICAgdm9pZCAq
ZnJlZWxpc3Q7CjE0NDc0OiAgICB1bmlvbiB7CjE0NDc0OiAgICAgdm9pZCAqc19tZW07CjE0NDc0
OiAgICAgdW5zaWduZWQgbG9uZyBjb3VudGVyczsKMTQ0NzQ6ICAgICBzdHJ1Y3QgewoxNDQ3NDog
ICAgICB1bnNpZ25lZCBpbnVzZToxNjsKMTQ0NzQ6ICAgICAgdW5zaWduZWQgb2JqZWN0czoxNTsK
MTQ0NzQ6ICAgICAgdW5zaWduZWQgZnJvemVuOjE7CjE0NDc0OiAgICAgfTsKMTQ0NzQ6ICAgIH07
CjE0NDc0OiAgIH07CjE0NDc0OiAgIHN0cnVjdCB7CjE0NDc0OiAgICB1bnNpZ25lZCBsb25nIGNv
bXBvdW5kX2hlYWQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICAgdW5zaWduZWQgY2hhciBjb21w
b3VuZF9kdG9yOwoxNDQ3NDogICAgdW5zaWduZWQgY2hhciBjb21wb3VuZF9vcmRlcjsKMTQ0NzQ6
ICAgIGF0b21pY190IGNvbXBvdW5kX21hcGNvdW50OwoxNDQ3NDogICB9OwoxNDQ3NDogICBzdHJ1
Y3QgewoxNDQ3NDogICAgdW5zaWduZWQgbG9uZyBfY29tcG91bmRfcGFkXzE7CjE0NDc0OiAgICB1
bnNpZ25lZCBsb25nIF9jb21wb3VuZF9wYWRfMjsKMTQ0NzQ6IAoxNDQ3NDogICAgc3RydWN0IGxp
c3RfaGVhZCBkZWZlcnJlZF9saXN0OwoxNDQ3NDogICB9OwoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3
NDogICAgdW5zaWduZWQgbG9uZyBfcHRfcGFkXzE7CjE0NDc0OiAgICBwZ3RhYmxlX3QgcG1kX2h1
Z2VfcHRlOwoxNDQ3NDogICAgdW5zaWduZWQgbG9uZyBfcHRfcGFkXzI7CjE0NDc0OiAgICB1bmlv
biB7CjE0NDc0OiAgICAgc3RydWN0IG1tX3N0cnVjdCAqcHRfbW07CjE0NDc0OiAgICAgYXRvbWlj
X3QgcHRfZnJhZ19yZWZjb3VudDsKMTQ0NzQ6ICAgIH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgICBzcGlubG9ja190IHB0bDsKMTQ0NzQ6IAoxNDQ3NDogICB9OwoxNDQ3NDogICBz
dHJ1Y3QgewoxNDQ3NDogCjE0NDc0OiAgICBzdHJ1Y3QgZGV2X3BhZ2VtYXAgKnBnbWFwOwoxNDQ3
NDogICAgdm9pZCAqem9uZV9kZXZpY2VfZGF0YTsKMTQ0NzQ6ICMgMTcyICIuL2luY2x1ZGUvbGlu
dXgvbW1fdHlwZXMuaCIKMTQ0NzQ6ICAgfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHN0cnVj
dCBjYWxsYmFja19oZWFkIGNhbGxiYWNrX2hlYWQ7CjE0NDc0OiAgfTsKMTQ0NzQ6IAoxNDQ3NDog
IHVuaW9uIHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICBhdG9taWNf
dCBfbWFwY291bnQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IHBhZ2VfdHlwZTsKMTQ0NzQ6IAoxNDQ3
NDogICB1bnNpZ25lZCBpbnQgYWN0aXZlOwoxNDQ3NDogICBpbnQgdW5pdHM7CjE0NDc0OiAgfTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYXRvbWljX3QgX3JlZmNvdW50OwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICBzdHJ1Y3QgbWVtX2Nncm91cCAqbWVtX2Nncm91cDsKMTQ0NzQ6ICMgMjIyICIu
L2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIKMTQ0NzQ6IH0gOwoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBhdG9t
aWNfdCAqY29tcG91bmRfbWFwY291bnRfcHRyKHN0cnVjdCBwYWdlICpwYWdlKQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiAmcGFnZVsxXS5jb21wb3VuZF9tYXBjb3VudDsKMTQ0NzQ6IH0KMTQ0NzQ6
ICMgMjQwICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIKMTQ0NzQ6IHN0cnVjdCBwYWdlX2Zy
YWdfY2FjaGUgewoxNDQ3NDogIHZvaWQgKiB2YTsKMTQ0NzQ6IAoxNDQ3NDogIF9fdTE2IG9mZnNl
dDsKMTQ0NzQ6ICBfX3UxNiBzaXplOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCBwYWdlY250X2JpYXM7CjE0NDc0OiAg
Ym9vbCBwZm1lbWFsbG9jOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiB1bnNpZ25l
ZCBsb25nIHZtX2ZsYWdzX3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgdm1fcmVnaW9uIHsKMTQ0NzQ6ICBzdHJ1Y3QgcmJfbm9k
ZSB2bV9yYjsKMTQ0NzQ6ICB2bV9mbGFnc190IHZtX2ZsYWdzOwoxNDQ3NDogIHVuc2lnbmVkIGxv
bmcgdm1fc3RhcnQ7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyB2bV9lbmQ7CjE0NDc0OiAgdW5zaWdu
ZWQgbG9uZyB2bV90b3A7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyB2bV9wZ29mZjsKMTQ0NzQ6ICBz
dHJ1Y3QgZmlsZSAqdm1fZmlsZTsKMTQ0NzQ6IAoxNDQ3NDogIGludCB2bV91c2FnZTsKMTQ0NzQ6
ICBib29sIHZtX2ljYWNoZV9mbHVzaGVkIDogMTsKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6ICMg
MjgzICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIKMTQ0NzQ6IHN0cnVjdCB2bV91c2VyZmF1
bHRmZF9jdHgge307CjE0NDc0OiAjIDI5MiAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgiCjE0
NDc0OiBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNp
Z25lZCBsb25nIHZtX3N0YXJ0OwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgdm1fZW5kOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1fbmV4dCwg
KnZtX3ByZXY7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgcmJfbm9kZSB2bV9yYjsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVu
c2lnbmVkIGxvbmcgcmJfc3VidHJlZV9nYXA7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAgc3RydWN0IG1tX3N0cnVjdCAqdm1fbW07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIHBncHJvdF90IHZtX3BhZ2VfcHJvdDsKMTQ0NzQ6ICB1bnNpZ25l
ZCBsb25nIHZtX2ZsYWdzOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICBzdHJ1Y3QgcmJfbm9kZSByYjsKMTQ0NzQ6ICAgdW5z
aWduZWQgbG9uZyByYl9zdWJ0cmVlX2xhc3Q7CjE0NDc0OiAgfSBzaGFyZWQ7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1
Y3QgbGlzdF9oZWFkIGFub25fdm1hX2NoYWluOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGFub25f
dm1hICphbm9uX3ZtYTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgY29uc3Qgc3RydWN0IHZtX29w
ZXJhdGlvbnNfc3RydWN0ICp2bV9vcHM7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVk
IGxvbmcgdm1fcGdvZmY7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgZmlsZSAqIHZtX2ZpbGU7CjE0
NDc0OiAgdm9pZCAqIHZtX3ByaXZhdGVfZGF0YTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYXRv
bWljX2xvbmdfdCBzd2FwX3JlYWRhaGVhZF9pbmZvOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHZtX3VzZXJmYXVs
dGZkX2N0eCB2bV91c2VyZmF1bHRmZF9jdHg7CjE0NDc0OiB9IF9fYXR0cmlidXRlX18oKF9fZGVz
aWduYXRlZF9pbml0X18pKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNvcmVfdGhyZWFkIHsKMTQ0
NzQ6ICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2s7CjE0NDc0OiAgc3RydWN0IGNvcmVfdGhyZWFk
ICpuZXh0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNvcmVfc3RhdGUgewoxNDQ3
NDogIGF0b21pY190IG5yX3RocmVhZHM7CjE0NDc0OiAgc3RydWN0IGNvcmVfdGhyZWFkIGR1bXBl
cjsKMTQ0NzQ6ICBzdHJ1Y3QgY29tcGxldGlvbiBzdGFydHVwOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGtpb2N0eF90YWJsZTsKMTQ0NzQ6IHN0cnVjdCBtbV9zdHJ1Y3QgewoxNDQ3
NDogIHN0cnVjdCB7CjE0NDc0OiAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqbW1hcDsKMTQ0NzQ6
ICAgc3RydWN0IHJiX3Jvb3QgbW1fcmI7CjE0NDc0OiAgIHU2NCB2bWFjYWNoZV9zZXFudW07CjE0
NDc0OiAKMTQ0NzQ6ICAgdW5zaWduZWQgbG9uZyAoKmdldF91bm1hcHBlZF9hcmVhKSAoc3RydWN0
IGZpbGUgKmZpbHAsCjE0NDc0OiAgICAgdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25n
IGxlbiwKMTQ0NzQ6ICAgICB1bnNpZ25lZCBsb25nIHBnb2ZmLCB1bnNpZ25lZCBsb25nIGZsYWdz
KTsKMTQ0NzQ6IAoxNDQ3NDogICB1bnNpZ25lZCBsb25nIG1tYXBfYmFzZTsKMTQ0NzQ6ICAgdW5z
aWduZWQgbG9uZyBtbWFwX2xlZ2FjeV9iYXNlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdW5zaWduZWQgbG9uZyB0YXNrX3NpemU7CjE0NDc0OiAgIHVu
c2lnbmVkIGxvbmcgaGlnaGVzdF92bV9lbmQ7CjE0NDc0OiAgIHBnZF90ICogcGdkOwoxNDQ3NDog
IyA0MDMgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIgoxNDQ3NDogICBhdG9taWNfdCBtZW1i
YXJyaWVyX3N0YXRlOwoxNDQ3NDogIyA0MTUgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIgox
NDQ3NDogICBhdG9taWNfdCBtbV91c2VyczsKMTQ0NzQ6ICMgNDI0ICIuL2luY2x1ZGUvbGludXgv
bW1fdHlwZXMuaCIKMTQ0NzQ6ICAgYXRvbWljX3QgbW1fY291bnQ7CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogICBhdG9taWNfbG9uZ190IHBndGFibGVzX2J5dGVzOwoxNDQ3NDogCjE0NDc0OiAgIGlu
dCBtYXBfY291bnQ7CjE0NDc0OiAKMTQ0NzQ6ICAgc3BpbmxvY2tfdCBwYWdlX3RhYmxlX2xvY2s7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICBzdHJ1Y3Qgcndfc2VtYXBob3JlIG1tYXBfc2VtOwox
NDQ3NDogCjE0NDc0OiAgIHN0cnVjdCBsaXN0X2hlYWQgbW1saXN0OwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICB1bnNpZ25lZCBsb25nIGhp
d2F0ZXJfcnNzOwoxNDQ3NDogICB1bnNpZ25lZCBsb25nIGhpd2F0ZXJfdm07CjE0NDc0OiAKMTQ0
NzQ6ICAgdW5zaWduZWQgbG9uZyB0b3RhbF92bTsKMTQ0NzQ6ICAgdW5zaWduZWQgbG9uZyBsb2Nr
ZWRfdm07CjE0NDc0OiAgIGF0b21pYzY0X3QgcGlubmVkX3ZtOwoxNDQ3NDogICB1bnNpZ25lZCBs
b25nIGRhdGFfdm07CjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcgZXhlY192bTsKMTQ0NzQ6ICAgdW5z
aWduZWQgbG9uZyBzdGFja192bTsKMTQ0NzQ6ICAgdW5zaWduZWQgbG9uZyBkZWZfZmxhZ3M7CjE0
NDc0OiAKMTQ0NzQ6ICAgc3BpbmxvY2tfdCBhcmdfbG9jazsKMTQ0NzQ6ICAgdW5zaWduZWQgbG9u
ZyBzdGFydF9jb2RlLCBlbmRfY29kZSwgc3RhcnRfZGF0YSwgZW5kX2RhdGE7CjE0NDc0OiAgIHVu
c2lnbmVkIGxvbmcgc3RhcnRfYnJrLCBicmssIHN0YXJ0X3N0YWNrOwoxNDQ3NDogICB1bnNpZ25l
ZCBsb25nIGFyZ19zdGFydCwgYXJnX2VuZCwgZW52X3N0YXJ0LCBlbnZfZW5kOwoxNDQ3NDogCjE0
NDc0OiAgIHVuc2lnbmVkIGxvbmcgc2F2ZWRfYXV4dlsoMiooMSArIDIwICsgMSkpXTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHN0cnVjdCBtbV9yc3Nf
c3RhdCByc3Nfc3RhdDsKMTQ0NzQ6IAoxNDQ3NDogICBzdHJ1Y3QgbGludXhfYmluZm10ICpiaW5m
bXQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICBtbV9jb250ZXh0X3QgY29udGV4dDsKMTQ0NzQ6
IAoxNDQ3NDogICB1bnNpZ25lZCBsb25nIGZsYWdzOwoxNDQ3NDogCjE0NDc0OiAgIHN0cnVjdCBj
b3JlX3N0YXRlICpjb3JlX3N0YXRlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgc3BpbmxvY2tf
dCBpb2N0eF9sb2NrOwoxNDQ3NDogICBzdHJ1Y3Qga2lvY3R4X3RhYmxlICppb2N0eF90YWJsZTsK
MTQ0NzQ6ICMgNDkxICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIKMTQ0NzQ6ICAgc3RydWN0
IHRhc2tfc3RydWN0ICpvd25lcjsKMTQ0NzQ6IAoxNDQ3NDogICBzdHJ1Y3QgdXNlcl9uYW1lc3Bh
Y2UgKnVzZXJfbnM7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICBzdHJ1Y3QgZmlsZSAqZXhlX2Zp
bGU7CjE0NDc0OiAKMTQ0NzQ6ICAgc3RydWN0IG1tdV9ub3RpZmllcl9zdWJzY3JpcHRpb25zICpu
b3RpZmllcl9zdWJzY3JpcHRpb25zOwoxNDQ3NDogIyA1MjIgIi4vaW5jbHVkZS9saW51eC9tbV90
eXBlcy5oIgoxNDQ3NDogICBhdG9taWNfdCB0bGJfZmx1c2hfcGVuZGluZzsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgIGJvb2wgdGxiX2ZsdXNoX2JhdGNoZWQ7CjE0NDc0OiAKMTQ0NzQ6ICAgc3Ry
dWN0IHVwcm9iZXNfc3RhdGUgdXByb2Jlc19zdGF0ZTsKMTQ0NzQ6IAoxNDQ3NDogICBhdG9taWNf
bG9uZ190IGh1Z2V0bGJfdXNhZ2U7CjE0NDc0OiAKMTQ0NzQ6ICAgc3RydWN0IHdvcmtfc3RydWN0
IGFzeW5jX3B1dF93b3JrOwoxNDQ3NDogIH0gX19hdHRyaWJ1dGVfXygoX19kZXNpZ25hdGVkX2lu
aXRfXykpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1
bnNpZ25lZCBsb25nIGNwdV9iaXRtYXBbXTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGV4dGVy
biBzdHJ1Y3QgbW1fc3RydWN0IGluaXRfbW07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBt
bV9pbml0X2NwdW1hc2soc3RydWN0IG1tX3N0cnVjdCAqbW0pCjE0NDc0OiB7CjE0NDc0OiAgdW5z
aWduZWQgbG9uZyBjcHVfYml0bWFwID0gKHVuc2lnbmVkIGxvbmcpbW07CjE0NDc0OiAKMTQ0NzQ6
ICBjcHVfYml0bWFwICs9IF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgbW1fc3RydWN0LCBjcHVf
Yml0bWFwKTsKMTQ0NzQ6ICBjcHVtYXNrX2NsZWFyKChzdHJ1Y3QgY3B1bWFzayAqKWNwdV9iaXRt
YXApOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGNwdW1hc2tfdCAqbW1fY3B1bWFz
ayhzdHJ1Y3QgbW1fc3RydWN0ICptbSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHN0cnVjdCBj
cHVtYXNrICopJm1tLT5jcHVfYml0bWFwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
bW11X2dhdGhlcjsKMTQ0NzQ6IGV4dGVybiB2b2lkIHRsYl9nYXRoZXJfbW11KHN0cnVjdCBtbXVf
Z2F0aGVyICp0bGIsIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAoxNDQ3NDogICAgIHVuc2lnbmVkIGxv
bmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHRsYl9maW5p
c2hfbW11KHN0cnVjdCBtbXVfZ2F0aGVyICp0bGIsCjE0NDc0OiAgICAgdW5zaWduZWQgbG9uZyBz
dGFydCwgdW5zaWduZWQgbG9uZyBlbmQpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGluaXRfdGxiX2Zs
dXNoX3BlbmRpbmcoc3RydWN0IG1tX3N0cnVjdCAqbW0pCjE0NDc0OiB7CjE0NDc0OiAgYXRvbWlj
X3NldCgmbW0tPnRsYl9mbHVzaF9wZW5kaW5nLCAwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBpbmNfdGxiX2ZsdXNoX3BlbmRpbmcoc3RydWN0IG1tX3N0cnVjdCAqbW0pCjE0NDc0OiB7
CjE0NDc0OiAgYXRvbWljX2luYygmbW0tPnRsYl9mbHVzaF9wZW5kaW5nKTsKMTQ0NzQ6ICMgNjA4
ICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCBkZWNfdGxiX2ZsdXNoX3BlbmRpbmcoc3RydWN0IG1tX3N0cnVjdCAqbW0pCjE0NDc0OiB7CjE0
NDc0OiAjIDYyMCAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgiCjE0NDc0OiAgYXRvbWljX2Rl
YygmbW0tPnRsYl9mbHVzaF9wZW5kaW5nKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBt
bV90bGJfZmx1c2hfcGVuZGluZyhzdHJ1Y3QgbW1fc3RydWN0ICptbSkKMTQ0NzQ6IHsKMTQ0NzQ6
ICMgNjMzICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIKMTQ0NzQ6ICByZXR1cm4gYXRvbWlj
X3JlYWQoJm1tLT50bGJfZmx1c2hfcGVuZGluZyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJv
b2wgbW1fdGxiX2ZsdXNoX25lc3RlZChzdHJ1Y3QgbW1fc3RydWN0ICptbSkKMTQ0NzQ6IHsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIHJldHVybiBhdG9taWNfcmVhZCgmbW0tPnRsYl9mbHVzaF9wZW5kaW5nKSA+IDE7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB2bV9mYXVsdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgaW50IHZt
X2ZhdWx0X3Q7CjE0NDc0OiAjIDY4MiAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgiCjE0NDc0
OiBlbnVtIHZtX2ZhdWx0X3JlYXNvbiB7CjE0NDc0OiAgVk1fRkFVTFRfT09NID0gKCB2bV9mYXVs
dF90KTB4MDAwMDAxLAoxNDQ3NDogIFZNX0ZBVUxUX1NJR0JVUyA9ICggdm1fZmF1bHRfdCkweDAw
MDAwMiwKMTQ0NzQ6ICBWTV9GQVVMVF9NQUpPUiA9ICggdm1fZmF1bHRfdCkweDAwMDAwNCwKMTQ0
NzQ6ICBWTV9GQVVMVF9XUklURSA9ICggdm1fZmF1bHRfdCkweDAwMDAwOCwKMTQ0NzQ6ICBWTV9G
QVVMVF9IV1BPSVNPTiA9ICggdm1fZmF1bHRfdCkweDAwMDAxMCwKMTQ0NzQ6ICBWTV9GQVVMVF9I
V1BPSVNPTl9MQVJHRSA9ICggdm1fZmF1bHRfdCkweDAwMDAyMCwKMTQ0NzQ6ICBWTV9GQVVMVF9T
SUdTRUdWID0gKCB2bV9mYXVsdF90KTB4MDAwMDQwLAoxNDQ3NDogIFZNX0ZBVUxUX05PUEFHRSA9
ICggdm1fZmF1bHRfdCkweDAwMDEwMCwKMTQ0NzQ6ICBWTV9GQVVMVF9MT0NLRUQgPSAoIHZtX2Zh
dWx0X3QpMHgwMDAyMDAsCjE0NDc0OiAgVk1fRkFVTFRfUkVUUlkgPSAoIHZtX2ZhdWx0X3QpMHgw
MDA0MDAsCjE0NDc0OiAgVk1fRkFVTFRfRkFMTEJBQ0sgPSAoIHZtX2ZhdWx0X3QpMHgwMDA4MDAs
CjE0NDc0OiAgVk1fRkFVTFRfRE9ORV9DT1cgPSAoIHZtX2ZhdWx0X3QpMHgwMDEwMDAsCjE0NDc0
OiAgVk1fRkFVTFRfTkVFRERTWU5DID0gKCB2bV9mYXVsdF90KTB4MDAyMDAwLAoxNDQ3NDogIFZN
X0ZBVUxUX0hJTkRFWF9NQVNLID0gKCB2bV9mYXVsdF90KTB4MGYwMDAwLAoxNDQ3NDogfTsKMTQ0
NzQ6ICMgNzIyICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIKMTQ0NzQ6IHN0cnVjdCB2bV9z
cGVjaWFsX21hcHBpbmcgewoxNDQ3NDogIGNvbnN0IGNoYXIgKm5hbWU7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qg
cGFnZSAqKnBhZ2VzOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICB2bV9mYXVsdF90ICgqZmF1bHQpKGNvbnN0IHN0cnVjdCB2bV9zcGVjaWFsX21hcHBpbmcg
KnNtLAoxNDQ3NDogICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAoxNDQ3NDogICAgIHN0
cnVjdCB2bV9mYXVsdCAqdm1mKTsKMTQ0NzQ6IAoxNDQ3NDogIGludCAoKm1yZW1hcCkoY29uc3Qg
c3RydWN0IHZtX3NwZWNpYWxfbWFwcGluZyAqc20sCjE0NDc0OiAgICAgICAgc3RydWN0IHZtX2Fy
ZWFfc3RydWN0ICpuZXdfdm1hKTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gdGxiX2Zs
dXNoX3JlYXNvbiB7CjE0NDc0OiAgVExCX0ZMVVNIX09OX1RBU0tfU1dJVENILAoxNDQ3NDogIFRM
Ql9SRU1PVEVfU0hPT1RET1dOLAoxNDQ3NDogIFRMQl9MT0NBTF9TSE9PVERPV04sCjE0NDc0OiAg
VExCX0xPQ0FMX01NX1NIT09URE9XTiwKMTQ0NzQ6ICBUTEJfUkVNT1RFX1NFTkRfSVBJLAoxNDQ3
NDogIE5SX1RMQl9GTFVTSF9SRUFTT05TLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHN0cnVjdCB7CjE0NDc0OiAgdW5zaWdu
ZWQgbG9uZyB2YWw7CjE0NDc0OiB9IHN3cF9lbnRyeV90OwoxNDQ3NDogIyAyMiAiLi9pbmNsdWRl
L2xpbnV4L21tem9uZS5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9wYWdlLWZsYWdz
LmgiIDEKMTQ0NzQ6ICMgOTkgIi4vaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmgiCjE0NDc0OiBl
bnVtIHBhZ2VmbGFncyB7CjE0NDc0OiAgUEdfbG9ja2VkLAoxNDQ3NDogIFBHX3JlZmVyZW5jZWQs
CjE0NDc0OiAgUEdfdXB0b2RhdGUsCjE0NDc0OiAgUEdfZGlydHksCjE0NDc0OiAgUEdfbHJ1LAox
NDQ3NDogIFBHX2FjdGl2ZSwKMTQ0NzQ6ICBQR193b3JraW5nc2V0LAoxNDQ3NDogIFBHX3dhaXRl
cnMsCjE0NDc0OiAgUEdfZXJyb3IsCjE0NDc0OiAgUEdfc2xhYiwKMTQ0NzQ6ICBQR19vd25lcl9w
cml2XzEsCjE0NDc0OiAgUEdfYXJjaF8xLAoxNDQ3NDogIFBHX3Jlc2VydmVkLAoxNDQ3NDogIFBH
X3ByaXZhdGUsCjE0NDc0OiAgUEdfcHJpdmF0ZV8yLAoxNDQ3NDogIFBHX3dyaXRlYmFjaywKMTQ0
NzQ6ICBQR19oZWFkLAoxNDQ3NDogIFBHX21hcHBlZHRvZGlzaywKMTQ0NzQ6ICBQR19yZWNsYWlt
LAoxNDQ3NDogIFBHX3N3YXBiYWNrZWQsCjE0NDc0OiAgUEdfdW5ldmljdGFibGUsCjE0NDc0OiAK
MTQ0NzQ6ICBQR19tbG9ja2VkLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBQR191bmNhY2hlZCwK
MTQ0NzQ6ICMgMTM0ICIuL2luY2x1ZGUvbGludXgvcGFnZS1mbGFncy5oIgoxNDQ3NDogIF9fTlJf
UEFHRUZMQUdTLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBQR19jaGVja2VkID0gUEdfb3duZXJf
cHJpdl8xLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBQR19zd2FwY2FjaGUgPSBQR19vd25lcl9w
cml2XzEsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIFBH
X2ZzY2FjaGUgPSBQR19wcml2YXRlXzIsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
UEdfcGlubmVkID0gUEdfb3duZXJfcHJpdl8xLAoxNDQ3NDogCjE0NDc0OiAgUEdfc2F2ZXBpbm5l
ZCA9IFBHX2RpcnR5LAoxNDQ3NDogCjE0NDc0OiAgUEdfZm9yZWlnbiA9IFBHX293bmVyX3ByaXZf
MSwKMTQ0NzQ6IAoxNDQ3NDogIFBHX3hlbl9yZW1hcHBlZCA9IFBHX293bmVyX3ByaXZfMSwKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAgUEdfc2xvYl9mcmVlID0gUEdfcHJpdmF0ZSwKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgUEdfZG91YmxlX21hcCA9IFBHX3ByaXZhdGVfMiwKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgUEdfaXNvbGF0ZWQgPSBQR19yZWNsYWltLAoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBwYWdlOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qg
cGFnZSAqY29tcG91bmRfaGVhZChzdHJ1Y3QgcGFnZSAqcGFnZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICB1
bnNpZ25lZCBsb25nIGhlYWQgPSAoeyB1bmlvbiB7IHR5cGVvZihwYWdlLT5jb21wb3VuZF9oZWFk
KSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKHBh
Z2UtPmNvbXBvdW5kX2hlYWQpLCBfX3UuX19jLCBzaXplb2YocGFnZS0+Y29tcG91bmRfaGVhZCkp
OyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKHBhZ2UtPmNvbXBvdW5kX2hlYWQpLCBf
X3UuX19jLCBzaXplb2YocGFnZS0+Y29tcG91bmRfaGVhZCkpOyBkbyB7IH0gd2hpbGUgKDApOyBf
X3UuX192YWw7IH0pOwoxNDQ3NDogCjE0NDc0OiAgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoaGVh
ZCAmIDEpLCAwKSkKMTQ0NzQ6ICAgcmV0dXJuIChzdHJ1Y3QgcGFnZSAqKSAoaGVhZCAtIDEpOwox
NDQ3NDogIHJldHVybiBwYWdlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQYWdlVGFpbChzdHJ1Y3QgcGFnZSAqcGFnZSkKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHsgdW5pb24geyB0eXBlb2YocGFnZS0+Y29tcG91bmRfaGVh
ZCkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJihw
YWdlLT5jb21wb3VuZF9oZWFkKSwgX191Ll9fYywgc2l6ZW9mKHBhZ2UtPmNvbXBvdW5kX2hlYWQp
KTsgZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJihwYWdlLT5jb21wb3VuZF9oZWFkKSwg
X191Ll9fYywgc2l6ZW9mKHBhZ2UtPmNvbXBvdW5kX2hlYWQpKTsgZG8geyB9IHdoaWxlICgwKTsg
X191Ll9fdmFsOyB9KSAmIDE7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18o
KF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFBhZ2VDb21wb3VuZChzdHJ1Y3QgcGFnZSAqcGFnZSkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdGVzdF9iaXQoUEdfaGVhZCwgJnBhZ2UtPmZsYWdzKSB8
fCBQYWdlVGFpbChwYWdlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgUGFn
ZVBvaXNvbmVkKGNvbnN0IHN0cnVjdCBwYWdlICpwYWdlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVy
biBwYWdlLT5mbGFncyA9PSAtMWw7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgcGFnZV9pbml0X3BvaXNvbihzdHJ1Y3QgcGFnZSAqcGFnZSwgc2l6
ZV90IHNpemUpCjE0NDc0OiB7CjE0NDc0OiB9CjE0NDc0OiAjIDMxMiAiLi9pbmNsdWRlL2xpbnV4
L3BhZ2UtZmxhZ3MuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
aW50IFBhZ2VMb2NrZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX2xv
Y2tlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMCAmJiBQYWdlVGFpbChwYWdlKSkpKSk7
ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFn
ZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fU2V0UGFnZUxvY2tlZChzdHJ1Y3QgcGFn
ZSAqcGFnZSkgeyBfX3NldF9iaXQoUEdfbG9ja2VkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25n
KSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdl
UG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9
KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQg
X19DbGVhclBhZ2VMb2NrZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgX19jbGVhcl9iaXQoUEdfbG9j
a2VkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsg
KHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdl
KSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZVdhaXRlcnMoc3RydWN0IHBh
Z2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX3dhaXRlcnMsICYoeyAoKHZvaWQpKHNpemVv
ZigoIGxvbmcpKFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQ
YWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0
ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgU2V0UGFnZVdhaXRlcnMoc3RydWN0IHBhZ2Ug
KnBhZ2UpIHsgc2V0X2JpdChQR193YWl0ZXJzLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQ
YWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVk
KHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdh
eXNfaW5saW5lX18pKSB2b2lkIENsZWFyUGFnZVdhaXRlcnMoc3RydWN0IHBhZ2UgKnBhZ2UpIHsg
Y2xlYXJfYml0KFBHX3dhaXRlcnMsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VUYWls
KHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkp
KSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpIHZvaWQgX19DbGVhclBhZ2VXYWl0ZXJzKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fY2xl
YXJfYml0KFBHX3dhaXRlcnMsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VUYWlsKHBh
Z2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkp
OyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKSBpbnQgUGFnZUVycm9yKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0
X2JpdChQR19lcnJvciwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMCAmJiBQYWdlVGFpbChw
YWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5k
X2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0g
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIFNldFBhZ2VFcnJvcihzdHJ1
Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX2Vycm9yLCAmKHsgKCh2b2lkKShzaXplb2YoKCBs
b25nKSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQ
YWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2Up
OyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZv
aWQgQ2xlYXJQYWdlRXJyb3Ioc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBHX2Vycm9y
LCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsg
KCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkp
KSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBUZXN0Q2xlYXJQYWdlRXJyb3Ioc3RydWN0IHBhZ2Ug
KnBhZ2UpIHsgcmV0dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQR19lcnJvciwgJih7ICgodm9pZCko
c2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9m
KCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRf
aGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgaW50IFBhZ2VSZWZlcmVuY2VkKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJl
dHVybiB0ZXN0X2JpdChQR19yZWZlcmVuY2VkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQ
YWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2Up
OyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBT
ZXRQYWdlUmVmZXJlbmNlZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX3JlZmVyZW5j
ZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFk
KHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIENsZWFyUGFnZVJlZmVyZW5jZWQoc3RydWN0
IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBHX3JlZmVyZW5jZWQsICYoeyAoKHZvaWQpKHNpemVv
ZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5k
X2hlYWQocGFnZSk7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6ICBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5
c19pbmxpbmVfXykpIGludCBUZXN0Q2xlYXJQYWdlUmVmZXJlbmNlZChzdHJ1Y3QgcGFnZSAqcGFn
ZSkgeyByZXR1cm4gdGVzdF9hbmRfY2xlYXJfYml0KFBHX3JlZmVyZW5jZWQsICYoeyAoKHZvaWQp
KHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNv
bXBvdW5kX2hlYWQocGFnZSk7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6ICBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChf
X2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19TZXRQYWdlUmVmZXJlbmNlZChzdHJ1Y3QgcGFnZSAq
cGFnZSkgeyBfX3NldF9iaXQoUEdfcmVmZXJlbmNlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9u
ZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChw
YWdlKTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5l
X18pKSBpbnQgUGFnZURpcnR5KHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQ
R19kaXJ0eSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5k
X2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfSBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0
dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgU2V0UGFnZURpcnR5KHN0cnVjdCBw
YWdlICpwYWdlKSB7IHNldF9iaXQoUEdfZGlydHksICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcp
KFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFn
ZSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lk
IENsZWFyUGFnZURpcnR5KHN0cnVjdCBwYWdlICpwYWdlKSB7IGNsZWFyX2JpdChQR19kaXJ0eSwg
Jih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFn
ZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBUZXN0U2V0UGFnZURpcnR5KHN0cnVjdCBwYWdlICpw
YWdlKSB7IHJldHVybiB0ZXN0X2FuZF9zZXRfYml0KFBHX2RpcnR5LCAmKHsgKCh2b2lkKShzaXpl
b2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3Vu
ZF9oZWFkKHBhZ2UpOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgaW50IFRlc3RDbGVhclBhZ2VEaXJ0eShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4g
dGVzdF9hbmRfY2xlYXJfYml0KFBHX2RpcnR5LCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQ
YWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2Up
OyB9KS0+ZmxhZ3MpOyB9CjE0NDc0OiAgc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSB2b2lkIF9fQ2xlYXJQYWdlRGlydHkoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgX19jbGVhcl9iaXQo
UEdfZGlydHksICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3Vu
ZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pLT5mbGFncyk7IH0KMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFBhZ2VMUlUoc3RydWN0
IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX2xydSwgJih7ICgodm9pZCkoc2l6ZW9m
KCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRf
aGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVf
XykpIHZvaWQgU2V0UGFnZUxSVShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX2xydSwg
Jih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFn
ZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdlTFJVKHN0cnVjdCBwYWdlICpwYWdl
KSB7IGNsZWFyX2JpdChQR19scnUsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lz
b25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pLT5m
bGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fQ2xlYXJQ
YWdlTFJVKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fY2xlYXJfYml0KFBHX2xydSwgJih7ICgodm9p
ZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsg
Y29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZUFjdGl2ZShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBy
ZXR1cm4gdGVzdF9iaXQoUEdfYWN0aXZlLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdl
UG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9
KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBTZXRQ
YWdlQWN0aXZlKHN0cnVjdCBwYWdlICpwYWdlKSB7IHNldF9iaXQoUEdfYWN0aXZlLCAmKHsgKCh2
b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkp
OyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgdm9pZCBDbGVhclBhZ2VBY3RpdmUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsg
Y2xlYXJfYml0KFBHX2FjdGl2ZSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNv
bmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZs
YWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19DbGVhclBh
Z2VBY3RpdmUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgX19jbGVhcl9iaXQoUEdfYWN0aXZlLCAmKHsg
KCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkp
KSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KS0+ZmxhZ3MpOyB9CjE0NDc0OiAgc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgVGVzdENsZWFyUGFnZUFjdGl2ZShzdHJ1Y3Qg
cGFnZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9hbmRfY2xlYXJfYml0KFBHX2FjdGl2ZSwgJih7ICgo
dm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkp
KTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVf
XygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZVdvcmtpbmdzZXQoc3RydWN0IHBhZ2UgKnBh
Z2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX3dvcmtpbmdzZXQsICYoeyAoKHZvaWQpKHNpemVvZigo
IGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hl
YWQocGFnZSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSB2b2lkIFNldFBhZ2VXb3JraW5nc2V0KHN0cnVjdCBwYWdlICpwYWdlKSB7IHNldF9iaXQoUEdf
d29ya2luZ3NldCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBv
dW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfSBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBf
X2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdlV29ya2luZ3Nl
dChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBjbGVhcl9iaXQoUEdfd29ya2luZ3NldCwgJih7ICgodm9p
ZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsg
Y29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogIHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18o
KF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFRlc3RDbGVhclBhZ2VXb3JraW5nc2V0KHN0cnVjdCBw
YWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2FuZF9jbGVhcl9iaXQoUEdfd29ya2luZ3NldCwgJih7
ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkp
KSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZVNsYWIoc3RydWN0IHBhZ2UgKnBhZ2Up
IHsgcmV0dXJuIHRlc3RfYml0KFBHX3NsYWIsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDAg
JiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lz
b25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9
KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX1Nl
dFBhZ2VTbGFiKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fc2V0X2JpdChQR19zbGFiLCAmKHsgKCh2
b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShz
aXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21w
b3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5
c19pbmxpbmVfXykpIHZvaWQgX19DbGVhclBhZ2VTbGFiKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9f
Y2xlYXJfYml0KFBHX3NsYWIsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZVRh
aWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21w
b3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3Mp
OyB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQYWdlU2xv
YkZyZWUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX3Nsb2JfZnJlZSwg
Jih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMCAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgo
dm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkp
KTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fU2V0UGFnZVNsb2JGcmVlKHN0cnVjdCBwYWdlICpw
YWdlKSB7IF9fc2V0X2JpdChQR19zbG9iX2ZyZWUsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcp
KDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQ
b2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0p
OyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBf
X0NsZWFyUGFnZVNsb2JGcmVlKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fY2xlYXJfYml0KFBHX3Ns
b2JfZnJlZSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlVGFpbChwYWdlKSkp
KSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQo
cGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFBhZ2VDaGVja2VkKHN0cnVj
dCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR19jaGVja2VkLCAmKHsgKCh2b2lkKShz
aXplb2YoKCBsb25nKSgwICYmIFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6
ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7
IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIFNldFBhZ2VDaGVja2Vk
KHN0cnVjdCBwYWdlICpwYWdlKSB7IHNldF9iaXQoUEdfY2hlY2tlZCwgJih7ICgodm9pZCkoc2l6
ZW9mKCggbG9uZykoMSAmJiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVv
ZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBDbGVhclBhZ2VDaGVja2Vk
KHN0cnVjdCBwYWdlICpwYWdlKSB7IGNsZWFyX2JpdChQR19jaGVja2VkLCAmKHsgKCh2b2lkKShz
aXplb2YoKCBsb25nKSgxICYmIFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6
ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7
IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVf
XykpIGludCBQYWdlUGlubmVkKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQ
R19waW5uZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDAgJiYgUGFnZUNvbXBvdW5kKHBh
Z2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkp
OyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVf
XykpIHZvaWQgU2V0UGFnZVBpbm5lZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX3Bp
bm5lZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlQ29tcG91bmQocGFnZSkp
KSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBh
Z2U7IH0pOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
dm9pZCBDbGVhclBhZ2VQaW5uZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBHX3Bp
bm5lZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlQ29tcG91bmQocGFnZSkp
KSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBh
Z2U7IH0pOyB9KS0+ZmxhZ3MpOyB9CjE0NDc0OiAgc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5s
aW5lX18pKSBpbnQgVGVzdFNldFBhZ2VQaW5uZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJu
IHRlc3RfYW5kX3NldF9iaXQoUEdfcGlubmVkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgx
ICYmIFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFn
ZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVf
XygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgVGVzdENsZWFyUGFnZVBpbm5lZChzdHJ1Y3QgcGFn
ZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9hbmRfY2xlYXJfYml0KFBHX3Bpbm5lZCwgJih7ICgodm9p
ZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQp
KHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+Zmxh
Z3MpOyB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQYWdl
U2F2ZVBpbm5lZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9iaXQoUEdfc2F2ZXBp
bm5lZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMCAmJiBQYWdlQ29tcG91bmQocGFnZSkp
KSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBh
Z2U7IH0pOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
dm9pZCBTZXRQYWdlU2F2ZVBpbm5lZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX3Nh
dmVwaW5uZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZUNvbXBvdW5kKHBh
Z2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkp
OyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVf
XykpIHZvaWQgQ2xlYXJQYWdlU2F2ZVBpbm5lZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBjbGVhcl9i
aXQoUEdfc2F2ZXBpbm5lZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlQ29t
cG91bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChw
YWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9OwoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZUZvcmVpZ24oc3RydWN0IHBhZ2UgKnBhZ2UpIHsg
cmV0dXJuIHRlc3RfYml0KFBHX2ZvcmVpZ24sICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDAg
JiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdl
UG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgU2V0UGFnZUZvcmVpZ24oc3RydWN0IHBhZ2UgKnBh
Z2UpIHsgc2V0X2JpdChQR19mb3JlaWduLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYm
IFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBv
aXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSB2b2lkIENsZWFyUGFnZUZvcmVpZ24oc3RydWN0IHBhZ2UgKnBh
Z2UpIHsgY2xlYXJfYml0KFBHX2ZvcmVpZ24sICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEg
JiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdl
UG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfTsKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFBhZ2VYZW5SZW1hcHBlZChzdHJ1Y3Qg
cGFnZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9iaXQoUEdfeGVuX3JlbWFwcGVkLCAmKHsgKCh2b2lk
KShzaXplb2YoKCBsb25nKSgwICYmIFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCko
c2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFn
cyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIFNldFBhZ2VYZW5S
ZW1hcHBlZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX3hlbl9yZW1hcHBlZCwgJih7
ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAo
KHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9
KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBDbGVh
clBhZ2VYZW5SZW1hcHBlZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBjbGVhcl9iaXQoUEdfeGVuX3Jl
bWFwcGVkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VDb21wb3VuZChwYWdl
KSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsg
cGFnZTsgfSk7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6ICBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19p
bmxpbmVfXykpIGludCBUZXN0Q2xlYXJQYWdlWGVuUmVtYXBwZWQoc3RydWN0IHBhZ2UgKnBhZ2Up
IHsgcmV0dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQR194ZW5fcmVtYXBwZWQsICYoeyAoKHZvaWQp
KHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShz
aXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdz
KTsgfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGlu
dCBQYWdlUmVzZXJ2ZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX3Jl
c2VydmVkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgwICYmIFBhZ2VDb21wb3VuZChwYWdl
KSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsg
cGFnZTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSB2b2lkIFNldFBhZ2VSZXNlcnZlZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX3Jl
c2VydmVkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VDb21wb3VuZChwYWdl
KSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsg
cGFnZTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSB2b2lkIENsZWFyUGFnZVJlc2VydmVkKHN0cnVjdCBwYWdlICpwYWdlKSB7IGNsZWFyX2JpdChQ
R19yZXNlcnZlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlQ29tcG91bmQo
cGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkp
KSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9CjE0NDc0OiAgc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdh
eXNfaW5saW5lX18pKSB2b2lkIF9fQ2xlYXJQYWdlUmVzZXJ2ZWQoc3RydWN0IHBhZ2UgKnBhZ2Up
IHsgX19jbGVhcl9iaXQoUEdfcmVzZXJ2ZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEg
JiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdl
UG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogIHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX1NldFBhZ2VSZXNlcnZlZChzdHJ1
Y3QgcGFnZSAqcGFnZSkgeyBfX3NldF9iaXQoUEdfcmVzZXJ2ZWQsICYoeyAoKHZvaWQpKHNpemVv
ZigoIGxvbmcpKDEgJiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2Yo
KCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfQox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZVN3YXBCYWNr
ZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX3N3YXBiYWNrZWQsICYo
eyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDAgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZv
aWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7
IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9f
YWx3YXlzX2lubGluZV9fKSkgdm9pZCBTZXRQYWdlU3dhcEJhY2tlZChzdHJ1Y3QgcGFnZSAqcGFn
ZSkgeyBzZXRfYml0KFBHX3N3YXBiYWNrZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEg
JiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lz
b25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9
KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBDbGVh
clBhZ2VTd2FwQmFja2VkKHN0cnVjdCBwYWdlICpwYWdlKSB7IGNsZWFyX2JpdChQR19zd2FwYmFj
a2VkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsg
KHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdl
KSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogIHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9f
YXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFnZVN3YXBCYWNr
ZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgX19jbGVhcl9iaXQoUEdfc3dhcGJhY2tlZCwgJih7ICgo
dm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCko
c2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29t
cG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6ICBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19TZXRQYWdlU3dhcEJhY2tlZChzdHJ1Y3QgcGFn
ZSAqcGFnZSkgeyBfX3NldF9iaXQoUEdfc3dhcGJhY2tlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCgg
bG9uZykoMSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZyko
UGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdl
KTsgfSk7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50
IFBhZ2VQcml2YXRlKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR19wcml2
YXRlLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBw
YWdlOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9p
ZCBTZXRQYWdlUHJpdmF0ZShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX3ByaXZhdGUs
ICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7
IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIENs
ZWFyUGFnZVByaXZhdGUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBHX3ByaXZhdGUs
ICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7
IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9f
U2V0UGFnZVByaXZhdGUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgX19zZXRfYml0KFBHX3ByaXZhdGUs
ICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7
IH0pLT5mbGFncyk7IH0KMTQ0NzQ6ICBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykp
IHZvaWQgX19DbGVhclBhZ2VQcml2YXRlKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fY2xlYXJfYml0
KFBHX3ByaXZhdGUsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdl
KSkpKSk7IHBhZ2U7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlz
X2lubGluZV9fKSkgaW50IFBhZ2VQcml2YXRlMihzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4g
dGVzdF9iaXQoUEdfcHJpdmF0ZV8yLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9p
c29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgdm9pZCBTZXRQYWdlUHJpdmF0ZTIoc3RydWN0IHBhZ2UgKnBhZ2UpIHsg
c2V0X2JpdChQR19wcml2YXRlXzIsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lz
b25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdh
eXNfaW5saW5lX18pKSB2b2lkIENsZWFyUGFnZVByaXZhdGUyKHN0cnVjdCBwYWdlICpwYWdlKSB7
IGNsZWFyX2JpdChQR19wcml2YXRlXzIsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQ
b2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19h
bHdheXNfaW5saW5lX18pKSBpbnQgVGVzdFNldFBhZ2VQcml2YXRlMihzdHJ1Y3QgcGFnZSAqcGFn
ZSkgeyByZXR1cm4gdGVzdF9hbmRfc2V0X2JpdChQR19wcml2YXRlXzIsICYoeyAoKHZvaWQpKHNp
emVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pLT5mbGFncyk7IH0g
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgVGVzdENsZWFyUGFnZVByaXZh
dGUyKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2FuZF9jbGVhcl9iaXQoUEdfcHJp
dmF0ZV8yLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkp
OyBwYWdlOyB9KS0+ZmxhZ3MpOyB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpIGludCBQYWdlT3duZXJQcml2MShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4gdGVz
dF9iaXQoUEdfb3duZXJfcHJpdl8xLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9p
c29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgdm9pZCBTZXRQYWdlT3duZXJQcml2MShzdHJ1Y3QgcGFnZSAqcGFnZSkg
eyBzZXRfYml0KFBHX293bmVyX3ByaXZfMSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFn
ZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChf
X2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdlT3duZXJQcml2MShzdHJ1Y3QgcGFnZSAq
cGFnZSkgeyBjbGVhcl9iaXQoUEdfb3duZXJfcHJpdl8xLCAmKHsgKCh2b2lkKShzaXplb2YoKCBs
b25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KS0+ZmxhZ3MpOyB9CjE0NDc0OiAg
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgVGVzdENsZWFyUGFnZU93bmVy
UHJpdjEoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQR19v
d25lcl9wcml2XzEsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdl
KSkpKSk7IHBhZ2U7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQ
YWdlV3JpdGViYWNrKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR193cml0
ZWJhY2ssICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDAgJiYgUGFnZVRhaWwocGFnZSkpKSkp
OyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBh
Z2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9CjE0NDc0OiAg
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgVGVzdFNldFBhZ2VXcml0ZWJh
Y2soc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYW5kX3NldF9iaXQoUEdfd3JpdGVi
YWNrLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsg
KHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdl
KSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0
ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBUZXN0Q2xlYXJQYWdlV3JpdGViYWNrKHN0cnVj
dCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2FuZF9jbGVhcl9iaXQoUEdfd3JpdGViYWNrLCAm
KHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2
b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkp
OyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZU1hcHBlZFRvRGlzayhzdHJ1Y3QgcGFn
ZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9iaXQoUEdfbWFwcGVkdG9kaXNrLCAmKHsgKCh2b2lkKShz
aXplb2YoKCBsb25nKSgwICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2Yo
KCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9o
ZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpIHZvaWQgU2V0UGFnZU1hcHBlZFRvRGlzayhzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRf
Yml0KFBHX21hcHBlZHRvZGlzaywgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdl
VGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNv
bXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFn
cyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIENsZWFyUGFnZU1h
cHBlZFRvRGlzayhzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBjbGVhcl9iaXQoUEdfbWFwcGVkdG9kaXNr
LCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsg
KCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkp
KSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFBhZ2VSZWNs
YWltKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR19yZWNsYWltLCAmKHsg
KCh2b2lkKShzaXplb2YoKCBsb25nKSgwICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lk
KShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBj
b21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIHZvaWQgU2V0UGFnZVJlY2xhaW0oc3RydWN0IHBhZ2UgKnBhZ2UpIHsg
c2V0X2JpdChQR19yZWNsYWltLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VU
YWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29t
cG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdz
KTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdlUmVj
bGFpbShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBjbGVhcl9iaXQoUEdfcmVjbGFpbSwgJih7ICgodm9p
ZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6
ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91
bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6ICBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChf
X2Fsd2F5c19pbmxpbmVfXykpIGludCBUZXN0Q2xlYXJQYWdlUmVjbGFpbShzdHJ1Y3QgcGFnZSAq
cGFnZSkgeyByZXR1cm4gdGVzdF9hbmRfY2xlYXJfYml0KFBHX3JlY2xhaW0sICYoeyAoKHZvaWQp
KHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVv
ZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5k
X2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIGludCBQYWdlUmVhZGFoZWFkKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJl
dHVybiB0ZXN0X2JpdChQR19yZWNsYWltLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgwICYm
IFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBv
aXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSB2b2lkIFNldFBhZ2VSZWFkYWhlYWQoc3RydWN0IHBhZ2UgKnBh
Z2UpIHsgc2V0X2JpdChQR19yZWNsYWltLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYm
IFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBv
aXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSB2b2lkIENsZWFyUGFnZVJlYWRhaGVhZChzdHJ1Y3QgcGFnZSAq
cGFnZSkgeyBjbGVhcl9iaXQoUEdfcmVjbGFpbSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZyko
MSAmJiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBh
Z2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9CjE0NDc0OiAgc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgVGVzdENsZWFyUGFnZVJlYWRhaGVh
ZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9hbmRfY2xlYXJfYml0KFBHX3JlY2xh
aW0sICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkp
KTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdl
OyB9KTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogIyAzNzYgIi4vaW5jbHVkZS9saW51eC9wYWdlLWZs
YWdzLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQgUGFnZUhpZ2hNZW0oY29uc3Qgc3RydWN0IHBhZ2UgKnBhZ2UpIHsg
cmV0dXJuIDA7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBTZXRQYWdlSGlnaE1lbShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyB9IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgQ2xlYXJQYWdlSGlnaE1lbShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyB9CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQ
YWdlU3dhcENhY2hlKHN0cnVjdCBwYWdlICpwYWdlKQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAg
cGFnZSA9IGNvbXBvdW5kX2hlYWQocGFnZSk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gUGFnZVN3
YXBCYWNrZWQocGFnZSkgJiYgdGVzdF9iaXQoUEdfc3dhcGNhY2hlLCAmcGFnZS0+ZmxhZ3MpOwox
NDQ3NDogCjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykp
IHZvaWQgU2V0UGFnZVN3YXBDYWNoZShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX3N3
YXBjYWNoZSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlVGFpbChwYWdlKSkp
KSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQo
cGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBDbGVhclBhZ2VTd2FwQ2Fj
aGUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBHX3N3YXBjYWNoZSwgJih7ICgodm9p
ZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6
ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91
bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFn
ZVVuZXZpY3RhYmxlKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR191bmV2
aWN0YWJsZSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5k
X2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfSBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0
dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgU2V0UGFnZVVuZXZpY3RhYmxlKHN0
cnVjdCBwYWdlICpwYWdlKSB7IHNldF9iaXQoUEdfdW5ldmljdGFibGUsICYoeyAoKHZvaWQpKHNp
emVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBv
dW5kX2hlYWQocGFnZSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5s
aW5lX18pKSB2b2lkIENsZWFyUGFnZVVuZXZpY3RhYmxlKHN0cnVjdCBwYWdlICpwYWdlKSB7IGNs
ZWFyX2JpdChQR191bmV2aWN0YWJsZSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBv
aXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSkt
PmZsYWdzKTsgfQoxNDQ3NDogIHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9p
ZCBfX0NsZWFyUGFnZVVuZXZpY3RhYmxlKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fY2xlYXJfYml0
KFBHX3VuZXZpY3RhYmxlLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQo
Y29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KS0+ZmxhZ3Mp
OyB9CjE0NDc0OiAgc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgVGVzdENs
ZWFyUGFnZVVuZXZpY3RhYmxlKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2FuZF9j
bGVhcl9iaXQoUEdfdW5ldmljdGFibGUsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQ
b2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0p
LT5mbGFncyk7IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5
c19pbmxpbmVfXykpIGludCBQYWdlTWxvY2tlZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4g
dGVzdF9iaXQoUEdfbWxvY2tlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMCAmJiBQYWdl
VGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNv
bXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFn
cyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIFNldFBhZ2VNbG9j
a2VkKHN0cnVjdCBwYWdlICpwYWdlKSB7IHNldF9iaXQoUEdfbWxvY2tlZCwgJih7ICgodm9pZCko
c2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9m
KCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRf
aGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5s
aW5lX18pKSB2b2lkIENsZWFyUGFnZU1sb2NrZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJf
Yml0KFBHX21sb2NrZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZVRhaWwo
cGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3Vu
ZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9
CjE0NDc0OiAgc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fQ2xlYXJQ
YWdlTWxvY2tlZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBfX2NsZWFyX2JpdChQR19tbG9ja2VkLCAm
KHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2
b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkp
OyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogIHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmli
dXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFRlc3RTZXRQYWdlTWxvY2tlZChzdHJ1Y3Qg
cGFnZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9hbmRfc2V0X2JpdChQR19tbG9ja2VkLCAmKHsgKCh2
b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShz
aXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21w
b3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5
c19pbmxpbmVfXykpIGludCBUZXN0Q2xlYXJQYWdlTWxvY2tlZChzdHJ1Y3QgcGFnZSAqcGFnZSkg
eyByZXR1cm4gdGVzdF9hbmRfY2xlYXJfYml0KFBHX21sb2NrZWQsICYoeyAoKHZvaWQpKHNpemVv
ZigoIGxvbmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxv
bmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQo
cGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykp
IGludCBQYWdlVW5jYWNoZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBH
X3VuY2FjaGVkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgwICYmIFBhZ2VDb21wb3VuZChw
YWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkp
KTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5l
X18pKSB2b2lkIFNldFBhZ2VVbmNhY2hlZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBH
X3VuY2FjaGVkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VDb21wb3VuZChw
YWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkp
KTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5l
X18pKSB2b2lkIENsZWFyUGFnZVVuY2FjaGVkKHN0cnVjdCBwYWdlICpwYWdlKSB7IGNsZWFyX2Jp
dChQR191bmNhY2hlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlQ29tcG91
bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdl
KSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9CjE0NDc0OiAjIDQxOSAiLi9pbmNsdWRlL2xp
bnV4L3BhZ2UtZmxhZ3MuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBQYWdlSFdQb2lzb24oY29uc3Qgc3RydWN0IHBh
Z2UgKnBhZ2UpIHsgcmV0dXJuIDA7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBTZXRQYWdlSFdQb2lzb24oc3RydWN0IHBhZ2Ug
KnBhZ2UpIHsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIENsZWFyUGFnZUhXUG9pc29uKHN0cnVjdCBwYWdlICpwYWdlKSB7IH0K
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGJvb2wgc2V0X2h3cG9pc29uX2ZyZWVfYnVkZHlfcGFnZShzdHJ1Y3QgcGFnZSAqcGFn
ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gMDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNDU2ICIuL2lu
Y2x1ZGUvbGludXgvcGFnZS1mbGFncy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKSBpbnQgUGFnZU1hcHBpbmdGbGFncyhzdHJ1Y3QgcGFnZSAqcGFnZSkKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4gKCh1bnNpZ25lZCBsb25nKXBhZ2UtPm1hcHBpbmcgJiAoMHgxIHwg
MHgyKSkgIT0gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdh
eXNfaW5saW5lX18pKSBpbnQgUGFnZUFub24oc3RydWN0IHBhZ2UgKnBhZ2UpCjE0NDc0OiB7CjE0
NDc0OiAgcGFnZSA9IGNvbXBvdW5kX2hlYWQocGFnZSk7CjE0NDc0OiAgcmV0dXJuICgodW5zaWdu
ZWQgbG9uZylwYWdlLT5tYXBwaW5nICYgMHgxKSAhPSAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBfX1BhZ2VNb3ZhYmxlKHN0
cnVjdCBwYWdlICpwYWdlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoKHVuc2lnbmVkIGxvbmcp
cGFnZS0+bWFwcGluZyAmICgweDEgfCAweDIpKSA9PQoxNDQ3NDogICAgIDB4MjsKMTQ0NzQ6IH0K
MTQ0NzQ6ICMgNDgwICIuL2luY2x1ZGUvbGludXgvcGFnZS1mbGFncy5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZUtzbShzdHJ1Y3QgcGFnZSAqcGFn
ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBwYWdlID0gY29tcG91bmRfaGVhZChwYWdlKTsKMTQ0NzQ6ICBy
ZXR1cm4gKCh1bnNpZ25lZCBsb25nKXBhZ2UtPm1hcHBpbmcgJiAoMHgxIHwgMHgyKSkgPT0KMTQ0
NzQ6ICAgICAoMHgxIHwgMHgyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogdTY0IHN0YWJsZV9wYWdlX2ZsYWdzKHN0cnVjdCBwYWdlICpwYWdlKTsKMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgaW50IFBhZ2VVcHRvZGF0ZShzdHJ1Y3QgcGFnZSAqcGFnZSkKMTQ0NzQ6IHsK
MTQ0NzQ6ICBpbnQgcmV0OwoxNDQ3NDogIHBhZ2UgPSBjb21wb3VuZF9oZWFkKHBhZ2UpOwoxNDQ3
NDogIHJldCA9IHRlc3RfYml0KFBHX3VwdG9kYXRlLCAmKHBhZ2UpLT5mbGFncyk7CjE0NDc0OiAj
IDUwNSAiLi9pbmNsdWRlL2xpbnV4L3BhZ2UtZmxhZ3MuaCIKMTQ0NzQ6ICBpZiAocmV0KQoxNDQ3
NDogICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoxNDQ3NDogCjE0NDc0
OiAgcmV0dXJuIHJldDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19h
bHdheXNfaW5saW5lX18pKSB2b2lkIF9fU2V0UGFnZVVwdG9kYXRlKHN0cnVjdCBwYWdlICpwYWdl
KQoxNDQ3NDogewoxNDQ3NDogICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVRhaWwocGFnZSkp
KSkpOwoxNDQ3NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0
OiAgX19zZXRfYml0KFBHX3VwdG9kYXRlLCAmcGFnZS0+ZmxhZ3MpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgU2V0UGFnZVVw
dG9kYXRlKHN0cnVjdCBwYWdlICpwYWdlKQoxNDQ3NDogewoxNDQ3NDogICgodm9pZCkoc2l6ZW9m
KCggbG9uZykoUGFnZVRhaWwocGFnZSkpKSkpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIp
OwoxNDQ3NDogIHNldF9iaXQoUEdfdXB0b2RhdGUsICZwYWdlLT5mbGFncyk7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBDbGVh
clBhZ2VVcHRvZGF0ZShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBjbGVhcl9iaXQoUEdfdXB0b2RhdGUs
ICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAo
KHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkp
KSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9CjE0NDc0OiAKMTQ0NzQ6
IGludCB0ZXN0X2NsZWFyX3BhZ2Vfd3JpdGViYWNrKHN0cnVjdCBwYWdlICpwYWdlKTsKMTQ0NzQ6
IGludCBfX3Rlc3Rfc2V0X3BhZ2Vfd3JpdGViYWNrKHN0cnVjdCBwYWdlICpwYWdlLCBib29sIGtl
ZXBfd3JpdGUpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBzZXRfcGFnZV93cml0ZWJhY2soc3RydWN0IHBhZ2UgKnBhZ2UpCjE0NDc0
OiB7CjE0NDc0OiAgX190ZXN0X3NldF9wYWdlX3dyaXRlYmFjayhwYWdlLCBmYWxzZSk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc2V0X3BhZ2Vfd3JpdGViYWNrX2tlZXB3cml0ZShzdHJ1
Y3QgcGFnZSAqcGFnZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX3Rlc3Rfc2V0X3BhZ2Vfd3JpdGViYWNr
KHBhZ2UsIHRydWUpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIGludCBQYWdlSGVhZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4g
dGVzdF9iaXQoUEdfaGVhZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVk
KHBhZ2UpKSkpKTsgcGFnZTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19p
bmxpbmVfXykpIHZvaWQgX19TZXRQYWdlSGVhZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBfX3NldF9i
aXQoUEdfaGVhZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2Up
KSkpKTsgcGFnZTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVf
XykpIHZvaWQgX19DbGVhclBhZ2VIZWFkKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fY2xlYXJfYml0
KFBHX2hlYWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkp
KSk7IHBhZ2U7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSB2b2lkIENsZWFyUGFnZUhlYWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBHX2hl
YWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBh
Z2U7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKSB2b2lkIHNldF9jb21wb3VuZF9oZWFkKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1
Y3QgcGFnZSAqaGVhZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoeyB1bmlvbiB7IHR5cGVvZihwYWdlLT5j
b21wb3VuZF9oZWFkKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5
cGVvZihwYWdlLT5jb21wb3VuZF9oZWFkKSkgKCh1bnNpZ25lZCBsb25nKWhlYWQgKyAxKSB9OyBf
X3dyaXRlX29uY2Vfc2l6ZSgmKHBhZ2UtPmNvbXBvdW5kX2hlYWQpLCBfX3UuX19jLCBzaXplb2Yo
cGFnZS0+Y29tcG91bmRfaGVhZCkpOyBfX3UuX192YWw7IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgY2xlYXJfY29tcG91
bmRfaGVhZChzdHJ1Y3QgcGFnZSAqcGFnZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoeyB1bmlvbiB7IHR5
cGVvZihwYWdlLT5jb21wb3VuZF9oZWFkKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAu
X192YWwgPSAoIHR5cGVvZihwYWdlLT5jb21wb3VuZF9oZWFkKSkgKDApIH07IF9fd3JpdGVfb25j
ZV9zaXplKCYocGFnZS0+Y29tcG91bmRfaGVhZCksIF9fdS5fX2MsIHNpemVvZihwYWdlLT5jb21w
b3VuZF9oZWFkKSk7IF9fdS5fX3ZhbDsgfSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBDbGVhclBhZ2VDb21wb3VuZChzdHJ1Y3QgcGFnZSAqcGFnZSkKMTQ0NzQ6IHsKMTQ0
NzQ6ICBkbyB7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKCFQYWdlSGVhZChwYWdlKSksIDApKSBk
byB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIg
IlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIg
IjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIl
YzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1
Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAi
XHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L3Bh
Z2UtZmxhZ3MuaCIpLCAiaSIgKDU2NSksICJpIiAoMCksICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdf
ZW50cnkpKSk7IH0gd2hpbGUgKDApOyBkbyB7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIu
cHVzaHNlY3Rpb24gLmRpc2NhcmQudW5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0
IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICgxNCkpOyB9KTsgYXNtIHZvbGF0aWxlKCIiKTsg
X19idWlsdGluX3VucmVhY2hhYmxlKCk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsgfSB3aGls
ZSAoMCk7CjE0NDc0OiAgQ2xlYXJQYWdlSGVhZChwYWdlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBpbnQgUGFnZUh1Z2Uoc3RydWN0IHBh
Z2UgKnBhZ2UpOwoxNDQ3NDogaW50IFBhZ2VIZWFkSHVnZShzdHJ1Y3QgcGFnZSAqcGFnZSk7CjE0
NDc0OiBib29sIHBhZ2VfaHVnZV9hY3RpdmUoc3RydWN0IHBhZ2UgKnBhZ2UpOwoxNDQ3NDogIyA1
OTYgIi4vaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgUGFnZVRyYW5zSHVn
ZShzdHJ1Y3QgcGFnZSAqcGFnZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoKHZvaWQpKHNpemVvZigoIGxv
bmcpKFBhZ2VUYWlsKHBhZ2UpKSkpKTsKMTQ0NzQ6ICByZXR1cm4gUGFnZUhlYWQocGFnZSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBpbnQgUGFnZVRyYW5zQ29tcG91bmQoc3RydWN0IHBhZ2UgKnBhZ2UpCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuIFBhZ2VDb21wb3VuZChwYWdlKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNjMzICIu
L2luY2x1ZGUvbGludXgvcGFnZS1mbGFncy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IFBhZ2VUcmFuc0NvbXBvdW5k
TWFwKHN0cnVjdCBwYWdlICpwYWdlKQoxNDQ3NDogewoxNDQ3NDogIHN0cnVjdCBwYWdlICpoZWFk
OwoxNDQ3NDogCjE0NDc0OiAgaWYgKCFQYWdlVHJhbnNDb21wb3VuZChwYWdlKSkKMTQ0NzQ6ICAg
cmV0dXJuIDA7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoUGFnZUFub24ocGFnZSkpCjE0NDc0OiAgIHJl
dHVybiBhdG9taWNfcmVhZCgmcGFnZS0+X21hcGNvdW50KSA8IDA7CjE0NDc0OiAKMTQ0NzQ6ICBo
ZWFkID0gY29tcG91bmRfaGVhZChwYWdlKTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBhdG9taWNf
cmVhZCgmcGFnZS0+X21hcGNvdW50KSA9PQoxNDQ3NDogICAgICAgICBhdG9taWNfcmVhZChjb21w
b3VuZF9tYXBjb3VudF9wdHIoaGVhZCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IFBhZ2VUcmFuc1RhaWwoc3RydWN0
IHBhZ2UgKnBhZ2UpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIFBhZ2VUYWlsKHBhZ2UpOwoxNDQ3
NDogfQoxNDQ3NDogIyA2NzIgIi4vaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQgUGFnZURvdWJsZU1hcChzdHJ1Y3QgcGFnZSAqcGFnZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gUGFnZUhlYWQocGFnZSkgJiYgdGVzdF9iaXQoUEdfZG91YmxlX21hcCwgJnBhZ2VbMV0uZmxh
Z3MpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIFNldFBhZ2VEb3VibGVNYXAoc3RydWN0
IHBhZ2UgKnBhZ2UpCjE0NDc0OiB7CjE0NDc0OiAgKCh2b2lkKShzaXplb2YoKCBsb25nKSghUGFn
ZUhlYWQocGFnZSkpKSkpOwoxNDQ3NDogIHNldF9iaXQoUEdfZG91YmxlX21hcCwgJnBhZ2VbMV0u
ZmxhZ3MpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIENsZWFyUGFnZURvdWJsZU1hcChz
dHJ1Y3QgcGFnZSAqcGFnZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoKHZvaWQpKHNpemVvZigoIGxvbmcp
KCFQYWdlSGVhZChwYWdlKSkpKSk7CjE0NDc0OiAgY2xlYXJfYml0KFBHX2RvdWJsZV9tYXAsICZw
YWdlWzFdLmZsYWdzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBUZXN0U2V0UGFnZURvdWJsZU1hcChz
dHJ1Y3QgcGFnZSAqcGFnZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoKHZvaWQpKHNpemVvZigoIGxvbmcp
KCFQYWdlSGVhZChwYWdlKSkpKSk7CjE0NDc0OiAgcmV0dXJuIHRlc3RfYW5kX3NldF9iaXQoUEdf
ZG91YmxlX21hcCwgJnBhZ2VbMV0uZmxhZ3MpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
VGVzdENsZWFyUGFnZURvdWJsZU1hcChzdHJ1Y3QgcGFnZSAqcGFnZSkKMTQ0NzQ6IHsKMTQ0NzQ6
ICAoKHZvaWQpKHNpemVvZigoIGxvbmcpKCFQYWdlSGVhZChwYWdlKSkpKSk7CjE0NDc0OiAgcmV0
dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQR19kb3VibGVfbWFwLCAmcGFnZVsxXS5mbGFncyk7CjE0
NDc0OiB9CjE0NDc0OiAjIDczMSAiLi9pbmNsdWRlL2xpbnV4L3BhZ2UtZmxhZ3MuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBwYWdlX2hhc190eXBlKHN0cnVjdCBwYWdlICpwYWdlKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiAoaW50KXBhZ2UtPnBhZ2VfdHlwZSA8IC0xMjg7CjE0NDc0OiB9CjE0NDc0OiAjIDc1NiAi
Li9pbmNsdWRlL2xpbnV4L3BhZ2UtZmxhZ3MuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgaW50IFBhZ2VCdWRkeShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4g
KChwYWdlLT5wYWdlX3R5cGUgJiAoMHhmMDAwMDAwMCB8IDB4MDAwMDAwODApKSA9PSAweGYwMDAw
MDAwKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19TZXRQYWdl
QnVkZHkoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSghKChwYWdl
LT5wYWdlX3R5cGUgJiAoMHhmMDAwMDAwMCB8IDApKSA9PSAweGYwMDAwMDAwKSkpKSk7IHBhZ2Ut
PnBhZ2VfdHlwZSAmPSB+MHgwMDAwMDA4MDsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpIHZvaWQgX19DbGVhclBhZ2VCdWRkeShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyAoKHZvaWQp
KHNpemVvZigoIGxvbmcpKCFQYWdlQnVkZHkocGFnZSkpKSkpOyBwYWdlLT5wYWdlX3R5cGUgfD0g
MHgwMDAwMDA4MDsgfQoxNDQ3NDogIyA3NjUgIi4vaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmgi
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQYWdlT2ZmbGlu
ZShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4gKChwYWdlLT5wYWdlX3R5cGUgJiAoMHhmMDAw
MDAwMCB8IDB4MDAwMDAxMDApKSA9PSAweGYwMDAwMDAwKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIHZvaWQgX19TZXRQYWdlT2ZmbGluZShzdHJ1Y3QgcGFnZSAqcGFnZSkg
eyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKCEoKHBhZ2UtPnBhZ2VfdHlwZSAmICgweGYwMDAwMDAw
IHwgMCkpID09IDB4ZjAwMDAwMDApKSkpKTsgcGFnZS0+cGFnZV90eXBlICY9IH4weDAwMDAwMTAw
OyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFnZU9m
ZmxpbmUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSghUGFnZU9m
ZmxpbmUocGFnZSkpKSkpOyBwYWdlLT5wYWdlX3R5cGUgfD0gMHgwMDAwMDEwMDsgfQoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9f
YWx3YXlzX2lubGluZV9fKSkgaW50IFBhZ2VLbWVtY2coc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0
dXJuICgocGFnZS0+cGFnZV90eXBlICYgKDB4ZjAwMDAwMDAgfCAweDAwMDAwMjAwKSkgPT0gMHhm
MDAwMDAwMCk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fU2V0
UGFnZUttZW1jZyhzdHJ1Y3QgcGFnZSAqcGFnZSkgeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKCEo
KHBhZ2UtPnBhZ2VfdHlwZSAmICgweGYwMDAwMDAwIHwgMCkpID09IDB4ZjAwMDAwMDApKSkpKTsg
cGFnZS0+cGFnZV90eXBlICY9IH4weDAwMDAwMjAwOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlz
X2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFnZUttZW1jZyhzdHJ1Y3QgcGFnZSAqcGFnZSkgeyAo
KHZvaWQpKHNpemVvZigoIGxvbmcpKCFQYWdlS21lbWNnKHBhZ2UpKSkpKTsgcGFnZS0+cGFnZV90
eXBlIHw9IDB4MDAwMDAyMDA7IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZVRhYmxlKHN0cnVj
dCBwYWdlICpwYWdlKSB7IHJldHVybiAoKHBhZ2UtPnBhZ2VfdHlwZSAmICgweGYwMDAwMDAwIHwg
MHgwMDAwMDQwMCkpID09IDB4ZjAwMDAwMDApOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lu
bGluZV9fKSkgdm9pZCBfX1NldFBhZ2VUYWJsZShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyAoKHZvaWQp
KHNpemVvZigoIGxvbmcpKCEoKHBhZ2UtPnBhZ2VfdHlwZSAmICgweGYwMDAwMDAwIHwgMCkpID09
IDB4ZjAwMDAwMDApKSkpKTsgcGFnZS0+cGFnZV90eXBlICY9IH4weDAwMDAwNDAwOyB9IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFnZVRhYmxlKHN0cnVj
dCBwYWdlICpwYWdlKSB7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoIVBhZ2VUYWJsZShwYWdlKSkp
KSk7IHBhZ2UtPnBhZ2VfdHlwZSB8PSAweDAwMDAwNDAwOyB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50
IFBhZ2VHdWFyZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4gKChwYWdlLT5wYWdlX3R5cGUg
JiAoMHhmMDAwMDAwMCB8IDB4MDAwMDA4MDApKSA9PSAweGYwMDAwMDAwKTsgfSBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0
ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19TZXRQYWdlR3VhcmQoc3RydWN0IHBhZ2Ug
KnBhZ2UpIHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSghKChwYWdlLT5wYWdlX3R5cGUgJiAoMHhm
MDAwMDAwMCB8IDApKSA9PSAweGYwMDAwMDAwKSkpKSk7IHBhZ2UtPnBhZ2VfdHlwZSAmPSB+MHgw
MDAwMDgwMDsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19DbGVh
clBhZ2VHdWFyZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKCFQ
YWdlR3VhcmQocGFnZSkpKSkpOyBwYWdlLT5wYWdlX3R5cGUgfD0gMHgwMDAwMDgwMDsgfQoxNDQ3
NDogCjE0NDc0OiBleHRlcm4gYm9vbCBpc19mcmVlX2J1ZGR5X3BhZ2Uoc3RydWN0IHBhZ2UgKnBh
Z2UpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGlu
dCBQYWdlSXNvbGF0ZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX2lz
b2xhdGVkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkp
OyBwYWdlOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
dm9pZCBfX1NldFBhZ2VJc29sYXRlZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBfX3NldF9iaXQoUEdf
aXNvbGF0ZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkp
KSk7IHBhZ2U7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSB2b2lkIF9fQ2xlYXJQYWdlSXNvbGF0ZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgX19jbGVhcl9i
aXQoUEdfaXNvbGF0ZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChw
YWdlKSkpKSk7IHBhZ2U7IH0pLT5mbGFncyk7IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IFBhZ2VTbGFiUGZtZW1hbGxvYyhzdHJ1Y3QgcGFnZSAq
cGFnZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoKHZvaWQpKHNpemVvZigoIGxvbmcpKCFQYWdlU2xhYihw
YWdlKSkpKSk7CjE0NDc0OiAgcmV0dXJuIFBhZ2VBY3RpdmUocGFnZSk7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgU2V0UGFnZVNsYWJQZm1lbWFsbG9jKHN0cnVjdCBwYWdlICpwYWdlKQox
NDQ3NDogewoxNDQ3NDogICgodm9pZCkoc2l6ZW9mKCggbG9uZykoIVBhZ2VTbGFiKHBhZ2UpKSkp
KTsKMTQ0NzQ6ICBTZXRQYWdlQWN0aXZlKHBhZ2UpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIF9fQ2xlYXJQYWdlU2xhYlBmbWVtYWxsb2Moc3RydWN0IHBhZ2UgKnBhZ2UpCjE0NDc0OiB7
CjE0NDc0OiAgKCh2b2lkKShzaXplb2YoKCBsb25nKSghUGFnZVNsYWIocGFnZSkpKSkpOwoxNDQ3
NDogIF9fQ2xlYXJQYWdlQWN0aXZlKHBhZ2UpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IENsZWFyUGFnZVNsYWJQZm1lbWFsbG9jKHN0cnVjdCBwYWdlICpwYWdlKQoxNDQ3NDogewoxNDQ3
NDogICgodm9pZCkoc2l6ZW9mKCggbG9uZykoIVBhZ2VTbGFiKHBhZ2UpKSkpKTsKMTQ0NzQ6ICBD
bGVhclBhZ2VBY3RpdmUocGFnZSk7CjE0NDc0OiB9CjE0NDc0OiAjIDg1MiAiLi9pbmNsdWRlL2xp
bnV4L3BhZ2UtZmxhZ3MuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBwYWdlX2hhc19wcml2YXRlKHN0cnVjdCBwYWdl
ICpwYWdlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAhIShwYWdlLT5mbGFncyAmICgxVUwgPDwg
UEdfcHJpdmF0ZSB8IDFVTCA8PCBQR19wcml2YXRlXzIpKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjMg
Ii4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIgMgoxNDQ3NDogIyA0MSAiLi9pbmNsdWRlL2xpbnV4
L21tem9uZS5oIgoxNDQ3NDogZW51bSBtaWdyYXRldHlwZSB7CjE0NDc0OiAgTUlHUkFURV9VTk1P
VkFCTEUsCjE0NDc0OiAgTUlHUkFURV9NT1ZBQkxFLAoxNDQ3NDogIE1JR1JBVEVfUkVDTEFJTUFC
TEUsCjE0NDc0OiAgTUlHUkFURV9QQ1BUWVBFUywKMTQ0NzQ6ICBNSUdSQVRFX0hJR0hBVE9NSUMg
PSBNSUdSQVRFX1BDUFRZUEVTLAoxNDQ3NDogIyA2NCAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5o
IgoxNDQ3NDogIE1JR1JBVEVfSVNPTEFURSwKMTQ0NzQ6IAoxNDQ3NDogIE1JR1JBVEVfVFlQRVMK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGNvbnN0IGNoYXIgKiBjb25z
dCBtaWdyYXRldHlwZV9uYW1lc1tNSUdSQVRFX1RZUEVTXTsKMTQ0NzQ6ICMgODAgIi4vaW5jbHVk
ZS9saW51eC9tbXpvbmUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgaXNfbWlncmF0ZV9tb3ZhYmxlKGludCBtdCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gZmFsc2UgfHwgbXQgPT0gTUlHUkFURV9NT1ZBQkxFOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4
dGVybiBpbnQgcGFnZV9ncm91cF9ieV9tb2JpbGl0eV9kaXNhYmxlZDsKMTQ0NzQ6ICMgOTggIi4v
aW5jbHVkZS9saW51eC9tbXpvbmUuaCIKMTQ0NzQ6IHN0cnVjdCBmcmVlX2FyZWEgewoxNDQ3NDog
IHN0cnVjdCBsaXN0X2hlYWQgZnJlZV9saXN0W01JR1JBVEVfVFlQRVNdOwoxNDQ3NDogIHVuc2ln
bmVkIGxvbmcgbnJfZnJlZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBh
ZGRfdG9fZnJlZV9hcmVhKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3QgZnJlZV9hcmVhICphcmVh
LAoxNDQ3NDogICAgICAgICBpbnQgbWlncmF0ZXR5cGUpCjE0NDc0OiB7CjE0NDc0OiAgbGlzdF9h
ZGQoJnBhZ2UtPmxydSwgJmFyZWEtPmZyZWVfbGlzdFttaWdyYXRldHlwZV0pOwoxNDQ3NDogIGFy
ZWEtPm5yX2ZyZWUrKzsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGFkZF90
b19mcmVlX2FyZWFfdGFpbChzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IGZyZWVfYXJlYSAqYXJl
YSwKMTQ0NzQ6ICAgICAgIGludCBtaWdyYXRldHlwZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBsaXN0X2Fk
ZF90YWlsKCZwYWdlLT5scnUsICZhcmVhLT5mcmVlX2xpc3RbbWlncmF0ZXR5cGVdKTsKMTQ0NzQ6
ICBhcmVhLT5ucl9mcmVlKys7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGFkZF90b19mcmVlX2FyZWFfcmFuZG9tKHN0
cnVjdCBwYWdlICpwYWdlLAoxNDQ3NDogICBzdHJ1Y3QgZnJlZV9hcmVhICphcmVhLCBpbnQgbWln
cmF0ZXR5cGUpCjE0NDc0OiB7CjE0NDc0OiAgYWRkX3RvX2ZyZWVfYXJlYShwYWdlLCBhcmVhLCBt
aWdyYXRldHlwZSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IG1vdmVfdG9fZnJlZV9hcmVhKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3QgZnJlZV9hcmVhICph
cmVhLAoxNDQ3NDogICAgICAgICBpbnQgbWlncmF0ZXR5cGUpCjE0NDc0OiB7CjE0NDc0OiAgbGlz
dF9tb3ZlKCZwYWdlLT5scnUsICZhcmVhLT5mcmVlX2xpc3RbbWlncmF0ZXR5cGVdKTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IHBhZ2UgKmdldF9wYWdlX2Zyb21fZnJlZV9hcmVhKHN0
cnVjdCBmcmVlX2FyZWEgKmFyZWEsCjE0NDc0OiAgICAgICAgICBpbnQgbWlncmF0ZXR5cGUpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IHN0cnVjdCBsaXN0X2hlYWQgKmhlYWRfXyA9ICgmYXJl
YS0+ZnJlZV9saXN0W21pZ3JhdGV0eXBlXSk7IHN0cnVjdCBsaXN0X2hlYWQgKnBvc19fID0gKHsg
dW5pb24geyB0eXBlb2YoaGVhZF9fLT5uZXh0KSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191OyBp
ZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKGhlYWRfXy0+bmV4dCksIF9fdS5fX2MsIHNpemVvZiho
ZWFkX18tPm5leHQpKTsgZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJihoZWFkX18tPm5l
eHQpLCBfX3UuX19jLCBzaXplb2YoaGVhZF9fLT5uZXh0KSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9f
dS5fX3ZhbDsgfSk7IHBvc19fICE9IGhlYWRfXyA/ICh7IHZvaWQgKl9fbXB0ciA9ICh2b2lkICop
KHBvc19fKTsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8xNDEodm9pZCkg
X19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJwb2ludGVyIHR5cGUgbWlzbWF0Y2ggaW4gY29udGFp
bmVyX29mKCkiKSkpOyBpZiAoISghKCFfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVv
ZigqKHBvc19fKSksIHR5cGVvZigoKHN0cnVjdCBwYWdlICopMCktPmxydSkpICYmICFfX2J1aWx0
aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZigqKHBvc19fKSksIHR5cGVvZih2b2lkKSkpKSkg
X19jb21waWxldGltZV9hc3NlcnRfMTQxKCk7IH0gd2hpbGUgKDApOyAoKHN0cnVjdCBwYWdlICop
KF9fbXB0ciAtIF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcGFnZSwgbHJ1KSkpOyB9KSA6ICgo
dm9pZCAqKTApOyB9KQoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgIDsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBkZWxfcGFnZV9mcm9tX2ZyZWVfYXJlYShzdHJ1Y3QgcGFnZSAqcGFn
ZSwKMTQ0NzQ6ICAgc3RydWN0IGZyZWVfYXJlYSAqYXJlYSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBsaXN0
X2RlbCgmcGFnZS0+bHJ1KTsKMTQ0NzQ6ICBfX0NsZWFyUGFnZUJ1ZGR5KHBhZ2UpOwoxNDQ3NDog
ICgocGFnZSktPnByaXZhdGUgPSAoMCkpOwoxNDQ3NDogIGFyZWEtPm5yX2ZyZWUtLTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBmcmVlX2FyZWFfZW1wdHkoc3RydWN0IGZyZWVfYXJlYSAq
YXJlYSwgaW50IG1pZ3JhdGV0eXBlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBsaXN0X2VtcHR5
KCZhcmVhLT5mcmVlX2xpc3RbbWlncmF0ZXR5cGVdKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IHBnbGlzdF9kYXRhOwoxNDQ3NDogIyAxNjggIi4vaW5jbHVkZS9saW51eC9tbXpvbmUu
aCIKMTQ0NzQ6IHN0cnVjdCB6b25lX3BhZGRpbmcgewoxNDQ3NDogIGNoYXIgeFswXTsKMTQ0NzQ6
IH0gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oMSA8PCAoNikpKSk7CjE0NDc0OiAjIDE5MCAi
Li9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgoxNDQ3NDogZW51bSB6b25lX3N0YXRfaXRlbSB7CjE0
NDc0OiAKMTQ0NzQ6ICBOUl9GUkVFX1BBR0VTLAoxNDQ3NDogIE5SX1pPTkVfTFJVX0JBU0UsCjE0
NDc0OiAgTlJfWk9ORV9JTkFDVElWRV9BTk9OID0gTlJfWk9ORV9MUlVfQkFTRSwKMTQ0NzQ6ICBO
Ul9aT05FX0FDVElWRV9BTk9OLAoxNDQ3NDogIE5SX1pPTkVfSU5BQ1RJVkVfRklMRSwKMTQ0NzQ6
ICBOUl9aT05FX0FDVElWRV9GSUxFLAoxNDQ3NDogIE5SX1pPTkVfVU5FVklDVEFCTEUsCjE0NDc0
OiAgTlJfWk9ORV9XUklURV9QRU5ESU5HLAoxNDQ3NDogIE5SX01MT0NLLAoxNDQ3NDogIE5SX1BB
R0VUQUJMRSwKMTQ0NzQ6ICBOUl9LRVJORUxfU1RBQ0tfS0IsCjE0NDc0OiAKMTQ0NzQ6ICBOUl9C
T1VOQ0UsCjE0NDc0OiAKMTQ0NzQ6ICBOUl9aU1BBR0VTLAoxNDQ3NDogCjE0NDc0OiAgTlJfRlJF
RV9DTUFfUEFHRVMsCjE0NDc0OiAgTlJfVk1fWk9ORV9TVEFUX0lURU1TIH07CjE0NDc0OiAKMTQ0
NzQ6IGVudW0gbm9kZV9zdGF0X2l0ZW0gewoxNDQ3NDogIE5SX0xSVV9CQVNFLAoxNDQ3NDogIE5S
X0lOQUNUSVZFX0FOT04gPSBOUl9MUlVfQkFTRSwKMTQ0NzQ6ICBOUl9BQ1RJVkVfQU5PTiwKMTQ0
NzQ6ICBOUl9JTkFDVElWRV9GSUxFLAoxNDQ3NDogIE5SX0FDVElWRV9GSUxFLAoxNDQ3NDogIE5S
X1VORVZJQ1RBQkxFLAoxNDQ3NDogIE5SX1NMQUJfUkVDTEFJTUFCTEUsCjE0NDc0OiAgTlJfU0xB
Ql9VTlJFQ0xBSU1BQkxFLAoxNDQ3NDogIE5SX0lTT0xBVEVEX0FOT04sCjE0NDc0OiAgTlJfSVNP
TEFURURfRklMRSwKMTQ0NzQ6ICBXT1JLSU5HU0VUX05PREVTLAoxNDQ3NDogIFdPUktJTkdTRVRf
UkVGQVVMVCwKMTQ0NzQ6ICBXT1JLSU5HU0VUX0FDVElWQVRFLAoxNDQ3NDogIFdPUktJTkdTRVRf
UkVTVE9SRSwKMTQ0NzQ6ICBXT1JLSU5HU0VUX05PREVSRUNMQUlNLAoxNDQ3NDogIE5SX0FOT05f
TUFQUEVELAoxNDQ3NDogIE5SX0ZJTEVfTUFQUEVELAoxNDQ3NDogCjE0NDc0OiAgTlJfRklMRV9Q
QUdFUywKMTQ0NzQ6ICBOUl9GSUxFX0RJUlRZLAoxNDQ3NDogIE5SX1dSSVRFQkFDSywKMTQ0NzQ6
ICBOUl9XUklURUJBQ0tfVEVNUCwKMTQ0NzQ6ICBOUl9TSE1FTSwKMTQ0NzQ6ICBOUl9TSE1FTV9U
SFBTLAoxNDQ3NDogIE5SX1NITUVNX1BNRE1BUFBFRCwKMTQ0NzQ6ICBOUl9GSUxFX1RIUFMsCjE0
NDc0OiAgTlJfRklMRV9QTURNQVBQRUQsCjE0NDc0OiAgTlJfQU5PTl9USFBTLAoxNDQ3NDogIE5S
X1VOU1RBQkxFX05GUywKMTQ0NzQ6ICBOUl9WTVNDQU5fV1JJVEUsCjE0NDc0OiAgTlJfVk1TQ0FO
X0lNTUVESUFURSwKMTQ0NzQ6ICBOUl9ESVJUSUVELAoxNDQ3NDogIE5SX1dSSVRURU4sCjE0NDc0
OiAgTlJfS0VSTkVMX01JU0NfUkVDTEFJTUFCTEUsCjE0NDc0OiAgTlJfVk1fTk9ERV9TVEFUX0lU
RU1TCjE0NDc0OiB9OwoxNDQ3NDogIyAyNjIgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKMTQ0
NzQ6IGVudW0gbHJ1X2xpc3QgewoxNDQ3NDogIExSVV9JTkFDVElWRV9BTk9OID0gMCwKMTQ0NzQ6
ICBMUlVfQUNUSVZFX0FOT04gPSAwICsgMSwKMTQ0NzQ6ICBMUlVfSU5BQ1RJVkVfRklMRSA9IDAg
KyAyLAoxNDQ3NDogIExSVV9BQ1RJVkVfRklMRSA9IDAgKyAyICsgMSwKMTQ0NzQ6ICBMUlVfVU5F
VklDVEFCTEUsCjE0NDc0OiAgTlJfTFJVX0xJU1RTCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgaXNfZmlsZV9scnUoZW51bSBscnVf
bGlzdCBscnUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIChscnUgPT0gTFJVX0lOQUNUSVZFX0ZJ
TEUgfHwgbHJ1ID09IExSVV9BQ1RJVkVfRklMRSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJv
b2wgaXNfYWN0aXZlX2xydShlbnVtIGxydV9saXN0IGxydSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gKGxydSA9PSBMUlVfQUNUSVZFX0FOT04gfHwgbHJ1ID09IExSVV9BQ1RJVkVfRklMRSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB6b25lX3JlY2xhaW1fc3RhdCB7CjE0NDc0OiAj
IDI5NCAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgcmVj
ZW50X3JvdGF0ZWRbMl07CjE0NDc0OiAgdW5zaWduZWQgbG9uZyByZWNlbnRfc2Nhbm5lZFsyXTsK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gbHJ1dmVjX2ZsYWdzIHsKMTQ0NzQ6ICBMUlVW
RUNfQ09OR0VTVEVELAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBscnV2ZWMgewoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgbGlzdHNbTlJfTFJVX0xJU1RT
XTsKMTQ0NzQ6ICBzdHJ1Y3Qgem9uZV9yZWNsYWltX3N0YXQgcmVjbGFpbV9zdGF0OwoxNDQ3NDog
CjE0NDc0OiAgYXRvbWljX2xvbmdfdCBpbmFjdGl2ZV9hZ2U7CjE0NDc0OiAKMTQ0NzQ6ICB1bnNp
Z25lZCBsb25nIHJlZmF1bHRzOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBmbGFnczsK
MTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBwZ2xpc3RfZGF0YSAqcGdkYXQ7CjE0NDc0OiAKMTQ0NzQ6
IH07CjE0NDc0OiAjIDMyNiAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgoxNDQ3NDogdHlwZWRl
ZiB1bnNpZ25lZCBpc29sYXRlX21vZGVfdDsKMTQ0NzQ6IAoxNDQ3NDogZW51bSB6b25lX3dhdGVy
bWFya3MgewoxNDQ3NDogIFdNQVJLX01JTiwKMTQ0NzQ6ICBXTUFSS19MT1csCjE0NDc0OiAgV01B
UktfSElHSCwKMTQ0NzQ6ICBOUl9XTUFSSwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBwZXJfY3B1X3BhZ2VzIHsK
MTQ0NzQ6ICBpbnQgY291bnQ7CjE0NDc0OiAgaW50IGhpZ2g7CjE0NDc0OiAgaW50IGJhdGNoOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3RzW01JR1JBVEVfUENQ
VFlQRVNdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBlcl9jcHVfcGFnZXNldCB7
CjE0NDc0OiAgc3RydWN0IHBlcl9jcHVfcGFnZXMgcGNwOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzOCBzdGF0X3RocmVzaG9sZDsKMTQ0NzQ6ICBzOCB2
bV9zdGF0X2RpZmZbTlJfVk1fWk9ORV9TVEFUX0lURU1TXTsKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogc3RydWN0IHBlcl9jcHVfbm9kZXN0YXQgewoxNDQ3NDogIHM4IHN0YXRfdGhy
ZXNob2xkOwoxNDQ3NDogIHM4IHZtX25vZGVfc3RhdF9kaWZmW05SX1ZNX05PREVfU1RBVF9JVEVN
U107CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB6b25lX3R5
cGUgewoxNDQ3NDogIyA0MDAgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKMTQ0NzQ6ICBaT05F
X0RNQSwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgWk9ORV9ETUEzMiwKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBaT05FX05PUk1BTCwKMTQ0
NzQ6ICMgNDIyICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiCjE0NDc0OiAgWk9ORV9NT1ZBQkxF
LAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIF9fTUFYX05SX1pPTkVTCjE0NDc0OiAK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgem9uZSB7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBfd2F0ZXJtYXJrW05S
X1dNQVJLXTsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHdhdGVybWFya19ib29zdDsKMTQ0NzQ6IAox
NDQ3NDogIHVuc2lnbmVkIGxvbmcgbnJfcmVzZXJ2ZWRfaGlnaGF0b21pYzsKMTQ0NzQ6ICMgNDUw
ICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiCjE0NDc0OiAgbG9uZyBsb3dtZW1fcmVzZXJ2ZVs0
XTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBwZ2xpc3Rf
ZGF0YSAqem9uZV9wZ2RhdDsKMTQ0NzQ6ICBzdHJ1Y3QgcGVyX2NwdV9wYWdlc2V0ICpwYWdlc2V0
OwoxNDQ3NDogIyA0NjcgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKMTQ0NzQ6ICB1bnNpZ25l
ZCBsb25nIHpvbmVfc3RhcnRfcGZuOwoxNDQ3NDogIyA1MDQgIi4vaW5jbHVkZS9saW51eC9tbXpv
bmUuaCIKMTQ0NzQ6ICBhdG9taWNfbG9uZ190IG1hbmFnZWRfcGFnZXM7CjE0NDc0OiAgdW5zaWdu
ZWQgbG9uZyBzcGFubmVkX3BhZ2VzOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgcHJlc2VudF9wYWdl
czsKMTQ0NzQ6IAoxNDQ3NDogIGNvbnN0IGNoYXIgKm5hbWU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25n
IG5yX2lzb2xhdGVfcGFnZWJsb2NrOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAgc2VxbG9ja190IHNwYW5fc2VxbG9jazsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaW50
IGluaXRpYWxpemVkOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qgem9uZV9wYWRkaW5n
IF9wYWQxXzsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGZyZWVfYXJlYSBmcmVlX2Fy
ZWFbMTFdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGZsYWdzOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICBzcGlubG9ja190IGxvY2s7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIHN0cnVjdCB6b25lX3BhZGRpbmcgX3BhZDJfOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgcGVyY3B1X2RyaWZ0
X21hcms7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBjb21w
YWN0X2NhY2hlZF9mcmVlX3BmbjsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgY29tcGFj
dF9jYWNoZWRfbWlncmF0ZV9wZm5bMl07CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBjb21wYWN0X2lu
aXRfbWlncmF0ZV9wZm47CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBjb21wYWN0X2luaXRfZnJlZV9w
Zm47CjE0NDc0OiAjIDU2MyAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgoxNDQ3NDogIHVuc2ln
bmVkIGludCBjb21wYWN0X2NvbnNpZGVyZWQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IGNvbXBhY3Rf
ZGVmZXJfc2hpZnQ7CjE0NDc0OiAgaW50IGNvbXBhY3Rfb3JkZXJfZmFpbGVkOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYm9vbCBjb21wYWN0X2Jsb2Nrc2tpcF9mbHVz
aDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYm9vbCBjb250aWd1b3VzOwoxNDQ3NDogCjE0NDc0
OiAgc3RydWN0IHpvbmVfcGFkZGluZyBfcGFkM187CjE0NDc0OiAKMTQ0NzQ6ICBhdG9taWNfbG9u
Z190IHZtX3N0YXRbTlJfVk1fWk9ORV9TVEFUX0lURU1TXTsKMTQ0NzQ6ICBhdG9taWNfbG9uZ190
IHZtX251bWFfc3RhdFswXTsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oMSA8
PCAoNikpKSk7CjE0NDc0OiAKMTQ0NzQ6IGVudW0gcGdkYXRfZmxhZ3MgewoxNDQ3NDogIFBHREFU
X0RJUlRZLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIFBHREFUX1dSSVRFQkFDSywK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgUEdEQVRfUkVDTEFJTV9MT0NLRUQsCjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBlbnVtIHpvbmVfZmxhZ3MgewoxNDQ3NDogIFpPTkVfQk9PU1RFRF9XQVRF
Uk1BUkssCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQg
bG9uZyB6b25lX21hbmFnZWRfcGFnZXMoc3RydWN0IHpvbmUgKnpvbmUpCjE0NDc0OiB7CjE0NDc0
OiAgcmV0dXJuICh1bnNpZ25lZCBsb25nKWF0b21pY19sb25nX3JlYWQoJnpvbmUtPm1hbmFnZWRf
cGFnZXMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIHpvbmVfZW5kX3Bm
bihjb25zdCBzdHJ1Y3Qgem9uZSAqem9uZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gem9uZS0+
em9uZV9zdGFydF9wZm4gKyB6b25lLT5zcGFubmVkX3BhZ2VzOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBib29sIHpvbmVfc3BhbnNfcGZuKGNvbnN0IHN0cnVjdCB6b25lICp6b25lLCB1bnNpZ25l
ZCBsb25nIHBmbikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gem9uZS0+em9uZV9zdGFydF9wZm4g
PD0gcGZuICYmIHBmbiA8IHpvbmVfZW5kX3Bmbih6b25lKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgYm9vbCB6b25lX2lzX2luaXRpYWxpemVkKHN0cnVjdCB6b25lICp6b25lKQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiB6b25lLT5pbml0aWFsaXplZDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCB6b25lX2lzX2VtcHR5KHN0cnVjdCB6b25lICp6b25lKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiB6b25lLT5zcGFubmVkX3BhZ2VzID09IDA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB6b25lX2ludGVyc2VjdHMoc3RydWN0
IHpvbmUgKnpvbmUsCjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBs
b25nIG5yX3BhZ2VzKQoxNDQ3NDogewoxNDQ3NDogIGlmICh6b25lX2lzX2VtcHR5KHpvbmUpKQox
NDQ3NDogICByZXR1cm4gZmFsc2U7CjE0NDc0OiAgaWYgKHN0YXJ0X3BmbiA+PSB6b25lX2VuZF9w
Zm4oem9uZSkgfHwKMTQ0NzQ6ICAgICAgc3RhcnRfcGZuICsgbnJfcGFnZXMgPD0gem9uZS0+em9u
ZV9zdGFydF9wZm4pCjE0NDc0OiAgIHJldHVybiBmYWxzZTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVy
biB0cnVlOwoxNDQ3NDogfQoxNDQ3NDogIyA2NDkgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIK
MTQ0NzQ6IGVudW0gewoxNDQ3NDogIFpPTkVMSVNUX0ZBTExCQUNLLAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgTUFYX1pPTkVM
SVNUUwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3Qgem9uZXJlZiB7CjE0NDc0OiAgc3RydWN0IHpvbmUgKnpvbmU7CjE0NDc0OiAg
aW50IHpvbmVfaWR4OwoxNDQ3NDogfTsKMTQ0NzQ6ICMgNjg0ICIuL2luY2x1ZGUvbGludXgvbW16
b25lLmgiCjE0NDc0OiBzdHJ1Y3Qgem9uZWxpc3QgewoxNDQ3NDogIHN0cnVjdCB6b25lcmVmIF96
b25lcmVmc1soKDEgPDwgMCkgKiA0KSArIDFdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgcGFnZSAqbWVtX21hcDsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkZWZlcnJlZF9zcGxpdCB7CjE0NDc0OiAgc3BpbmxvY2tf
dCBzcGxpdF9xdWV1ZV9sb2NrOwoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgc3BsaXRfcXVldWU7
CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBzcGxpdF9xdWV1ZV9sZW47CjE0NDc0OiB9OwoxNDQ3NDog
IyA3MDkgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKMTQ0NzQ6IHN0cnVjdCBib290bWVtX2Rh
dGE7CjE0NDc0OiB0eXBlZGVmIHN0cnVjdCBwZ2xpc3RfZGF0YSB7CjE0NDc0OiAgc3RydWN0IHpv
bmUgbm9kZV96b25lc1s0XTsKMTQ0NzQ6ICBzdHJ1Y3Qgem9uZWxpc3Qgbm9kZV96b25lbGlzdHNb
TUFYX1pPTkVMSVNUU107CjE0NDc0OiAgaW50IG5yX3pvbmVzOwoxNDQ3NDogIyA3MzEgIi4vaW5j
bHVkZS9saW51eC9tbXpvbmUuaCIKMTQ0NzQ6ICBzcGlubG9ja190IG5vZGVfc2l6ZV9sb2NrOwox
NDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBub2RlX3N0YXJ0X3BmbjsKMTQ0NzQ6ICB1bnNp
Z25lZCBsb25nIG5vZGVfcHJlc2VudF9wYWdlczsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIG5vZGVf
c3Bhbm5lZF9wYWdlczsKMTQ0NzQ6IAoxNDQ3NDogIGludCBub2RlX2lkOwoxNDQ3NDogIHdhaXRf
cXVldWVfaGVhZF90IGtzd2FwZF93YWl0OwoxNDQ3NDogIHdhaXRfcXVldWVfaGVhZF90IHBmbWVt
YWxsb2Nfd2FpdDsKMTQ0NzQ6ICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmtzd2FwZDsKMTQ0NzQ6IAox
NDQ3NDogIGludCBrc3dhcGRfb3JkZXI7CjE0NDc0OiAgZW51bSB6b25lX3R5cGUga3N3YXBkX2Ns
YXNzem9uZV9pZHg7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQga3N3YXBkX2ZhaWx1cmVzOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICBpbnQga2NvbXBhY3RkX21heF9vcmRlcjsKMTQ0NzQ6ICBlbnVtIHpv
bmVfdHlwZSBrY29tcGFjdGRfY2xhc3N6b25lX2lkeDsKMTQ0NzQ6ICB3YWl0X3F1ZXVlX2hlYWRf
dCBrY29tcGFjdGRfd2FpdDsKMTQ0NzQ6ICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmtjb21wYWN0ZDsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQg
bG9uZyB0b3RhbHJlc2VydmVfcGFnZXM7CjE0NDc0OiAjIDc2OCAiLi9pbmNsdWRlL2xpbnV4L21t
em9uZS5oIgoxNDQ3NDogIHN0cnVjdCB6b25lX3BhZGRpbmcgX3BhZDFfOwoxNDQ3NDogIHNwaW5s
b2NrX3QgbHJ1X2xvY2s7CjE0NDc0OiAjIDc4MCAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgox
NDQ3NDogIHN0cnVjdCBkZWZlcnJlZF9zcGxpdCBkZWZlcnJlZF9zcGxpdF9xdWV1ZTsKMTQ0NzQ6
ICMgNzkwICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiCjE0NDc0OiAgc3RydWN0IGxydXZlYyBf
X2xydXZlYzsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CjE0NDc0OiAKMTQ0
NzQ6ICBzdHJ1Y3Qgem9uZV9wYWRkaW5nIF9wYWQyXzsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
c3RydWN0IHBlcl9jcHVfbm9kZXN0YXQgKnBlcl9jcHVfbm9kZXN0YXRzOwoxNDQ3NDogIGF0b21p
Y19sb25nX3Qgdm1fc3RhdFtOUl9WTV9OT0RFX1NUQVRfSVRFTVNdOwoxNDQ3NDogfSBwZ19kYXRh
X3Q7CjE0NDc0OiAjIDgxMyAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWdu
ZWQgbG9uZyBwZ2RhdF9lbmRfcGZuKHBnX2RhdGFfdCAqcGdkYXQpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIHBnZGF0LT5ub2RlX3N0YXJ0X3BmbiArIHBnZGF0LT5ub2RlX3NwYW5uZWRfcGFnZXM7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgcGdkYXRfaXNfZW1wdHkocGdfZGF0YV90ICpw
Z2RhdCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gIXBnZGF0LT5ub2RlX3N0YXJ0X3BmbiAmJiAh
cGdkYXQtPm5vZGVfc3Bhbm5lZF9wYWdlczsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogIyAxICIu
L2luY2x1ZGUvbGludXgvbWVtb3J5X2hvdHBsdWcuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIgMQoxNDQ3NDog
IyA2ICIuL2luY2x1ZGUvbGludXgvbWVtb3J5X2hvdHBsdWcuaCIgMgoxNDQ3NDogCjE0NDc0OiAj
IDEgIi4vaW5jbHVkZS9saW51eC9ub3RpZmllci5oIiAxCjE0NDc0OiAjIDE2ICIuL2luY2x1ZGUv
bGludXgvbm90aWZpZXIuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3NyY3UuaCIgMQox
NDQ3NDogIyAyMiAiLi9pbmNsdWRlL2xpbnV4L3NyY3UuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRl
L2xpbnV4L3JjdV9zZWdjYmxpc3QuaCIgMQoxNDQ3NDogIyAyMSAiLi9pbmNsdWRlL2xpbnV4L3Jj
dV9zZWdjYmxpc3QuaCIKMTQ0NzQ6IHN0cnVjdCByY3VfY2JsaXN0IHsKMTQ0NzQ6ICBzdHJ1Y3Qg
Y2FsbGJhY2tfaGVhZCAqaGVhZDsKMTQ0NzQ6ICBzdHJ1Y3QgY2FsbGJhY2tfaGVhZCAqKnRhaWw7
CjE0NDc0OiAgbG9uZyBsZW47CjE0NDc0OiB9OwoxNDQ3NDogIyA2NiAiLi9pbmNsdWRlL2xpbnV4
L3JjdV9zZWdjYmxpc3QuaCIKMTQ0NzQ6IHN0cnVjdCByY3Vfc2VnY2JsaXN0IHsKMTQ0NzQ6ICBz
dHJ1Y3QgY2FsbGJhY2tfaGVhZCAqaGVhZDsKMTQ0NzQ6ICBzdHJ1Y3QgY2FsbGJhY2tfaGVhZCAq
KnRhaWxzWzRdOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZ3Bfc2VxWzRdOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIGxvbmcgbGVuOwoxNDQ3NDogCjE0NDc0OiAgdTggZW5hYmxlZDsK
MTQ0NzQ6ICB1OCBvZmZsb2FkZWQ7CjE0NDc0OiB9OwoxNDQ3NDogIyAyMyAiLi9pbmNsdWRlL2xp
bnV4L3NyY3UuaCIgMgoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc3JjdV9zdHJ1Y3Q7CjE0NDc0OiAj
IDQxICIuL2luY2x1ZGUvbGludXgvc3JjdS5oIgoxNDQ3NDogaW50IGluaXRfc3JjdV9zdHJ1Y3Qo
c3RydWN0IHNyY3Vfc3RydWN0ICpzc3ApOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9zcmN1
dHJlZS5oIiAxCjE0NDc0OiAjIDE0ICIuL2luY2x1ZGUvbGludXgvc3JjdXRyZWUuaCIKMTQ0NzQ6
ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3JjdV9ub2RlX3RyZWUuaCIgMQoxNDQ3NDogIyAxNSAiLi9p
bmNsdWRlL2xpbnV4L3NyY3V0cmVlLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
c3JjdV9ub2RlOwoxNDQ3NDogc3RydWN0IHNyY3Vfc3RydWN0OwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzcmN1X2RhdGEgewoxNDQ3NDogCjE0
NDc0OiAgdW5zaWduZWQgbG9uZyBzcmN1X2xvY2tfY291bnRbMl07CjE0NDc0OiAgdW5zaWduZWQg
bG9uZyBzcmN1X3VubG9ja19jb3VudFsyXTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3Bpbmxv
Y2tfdCBsb2NrIF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKDEgPDwgKDYpKSkpOwoxNDQ3NDog
IHN0cnVjdCByY3Vfc2VnY2JsaXN0IHNyY3VfY2JsaXN0OwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcg
c3JjdV9ncF9zZXFfbmVlZGVkOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgc3JjdV9ncF9zZXFfbmVl
ZGVkX2V4cDsKMTQ0NzQ6ICBib29sIHNyY3VfY2JsaXN0X2ludm9raW5nOwoxNDQ3NDogIHN0cnVj
dCB0aW1lcl9saXN0IGRlbGF5X3dvcms7CjE0NDc0OiAgc3RydWN0IHdvcmtfc3RydWN0IHdvcms7
CjE0NDc0OiAgc3RydWN0IGNhbGxiYWNrX2hlYWQgc3JjdV9iYXJyaWVyX2hlYWQ7CjE0NDc0OiAg
c3RydWN0IHNyY3Vfbm9kZSAqbXlub2RlOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZ3JwbWFzazsK
MTQ0NzQ6IAoxNDQ3NDogIGludCBjcHU7CjE0NDc0OiAgc3RydWN0IHNyY3Vfc3RydWN0ICpzc3A7
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
c3JjdV9ub2RlIHsKMTQ0NzQ6ICBzcGlubG9ja190IGxvY2s7CjE0NDc0OiAgdW5zaWduZWQgbG9u
ZyBzcmN1X2hhdmVfY2JzWzRdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25n
IHNyY3VfZGF0YV9oYXZlX2Nic1s0XTsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgc3Jj
dV9ncF9zZXFfbmVlZGVkX2V4cDsKMTQ0NzQ6ICBzdHJ1Y3Qgc3JjdV9ub2RlICpzcmN1X3BhcmVu
dDsKMTQ0NzQ6ICBpbnQgZ3JwbG87CjE0NDc0OiAgaW50IGdycGhpOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHNyY3Vfc3RydWN0IHsKMTQ0
NzQ6ICBzdHJ1Y3Qgc3JjdV9ub2RlIG5vZGVbMV07CjE0NDc0OiAgc3RydWN0IHNyY3Vfbm9kZSAq
bGV2ZWxbMSArIDFdOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IG11dGV4IHNyY3VfY2JfbXV0ZXg7
CjE0NDc0OiAgc3BpbmxvY2tfdCBsb2NrOwoxNDQ3NDogIHN0cnVjdCBtdXRleCBzcmN1X2dwX211
dGV4OwoxNDQ3NDogIHVuc2lnbmVkIGludCBzcmN1X2lkeDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25n
IHNyY3VfZ3Bfc2VxOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgc3JjdV9ncF9zZXFfbmVlZGVkOwox
NDQ3NDogIHVuc2lnbmVkIGxvbmcgc3JjdV9ncF9zZXFfbmVlZGVkX2V4cDsKMTQ0NzQ6ICB1bnNp
Z25lZCBsb25nIHNyY3VfbGFzdF9ncF9lbmQ7CjE0NDc0OiAgc3RydWN0IHNyY3VfZGF0YSAqc2Rh
OwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgc3JjdV9iYXJyaWVyX3NlcTsKMTQ0NzQ6ICBzdHJ1Y3Qg
bXV0ZXggc3JjdV9iYXJyaWVyX211dGV4OwoxNDQ3NDogIHN0cnVjdCBjb21wbGV0aW9uIHNyY3Vf
YmFycmllcl9jb21wbGV0aW9uOwoxNDQ3NDogCjE0NDc0OiAgYXRvbWljX3Qgc3JjdV9iYXJyaWVy
X2NwdV9jbnQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBkZWxheWVkX3dvcmsgd29y
azsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAjIDEzNyAiLi9pbmNs
dWRlL2xpbnV4L3NyY3V0cmVlLmgiCjE0NDc0OiB2b2lkIHN5bmNocm9uaXplX3NyY3VfZXhwZWRp
dGVkKHN0cnVjdCBzcmN1X3N0cnVjdCAqc3NwKTsKMTQ0NzQ6IHZvaWQgc3JjdV9iYXJyaWVyKHN0
cnVjdCBzcmN1X3N0cnVjdCAqc3NwKTsKMTQ0NzQ6IHZvaWQgc3JjdV90b3J0dXJlX3N0YXRzX3By
aW50KHN0cnVjdCBzcmN1X3N0cnVjdCAqc3NwLCBjaGFyICp0dCwgY2hhciAqdGYpOwoxNDQ3NDog
IyA1MCAiLi9pbmNsdWRlL2xpbnV4L3NyY3UuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lkIGNhbGxfc3JjdShzdHJ1
Y3Qgc3JjdV9zdHJ1Y3QgKnNzcCwgc3RydWN0IGNhbGxiYWNrX2hlYWQgKmhlYWQsCjE0NDc0OiAg
IHZvaWQgKCpmdW5jKShzdHJ1Y3QgY2FsbGJhY2tfaGVhZCAqaGVhZCkpOwoxNDQ3NDogdm9pZCBj
bGVhbnVwX3NyY3Vfc3RydWN0KHN0cnVjdCBzcmN1X3N0cnVjdCAqc3NwKTsKMTQ0NzQ6IGludCBf
X3NyY3VfcmVhZF9sb2NrKHN0cnVjdCBzcmN1X3N0cnVjdCAqc3NwKSA7CjE0NDc0OiB2b2lkIF9f
c3JjdV9yZWFkX3VubG9jayhzdHJ1Y3Qgc3JjdV9zdHJ1Y3QgKnNzcCwgaW50IGlkeCkgOwoxNDQ3
NDogdm9pZCBzeW5jaHJvbml6ZV9zcmN1KHN0cnVjdCBzcmN1X3N0cnVjdCAqc3NwKTsKMTQ0NzQ6
ICMgOTEgIi4vaW5jbHVkZS9saW51eC9zcmN1LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgc3JjdV9yZWFkX2xvY2tf
aGVsZChjb25zdCBzdHJ1Y3Qgc3JjdV9zdHJ1Y3QgKnNzcCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gMTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTUwICIuL2luY2x1ZGUvbGludXgvc3JjdS5oIgoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgaW50IHNyY3VfcmVhZF9sb2NrKHN0cnVjdCBzcmN1X3N0cnVjdCAqc3NwKQoxNDQ3NDogewox
NDQ3NDogIGludCByZXR2YWw7CjE0NDc0OiAKMTQ0NzQ6ICByZXR2YWwgPSBfX3NyY3VfcmVhZF9s
b2NrKHNzcCk7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICByZXR1cm4gcmV0dmFs
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBpbnQKMTQ0NzQ6IHNyY3VfcmVhZF9sb2NrX25vdHJhY2Uoc3RydWN0
IHNyY3Vfc3RydWN0ICpzc3ApCjE0NDc0OiB7CjE0NDc0OiAgaW50IHJldHZhbDsKMTQ0NzQ6IAox
NDQ3NDogIHJldHZhbCA9IF9fc3JjdV9yZWFkX2xvY2soc3NwKTsKMTQ0NzQ6ICByZXR1cm4gcmV0
dmFsOwoxNDQ3NDogfQoxNDQ3NDogIyAxNzYgIi4vaW5jbHVkZS9saW51eC9zcmN1LmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIHNyY3VfcmVhZF91bmxvY2soc3RydWN0IHNyY3Vfc3RydWN0ICpzc3AsIGludCBpZHgp
CjE0NDc0OiAKMTQ0NzQ6IHsKMTQ0NzQ6ICAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEhKGlkeCAm
IH4weDEpOyBpZiAoX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCkpIGRvIHsg
ZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4i
ICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIi
ICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIg
IiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2Vu
dHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5v
cmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImluY2x1ZGUvbGludXgvc3JjdS5o
IiksICJpIiAoMTc5KSwgImkiICgoMSA8PCAwKXwoKDEgPDwgMSkgfCAoKDkpIDw8IDgpKSksICJp
IiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyAoeyBhc20gdm9sYXRp
bGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnJlYWNoYWJsZVxuXHQiICIubG9u
ZyAlYzBiIC0gLlxuXHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDE1KSk7IH0pOyB9IHdo
aWxlICgwKTsgX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCk7IH0pOwoxNDQ3
NDogIGRvIHsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgX19zcmN1X3JlYWRfdW5sb2NrKHNzcCwgaWR4
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogc3JjdV9yZWFkX3VubG9ja19ub3RyYWNlKHN0
cnVjdCBzcmN1X3N0cnVjdCAqc3NwLCBpbnQgaWR4KQoxNDQ3NDogewoxNDQ3NDogIF9fc3JjdV9y
ZWFkX3VubG9jayhzc3AsIGlkeCk7CjE0NDc0OiB9CjE0NDc0OiAjIDIwMCAiLi9pbmNsdWRlL2xp
bnV4L3NyY3UuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc21wX21iX19hZnRlcl9zcmN1X3JlYWRfdW5sb2NrKHZv
aWQpCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTcgIi4vaW5jbHVkZS9saW51
eC9ub3RpZmllci5oIiAyCjE0NDc0OiAjIDQ5ICIuL2luY2x1ZGUvbGludXgvbm90aWZpZXIuaCIK
MTQ0NzQ6IHN0cnVjdCBub3RpZmllcl9ibG9jazsKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBpbnQg
KCpub3RpZmllcl9mbl90KShzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLAoxNDQ3NDogICAgdW5z
aWduZWQgbG9uZyBhY3Rpb24sIHZvaWQgKmRhdGEpOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgbm90
aWZpZXJfYmxvY2sgewoxNDQ3NDogIG5vdGlmaWVyX2ZuX3Qgbm90aWZpZXJfY2FsbDsKMTQ0NzQ6
ICBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5leHQ7CjE0NDc0OiAgaW50IHByaW9yaXR5OwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21pY19ub3RpZmllcl9oZWFkIHsKMTQ0NzQ6
ICBzcGlubG9ja190IGxvY2s7CjE0NDc0OiAgc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpoZWFkOwox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGJsb2NraW5nX25vdGlmaWVyX2hlYWQgewox
NDQ3NDogIHN0cnVjdCByd19zZW1hcGhvcmUgcndzZW07CjE0NDc0OiAgc3RydWN0IG5vdGlmaWVy
X2Jsb2NrICpoZWFkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHJhd19ub3RpZmll
cl9oZWFkIHsKMTQ0NzQ6ICBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKmhlYWQ7CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc3JjdV9ub3RpZmllcl9oZWFkIHsKMTQ0NzQ6ICBzdHJ1Y3Qg
bXV0ZXggbXV0ZXg7CjE0NDc0OiAgc3RydWN0IHNyY3Vfc3RydWN0IHNyY3U7CjE0NDc0OiAgc3Ry
dWN0IG5vdGlmaWVyX2Jsb2NrICpoZWFkOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgOTMgIi4vaW5jbHVk
ZS9saW51eC9ub3RpZmllci5oIgoxNDQ3NDogZXh0ZXJuIHZvaWQgc3JjdV9pbml0X25vdGlmaWVy
X2hlYWQoc3RydWN0IHNyY3Vfbm90aWZpZXJfaGVhZCAqbmgpOwoxNDQ3NDogIyAxNDQgIi4vaW5j
bHVkZS9saW51eC9ub3RpZmllci5oIgoxNDQ3NDogZXh0ZXJuIGludCBhdG9taWNfbm90aWZpZXJf
Y2hhaW5fcmVnaXN0ZXIoc3RydWN0IGF0b21pY19ub3RpZmllcl9oZWFkICpuaCwKMTQ0NzQ6ICAg
c3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYik7CjE0NDc0OiBleHRlcm4gaW50IGJsb2NraW5nX25v
dGlmaWVyX2NoYWluX3JlZ2lzdGVyKHN0cnVjdCBibG9ja2luZ19ub3RpZmllcl9oZWFkICpuaCwK
MTQ0NzQ6ICAgc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYik7CjE0NDc0OiBleHRlcm4gaW50IHJh
d19ub3RpZmllcl9jaGFpbl9yZWdpc3RlcihzdHJ1Y3QgcmF3X25vdGlmaWVyX2hlYWQgKm5oLAox
NDQ3NDogICBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iKTsKMTQ0NzQ6IGV4dGVybiBpbnQgc3Jj
dV9ub3RpZmllcl9jaGFpbl9yZWdpc3RlcihzdHJ1Y3Qgc3JjdV9ub3RpZmllcl9oZWFkICpuaCwK
MTQ0NzQ6ICAgc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVy
biBpbnQgYXRvbWljX25vdGlmaWVyX2NoYWluX3VucmVnaXN0ZXIoc3RydWN0IGF0b21pY19ub3Rp
Zmllcl9oZWFkICpuaCwKMTQ0NzQ6ICAgc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYik7CjE0NDc0
OiBleHRlcm4gaW50IGJsb2NraW5nX25vdGlmaWVyX2NoYWluX3VucmVnaXN0ZXIoc3RydWN0IGJs
b2NraW5nX25vdGlmaWVyX2hlYWQgKm5oLAoxNDQ3NDogICBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sg
Km5iKTsKMTQ0NzQ6IGV4dGVybiBpbnQgcmF3X25vdGlmaWVyX2NoYWluX3VucmVnaXN0ZXIoc3Ry
dWN0IHJhd19ub3RpZmllcl9oZWFkICpuaCwKMTQ0NzQ6ICAgc3RydWN0IG5vdGlmaWVyX2Jsb2Nr
ICpuYik7CjE0NDc0OiBleHRlcm4gaW50IHNyY3Vfbm90aWZpZXJfY2hhaW5fdW5yZWdpc3Rlcihz
dHJ1Y3Qgc3JjdV9ub3RpZmllcl9oZWFkICpuaCwKMTQ0NzQ6ICAgc3RydWN0IG5vdGlmaWVyX2Js
b2NrICpuYik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgYXRvbWljX25vdGlmaWVyX2NhbGxf
Y2hhaW4oc3RydWN0IGF0b21pY19ub3RpZmllcl9oZWFkICpuaCwKMTQ0NzQ6ICAgdW5zaWduZWQg
bG9uZyB2YWwsIHZvaWQgKnYpOwoxNDQ3NDogZXh0ZXJuIGludCBfX2F0b21pY19ub3RpZmllcl9j
YWxsX2NoYWluKHN0cnVjdCBhdG9taWNfbm90aWZpZXJfaGVhZCAqbmgsCjE0NDc0OiAgdW5zaWdu
ZWQgbG9uZyB2YWwsIHZvaWQgKnYsIGludCBucl90b19jYWxsLCBpbnQgKm5yX2NhbGxzKTsKMTQ0
NzQ6IGV4dGVybiBpbnQgYmxvY2tpbmdfbm90aWZpZXJfY2FsbF9jaGFpbihzdHJ1Y3QgYmxvY2tp
bmdfbm90aWZpZXJfaGVhZCAqbmgsCjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcgdmFsLCB2b2lkICp2
KTsKMTQ0NzQ6IGV4dGVybiBpbnQgX19ibG9ja2luZ19ub3RpZmllcl9jYWxsX2NoYWluKHN0cnVj
dCBibG9ja2luZ19ub3RpZmllcl9oZWFkICpuaCwKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHZhbCwg
dm9pZCAqdiwgaW50IG5yX3RvX2NhbGwsIGludCAqbnJfY2FsbHMpOwoxNDQ3NDogZXh0ZXJuIGlu
dCByYXdfbm90aWZpZXJfY2FsbF9jaGFpbihzdHJ1Y3QgcmF3X25vdGlmaWVyX2hlYWQgKm5oLAox
NDQ3NDogICB1bnNpZ25lZCBsb25nIHZhbCwgdm9pZCAqdik7CjE0NDc0OiBleHRlcm4gaW50IF9f
cmF3X25vdGlmaWVyX2NhbGxfY2hhaW4oc3RydWN0IHJhd19ub3RpZmllcl9oZWFkICpuaCwKMTQ0
NzQ6ICB1bnNpZ25lZCBsb25nIHZhbCwgdm9pZCAqdiwgaW50IG5yX3RvX2NhbGwsIGludCAqbnJf
Y2FsbHMpOwoxNDQ3NDogZXh0ZXJuIGludCBzcmN1X25vdGlmaWVyX2NhbGxfY2hhaW4oc3RydWN0
IHNyY3Vfbm90aWZpZXJfaGVhZCAqbmgsCjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcgdmFsLCB2b2lk
ICp2KTsKMTQ0NzQ6IGV4dGVybiBpbnQgX19zcmN1X25vdGlmaWVyX2NhbGxfY2hhaW4oc3RydWN0
IHNyY3Vfbm90aWZpZXJfaGVhZCAqbmgsCjE0NDc0OiAgdW5zaWduZWQgbG9uZyB2YWwsIHZvaWQg
KnYsIGludCBucl90b19jYWxsLCBpbnQgKm5yX2NhbGxzKTsKMTQ0NzQ6ICMgMTkwICIuL2luY2x1
ZGUvbGludXgvbm90aWZpZXIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBub3RpZmllcl9mcm9tX2Vycm5vKGludCBl
cnIpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKGVycikKMTQ0NzQ6ICAgcmV0dXJuIDB4ODAwMCB8ICgw
eDAwMDEgLSBlcnIpOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIDB4MDAwMTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgbm90aWZpZXJfdG9fZXJybm8oaW50IHJldCkKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXQgJj0gfjB4ODAwMDsKMTQ0NzQ6ICByZXR1cm4gcmV0ID4gMHgwMDAxID8g
MHgwMDAxIC0gcmV0IDogMDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjM0ICIuL2luY2x1ZGUvbGludXgv
bm90aWZpZXIuaCIKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgYmxvY2tpbmdfbm90aWZpZXJfaGVhZCBy
ZWJvb3Rfbm90aWZpZXJfbGlzdDsKMTQ0NzQ6ICMgOCAiLi9pbmNsdWRlL2xpbnV4L21lbW9yeV9o
b3RwbHVnLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcGFnZTsKMTQ0NzQ6IHN0
cnVjdCB6b25lOwoxNDQ3NDogc3RydWN0IHBnbGlzdF9kYXRhOwoxNDQ3NDogc3RydWN0IG1lbV9z
ZWN0aW9uOwoxNDQ3NDogc3RydWN0IG1lbW9yeV9ibG9jazsKMTQ0NzQ6IHN0cnVjdCByZXNvdXJj
ZTsKMTQ0NzQ6IHN0cnVjdCB2bWVtX2FsdG1hcDsKMTQ0NzQ6ICMgNDAgIi4vaW5jbHVkZS9saW51
eC9tZW1vcnlfaG90cGx1Zy5oIgoxNDQ3NDogZW51bSB7CjE0NDc0OiAgTUVNT1JZX0hPVFBMVUdf
TUlOX0JPT1RNRU1fVFlQRSA9IDEyLAoxNDQ3NDogIFNFQ1RJT05fSU5GTyA9IE1FTU9SWV9IT1RQ
TFVHX01JTl9CT09UTUVNX1RZUEUsCjE0NDc0OiAgTUlYX1NFQ1RJT05fSU5GTywKMTQ0NzQ6ICBO
T0RFX0lORk8sCjE0NDc0OiAgTUVNT1JZX0hPVFBMVUdfTUFYX0JPT1RNRU1fVFlQRSA9IE5PREVf
SU5GTywKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAgTU1P
UF9PRkZMSU5FID0gLTEsCjE0NDc0OiAgTU1PUF9PTkxJTkVfS0VFUCwKMTQ0NzQ6ICBNTU9QX09O
TElORV9LRVJORUwsCjE0NDc0OiAgTU1PUF9PTkxJTkVfTU9WQUJMRSwKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
bWhwX3Jlc3RyaWN0aW9ucyB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBmbGFnczsKMTQ0NzQ6ICBz
dHJ1Y3Qgdm1lbV9hbHRtYXAgKmFsdG1hcDsKMTQ0NzQ6IH07CjE0NDc0OiAjIDczICIuL2luY2x1
ZGUvbGludXgvbWVtb3J5X2hvdHBsdWcuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIHpvbmVfc3Bhbl9zZXFi
ZWdpbihzdHJ1Y3Qgem9uZSAqem9uZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gcmVhZF9zZXFi
ZWdpbigmem9uZS0+c3Bhbl9zZXFsb2NrKTsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB6b25lX3NwYW5f
c2VxcmV0cnkoc3RydWN0IHpvbmUgKnpvbmUsIHVuc2lnbmVkIGl2KQoxNDQ3NDogewoxNDQ3NDog
IHJldHVybiByZWFkX3NlcXJldHJ5KCZ6b25lLT5zcGFuX3NlcWxvY2ssIGl2KTsKMTQ0NzQ6IH0K
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgem9uZV9zcGFuX3dyaXRlbG9jayhzdHJ1Y3Qgem9uZSAqem9uZSkKMTQ0NzQ6
IHsKMTQ0NzQ6ICB3cml0ZV9zZXFsb2NrKCZ6b25lLT5zcGFuX3NlcWxvY2spOwoxNDQ3NDogfQox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCB6b25lX3NwYW5fd3JpdGV1bmxvY2soc3RydWN0IHpvbmUgKnpvbmUpCjE0NDc0
OiB7CjE0NDc0OiAgd3JpdGVfc2VxdW5sb2NrKCZ6b25lLT5zcGFuX3NlcWxvY2spOwoxNDQ3NDog
fQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCB6b25lX3NlcWxvY2tfaW5pdChzdHJ1Y3Qgem9uZSAqem9uZSkKMTQ0NzQ6
IHsKMTQ0NzQ6ICBkbyB7IF9fc2VxY291bnRfaW5pdCgmKCZ6b25lLT5zcGFuX3NlcWxvY2spLT5z
ZXFjb3VudCwgKCh2b2lkICopMCksICgodm9pZCAqKTApKTsgZG8geyBzcGlubG9ja19jaGVjaygm
KCZ6b25lLT5zcGFuX3NlcWxvY2spLT5sb2NrKTsgZG8geyAqKCYoJigmem9uZS0+c3Bhbl9zZXFs
b2NrKS0+bG9jayktPnJsb2NrKSA9IChyYXdfc3BpbmxvY2tfdCkgeyAucmF3X2xvY2sgPSB7IHsg
LnZhbCA9IHsgKDApIH0gfSB9LCB9OyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUg
KDApOwoxNDQ3NDogfQoxNDQ3NDogZXh0ZXJuIGludCB6b25lX2dyb3dfZnJlZV9saXN0cyhzdHJ1
Y3Qgem9uZSAqem9uZSwgdW5zaWduZWQgbG9uZyBuZXdfbnJfcGFnZXMpOwoxNDQ3NDogZXh0ZXJu
IGludCB6b25lX2dyb3dfd2FpdHF1ZXVlcyhzdHJ1Y3Qgem9uZSAqem9uZSwgdW5zaWduZWQgbG9u
ZyBucl9wYWdlcyk7CjE0NDc0OiBleHRlcm4gaW50IGFkZF9vbmVfaGlnaHBhZ2Uoc3RydWN0IHBh
Z2UgKnBhZ2UsIGludCBwZm4sIGludCBiYWRfcHBybyk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBp
bnQgb25saW5lX3BhZ2VzKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBsb25nIG5yX3BhZ2Vz
LAoxNDQ3NDogICAgaW50IG9ubGluZV90eXBlLCBpbnQgbmlkKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1
Y3Qgem9uZSAqdGVzdF9wYWdlc19pbl9hX3pvbmUodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCjE0
NDc0OiAgICAgICB1bnNpZ25lZCBsb25nIGVuZF9wZm4pOwoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVk
IGxvbmcgX19vZmZsaW5lX2lzb2xhdGVkX3BhZ2VzKHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAox
NDQ3NDogICAgICAgdW5zaWduZWQgbG9uZyBlbmRfcGZuKTsKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRl
ZiB2b2lkICgqb25saW5lX3BhZ2VfY2FsbGJhY2tfdCkoc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2ln
bmVkIGludCBvcmRlcik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGdlbmVyaWNfb25saW5l
X3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGludCBvcmRlcik7CjE0NDc0OiBleHRl
cm4gaW50IHNldF9vbmxpbmVfcGFnZV9jYWxsYmFjayhvbmxpbmVfcGFnZV9jYWxsYmFja190IGNh
bGxiYWNrKTsKMTQ0NzQ6IGV4dGVybiBpbnQgcmVzdG9yZV9vbmxpbmVfcGFnZV9jYWxsYmFjayhv
bmxpbmVfcGFnZV9jYWxsYmFja190IGNhbGxiYWNrKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGlu
dCB0cnlfb25saW5lX25vZGUoaW50IG5pZCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgYXJj
aF9hZGRfbWVtb3J5KGludCBuaWQsIHU2NCBzdGFydCwgdTY0IHNpemUsCjE0NDc0OiAgICBzdHJ1
Y3QgbWhwX3Jlc3RyaWN0aW9ucyAqcmVzdHJpY3Rpb25zKTsKMTQ0NzQ6IGV4dGVybiB1NjQgbWF4
X21lbV9zaXplOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gYm9vbCBtZW1ocF9hdXRvX29ubGluZTsK
MTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGJvb2wgbW92YWJsZV9ub2RlX2VuYWJsZWQ7CjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBi
b29sIG1vdmFibGVfbm9kZV9pc19lbmFibGVkKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
IG1vdmFibGVfbm9kZV9lbmFibGVkOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9p
ZCBhcmNoX3JlbW92ZV9tZW1vcnkoaW50IG5pZCwgdTY0IHN0YXJ0LCB1NjQgc2l6ZSwKMTQ0NzQ6
ICAgICAgICAgICBzdHJ1Y3Qgdm1lbV9hbHRtYXAgKmFsdG1hcCk7CjE0NDc0OiBleHRlcm4gdm9p
ZCBfX3JlbW92ZV9wYWdlcyh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyBu
cl9wYWdlcywKMTQ0NzQ6ICAgICAgIHN0cnVjdCB2bWVtX2FsdG1hcCAqYWx0bWFwKTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IF9fYWRkX3BhZ2VzKGludCBuaWQsIHVuc2lnbmVk
IGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLAoxNDQ3NDogICAgICAgICAg
c3RydWN0IG1ocF9yZXN0cmljdGlvbnMgKnJlc3RyaWN0aW9ucyk7CjE0NDc0OiAjIDE0MCAiLi9p
bmNsdWRlL2xpbnV4L21lbW9yeV9ob3RwbHVnLmgiCjE0NDc0OiBpbnQgYWRkX3BhZ2VzKGludCBu
aWQsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLAoxNDQ3
NDogICAgICAgIHN0cnVjdCBtaHBfcmVzdHJpY3Rpb25zICpyZXN0cmljdGlvbnMpOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBtZW1vcnlfYWRkX3Bo
eXNhZGRyX3RvX25pZCh1NjQgc3RhcnQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIDA7CjE0NDc0
OiB9CjE0NDc0OiAjIDE5OSAiLi9pbmNsdWRlL2xpbnV4L21lbW9yeV9ob3RwbHVnLmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBwZ19kYXRhX3QgKmdlbmVyaWNfYWxsb2Nfbm9kZWRhdGEoaW50IG5pZCkKMTQ0NzQ6IHsKMTQ0
NzQ6ICBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwg
MHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5s
b25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9u
ZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAi
XHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFn
c1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xp
bnV4L21lbW9yeV9ob3RwbHVnLmgiKSwgImkiICgyMDEpLCAiaSIgKDApLCAiaSIgKHNpemVvZihz
dHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgZG8geyAoeyBhc20gdm9sYXRpbGUoIiVj
MDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnVucmVhY2hhYmxlXG5cdCIgIi5sb25nICVj
MGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoMTYpKTsgfSk7IGFzbSB2b2xh
dGlsZSgiIik7IF9fYnVpbHRpbl91bnJlYWNoYWJsZSgpOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAo
MCk7CjE0NDc0OiAgcmV0dXJuICgodm9pZCAqKTApOwoxNDQ3NDogfQoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBnZW5l
cmljX2ZyZWVfbm9kZWRhdGEocGdfZGF0YV90ICpwZ2RhdCkKMTQ0NzQ6IHsKMTQ0NzQ6IH0KMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgYXJjaF9yZWZyZXNoX25vZGVkYXRhKGludCBuaWQsIHBnX2RhdGFfdCAqcGdkYXQp
CjE0NDc0OiB7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IGV4dGVybiB2b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBf
X2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIHJlZ2lzdGVyX3BhZ2VfYm9vdG1lbV9pbmZvX25vZGUo
c3RydWN0IHBnbGlzdF9kYXRhICpwZ2RhdCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgcHV0X3BhZ2VfYm9vdG1lbShzdHJ1Y3QgcGFn
ZSAqcGFnZSk7CjE0NDc0OiBleHRlcm4gdm9pZCBnZXRfcGFnZV9ib290bWVtKHVuc2lnbmVkIGxv
bmcgaW5nbywgc3RydWN0IHBhZ2UgKnBhZ2UsCjE0NDc0OiAgICAgICAgIHVuc2lnbmVkIGxvbmcg
dHlwZSk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZ2V0X29ubGluZV9tZW1zKHZvaWQpOwoxNDQ3NDog
dm9pZCBwdXRfb25saW5lX21lbXModm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgbWVtX2hvdHBs
dWdfYmVnaW4odm9pZCk7CjE0NDc0OiB2b2lkIG1lbV9ob3RwbHVnX2RvbmUodm9pZCk7CjE0NDc0
OiAjIDI4MyAiLi9pbmNsdWRlL2xpbnV4L21lbW9yeV9ob3RwbHVnLmgiCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKQoxNDQ3NDog
dm9pZCBwZ2RhdF9yZXNpemVfbG9jayhzdHJ1Y3QgcGdsaXN0X2RhdGEgKnBnZGF0LCB1bnNpZ25l
ZCBsb25nICpmbGFncykKMTQ0NzQ6IHsKMTQ0NzQ6ICBkbyB7IGRvIHsgKHsgdW5zaWduZWQgbG9u
ZyBfX2R1bW15OyB0eXBlb2YoKmZsYWdzKSBfX2R1bW15MjsgKHZvaWQpKCZfX2R1bW15ID09ICZf
X2R1bW15Mik7IDE7IH0pOyAqZmxhZ3MgPSBfcmF3X3NwaW5fbG9ja19pcnFzYXZlKHNwaW5sb2Nr
X2NoZWNrKCZwZ2RhdC0+bm9kZV9zaXplX2xvY2spKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDAp
OwoxNDQ3NDogfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkKMTQ0NzQ6IHZvaWQgcGdkYXRfcmVzaXplX3VubG9jayhzdHJ1Y3Qg
cGdsaXN0X2RhdGEgKnBnZGF0LCB1bnNpZ25lZCBsb25nICpmbGFncykKMTQ0NzQ6IHsKMTQ0NzQ6
ICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwZ2RhdC0+bm9kZV9zaXplX2xvY2ssICpmbGFncyk7
CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKQoxNDQ3NDogdm9pZCBwZ2RhdF9yZXNpemVfaW5pdChzdHJ1Y3QgcGds
aXN0X2RhdGEgKnBnZGF0KQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgc3BpbmxvY2tfY2hlY2soJnBn
ZGF0LT5ub2RlX3NpemVfbG9jayk7IGRvIHsgKigmKCZwZ2RhdC0+bm9kZV9zaXplX2xvY2spLT5y
bG9jaykgPSAocmF3X3NwaW5sb2NrX3QpIHsgLnJhd19sb2NrID0geyB7IC52YWwgPSB7ICgwKSB9
IH0gfSwgfTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwoxNDQ3NDogfQoxNDQ3NDogIyAzMDkg
Ii4vaW5jbHVkZS9saW51eC9tZW1vcnlfaG90cGx1Zy5oIgoxNDQ3NDogZXh0ZXJuIGJvb2wgaXNf
bWVtX3NlY3Rpb25fcmVtb3ZhYmxlKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBsb25nIG5y
X3BhZ2VzKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHRyeV9vZmZsaW5lX25vZGUoaW50IG5pZCk7CjE0
NDc0OiBleHRlcm4gaW50IG9mZmxpbmVfcGFnZXModW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVu
c2lnbmVkIGxvbmcgbnJfcGFnZXMpOwoxNDQ3NDogZXh0ZXJuIGludCByZW1vdmVfbWVtb3J5KGlu
dCBuaWQsIHU2NCBzdGFydCwgdTY0IHNpemUpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgX19yZW1vdmVf
bWVtb3J5KGludCBuaWQsIHU2NCBzdGFydCwgdTY0IHNpemUpOwoxNDQ3NDogIyAzMzcgIi4vaW5j
bHVkZS9saW51eC9tZW1vcnlfaG90cGx1Zy5oIgoxNDQ3NDogZXh0ZXJuIHZvaWQgc2V0X3pvbmVf
Y29udGlndW91cyhzdHJ1Y3Qgem9uZSAqem9uZSk7CjE0NDc0OiBleHRlcm4gdm9pZCBjbGVhcl96
b25lX2NvbnRpZ3VvdXMoc3RydWN0IHpvbmUgKnpvbmUpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4g
dm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLnJlZi50ZXh0IikpKSBfX2F0dHJpYnV0
ZV9fKChfX25vaW5saW5lX18pKSBmcmVlX2FyZWFfaW5pdF9jb3JlX2hvdHBsdWcoaW50IG5pZCk7
CjE0NDc0OiBleHRlcm4gaW50IF9fYWRkX21lbW9yeShpbnQgbmlkLCB1NjQgc3RhcnQsIHU2NCBz
aXplKTsKMTQ0NzQ6IGV4dGVybiBpbnQgYWRkX21lbW9yeShpbnQgbmlkLCB1NjQgc3RhcnQsIHU2
NCBzaXplKTsKMTQ0NzQ6IGV4dGVybiBpbnQgYWRkX21lbW9yeV9yZXNvdXJjZShpbnQgbmlkLCBz
dHJ1Y3QgcmVzb3VyY2UgKnJlc291cmNlKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIG1vdmVfcGZuX3Jh
bmdlX3RvX3pvbmUoc3RydWN0IHpvbmUgKnpvbmUsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAox
NDQ3NDogICB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLCBzdHJ1Y3Qgdm1lbV9hbHRtYXAgKmFsdG1h
cCk7CjE0NDc0OiBleHRlcm4gdm9pZCByZW1vdmVfcGZuX3JhbmdlX2Zyb21fem9uZShzdHJ1Y3Qg
em9uZSAqem9uZSwKMTQ0NzQ6ICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCjE0
NDc0OiAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMpOwoxNDQ3NDogZXh0ZXJuIGJv
b2wgaXNfbWVtYmxvY2tfb2ZmbGluZWQoc3RydWN0IG1lbW9yeV9ibG9jayAqbWVtKTsKMTQ0NzQ6
IGV4dGVybiBpbnQgc3BhcnNlX2FkZF9zZWN0aW9uKGludCBuaWQsIHVuc2lnbmVkIGxvbmcgcGZu
LAoxNDQ3NDogICB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLCBzdHJ1Y3Qgdm1lbV9hbHRtYXAgKmFs
dG1hcCk7CjE0NDc0OiBleHRlcm4gdm9pZCBzcGFyc2VfcmVtb3ZlX3NlY3Rpb24oc3RydWN0IG1l
bV9zZWN0aW9uICptcywKMTQ0NzQ6ICAgdW5zaWduZWQgbG9uZyBwZm4sIHVuc2lnbmVkIGxvbmcg
bnJfcGFnZXMsCjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcgbWFwX29mZnNldCwgc3RydWN0IHZtZW1f
YWx0bWFwICphbHRtYXApOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBwYWdlICpzcGFyc2VfZGVjb2Rl
X21lbV9tYXAodW5zaWduZWQgbG9uZyBjb2RlZF9tZW1fbWFwLAoxNDQ3NDogICAgICAgIHVuc2ln
bmVkIGxvbmcgcG51bSk7CjE0NDc0OiBleHRlcm4gYm9vbCBhbGxvd19vbmxpbmVfcGZuX3Jhbmdl
KGludCBuaWQsIHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLAoxNDQ3
NDogICBpbnQgb25saW5lX3R5cGUpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB6b25lICp6b25lX2Zv
cl9wZm5fcmFuZ2UoaW50IG9ubGluZV90eXBlLCBpbnQgbmlkLCB1bnNpZ25lZCBzdGFydF9wZm4s
CjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMpOwoxNDQ3NDogIyA4MjQgIi4vaW5jbHVk
ZS9saW51eC9tbXpvbmUuaCIgMgoxNDQ3NDogCjE0NDc0OiB2b2lkIGJ1aWxkX2FsbF96b25lbGlz
dHMocGdfZGF0YV90ICpwZ2RhdCk7CjE0NDc0OiB2b2lkIHdha2V1cF9rc3dhcGQoc3RydWN0IHpv
bmUgKnpvbmUsIGdmcF90IGdmcF9tYXNrLCBpbnQgb3JkZXIsCjE0NDc0OiAgICAgIGVudW0gem9u
ZV90eXBlIGNsYXNzem9uZV9pZHgpOwoxNDQ3NDogYm9vbCBfX3pvbmVfd2F0ZXJtYXJrX29rKHN0
cnVjdCB6b25lICp6LCB1bnNpZ25lZCBpbnQgb3JkZXIsIHVuc2lnbmVkIGxvbmcgbWFyaywKMTQ0
NzQ6ICAgICBpbnQgY2xhc3N6b25lX2lkeCwgdW5zaWduZWQgaW50IGFsbG9jX2ZsYWdzLAoxNDQ3
NDogICAgIGxvbmcgZnJlZV9wYWdlcyk7CjE0NDc0OiBib29sIHpvbmVfd2F0ZXJtYXJrX29rKHN0
cnVjdCB6b25lICp6LCB1bnNpZ25lZCBpbnQgb3JkZXIsCjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcg
bWFyaywgaW50IGNsYXNzem9uZV9pZHgsCjE0NDc0OiAgIHVuc2lnbmVkIGludCBhbGxvY19mbGFn
cyk7CjE0NDc0OiBib29sIHpvbmVfd2F0ZXJtYXJrX29rX3NhZmUoc3RydWN0IHpvbmUgKnosIHVu
c2lnbmVkIGludCBvcmRlciwKMTQ0NzQ6ICAgdW5zaWduZWQgbG9uZyBtYXJrLCBpbnQgY2xhc3N6
b25lX2lkeCk7CjE0NDc0OiBlbnVtIG1lbW1hcF9jb250ZXh0IHsKMTQ0NzQ6ICBNRU1NQVBfRUFS
TFksCjE0NDc0OiAgTUVNTUFQX0hPVFBMVUcsCjE0NDc0OiB9OwoxNDQ3NDogZXh0ZXJuIHZvaWQg
aW5pdF9jdXJyZW50bHlfZW1wdHlfem9uZShzdHJ1Y3Qgem9uZSAqem9uZSwgdW5zaWduZWQgbG9u
ZyBzdGFydF9wZm4sCjE0NDc0OiAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUpOwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gdm9pZCBscnV2ZWNfaW5pdChzdHJ1Y3QgbHJ1dmVjICpscnV2ZWMpOwox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBzdHJ1Y3QgcGdsaXN0X2RhdGEgKmxydXZlY19wZ2RhdChzdHJ1Y3QgbHJ1
dmVjICpscnV2ZWMpCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gbHJ1dmVjLT5wZ2Rh
dDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IHVuc2lnbmVkIGxvbmcgbHJ1dmVjX2xydV9zaXplKHN0cnVjdCBscnV2ZWMgKmxydXZlYywgZW51
bSBscnVfbGlzdCBscnUsIGludCB6b25lX2lkeCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdm9p
ZCBtZW1vcnlfcHJlc2VudChpbnQgbmlkLCB1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBs
b25nIGVuZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
dm9pZCBtZW1ibG9ja3NfcHJlc2VudCh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGxvY2FsX21lbW9yeV9ub2Rl
KGludCBub2RlX2lkKSB7IHJldHVybiBub2RlX2lkOyB9OwoxNDQ3NDogIyA4ODUgIi4vaW5jbHVk
ZS9saW51eC9tbXpvbmUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgbWFuYWdlZF96b25lKHN0cnVjdCB6b25lICp6
b25lKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB6b25lX21hbmFnZWRfcGFnZXMoem9uZSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBwb3B1bGF0ZWRfem9uZShzdHJ1Y3Qg
em9uZSAqem9uZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gem9uZS0+cHJlc2VudF9wYWdlczsK
MTQ0NzQ6IH0KMTQ0NzQ6ICMgOTA3ICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQgem9uZV90b19uaWQoc3RydWN0IHpvbmUgKnpvbmUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
IDA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgem9uZV9zZXRfbmlkKHN0cnVjdCB6b25l
ICp6b25lLCBpbnQgbmlkKSB7fQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgbW92
YWJsZV96b25lOwoxNDQ3NDogIyA5MjggIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBpc19oaWdobWVtX2lkeChlbnVtIHpvbmVfdHlwZSBpZHgpCjE0NDc0OiB7CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gMDsKMTQ0NzQ6IAoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBpbnQgaXNfaGlnaG1lbShzdHJ1Y3Qgem9uZSAqem9uZSkKMTQ0NzQ6IHsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gMDsKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjdGxfdGFibGU7CjE0NDc0OiBpbnQgbWluX2ZyZWVf
a2J5dGVzX3N5c2N0bF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LAoxNDQ3NDogICAg
ICB2b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CjE0NDc0OiBpbnQgd2F0ZXJtYXJrX2Jvb3N0
X2ZhY3Rvcl9zeXNjdGxfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICosIGludCwKMTQ0NzQ6ICAg
ICAgdm9pZCAqLCBzaXplX3QgKiwgbG9mZl90ICopOwoxNDQ3NDogaW50IHdhdGVybWFya19zY2Fs
ZV9mYWN0b3Jfc3lzY3RsX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsCjE0NDc0OiAg
ICAgIHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQgc3lzY3Rs
X2xvd21lbV9yZXNlcnZlX3JhdGlvWzRdOwoxNDQ3NDogaW50IGxvd21lbV9yZXNlcnZlX3JhdGlv
X3N5c2N0bF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LAoxNDQ3NDogICAgICB2b2lk
ICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CjE0NDc0OiBpbnQgcGVyY3B1X3BhZ2VsaXN0X2ZyYWN0
aW9uX3N5c2N0bF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LAoxNDQ3NDogICAgICB2
b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CjE0NDc0OiBpbnQgc3lzY3RsX21pbl91bm1hcHBl
ZF9yYXRpb19zeXNjdGxfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICosIGludCwKMTQ0NzQ6ICAg
IHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAqKTsKMTQ0NzQ6IGludCBzeXNjdGxfbWluX3NsYWJf
cmF0aW9fc3lzY3RsX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsCjE0NDc0OiAgICB2
b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgbnVt
YV96b25lbGlzdF9vcmRlcl9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LAoxNDQ3NDog
ICAgdm9pZCAqLCBzaXplX3QgKiwgbG9mZl90ICopOwoxNDQ3NDogZXh0ZXJuIGNoYXIgbnVtYV96
b25lbGlzdF9vcmRlcltdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBl
eHRlcm4gc3RydWN0IHBnbGlzdF9kYXRhIGNvbnRpZ19wYWdlX2RhdGE7CjE0NDc0OiAjIDk4OCAi
Li9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBwZ2xpc3RfZGF0
YSAqZmlyc3Rfb25saW5lX3BnZGF0KHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBwZ2xpc3Rf
ZGF0YSAqbmV4dF9vbmxpbmVfcGdkYXQoc3RydWN0IHBnbGlzdF9kYXRhICpwZ2RhdCk7CjE0NDc0
OiBleHRlcm4gc3RydWN0IHpvbmUgKm5leHRfem9uZShzdHJ1Y3Qgem9uZSAqem9uZSk7CjE0NDc0
OiAjIDEwMjAgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCB6b25lICp6
b25lbGlzdF96b25lKHN0cnVjdCB6b25lcmVmICp6b25lcmVmKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiB6b25lcmVmLT56b25lOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgem9uZWxpc3Rf
em9uZV9pZHgoc3RydWN0IHpvbmVyZWYgKnpvbmVyZWYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
IHpvbmVyZWYtPnpvbmVfaWR4OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgem9uZWxpc3Rf
bm9kZV9pZHgoc3RydWN0IHpvbmVyZWYgKnpvbmVyZWYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
IHpvbmVfdG9fbmlkKHpvbmVyZWYtPnpvbmUpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3Qgem9uZXJlZiAqX19uZXh0X3pvbmVzX3pvbmVsaXN0KHN0cnVjdCB6b25lcmVmICp6LAoxNDQ3
NDogICAgICBlbnVtIHpvbmVfdHlwZSBoaWdoZXN0X3pvbmVpZHgsCjE0NDc0OiAgICAgIG5vZGVt
YXNrX3QgKm5vZGVzKTsKMTQ0NzQ6ICMgMTA1MSAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBzdHJ1Y3Qgem9uZXJlZiAq
bmV4dF96b25lc196b25lbGlzdChzdHJ1Y3Qgem9uZXJlZiAqeiwKMTQ0NzQ6ICAgICAgZW51bSB6
b25lX3R5cGUgaGlnaGVzdF96b25laWR4LAoxNDQ3NDogICAgICBub2RlbWFza190ICpub2RlcykK
MTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoX19idWlsdGluX2V4cGVjdCghISghbm9kZXMgJiYgem9uZWxp
c3Rfem9uZV9pZHgoeikgPD0gaGlnaGVzdF96b25laWR4KSwgMSkpCjE0NDc0OiAgIHJldHVybiB6
OwoxNDQ3NDogIHJldHVybiBfX25leHRfem9uZXNfem9uZWxpc3QoeiwgaGlnaGVzdF96b25laWR4
LCBub2Rlcyk7CjE0NDc0OiB9CjE0NDc0OiAjIDEwNzYgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUu
aCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHN0cnVjdCB6b25lcmVmICpmaXJzdF96b25lc196b25lbGlzdChzdHJ1Y3Qgem9u
ZWxpc3QgKnpvbmVsaXN0LAoxNDQ3NDogICAgICBlbnVtIHpvbmVfdHlwZSBoaWdoZXN0X3pvbmVp
ZHgsCjE0NDc0OiAgICAgIG5vZGVtYXNrX3QgKm5vZGVzKQoxNDQ3NDogewoxNDQ3NDogIHJldHVy
biBuZXh0X3pvbmVzX3pvbmVsaXN0KHpvbmVsaXN0LT5fem9uZXJlZnMsCjE0NDc0OiAgICAgICAg
aGlnaGVzdF96b25laWR4LCBub2Rlcyk7CjE0NDc0OiB9CjE0NDc0OiAjIDExNjAgIi4vaW5jbHVk
ZS9saW51eC9tbXpvbmUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgcGZuX3RvX3NlY3Rpb25fbnIo
dW5zaWduZWQgbG9uZyBwZm4pCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHBmbiA+PiAoMjcgLSAx
Mik7CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIHNlY3Rpb25fbnJfdG9fcGZuKHVuc2ln
bmVkIGxvbmcgc2VjKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBzZWMgPDwgKDI3IC0gMTIpOwox
NDQ3NDogfQoxNDQ3NDogIyAxMTg3ICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiCjE0NDc0OiBz
dHJ1Y3QgbWVtX3NlY3Rpb25fdXNhZ2UgewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgc3Vic2VjdGlv
bl9tYXBbKCgoKDFVTCA8PCAoMjcgLSAyMSkpKSArICgoc2l6ZW9mKGxvbmcpICogOCkpIC0gMSkg
LyAoKHNpemVvZihsb25nKSAqIDgpKSldOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBw
YWdlYmxvY2tfZmxhZ3NbMF07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB2b2lkIHN1YnNlY3Rp
b25fbWFwX2luaXQodW5zaWduZWQgbG9uZyBwZm4sIHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMpOwox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcGFnZTsKMTQ0NzQ6IHN0cnVjdCBwYWdlX2V4dDsKMTQ0NzQ6
IHN0cnVjdCBtZW1fc2VjdGlvbiB7CjE0NDc0OiAjIDEyMTAgIi4vaW5jbHVkZS9saW51eC9tbXpv
bmUuaCIKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHNlY3Rpb25fbWVtX21hcDsKMTQ0NzQ6IAoxNDQ3
NDogIHN0cnVjdCBtZW1fc2VjdGlvbl91c2FnZSAqdXNhZ2U7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBwYWdlX2V4dCAqcGFnZV9leHQ7CjE0
NDc0OiAgdW5zaWduZWQgbG9uZyBwYWQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTIzOCAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5o
IgoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBtZW1fc2VjdGlvbiAqKm1lbV9zZWN0aW9uOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nICpzZWN0aW9uX3Rv
X3VzZW1hcChzdHJ1Y3QgbWVtX3NlY3Rpb24gKm1zKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBt
cy0+dXNhZ2UtPnBhZ2VibG9ja19mbGFnczsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0
IG1lbV9zZWN0aW9uICpfX25yX3RvX3NlY3Rpb24odW5zaWduZWQgbG9uZyBucikKMTQ0NzQ6IHsK
MTQ0NzQ6IAoxNDQ3NDogIGlmICghbWVtX3NlY3Rpb24pCjE0NDc0OiAgIHJldHVybiAoKHZvaWQg
KikwKTsKMTQ0NzQ6IAoxNDQ3NDogIGlmICghbWVtX3NlY3Rpb25bKChucikgLyAoKCgxVUwpIDw8
IDEyKSAvIHNpemVvZiAoc3RydWN0IG1lbV9zZWN0aW9uKSkpXSkKMTQ0NzQ6ICAgcmV0dXJuICgo
dm9pZCAqKTApOwoxNDQ3NDogIHJldHVybiAmbWVtX3NlY3Rpb25bKChucikgLyAoKCgxVUwpIDw8
IDEyKSAvIHNpemVvZiAoc3RydWN0IG1lbV9zZWN0aW9uKSkpXVtuciAmICgoKCgxVUwpIDw8IDEy
KSAvIHNpemVvZiAoc3RydWN0IG1lbV9zZWN0aW9uKSkgLSAxKV07CjE0NDc0OiB9CjE0NDc0OiBl
eHRlcm4gdW5zaWduZWQgbG9uZyBfX3NlY3Rpb25fbnIoc3RydWN0IG1lbV9zZWN0aW9uICptcyk7
CjE0NDc0OiBleHRlcm4gc2l6ZV90IG1lbV9zZWN0aW9uX3VzYWdlX3NpemUodm9pZCk7CjE0NDc0
OiAjIDEyODIgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBwYWdlICpf
X3NlY3Rpb25fbWVtX21hcF9hZGRyKHN0cnVjdCBtZW1fc2VjdGlvbiAqc2VjdGlvbikKMTQ0NzQ6
IHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIG1hcCA9IHNlY3Rpb24tPnNlY3Rpb25fbWVtX21hcDsK
MTQ0NzQ6ICBtYXAgJj0gKH4oKDFVTDw8NCktMSkpOwoxNDQ3NDogIHJldHVybiAoc3RydWN0IHBh
Z2UgKiltYXA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBwcmVzZW50X3NlY3Rpb24oc3Ry
dWN0IG1lbV9zZWN0aW9uICpzZWN0aW9uKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoc2VjdGlv
biAmJiAoc2VjdGlvbi0+c2VjdGlvbl9tZW1fbWFwICYgKDFVTDw8MCkpKTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgaW50IHByZXNlbnRfc2VjdGlvbl9ucih1bnNpZ25lZCBsb25nIG5yKQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiBwcmVzZW50X3NlY3Rpb24oX19ucl90b19zZWN0aW9uKG5yKSk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB2YWxpZF9zZWN0aW9uKHN0cnVjdCBtZW1fc2Vj
dGlvbiAqc2VjdGlvbikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHNlY3Rpb24gJiYgKHNlY3Rp
b24tPnNlY3Rpb25fbWVtX21hcCAmICgxVUw8PDEpKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBlYXJseV9zZWN0aW9uKHN0cnVjdCBtZW1fc2VjdGlvbiAqc2VjdGlvbikKMTQ0NzQ6IHsK
MTQ0NzQ6ICByZXR1cm4gKHNlY3Rpb24gJiYgKHNlY3Rpb24tPnNlY3Rpb25fbWVtX21hcCAmICgx
VUw8PDMpKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB2YWxpZF9zZWN0aW9uX25yKHVu
c2lnbmVkIGxvbmcgbnIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHZhbGlkX3NlY3Rpb24oX19u
cl90b19zZWN0aW9uKG5yKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBvbmxpbmVfc2Vj
dGlvbihzdHJ1Y3QgbWVtX3NlY3Rpb24gKnNlY3Rpb24pCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
IChzZWN0aW9uICYmIChzZWN0aW9uLT5zZWN0aW9uX21lbV9tYXAgJiAoMVVMPDwyKSkpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgb25saW5lX3NlY3Rpb25fbnIodW5zaWduZWQgbG9uZyBu
cikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gb25saW5lX3NlY3Rpb24oX19ucl90b19zZWN0aW9u
KG5yKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBvbmxpbmVfbWVtX3Nl
Y3Rpb25zKHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIGVuZF9wZm4pOwox
NDQ3NDogCjE0NDc0OiB2b2lkIG9mZmxpbmVfbWVtX3NlY3Rpb25zKHVuc2lnbmVkIGxvbmcgc3Rh
cnRfcGZuLCB1bnNpZ25lZCBsb25nIGVuZF9wZm4pOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgc3RydWN0IG1lbV9zZWN0aW9uICpfX3Bmbl90b19zZWN0aW9uKHVuc2lnbmVkIGxvbmcg
cGZuKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX25yX3RvX3NlY3Rpb24ocGZuX3RvX3NlY3Rp
b25fbnIocGZuKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBsb25n
IF9faGlnaGVzdF9wcmVzZW50X3NlY3Rpb25fbnI7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBzdWJzZWN0
aW9uX21hcF9pbmRleCh1bnNpZ25lZCBsb25nIHBmbikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
KHBmbiAmIH4oKH4oKDFVTCA8PCAoMjcgLSAxMikpLTEpKSkpIC8gKDFVTCA8PCAoMjEgLSAxMikp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBwZm5fc2VjdGlvbl92YWxpZChz
dHJ1Y3QgbWVtX3NlY3Rpb24gKm1zLCB1bnNpZ25lZCBsb25nIHBmbikKMTQ0NzQ6IHsKMTQ0NzQ6
ICBpbnQgaWR4ID0gc3Vic2VjdGlvbl9tYXBfaW5kZXgocGZuKTsKMTQ0NzQ6IAoxNDQ3NDogIHJl
dHVybiB0ZXN0X2JpdChpZHgsIG1zLT51c2FnZS0+c3Vic2VjdGlvbl9tYXApOwoxNDQ3NDogfQox
NDQ3NDogIyAxMzU4ICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcGZuX3Zh
bGlkKHVuc2lnbmVkIGxvbmcgcGZuKQoxNDQ3NDogewoxNDQ3NDogIHN0cnVjdCBtZW1fc2VjdGlv
biAqbXM7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAocGZuX3RvX3NlY3Rpb25fbnIocGZuKSA+PSAoMVVM
IDw8ICgoMCA/IDUyIDogNDYpIC0gMjcpKSkKMTQ0NzQ6ICAgcmV0dXJuIDA7CjE0NDc0OiAgbXMg
PSBfX25yX3RvX3NlY3Rpb24ocGZuX3RvX3NlY3Rpb25fbnIocGZuKSk7CjE0NDc0OiAgaWYgKCF2
YWxpZF9zZWN0aW9uKG1zKSkKMTQ0NzQ6ICAgcmV0dXJuIDA7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gZWFybHlfc2VjdGlvbihtcykgfHwgcGZuX3NlY3Rp
b25fdmFsaWQobXMsIHBmbik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHBm
bl9wcmVzZW50KHVuc2lnbmVkIGxvbmcgcGZuKQoxNDQ3NDogewoxNDQ3NDogIGlmIChwZm5fdG9f
c2VjdGlvbl9ucihwZm4pID49ICgxVUwgPDwgKCgwID8gNTIgOiA0NikgLSAyNykpKQoxNDQ3NDog
ICByZXR1cm4gMDsKMTQ0NzQ6ICByZXR1cm4gcHJlc2VudF9zZWN0aW9uKF9fbnJfdG9fc2VjdGlv
bihwZm5fdG9fc2VjdGlvbl9ucihwZm4pKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2ln
bmVkIGxvbmcgbmV4dF9wcmVzZW50X3NlY3Rpb25fbnIodW5zaWduZWQgbG9uZyBzZWN0aW9uX25y
KQoxNDQ3NDogewoxNDQ3NDogIHdoaWxlICgrK3NlY3Rpb25fbnIgPD0gX19oaWdoZXN0X3ByZXNl
bnRfc2VjdGlvbl9ucikgewoxNDQ3NDogICBpZiAocHJlc2VudF9zZWN0aW9uX25yKHNlY3Rpb25f
bnIpKQoxNDQ3NDogICAgcmV0dXJuIHNlY3Rpb25fbnI7CjE0NDc0OiAgfQoxNDQ3NDogCjE0NDc0
OiAgcmV0dXJuIC0xOwoxNDQ3NDogfQoxNDQ3NDogIyAxNDA4ICIuL2luY2x1ZGUvbGludXgvbW16
b25lLmgiCjE0NDc0OiB2b2lkIHNwYXJzZV9pbml0KHZvaWQpOwoxNDQ3NDogIyAxNDIxICIuL2lu
Y2x1ZGUvbGludXgvbW16b25lLmgiCjE0NDc0OiBzdHJ1Y3QgbW1pbml0X3Bmbm5pZF9jYWNoZSB7
CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBsYXN0X3N0YXJ0OwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcg
bGFzdF9lbmQ7CjE0NDc0OiAgaW50IGxhc3RfbmlkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lkIG1lbW9yeV9wcmVzZW50KGludCBu
aWQsIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKMTQ0NzQ6ICMgMTQ2
OSAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBtZW1tYXBfdmFsaWRfd2l0
aGluKHVuc2lnbmVkIGxvbmcgcGZuLAoxNDQ3NDogICAgICBzdHJ1Y3QgcGFnZSAqcGFnZSwgc3Ry
dWN0IHpvbmUgKnpvbmUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHRydWU7CjE0NDc0OiB9CjE0
NDc0OiAjIDcgIi4vaW5jbHVkZS9saW51eC9nZnAuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3RvcG9sb2d5LmgiIDEKMTQ0NzQ6ICMgMzAgIi4vaW5jbHVk
ZS9saW51eC90b3BvbG9neS5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvYXJjaF90b3Bv
bG9neS5oIiAxCjE0NDc0OiAjIDkgIi4vaW5jbHVkZS9saW51eC9hcmNoX3RvcG9sb2d5LmgiCjE0
NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9wZXJjcHUuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgv
c21wLmgiIDEKMTQ0NzQ6ICMgMTUgIi4vaW5jbHVkZS9saW51eC9zbXAuaCIKMTQ0NzQ6ICMgMSAi
Li9pbmNsdWRlL2xpbnV4L2xsaXN0LmgiIDEKMTQ0NzQ6ICMgNTQgIi4vaW5jbHVkZS9saW51eC9s
bGlzdC5oIgoxNDQ3NDogc3RydWN0IGxsaXN0X2hlYWQgewoxNDQ3NDogIHN0cnVjdCBsbGlzdF9u
b2RlICpmaXJzdDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBsbGlzdF9ub2RlIHsK
MTQ0NzQ6ICBzdHJ1Y3QgbGxpc3Rfbm9kZSAqbmV4dDsKMTQ0NzQ6IH07CjE0NDc0OiAjIDY5ICIu
L2luY2x1ZGUvbGludXgvbGxpc3QuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaW5pdF9sbGlzdF9oZWFkKHN0cnVj
dCBsbGlzdF9oZWFkICpsaXN0KQoxNDQ3NDogewoxNDQ3NDogIGxpc3QtPmZpcnN0ID0gKCh2b2lk
ICopMCk7CjE0NDc0OiB9CjE0NDc0OiAjIDE4NyAiLi9pbmNsdWRlL2xpbnV4L2xsaXN0LmgiCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBib29sIGxsaXN0X2VtcHR5KGNvbnN0IHN0cnVjdCBsbGlzdF9oZWFkICpoZWFkKQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiAoeyB1bmlvbiB7IHR5cGVvZihoZWFkLT5maXJzdCkgX192YWw7
IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJihoZWFkLT5maXJz
dCksIF9fdS5fX2MsIHNpemVvZihoZWFkLT5maXJzdCkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVf
bm9jaGVjaygmKGhlYWQtPmZpcnN0KSwgX191Ll9fYywgc2l6ZW9mKGhlYWQtPmZpcnN0KSk7IGRv
IHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSkgPT0gKCh2b2lkICopMCk7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHN0cnVjdCBsbGlzdF9ub2RlICpsbGlzdF9uZXh0KHN0cnVjdCBsbGlzdF9u
b2RlICpub2RlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBub2RlLT5uZXh0OwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBleHRlcm4gYm9vbCBsbGlzdF9hZGRfYmF0Y2goc3RydWN0IGxsaXN0X25v
ZGUgKm5ld19maXJzdCwKMTQ0NzQ6ICAgICAgICBzdHJ1Y3QgbGxpc3Rfbm9kZSAqbmV3X2xhc3Qs
CjE0NDc0OiAgICAgICAgc3RydWN0IGxsaXN0X2hlYWQgKmhlYWQpOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGxsaXN0
X2FkZChzdHJ1Y3QgbGxpc3Rfbm9kZSAqbmV3LCBzdHJ1Y3QgbGxpc3RfaGVhZCAqaGVhZCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gbGxpc3RfYWRkX2JhdGNoKG5ldywgbmV3LCBoZWFkKTsKMTQ0
NzQ6IH0KMTQ0NzQ6ICMgMjIwICIuL2luY2x1ZGUvbGludXgvbGxpc3QuaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVj
dCBsbGlzdF9ub2RlICpsbGlzdF9kZWxfYWxsKHN0cnVjdCBsbGlzdF9oZWFkICpoZWFkKQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiAoeyB0eXBlb2YoJmhlYWQtPmZpcnN0KSBfX2FpX3B0ciA9ICgm
aGVhZC0+Zmlyc3QpOyBrYXNhbl9jaGVja193cml0ZShfX2FpX3B0ciwgc2l6ZW9mKCpfX2FpX3B0
cikpOyAoeyBfX3R5cGVvZl9fICgqKChfX2FpX3B0cikpKSBfX3JldCA9ICgoKCh2b2lkICopMCkp
KTsgc3dpdGNoIChzaXplb2YoKigoX19haV9wdHIpKSkpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUg
KCIiICJ4Y2hnIiAiYiAlYjAsICUxXG4iIDogIitxIiAoX19yZXQpLCAiK20iICgqKChfX2FpX3B0
cikpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCIi
ICJ4Y2hnIiAidyAldzAsICUxXG4iIDogIityIiAoX19yZXQpLCAiK20iICgqKChfX2FpX3B0cikp
KSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCIiICJ4
Y2hnIiAibCAlMCwgJTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKF9fYWlfcHRyKSkpIDog
OiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIiIgInhjaGci
ICJxICVxMCwgJTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKF9fYWlfcHRyKSkpIDogOiAi
bWVtb3J5IiwgImNjIik7IGJyZWFrOyBkZWZhdWx0OiBfX3hjaGdfd3Jvbmdfc2l6ZSgpOyB9IF9f
cmV0OyB9KTsgfSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgbGxpc3Rf
bm9kZSAqbGxpc3RfZGVsX2ZpcnN0KHN0cnVjdCBsbGlzdF9oZWFkICpoZWFkKTsKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGxsaXN0X25vZGUgKmxsaXN0X3JldmVyc2Vfb3JkZXIoc3RydWN0IGxsaXN0
X25vZGUgKmhlYWQpOwoxNDQ3NDogIyAxNiAiLi9pbmNsdWRlL2xpbnV4L3NtcC5oIiAyCjE0NDc0
OiAKMTQ0NzQ6IHR5cGVkZWYgdm9pZCAoKnNtcF9jYWxsX2Z1bmNfdCkodm9pZCAqaW5mbyk7CjE0
NDc0OiB0eXBlZGVmIGJvb2wgKCpzbXBfY29uZF9mdW5jX3QpKGludCBjcHUsIHZvaWQgKmluZm8p
OwoxNDQ3NDogc3RydWN0IF9fY2FsbF9zaW5nbGVfZGF0YSB7CjE0NDc0OiAgc3RydWN0IGxsaXN0
X25vZGUgbGxpc3Q7CjE0NDc0OiAgc21wX2NhbGxfZnVuY190IGZ1bmM7CjE0NDc0OiAgdm9pZCAq
aW5mbzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZmxhZ3M7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IF9fY2FsbF9zaW5nbGVfZGF0YSBjYWxsX3NpbmdsZV9k
YXRhX3QKMTQ0NzQ6ICBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXyhzaXplb2Yoc3RydWN0IF9f
Y2FsbF9zaW5nbGVfZGF0YSkpKSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHVuc2ln
bmVkIGludCB0b3RhbF9jcHVzOwoxNDQ3NDogCjE0NDc0OiBpbnQgc21wX2NhbGxfZnVuY3Rpb25f
c2luZ2xlKGludCBjcHVpZCwgc21wX2NhbGxfZnVuY190IGZ1bmMsIHZvaWQgKmluZm8sCjE0NDc0
OiAgICAgICAgIGludCB3YWl0KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogdm9pZCBvbl9lYWNoX2NwdShzbXBfY2FsbF9mdW5jX3QgZnVuYywgdm9pZCAqaW5mbywgaW50
IHdhaXQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZv
aWQgb25fZWFjaF9jcHVfbWFzayhjb25zdCBzdHJ1Y3QgY3B1bWFzayAqbWFzaywgc21wX2NhbGxf
ZnVuY190IGZ1bmMsCjE0NDc0OiAgIHZvaWQgKmluZm8sIGJvb2wgd2FpdCk7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lkIG9uX2VhY2hf
Y3B1X2NvbmQoc21wX2NvbmRfZnVuY190IGNvbmRfZnVuYywgc21wX2NhbGxfZnVuY190IGZ1bmMs
CjE0NDc0OiAgICAgICAgIHZvaWQgKmluZm8sIGJvb2wgd2FpdCk7CjE0NDc0OiAKMTQ0NzQ6IHZv
aWQgb25fZWFjaF9jcHVfY29uZF9tYXNrKHNtcF9jb25kX2Z1bmNfdCBjb25kX2Z1bmMsIHNtcF9j
YWxsX2Z1bmNfdCBmdW5jLAoxNDQ3NDogICAgICAgdm9pZCAqaW5mbywgYm9vbCB3YWl0LCBjb25z
dCBzdHJ1Y3QgY3B1bWFzayAqbWFzayk7CjE0NDc0OiAKMTQ0NzQ6IGludCBzbXBfY2FsbF9mdW5j
dGlvbl9zaW5nbGVfYXN5bmMoaW50IGNwdSwgY2FsbF9zaW5nbGVfZGF0YV90ICpjc2QpOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vc21wLmgiIDEKMTQ0NzQ6ICMgMTIgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vc21wLmgiCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vbXBzcGVjLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXBzcGVjX2RlZi5oIiAxCjE0NDc0OiAj
IDIyICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21wc3BlY19kZWYuaCIKMTQ0NzQ6IHN0cnVjdCBt
cGZfaW50ZWwgewoxNDQ3NDogIGNoYXIgc2lnbmF0dXJlWzRdOwoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBwaHlzcHRyOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgbGVuZ3RoOwoxNDQ3NDogIHVuc2lnbmVk
IGNoYXIgc3BlY2lmaWNhdGlvbjsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGNoZWNrc3VtOwoxNDQ3
NDogIHVuc2lnbmVkIGNoYXIgZmVhdHVyZTE7CjE0NDc0OiAgdW5zaWduZWQgY2hhciBmZWF0dXJl
MjsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGZlYXR1cmUzOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIg
ZmVhdHVyZTQ7CjE0NDc0OiAgdW5zaWduZWQgY2hhciBmZWF0dXJlNTsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgbXBjX3RhYmxlIHsKMTQ0NzQ6ICBjaGFy
IHNpZ25hdHVyZVs0XTsKMTQ0NzQ6ICB1bnNpZ25lZCBzaG9ydCBsZW5ndGg7CjE0NDc0OiAgY2hh
ciBzcGVjOwoxNDQ3NDogIGNoYXIgY2hlY2tzdW07CjE0NDc0OiAgY2hhciBvZW1bOF07CjE0NDc0
OiAgY2hhciBwcm9kdWN0aWRbMTJdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBvZW1wdHI7CjE0NDc0
OiAgdW5zaWduZWQgc2hvcnQgb2Vtc2l6ZTsKMTQ0NzQ6ICB1bnNpZ25lZCBzaG9ydCBvZW1jb3Vu
dDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbGFwaWM7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJlc2Vy
dmVkOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgNjggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXBzcGVj
X2RlZi5oIgoxNDQ3NDogc3RydWN0IG1wY19jcHUgewoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgdHlw
ZTsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGFwaWNpZDsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGFw
aWN2ZXI7CjE0NDc0OiAgdW5zaWduZWQgY2hhciBjcHVmbGFnOwoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBjcHVmZWF0dXJlOwoxNDQ3NDogIHVuc2lnbmVkIGludCBmZWF0dXJlZmxhZzsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgcmVzZXJ2ZWRbMl07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
bXBjX2J1cyB7CjE0NDc0OiAgdW5zaWduZWQgY2hhciB0eXBlOwoxNDQ3NDogIHVuc2lnbmVkIGNo
YXIgYnVzaWQ7CjE0NDc0OiAgdW5zaWduZWQgY2hhciBidXN0eXBlWzZdOwoxNDQ3NDogfTsKMTQ0
NzQ6ICMgMTA2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21wc3BlY19kZWYuaCIKMTQ0NzQ6IHN0
cnVjdCBtcGNfaW9hcGljIHsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIHR5cGU7CjE0NDc0OiAgdW5z
aWduZWQgY2hhciBhcGljaWQ7CjE0NDc0OiAgdW5zaWduZWQgY2hhciBhcGljdmVyOwoxNDQ3NDog
IHVuc2lnbmVkIGNoYXIgZmxhZ3M7CjE0NDc0OiAgdW5zaWduZWQgaW50IGFwaWNhZGRyOwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG1wY19pbnRzcmMgewoxNDQ3NDogIHVuc2lnbmVk
IGNoYXIgdHlwZTsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGlycXR5cGU7CjE0NDc0OiAgdW5zaWdu
ZWQgc2hvcnQgaXJxZmxhZzsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIHNyY2J1czsKMTQ0NzQ6ICB1
bnNpZ25lZCBjaGFyIHNyY2J1c2lycTsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGRzdGFwaWM7CjE0
NDc0OiAgdW5zaWduZWQgY2hhciBkc3RpcnE7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVt
IG1wX2lycV9zb3VyY2VfdHlwZXMgewoxNDQ3NDogIG1wX0lOVCA9IDAsCjE0NDc0OiAgbXBfTk1J
ID0gMSwKMTQ0NzQ6ICBtcF9TTUkgPSAyLAoxNDQ3NDogIG1wX0V4dElOVCA9IDMKMTQ0NzQ6IH07
CjE0NDc0OiAjIDE0NSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tcHNwZWNfZGVmLmgiCjE0NDc0
OiBzdHJ1Y3QgbXBjX2xpbnRzcmMgewoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgdHlwZTsKMTQ0NzQ6
ICB1bnNpZ25lZCBjaGFyIGlycXR5cGU7CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgaXJxZmxhZzsK
MTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIHNyY2J1c2lkOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgc3Jj
YnVzaXJxOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgZGVzdGFwaWM7CjE0NDc0OiAgdW5zaWduZWQg
Y2hhciBkZXN0YXBpY2xpbnQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IG1wY19vZW10YWJsZSB7CjE0NDc0OiAgY2hhciBzaWduYXR1cmVbNF07CjE0NDc0
OiAgdW5zaWduZWQgc2hvcnQgbGVuZ3RoOwoxNDQ3NDogIGNoYXIgcmV2OwoxNDQ3NDogIGNoYXIg
Y2hlY2tzdW07CjE0NDc0OiAgY2hhciBtcGNbOF07CjE0NDc0OiB9OwoxNDQ3NDogIyAxNzcgIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vbXBzcGVjX2RlZi5oIgoxNDQ3NDogZW51bSBtcF9idXN0eXBl
IHsKMTQ0NzQ6ICBNUF9CVVNfSVNBID0gMSwKMTQ0NzQ6ICBNUF9CVVNfRUlTQSwKMTQ0NzQ6ICBN
UF9CVVNfUENJLAoxNDQ3NDogfTsKMTQ0NzQ6ICMgNyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9t
cHNwZWMuaCIgMgoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3g4Nl9pbml0Lmgi
IDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBtcGNfYnVzOwoxNDQ3NDogc3RydWN0IG1wY19jcHU7CjE0NDc0OiBzdHJ1Y3QgbXBj
X3RhYmxlOwoxNDQ3NDogc3RydWN0IGNwdWluZm9feDg2OwoxNDQ3NDogIyAyMyAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS94ODZfaW5pdC5oIgoxNDQ3NDogc3RydWN0IHg4Nl9pbml0X21wcGFyc2Ug
ewoxNDQ3NDogIHZvaWQgKCptcGNfcmVjb3JkKSh1bnNpZ25lZCBpbnQgbW9kZSk7CjE0NDc0OiAg
dm9pZCAoKnNldHVwX2lvYXBpY19pZHMpKHZvaWQpOwoxNDQ3NDogIGludCAoKm1wY19hcGljX2lk
KShzdHJ1Y3QgbXBjX2NwdSAqbSk7CjE0NDc0OiAgdm9pZCAoKnNtcF9yZWFkX21wY19vZW0pKHN0
cnVjdCBtcGNfdGFibGUgKm1wYyk7CjE0NDc0OiAgdm9pZCAoKm1wY19vZW1fcGNpX2J1cykoc3Ry
dWN0IG1wY19idXMgKm0pOwoxNDQ3NDogIHZvaWQgKCptcGNfb2VtX2J1c19pbmZvKShzdHJ1Y3Qg
bXBjX2J1cyAqbSwgY2hhciAqbmFtZSk7CjE0NDc0OiAgdm9pZCAoKmZpbmRfc21wX2NvbmZpZyko
dm9pZCk7CjE0NDc0OiAgdm9pZCAoKmdldF9zbXBfY29uZmlnKSh1bnNpZ25lZCBpbnQgZWFybHkp
OwoxNDQ3NDogfTsKMTQ0NzQ6ICMgNDIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20veDg2X2luaXQu
aCIKMTQ0NzQ6IHN0cnVjdCB4ODZfaW5pdF9yZXNvdXJjZXMgewoxNDQ3NDogIHZvaWQgKCpwcm9i
ZV9yb21zKSh2b2lkKTsKMTQ0NzQ6ICB2b2lkICgqcmVzZXJ2ZV9yZXNvdXJjZXMpKHZvaWQpOwox
NDQ3NDogIGNoYXIgKigqbWVtb3J5X3NldHVwKSh2b2lkKTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDU3
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3g4Nl9pbml0LmgiCjE0NDc0OiBzdHJ1Y3QgeDg2X2lu
aXRfaXJxcyB7CjE0NDc0OiAgdm9pZCAoKnByZV92ZWN0b3JfaW5pdCkodm9pZCk7CjE0NDc0OiAg
dm9pZCAoKmludHJfaW5pdCkodm9pZCk7CjE0NDc0OiAgdm9pZCAoKnRyYXBfaW5pdCkodm9pZCk7
CjE0NDc0OiAgdm9pZCAoKmludHJfbW9kZV9zZWxlY3QpKHZvaWQpOwoxNDQ3NDogIHZvaWQgKCpp
bnRyX21vZGVfaW5pdCkodm9pZCk7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHg4Nl9pbml0X29lbSB7CjE0NDc0
OiAgdm9pZCAoKmFyY2hfc2V0dXApKHZvaWQpOwoxNDQ3NDogIHZvaWQgKCpiYW5uZXIpKHZvaWQp
OwoxNDQ3NDogfTsKMTQ0NzQ6ICMgODIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20veDg2X2luaXQu
aCIKMTQ0NzQ6IHN0cnVjdCB4ODZfaW5pdF9wYWdpbmcgewoxNDQ3NDogIHZvaWQgKCpwYWdldGFi
bGVfaW5pdCkodm9pZCk7CjE0NDc0OiB9OwoxNDQ3NDogIyA5MyAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS94ODZfaW5pdC5oIgoxNDQ3NDogc3RydWN0IHg4Nl9pbml0X3RpbWVycyB7CjE0NDc0OiAg
dm9pZCAoKnNldHVwX3BlcmNwdV9jbG9ja2V2KSh2b2lkKTsKMTQ0NzQ6ICB2b2lkICgqdGltZXJf
aW5pdCkodm9pZCk7CjE0NDc0OiAgdm9pZCAoKndhbGxjbG9ja19pbml0KSh2b2lkKTsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IHg4Nl9pbml0X2lvbW11IHsKMTQ0NzQ6ICBpbnQgKCppb21tdV9pbml0KSh2b2lkKTsKMTQ0NzQ6
IH07CjE0NDc0OiAjIDExNCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ODZfaW5pdC5oIgoxNDQ3
NDogc3RydWN0IHg4Nl9pbml0X3BjaSB7CjE0NDc0OiAgaW50ICgqYXJjaF9pbml0KSh2b2lkKTsK
MTQ0NzQ6ICBpbnQgKCppbml0KSh2b2lkKTsKMTQ0NzQ6ICB2b2lkICgqaW5pdF9pcnEpKHZvaWQp
OwoxNDQ3NDogIHZvaWQgKCpmaXh1cF9pcnFzKSh2b2lkKTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDEy
OSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ODZfaW5pdC5oIgoxNDQ3NDogc3RydWN0IHg4Nl9o
eXBlcl9pbml0IHsKMTQ0NzQ6ICB2b2lkICgqaW5pdF9wbGF0Zm9ybSkodm9pZCk7CjE0NDc0OiAg
dm9pZCAoKmd1ZXN0X2xhdGVfaW5pdCkodm9pZCk7CjE0NDc0OiAgYm9vbCAoKngyYXBpY19hdmFp
bGFibGUpKHZvaWQpOwoxNDQ3NDogIHZvaWQgKCppbml0X21lbV9tYXBwaW5nKSh2b2lkKTsKMTQ0
NzQ6ICB2b2lkICgqaW5pdF9hZnRlcl9ib290bWVtKSh2b2lkKTsKMTQ0NzQ6IH07CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCB4ODZfaW5pdF9hY3BpIHsKMTQ0NzQ6ICB2b2lkICgqc2V0X3Jvb3RfcG9pbnRlcikodTY0
IGFkZHIpOwoxNDQ3NDogIHU2NCAoKmdldF9yb290X3BvaW50ZXIpKHZvaWQpOwoxNDQ3NDogIHZv
aWQgKCpyZWR1Y2VkX2h3X2Vhcmx5X2luaXQpKHZvaWQpOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgeDg2X2luaXRfb3BzIHsK
MTQ0NzQ6ICBzdHJ1Y3QgeDg2X2luaXRfcmVzb3VyY2VzIHJlc291cmNlczsKMTQ0NzQ6ICBzdHJ1
Y3QgeDg2X2luaXRfbXBwYXJzZSBtcHBhcnNlOwoxNDQ3NDogIHN0cnVjdCB4ODZfaW5pdF9pcnFz
IGlycXM7CjE0NDc0OiAgc3RydWN0IHg4Nl9pbml0X29lbSBvZW07CjE0NDc0OiAgc3RydWN0IHg4
Nl9pbml0X3BhZ2luZyBwYWdpbmc7CjE0NDc0OiAgc3RydWN0IHg4Nl9pbml0X3RpbWVycyB0aW1l
cnM7CjE0NDc0OiAgc3RydWN0IHg4Nl9pbml0X2lvbW11IGlvbW11OwoxNDQ3NDogIHN0cnVjdCB4
ODZfaW5pdF9wY2kgcGNpOwoxNDQ3NDogIHN0cnVjdCB4ODZfaHlwZXJfaW5pdCBoeXBlcjsKMTQ0
NzQ6ICBzdHJ1Y3QgeDg2X2luaXRfYWNwaSBhY3BpOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB4ODZfY3B1aW5p
dF9vcHMgewoxNDQ3NDogIHZvaWQgKCpzZXR1cF9wZXJjcHVfY2xvY2tldikodm9pZCk7CjE0NDc0
OiAgdm9pZCAoKmVhcmx5X3BlcmNwdV9jbG9ja19pbml0KSh2b2lkKTsKMTQ0NzQ6ICB2b2lkICgq
Zml4dXBfY3B1X2lkKShzdHJ1Y3QgY3B1aW5mb194ODYgKmMsIGludCBub2RlKTsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0aW1lc3BlYzY0OwoxNDQ3NDogIyAxOTggIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20veDg2X2luaXQuaCIKMTQ0NzQ6IHN0cnVjdCB4ODZfbGVnYWN5X2Rldmlj
ZXMgewoxNDQ3NDogIGludCBwbnBiaW9zOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMjExICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL3g4Nl9pbml0LmgiCjE0NDc0OiBlbnVtIHg4Nl9sZWdhY3lfaTgwNDJf
c3RhdGUgewoxNDQ3NDogIFg4Nl9MRUdBQ1lfSTgwNDJfUExBVEZPUk1fQUJTRU5ULAoxNDQ3NDog
IFg4Nl9MRUdBQ1lfSTgwNDJfRklSTVdBUkVfQUJTRU5ULAoxNDQ3NDogIFg4Nl9MRUdBQ1lfSTgw
NDJfRVhQRUNURURfUFJFU0VOVCwKMTQ0NzQ6IH07CjE0NDc0OiAjIDIyOSAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS94ODZfaW5pdC5oIgoxNDQ3NDogc3RydWN0IHg4Nl9sZWdhY3lfZmVhdHVyZXMg
ewoxNDQ3NDogIGVudW0geDg2X2xlZ2FjeV9pODA0Ml9zdGF0ZSBpODA0MjsKMTQ0NzQ6ICBpbnQg
cnRjOwoxNDQ3NDogIGludCB3YXJtX3Jlc2V0OwoxNDQ3NDogIGludCBub192Z2E7CjE0NDc0OiAg
aW50IHJlc2VydmVfYmlvc19yZWdpb25zOwoxNDQ3NDogIHN0cnVjdCB4ODZfbGVnYWN5X2Rldmlj
ZXMgZGV2aWNlczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgeDg2X2h5cGVyX3J1bnRpbWUgewoxNDQ3NDogIHZv
aWQgKCpwaW5fdmNwdSkoaW50IGNwdSk7CjE0NDc0OiB9OwoxNDQ3NDogIyAyNjggIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20veDg2X2luaXQuaCIKMTQ0NzQ6IHN0cnVjdCB4ODZfcGxhdGZvcm1fb3Bz
IHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nICgqY2FsaWJyYXRlX2NwdSkodm9pZCk7CjE0NDc0OiAg
dW5zaWduZWQgbG9uZyAoKmNhbGlicmF0ZV90c2MpKHZvaWQpOwoxNDQ3NDogIHZvaWQgKCpnZXRf
d2FsbGNsb2NrKShzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpOwoxNDQ3NDogIGludCAoKnNldF93YWxs
Y2xvY2spKGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICp0cyk7CjE0NDc0OiAgdm9pZCAoKmlvbW11
X3NodXRkb3duKSh2b2lkKTsKMTQ0NzQ6ICBib29sICgqaXNfdW50cmFja2VkX3BhdF9yYW5nZSko
dTY0IHN0YXJ0LCB1NjQgZW5kKTsKMTQ0NzQ6ICB2b2lkICgqbm1pX2luaXQpKHZvaWQpOwoxNDQ3
NDogIHVuc2lnbmVkIGNoYXIgKCpnZXRfbm1pX3JlYXNvbikodm9pZCk7CjE0NDc0OiAgdm9pZCAo
KnNhdmVfc2NoZWRfY2xvY2tfc3RhdGUpKHZvaWQpOwoxNDQ3NDogIHZvaWQgKCpyZXN0b3JlX3Nj
aGVkX2Nsb2NrX3N0YXRlKSh2b2lkKTsKMTQ0NzQ6ICB2b2lkICgqYXBpY19wb3N0X2luaXQpKHZv
aWQpOwoxNDQ3NDogIHN0cnVjdCB4ODZfbGVnYWN5X2ZlYXR1cmVzIGxlZ2FjeTsKMTQ0NzQ6ICB2
b2lkICgqc2V0X2xlZ2FjeV9mZWF0dXJlcykodm9pZCk7CjE0NDc0OiAgc3RydWN0IHg4Nl9oeXBl
cl9ydW50aW1lIGh5cGVyOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBjaV9kZXY7
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB4ODZfbXNpX29wcyB7CjE0NDc0OiAgaW50ICgqc2V0dXBf
bXNpX2lycXMpKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBudmVjLCBpbnQgdHlwZSk7CjE0NDc0
OiAgdm9pZCAoKnRlYXJkb3duX21zaV9pcnEpKHVuc2lnbmVkIGludCBpcnEpOwoxNDQ3NDogIHZv
aWQgKCp0ZWFyZG93bl9tc2lfaXJxcykoc3RydWN0IHBjaV9kZXYgKmRldik7CjE0NDc0OiAgdm9p
ZCAoKnJlc3RvcmVfbXNpX2lycXMpKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogc3RydWN0IHg4Nl9hcGljX29wcyB7CjE0NDc0OiAgdW5zaWduZWQgaW50ICgq
aW9fYXBpY19yZWFkKSAodW5zaWduZWQgaW50IGFwaWMsIHVuc2lnbmVkIGludCByZWcpOwoxNDQ3
NDogIHZvaWQgKCpyZXN0b3JlKSh2b2lkKTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGV4dGVy
biBzdHJ1Y3QgeDg2X2luaXRfb3BzIHg4Nl9pbml0OwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB4ODZf
Y3B1aW5pdF9vcHMgeDg2X2NwdWluaXQ7CjE0NDc0OiBleHRlcm4gc3RydWN0IHg4Nl9wbGF0Zm9y
bV9vcHMgeDg2X3BsYXRmb3JtOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB4ODZfbXNpX29wcyB4ODZf
bXNpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB4ODZfYXBpY19vcHMgeDg2X2FwaWNfb3BzOwoxNDQ3
NDogCjE0NDc0OiBleHRlcm4gdm9pZCB4ODZfZWFybHlfaW5pdF9wbGF0Zm9ybV9xdWlya3Modm9p
ZCk7CjE0NDc0OiBleHRlcm4gdm9pZCB4ODZfaW5pdF9ub29wKHZvaWQpOwoxNDQ3NDogZXh0ZXJu
IHZvaWQgeDg2X2luaXRfdWludF9ub29wKHVuc2lnbmVkIGludCB1bnVzZWQpOwoxNDQ3NDogZXh0
ZXJuIGJvb2wgYm9vbF94ODZfaW5pdF9ub29wKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgeDg2
X29wX2ludF9ub29wKGludCBjcHUpOwoxNDQ3NDogZXh0ZXJuIGJvb2wgeDg2X3BucGJpb3NfZGlz
YWJsZWQodm9pZCk7CjE0NDc0OiAjIDggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXBzcGVjLmgi
IDIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hcGljZGVmLmgiIDEKMTQ0NzQ6
ICMgMTc5ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FwaWNkZWYuaCIKMTQ0NzQ6IHN0cnVjdCBs
b2NhbF9hcGljIHsKMTQ0NzQ6IAoxNDQ3NDogICAgICAgICBzdHJ1Y3QgeyB1bnNpZ25lZCBpbnQg
X19yZXNlcnZlZFs0XTsgfSBfX3Jlc2VydmVkXzAxOwoxNDQ3NDogCjE0NDc0OiAgICAgICAgIHN0
cnVjdCB7IHVuc2lnbmVkIGludCBfX3Jlc2VydmVkWzRdOyB9IF9fcmVzZXJ2ZWRfMDI7CjE0NDc0
OiAKMTQ0NzQ6ICAgICAgICAgc3RydWN0IHsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IF9fcmVzZXJ2
ZWRfMSA6IDI0LAoxNDQ3NDogICAgcGh5c19hcGljX2lkIDogNCwKMTQ0NzQ6ICAgIF9fcmVzZXJ2
ZWRfMiA6IDQ7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBfX3Jlc2VydmVkWzNdOwoxNDQ3NDogIH0g
aWQ7CjE0NDc0OiAKMTQ0NzQ6ICAgICAgICAgY29uc3QKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDog
ICB1bnNpZ25lZCBpbnQgdmVyc2lvbiA6IDgsCjE0NDc0OiAgICBfX3Jlc2VydmVkXzEgOiA4LAox
NDQ3NDogICAgbWF4X2x2dCA6IDgsCjE0NDc0OiAgICBfX3Jlc2VydmVkXzIgOiA4OwoxNDQ3NDog
ICB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZFszXTsKMTQ0NzQ6ICB9IHZlcnNpb247CjE0NDc0OiAK
MTQ0NzQ6ICAgICAgICAgc3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07IH0gX19y
ZXNlcnZlZF8wMzsKMTQ0NzQ6IAoxNDQ3NDogICAgICAgICBzdHJ1Y3QgeyB1bnNpZ25lZCBpbnQg
X19yZXNlcnZlZFs0XTsgfSBfX3Jlc2VydmVkXzA0OwoxNDQ3NDogCjE0NDc0OiAgICAgICAgIHN0
cnVjdCB7IHVuc2lnbmVkIGludCBfX3Jlc2VydmVkWzRdOyB9IF9fcmVzZXJ2ZWRfMDU7CjE0NDc0
OiAKMTQ0NzQ6ICAgICAgICAgc3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07IH0g
X19yZXNlcnZlZF8wNjsKMTQ0NzQ6IAoxNDQ3NDogICAgICAgICBzdHJ1Y3QgewoxNDQ3NDogICB1
bnNpZ25lZCBpbnQgcHJpb3JpdHkgOiA4LAoxNDQ3NDogICAgX19yZXNlcnZlZF8xIDogMjQ7CjE0
NDc0OiAgIHVuc2lnbmVkIGludCBfX3Jlc2VydmVkXzJbM107CjE0NDc0OiAgfSB0cHI7CjE0NDc0
OiAKMTQ0NzQ6ICAgICAgICAgY29uc3QKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1bnNpZ25l
ZCBpbnQgcHJpb3JpdHkgOiA4LAoxNDQ3NDogICAgX19yZXNlcnZlZF8xIDogMjQ7CjE0NDc0OiAg
IHVuc2lnbmVkIGludCBfX3Jlc2VydmVkXzJbM107CjE0NDc0OiAgfSBhcHI7CjE0NDc0OiAKMTQ0
NzQ6ICAgICAgICAgY29uc3QKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1bnNpZ25lZCBpbnQg
cHJpb3JpdHkgOiA4LAoxNDQ3NDogICAgX19yZXNlcnZlZF8xIDogMjQ7CjE0NDc0OiAgIHVuc2ln
bmVkIGludCBfX3Jlc2VydmVkXzJbM107CjE0NDc0OiAgfSBwcHI7CjE0NDc0OiAKMTQ0NzQ6ICAg
ICAgICAgc3RydWN0IHsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IGVvaTsKMTQ0NzQ6ICAgdW5zaWdu
ZWQgaW50IF9fcmVzZXJ2ZWRbM107CjE0NDc0OiAgfSBlb2k7CjE0NDc0OiAKMTQ0NzQ6ICAgICAg
ICAgc3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07IH0gX19yZXNlcnZlZF8wNzsK
MTQ0NzQ6IAoxNDQ3NDogICAgICAgICBzdHJ1Y3QgewoxNDQ3NDogICB1bnNpZ25lZCBpbnQgX19y
ZXNlcnZlZF8xIDogMjQsCjE0NDc0OiAgICBsb2dpY2FsX2Rlc3QgOiA4OwoxNDQ3NDogICB1bnNp
Z25lZCBpbnQgX19yZXNlcnZlZF8yWzNdOwoxNDQ3NDogIH0gbGRyOwoxNDQ3NDogCjE0NDc0OiAg
ICAgICAgIHN0cnVjdCB7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBfX3Jlc2VydmVkXzEgOiAyOCwK
MTQ0NzQ6ICAgIG1vZGVsIDogNDsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRfMlsz
XTsKMTQ0NzQ6ICB9IGRmcjsKMTQ0NzQ6IAoxNDQ3NDogICAgICAgICBzdHJ1Y3QgewoxNDQ3NDog
ICB1bnNpZ25lZCBpbnQgc3B1cmlvdXNfdmVjdG9yIDogOCwKMTQ0NzQ6ICAgIGFwaWNfZW5hYmxl
ZCA6IDEsCjE0NDc0OiAgICBmb2N1c19jcHUgOiAxLAoxNDQ3NDogICAgX19yZXNlcnZlZF8yIDog
MjI7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBfX3Jlc2VydmVkXzNbM107CjE0NDc0OiAgfSBzdnI7
CjE0NDc0OiAKMTQ0NzQ6ICAgICAgICAgc3RydWN0IHsKMTQ0NzQ6ICAgICAgICAgIHVuc2lnbmVk
IGludCBiaXRmaWVsZDsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbM107CjE0NDc0
OiAgfSBpc3IgWzhdOwoxNDQ3NDogCjE0NDc0OiAgICAgICAgIHN0cnVjdCB7CjE0NDc0OiAgICAg
ICAgICB1bnNpZ25lZCBpbnQgYml0ZmllbGQ7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBfX3Jlc2Vy
dmVkWzNdOwoxNDQ3NDogIH0gdG1yIFs4XTsKMTQ0NzQ6IAoxNDQ3NDogICAgICAgICBzdHJ1Y3Qg
ewoxNDQ3NDogICAgICAgICAgdW5zaWduZWQgaW50IGJpdGZpZWxkOwoxNDQ3NDogICB1bnNpZ25l
ZCBpbnQgX19yZXNlcnZlZFszXTsKMTQ0NzQ6ICB9IGlyciBbOF07CjE0NDc0OiAKMTQ0NzQ6ICAg
ICAgICAgdW5pb24gewoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogICAgdW5zaWduZWQgaW50IHNl
bmRfY3NfZXJyb3IgOiAxLAoxNDQ3NDogICAgIHJlY2VpdmVfY3NfZXJyb3IgOiAxLAoxNDQ3NDog
ICAgIHNlbmRfYWNjZXB0X2Vycm9yIDogMSwKMTQ0NzQ6ICAgICByZWNlaXZlX2FjY2VwdF9lcnJv
ciA6IDEsCjE0NDc0OiAgICAgX19yZXNlcnZlZF8xIDogMSwKMTQ0NzQ6ICAgICBzZW5kX2lsbGVn
YWxfdmVjdG9yIDogMSwKMTQ0NzQ6ICAgICByZWNlaXZlX2lsbGVnYWxfdmVjdG9yIDogMSwKMTQ0
NzQ6ICAgICBpbGxlZ2FsX3JlZ2lzdGVyX2FkZHJlc3MgOiAxLAoxNDQ3NDogICAgIF9fcmVzZXJ2
ZWRfMiA6IDI0OwoxNDQ3NDogICAgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRfM1szXTsKMTQ0NzQ6
ICAgfSBlcnJvcl9iaXRzOwoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogICAgdW5zaWduZWQgaW50
IGVycm9yczsKMTQ0NzQ6ICAgIHVuc2lnbmVkIGludCBfX3Jlc2VydmVkXzNbM107CjE0NDc0OiAg
IH0gYWxsX2Vycm9yczsKMTQ0NzQ6ICB9IGVzcjsKMTQ0NzQ6IAoxNDQ3NDogICAgICAgICBzdHJ1
Y3QgeyB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZFs0XTsgfSBfX3Jlc2VydmVkXzA4OwoxNDQ3NDog
CjE0NDc0OiAgICAgICAgIHN0cnVjdCB7IHVuc2lnbmVkIGludCBfX3Jlc2VydmVkWzRdOyB9IF9f
cmVzZXJ2ZWRfMDk7CjE0NDc0OiAKMTQ0NzQ6ICAgICAgICAgc3RydWN0IHsgdW5zaWduZWQgaW50
IF9fcmVzZXJ2ZWRbNF07IH0gX19yZXNlcnZlZF8xMDsKMTQ0NzQ6IAoxNDQ3NDogICAgICAgICBz
dHJ1Y3QgeyB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZFs0XTsgfSBfX3Jlc2VydmVkXzExOwoxNDQ3
NDogCjE0NDc0OiAgICAgICAgIHN0cnVjdCB7IHVuc2lnbmVkIGludCBfX3Jlc2VydmVkWzRdOyB9
IF9fcmVzZXJ2ZWRfMTI7CjE0NDc0OiAKMTQ0NzQ6ICAgICAgICAgc3RydWN0IHsgdW5zaWduZWQg
aW50IF9fcmVzZXJ2ZWRbNF07IH0gX19yZXNlcnZlZF8xMzsKMTQ0NzQ6IAoxNDQ3NDogICAgICAg
ICBzdHJ1Y3QgeyB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZFs0XTsgfSBfX3Jlc2VydmVkXzE0Owox
NDQ3NDogCjE0NDc0OiAgICAgICAgIHN0cnVjdCB7CjE0NDc0OiAgIHVuc2lnbmVkIGludCB2ZWN0
b3IgOiA4LAoxNDQ3NDogICAgZGVsaXZlcnlfbW9kZSA6IDMsCjE0NDc0OiAgICBkZXN0aW5hdGlv
bl9tb2RlIDogMSwKMTQ0NzQ6ICAgIGRlbGl2ZXJ5X3N0YXR1cyA6IDEsCjE0NDc0OiAgICBfX3Jl
c2VydmVkXzEgOiAxLAoxNDQ3NDogICAgbGV2ZWwgOiAxLAoxNDQ3NDogICAgdHJpZ2dlciA6IDEs
CjE0NDc0OiAgICBfX3Jlc2VydmVkXzIgOiAyLAoxNDQ3NDogICAgc2hvcnRoYW5kIDogMiwKMTQ0
NzQ6ICAgIF9fcmVzZXJ2ZWRfMyA6IDEyOwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgX19yZXNlcnZl
ZF80WzNdOwoxNDQ3NDogIH0gaWNyMTsKMTQ0NzQ6IAoxNDQ3NDogICAgICAgICBzdHJ1Y3Qgewox
NDQ3NDogICB1bmlvbiB7CjE0NDc0OiAgICB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZF8xIDogMjQs
CjE0NDc0OiAgICAgcGh5c19kZXN0IDogNCwKMTQ0NzQ6ICAgICBfX3Jlc2VydmVkXzIgOiA0Owox
NDQ3NDogICAgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRfMyA6IDI0LAoxNDQ3NDogICAgIGxvZ2lj
YWxfZGVzdCA6IDg7CjE0NDc0OiAgIH0gZGVzdDsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IF9fcmVz
ZXJ2ZWRfNFszXTsKMTQ0NzQ6ICB9IGljcjI7CjE0NDc0OiAKMTQ0NzQ6ICAgICAgICAgc3RydWN0
IHsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IHZlY3RvciA6IDgsCjE0NDc0OiAgICBfX3Jlc2VydmVk
XzEgOiA0LAoxNDQ3NDogICAgZGVsaXZlcnlfc3RhdHVzIDogMSwKMTQ0NzQ6ICAgIF9fcmVzZXJ2
ZWRfMiA6IDMsCjE0NDc0OiAgICBtYXNrIDogMSwKMTQ0NzQ6ICAgIHRpbWVyX21vZGUgOiAxLAox
NDQ3NDogICAgX19yZXNlcnZlZF8zIDogMTQ7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBfX3Jlc2Vy
dmVkXzRbM107CjE0NDc0OiAgfSBsdnRfdGltZXI7CjE0NDc0OiAKMTQ0NzQ6ICAgICAgICAgc3Ry
dWN0IHsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IHZlY3RvciA6IDgsCjE0NDc0OiAgICBkZWxpdmVy
eV9tb2RlIDogMywKMTQ0NzQ6ICAgIF9fcmVzZXJ2ZWRfMSA6IDEsCjE0NDc0OiAgICBkZWxpdmVy
eV9zdGF0dXMgOiAxLAoxNDQ3NDogICAgX19yZXNlcnZlZF8yIDogMywKMTQ0NzQ6ICAgIG1hc2sg
OiAxLAoxNDQ3NDogICAgX19yZXNlcnZlZF8zIDogMTU7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBf
X3Jlc2VydmVkXzRbM107CjE0NDc0OiAgfSBsdnRfdGhlcm1hbDsKMTQ0NzQ6IAoxNDQ3NDogICAg
ICAgICBzdHJ1Y3QgewoxNDQ3NDogICB1bnNpZ25lZCBpbnQgdmVjdG9yIDogOCwKMTQ0NzQ6ICAg
IGRlbGl2ZXJ5X21vZGUgOiAzLAoxNDQ3NDogICAgX19yZXNlcnZlZF8xIDogMSwKMTQ0NzQ6ICAg
IGRlbGl2ZXJ5X3N0YXR1cyA6IDEsCjE0NDc0OiAgICBfX3Jlc2VydmVkXzIgOiAzLAoxNDQ3NDog
ICAgbWFzayA6IDEsCjE0NDc0OiAgICBfX3Jlc2VydmVkXzMgOiAxNTsKMTQ0NzQ6ICAgdW5zaWdu
ZWQgaW50IF9fcmVzZXJ2ZWRfNFszXTsKMTQ0NzQ6ICB9IGx2dF9wYzsKMTQ0NzQ6IAoxNDQ3NDog
ICAgICAgICBzdHJ1Y3QgewoxNDQ3NDogICB1bnNpZ25lZCBpbnQgdmVjdG9yIDogOCwKMTQ0NzQ6
ICAgIGRlbGl2ZXJ5X21vZGUgOiAzLAoxNDQ3NDogICAgX19yZXNlcnZlZF8xIDogMSwKMTQ0NzQ6
ICAgIGRlbGl2ZXJ5X3N0YXR1cyA6IDEsCjE0NDc0OiAgICBwb2xhcml0eSA6IDEsCjE0NDc0OiAg
ICByZW1vdGVfaXJyIDogMSwKMTQ0NzQ6ICAgIHRyaWdnZXIgOiAxLAoxNDQ3NDogICAgbWFzayA6
IDEsCjE0NDc0OiAgICBfX3Jlc2VydmVkXzIgOiAxNTsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IF9f
cmVzZXJ2ZWRfM1szXTsKMTQ0NzQ6ICB9IGx2dF9saW50MDsKMTQ0NzQ6IAoxNDQ3NDogICAgICAg
ICBzdHJ1Y3QgewoxNDQ3NDogICB1bnNpZ25lZCBpbnQgdmVjdG9yIDogOCwKMTQ0NzQ6ICAgIGRl
bGl2ZXJ5X21vZGUgOiAzLAoxNDQ3NDogICAgX19yZXNlcnZlZF8xIDogMSwKMTQ0NzQ6ICAgIGRl
bGl2ZXJ5X3N0YXR1cyA6IDEsCjE0NDc0OiAgICBwb2xhcml0eSA6IDEsCjE0NDc0OiAgICByZW1v
dGVfaXJyIDogMSwKMTQ0NzQ6ICAgIHRyaWdnZXIgOiAxLAoxNDQ3NDogICAgbWFzayA6IDEsCjE0
NDc0OiAgICBfX3Jlc2VydmVkXzIgOiAxNTsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IF9fcmVzZXJ2
ZWRfM1szXTsKMTQ0NzQ6ICB9IGx2dF9saW50MTsKMTQ0NzQ6IAoxNDQ3NDogICAgICAgICBzdHJ1
Y3QgewoxNDQ3NDogICB1bnNpZ25lZCBpbnQgdmVjdG9yIDogOCwKMTQ0NzQ6ICAgIF9fcmVzZXJ2
ZWRfMSA6IDQsCjE0NDc0OiAgICBkZWxpdmVyeV9zdGF0dXMgOiAxLAoxNDQ3NDogICAgX19yZXNl
cnZlZF8yIDogMywKMTQ0NzQ6ICAgIG1hc2sgOiAxLAoxNDQ3NDogICAgX19yZXNlcnZlZF8zIDog
MTU7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBfX3Jlc2VydmVkXzRbM107CjE0NDc0OiAgfSBsdnRf
ZXJyb3I7CjE0NDc0OiAKMTQ0NzQ6ICAgICAgICAgc3RydWN0IHsKMTQ0NzQ6ICAgdW5zaWduZWQg
aW50IGluaXRpYWxfY291bnQ7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBfX3Jlc2VydmVkXzJbM107
CjE0NDc0OiAgfSB0aW1lcl9pY3I7CjE0NDc0OiAKMTQ0NzQ6ICAgICAgICAgY29uc3QKMTQ0NzQ6
ICBzdHJ1Y3QgewoxNDQ3NDogICB1bnNpZ25lZCBpbnQgY3Vycl9jb3VudDsKMTQ0NzQ6ICAgdW5z
aWduZWQgaW50IF9fcmVzZXJ2ZWRfMlszXTsKMTQ0NzQ6ICB9IHRpbWVyX2NjcjsKMTQ0NzQ6IAox
NDQ3NDogICAgICAgICBzdHJ1Y3QgeyB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZFs0XTsgfSBfX3Jl
c2VydmVkXzE2OwoxNDQ3NDogCjE0NDc0OiAgICAgICAgIHN0cnVjdCB7IHVuc2lnbmVkIGludCBf
X3Jlc2VydmVkWzRdOyB9IF9fcmVzZXJ2ZWRfMTc7CjE0NDc0OiAKMTQ0NzQ6ICAgICAgICAgc3Ry
dWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07IH0gX19yZXNlcnZlZF8xODsKMTQ0NzQ6
IAoxNDQ3NDogICAgICAgICBzdHJ1Y3QgeyB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZFs0XTsgfSBf
X3Jlc2VydmVkXzE5OwoxNDQ3NDogCjE0NDc0OiAgICAgICAgIHN0cnVjdCB7CjE0NDc0OiAgIHVu
c2lnbmVkIGludCBkaXZpc29yIDogNCwKMTQ0NzQ6ICAgIF9fcmVzZXJ2ZWRfMSA6IDI4OwoxNDQ3
NDogICB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZF8yWzNdOwoxNDQ3NDogIH0gdGltZXJfZGNyOwox
NDQ3NDogCjE0NDc0OiAgICAgICAgIHN0cnVjdCB7IHVuc2lnbmVkIGludCBfX3Jlc2VydmVkWzRd
OyB9IF9fcmVzZXJ2ZWRfMjA7CjE0NDc0OiAKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tl
ZCkpOwoxNDQ3NDogIyA0MzUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXBpY2RlZi5oIgoxNDQ3
NDogZW51bSBpb2FwaWNfaXJxX2Rlc3RpbmF0aW9uX3R5cGVzIHsKMTQ0NzQ6ICBkZXN0X0ZpeGVk
ID0gMCwKMTQ0NzQ6ICBkZXN0X0xvd2VzdFByaW8gPSAxLAoxNDQ3NDogIGRlc3RfU01JID0gMiwK
MTQ0NzQ6ICBkZXN0X19yZXNlcnZlZF8xID0gMywKMTQ0NzQ6ICBkZXN0X05NSSA9IDQsCjE0NDc0
OiAgZGVzdF9JTklUID0gNSwKMTQ0NzQ6ICBkZXN0X19yZXNlcnZlZF8yID0gNiwKMTQ0NzQ6ICBk
ZXN0X0V4dElOVCA9IDcKMTQ0NzQ6IH07CjE0NDc0OiAjIDkgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vbXBzcGVjLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBwaWNfbW9kZTsKMTQ0NzQ6
ICMgNDAgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXBzcGVjLmgiCjE0NDc0OiBleHRlcm4gdW5z
aWduZWQgbG9uZyBtcF9idXNfbm90X3BjaVsoKCgyNTYpICsgKChzaXplb2YobG9uZykgKiA4KSkg
LSAxKSAvICgoc2l6ZW9mKGxvbmcpICogOCkpKV07CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB1bnNp
Z25lZCBpbnQgYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkOwoxNDQ3NDogZXh0ZXJuIHU4IGJvb3Rf
Y3B1X2FwaWNfdmVyc2lvbjsKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBsb25nIG1wX2xhcGljX2Fk
ZHI7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBzbXBfZm91bmRfY29uZmlnOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGdldF9zbXBfY29uZmln
KHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgeDg2X2luaXQubXBwYXJzZS5nZXRfc21wX2NvbmZpZygw
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBlYXJseV9nZXRfc21wX2NvbmZpZyh2b2lk
KQoxNDQ3NDogewoxNDQ3NDogIHg4Nl9pbml0Lm1wcGFyc2UuZ2V0X3NtcF9jb25maWcoMSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZmluZF9zbXBfY29uZmlnKHZvaWQpCjE0NDc0OiB7
CjE0NDc0OiAgeDg2X2luaXQubXBwYXJzZS5maW5kX3NtcF9jb25maWcoKTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBlODIwX19tZW1ibG9ja19hbGxvY19yZXNl
cnZlZF9tcGNfbmV3KHZvaWQpOwoxNDQ3NDogZXh0ZXJuIGludCBlbmFibGVfdXBkYXRlX21wdGFi
bGU7CjE0NDc0OiBleHRlcm4gaW50IGRlZmF1bHRfbXBjX2FwaWNfaWQoc3RydWN0IG1wY19jcHUg
Km0pOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZGVmYXVsdF9zbXBfcmVhZF9tcGNfb2VtKHN0cnVjdCBt
cGNfdGFibGUgKm1wYyk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGRlZmF1bHRfbXBjX29l
bV9idXNfaW5mbyhzdHJ1Y3QgbXBjX2J1cyAqbSwgY2hhciAqc3RyKTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGRlZmF1bHRfZmluZF9zbXBfY29uZmlnKHZvaWQp
OwoxNDQ3NDogZXh0ZXJuIHZvaWQgZGVmYXVsdF9nZXRfc21wX2NvbmZpZyh1bnNpZ25lZCBpbnQg
ZWFybHkpOwoxNDQ3NDogIyA4OSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tcHNwZWMuaCIKMTQ0
NzQ6IGludCBnZW5lcmljX3Byb2Nlc3Nvcl9pbmZvKGludCBhcGljaWQsIGludCB2ZXJzaW9uKTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBwaHlzaWRfbWFzayB7CjE0NDc0
OiAgdW5zaWduZWQgbG9uZyBtYXNrWygoKDMyNzY4KSArICgoc2l6ZW9mKGxvbmcpICogOCkpIC0g
MSkgLyAoKHNpemVvZihsb25nKSAqIDgpKSldOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdHlw
ZWRlZiBzdHJ1Y3QgcGh5c2lkX21hc2sgcGh5c2lkX21hc2tfdDsKMTQ0NzQ6ICMgMTMyICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL21wc3BlYy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBwaHlzaWRz
X2NvZXJjZShwaHlzaWRfbWFza190ICptYXApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIG1hcC0+
bWFza1swXTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwaHlzaWRzX3Byb21vdGUodW5z
aWduZWQgbG9uZyBwaHlzaWRzLCBwaHlzaWRfbWFza190ICptYXApCjE0NDc0OiB7CjE0NDc0OiAg
Yml0bWFwX3plcm8oKCptYXApLm1hc2ssIDMyNzY4KTsKMTQ0NzQ6ICBtYXAtPm1hc2tbMF0gPSBw
aHlzaWRzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHBoeXNpZF9zZXRfbWFza19vZl9w
aHlzaWQoaW50IHBoeXNpZCwgcGh5c2lkX21hc2tfdCAqbWFwKQoxNDQ3NDogewoxNDQ3NDogIGJp
dG1hcF96ZXJvKCgqbWFwKS5tYXNrLCAzMjc2OCk7CjE0NDc0OiAgc2V0X2JpdChwaHlzaWQsICgq
bWFwKS5tYXNrKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogZXh0ZXJuIHBoeXNpZF9tYXNrX3QgcGh5c19jcHVfcHJlc2VudF9tYXA7CjE0NDc0OiAjIDEz
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NtcC5oIiAyCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vYXBpYy5oIiAxCjE0NDc0OiAjIDExICIuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L2FwaWMuaCIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9maXhtYXAuaCIgMQox
NDQ3NDogIyAyOSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9maXhtYXAuaCIKMTQ0NzQ6ICMgMSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hY3BpLmgiIDEKMTQ0NzQ6ICMgOSAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9hY3BpLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9hY3BpL3BkY19pbnRlbC5o
IiAxCjE0NDc0OiAjIDEwICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FjcGkuaCIgMgoxNDQ3NDog
CjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbnVtYS5oIiAxCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vdG9wb2xvZ3kuaCIgMQoxNDQ3NDogIyA4NSAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS90b3BvbG9neS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IG51bWFfbm9kZV9pZCh2b2lkKQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGludCBlYXJseV9jcHVfdG9fbm9kZShpbnQgY3B1KQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNldHVwX25v
ZGVfdG9fY3B1bWFza19tYXAodm9pZCkgeyB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAjIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy90b3BvbG9neS5oIiAxCjE0NDc0OiAjIDEwNCAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS90b3BvbG9neS5oIiAyCjE0NDc0OiAKMTQ0NzQ6IGV4dGVy
biBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqY3B1X2NvcmVncm91cF9tYXNrKGludCBjcHUpOwoxNDQ3
NDogIyAxMTggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vdG9wb2xvZ3kuaCIKMTQ0NzQ6IGV4dGVy
biB1bnNpZ25lZCBpbnQgX19tYXhfbG9naWNhbF9wYWNrYWdlczsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBleHRlcm4gdW5zaWduZWQgaW50IF9fbWF4X2RpZV9wZXJfcGFja2FnZTsKMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgaW50IHRvcG9sb2d5X21heF9kaWVfcGVyX3BhY2thZ2Uodm9pZCkKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gX19tYXhfZGllX3Blcl9wYWNrYWdlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBleHRlcm4gaW50IF9fbWF4X3NtdF90aHJlYWRzOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgdG9wb2xv
Z3lfbWF4X3NtdF90aHJlYWRzKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIF9fbWF4X3Nt
dF90aHJlYWRzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBpbnQgdG9wb2xvZ3lfdXBkYXRlX3Bh
Y2thZ2VfbWFwKHVuc2lnbmVkIGludCBhcGljaWQsIHVuc2lnbmVkIGludCBjcHUpOwoxNDQ3NDog
aW50IHRvcG9sb2d5X3VwZGF0ZV9kaWVfbWFwKHVuc2lnbmVkIGludCBkaWVpZCwgdW5zaWduZWQg
aW50IGNwdSk7CjE0NDc0OiBpbnQgdG9wb2xvZ3lfcGh5c190b19sb2dpY2FsX3BrZyh1bnNpZ25l
ZCBpbnQgcGtnKTsKMTQ0NzQ6IGludCB0b3BvbG9neV9waHlzX3RvX2xvZ2ljYWxfZGllKHVuc2ln
bmVkIGludCBkaWUsIHVuc2lnbmVkIGludCBjcHUpOwoxNDQ3NDogYm9vbCB0b3BvbG9neV9pc19w
cmltYXJ5X3RocmVhZCh1bnNpZ25lZCBpbnQgY3B1KTsKMTQ0NzQ6IGJvb2wgdG9wb2xvZ3lfc210
X3N1cHBvcnRlZCh2b2lkKTsKMTQ0NzQ6ICMgMTU2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Rv
cG9sb2d5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIGFyY2hfZml4X3BoeXNfcGFja2FnZV9pZChpbnQgbnVtLCB1
MzIgc2xvdCkKMTQ0NzQ6IHsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBjaV9idXM7
CjE0NDc0OiBpbnQgeDg2X3BjaV9yb290X2J1c19ub2RlKGludCBidXMpOwoxNDQ3NDogdm9pZCB4
ODZfcGNpX3Jvb3RfYnVzX3Jlc291cmNlcyhpbnQgYnVzLCBzdHJ1Y3QgbGlzdF9oZWFkICpyZXNv
dXJjZXMpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gYm9vbCB4ODZfdG9wb2xvZ3lfdXBkYXRlOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVf
Xygoc2VjdGlvbigiLmRhdGEuLnBlcmNwdSIgIi4ucmVhZF9tb3N0bHkiKSkpIF9fdHlwZW9mX18o
aW50KSBzY2hlZF9jb3JlX3ByaW9yaXR5OwoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGludCBfX2F0
dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmRhdGEuLnJlYWRfbW9zdGx5IikpKSBzeXNjdGxfc2No
ZWRfaXRtdF9lbmFibGVkOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZvaWQgc2NoZWRfc2V0X2l0
bXRfY29yZV9wcmlvKGludCBwcmlvLCBpbnQgY29yZV9jcHUpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGludCBzY2hlZF9zZXRfaXRtdF9zdXBwb3J0KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHZvaWQgc2NoZWRfY2xlYXJfaXRtdF9zdXBwb3J0KHZvaWQpOwoxNDQ3NDogIyA4ICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL251bWEuaCIgMgoxNDQ3NDogIyA0NSAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9udW1hLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNldF9hcGljaWRfdG9fbm9kZShpbnQgYXBpY2lk
LCBzMTYgbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IG51bWFfY3B1
X25vZGUoaW50IGNwdSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKC0xKTsKMTQ0NzQ6IH0KMTQ0
NzQ6ICMgNjYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbnVtYS5oIgoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBudW1h
X3NldF9ub2RlKGludCBjcHUsIGludCBub2RlKSB7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbnVtYV9jbGVhcl9u
b2RlKGludCBjcHUpIHsgfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbml0X2NwdV90b19ub2RlKHZvaWQpIHsgfQox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBudW1hX2FkZF9jcHUoaW50IGNwdSkgeyB9CjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIG51bWFfcmVt
b3ZlX2NwdShpbnQgY3B1KSB7IH0KMTQ0NzQ6ICMgMTIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
YWNwaS5oIiAyCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZml4bWFwLmgiIDEK
MTQ0NzQ6ICMgMTMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYWNwaS5oIiAyCjE0NDc0OiAjIDIz
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FjcGkuaCIKMTQ0NzQ6IGV4dGVybiBpbnQgYWNwaV9s
YXBpYzsKMTQ0NzQ6IGV4dGVybiBpbnQgYWNwaV9pb2FwaWM7CjE0NDc0OiBleHRlcm4gaW50IGFj
cGlfbm9pcnE7CjE0NDc0OiBleHRlcm4gaW50IGFjcGlfc3RyaWN0OwoxNDQ3NDogZXh0ZXJuIGlu
dCBhY3BpX2Rpc2FibGVkOwoxNDQ3NDogZXh0ZXJuIGludCBhY3BpX3BjaV9kaXNhYmxlZDsKMTQ0
NzQ6IGV4dGVybiBpbnQgYWNwaV9za2lwX3RpbWVyX292ZXJyaWRlOwoxNDQ3NDogZXh0ZXJuIGlu
dCBhY3BpX3VzZV90aW1lcl9vdmVycmlkZTsKMTQ0NzQ6IGV4dGVybiBpbnQgYWNwaV9maXhfcGlu
Ml9wb2xhcml0eTsKMTQ0NzQ6IGV4dGVybiBpbnQgYWNwaV9kaXNhYmxlX2NtY2ZmOwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gdTggYWNwaV9zY2lfZmxhZ3M7CjE0NDc0OiBleHRlcm4gdTMyIGFjcGlf
c2NpX292ZXJyaWRlX2dzaTsKMTQ0NzQ6IHZvaWQgYWNwaV9waWNfc2NpX3NldF90cmlnZ2VyKHVu
c2lnbmVkIGludCwgdTE2KTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRldmljZTsKMTQ0NzQ6IAox
NDQ3NDogZXh0ZXJuIGludCAoKl9fYWNwaV9yZWdpc3Rlcl9nc2kpKHN0cnVjdCBkZXZpY2UgKmRl
diwgdTMyIGdzaSwKMTQ0NzQ6ICAgICAgIGludCB0cmlnZ2VyLCBpbnQgcG9sYXJpdHkpOwoxNDQ3
NDogZXh0ZXJuIHZvaWQgKCpfX2FjcGlfdW5yZWdpc3Rlcl9nc2kpKHUzMiBnc2kpOwoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGRpc2FibGVfYWNwaSh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIGFjcGlfZGlz
YWJsZWQgPSAxOwoxNDQ3NDogIGFjcGlfcGNpX2Rpc2FibGVkID0gMTsKMTQ0NzQ6ICBhY3BpX25v
aXJxID0gMTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBhY3BpX2dzaV90b19p
cnEodTMyIGdzaSwgdW5zaWduZWQgaW50ICppcnEpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGFjcGlf
bm9pcnFfc2V0KHZvaWQpIHsgYWNwaV9ub2lycSA9IDE7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYWNwaV9kaXNh
YmxlX3BjaSh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIGFjcGlfcGNpX2Rpc2FibGVkID0gMTsKMTQ0
NzQ6ICBhY3BpX25vaXJxX3NldCgpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4
dGVybiBpbnQgKCphY3BpX3N1c3BlbmRfbG93bGV2ZWwpKHZvaWQpOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHVuc2lnbmVkIGxvbmcgYWNwaV9nZXRfd2FrZXVwX2FkZHJlc3Modm9pZCk7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBhY3BpX3Byb2Nl
c3Nvcl9jc3RhdGVfY2hlY2sodW5zaWduZWQgaW50IG1heF9jc3RhdGUpCjE0NDc0OiB7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaWYgKGJv
b3RfY3B1X2RhdGEueDg2ID09IDB4MEYgJiYKMTQ0NzQ6ICAgICAgYm9vdF9jcHVfZGF0YS54ODZf
dmVuZG9yID09IDIgJiYKMTQ0NzQ6ICAgICAgYm9vdF9jcHVfZGF0YS54ODZfbW9kZWwgPD0gMHgw
NSAmJgoxNDQ3NDogICAgICBib290X2NwdV9kYXRhLng4Nl9zdGVwcGluZyA8IDB4MEEpCjE0NDc0
OiAgIHJldHVybiAxOwoxNDQ3NDogIGVsc2UgaWYgKChfX2J1aWx0aW5fY29uc3RhbnRfcCgoMTkq
MzIgKyAoNCkpKSAmJiAoICgoKCgxOSozMiArICg0KSkpPj41KT09KDApICYmICgxVUw8PCgoKDE5
KjMyICsgKDQpKSkmMzEpICYgKCgxPDwoKCAwKjMyKyAwKSAmIDMxKSl8MHwoMTw8KCggMCozMisg
NSkgJiAzMSkpfCgxPDwoKCAwKjMyKyA2KSAmIDMxKSl8ICgxPDwoKCAwKjMyKyA4KSAmIDMxKSl8
MHwoMTw8KCggMCozMisyNCkgJiAzMSkpfCgxPDwoKCAwKjMyKzE1KSAmIDMxKSl8ICgxPDwoKCAw
KjMyKzI1KSAmIDMxKSl8KDE8PCgoIDAqMzIrMjYpICYgMzEpKSkgKSkgfHwgKCgoKDE5KjMyICsg
KDQpKSk+PjUpPT0oMSkgJiYgKDFVTDw8KCgoMTkqMzIgKyAoNCkpKSYzMSkgJiAoKDE8PCgoIDEq
MzIrMjkpICYgMzEpKXwwKSApKSB8fCAoKCgoMTkqMzIgKyAoNCkpKT4+NSk9PSgyKSAmJiAoMVVM
PDwoKCgxOSozMiArICg0KSkpJjMxKSAmIDAgKSkgfHwgKCgoKDE5KjMyICsgKDQpKSk+PjUpPT0o
MykgJiYgKDFVTDw8KCgoMTkqMzIgKyAoNCkpKSYzMSkgJiAoKDE8PCgoIDMqMzIrMjApICYgMzEp
KSkgKSkgfHwgKCgoKDE5KjMyICsgKDQpKSk+PjUpPT0oNCkgJiYgKDFVTDw8KCgoMTkqMzIgKyAo
NCkpKSYzMSkgJiAoMCkgKSkgfHwgKCgoKDE5KjMyICsgKDQpKSk+PjUpPT0oNSkgJiYgKDFVTDw8
KCgoMTkqMzIgKyAoNCkpKSYzMSkgJiAwICkpIHx8ICgoKCgxOSozMiArICg0KSkpPj41KT09KDYp
ICYmICgxVUw8PCgoKDE5KjMyICsgKDQpKSkmMzEpICYgMCApKSB8fCAoKCgoMTkqMzIgKyAoNCkp
KT4+NSk9PSg3KSAmJiAoMVVMPDwoKCgxOSozMiArICg0KSkpJjMxKSAmIDAgKSkgfHwgKCgoKDE5
KjMyICsgKDQpKSk+PjUpPT0oOCkgJiYgKDFVTDw8KCgoMTkqMzIgKyAoNCkpKSYzMSkgJiAwICkp
IHx8ICgoKCgxOSozMiArICg0KSkpPj41KT09KDkpICYmICgxVUw8PCgoKDE5KjMyICsgKDQpKSkm
MzEpICYgMCApKSB8fCAoKCgoMTkqMzIgKyAoNCkpKT4+NSk9PSgxMCkgJiYgKDFVTDw8KCgoMTkq
MzIgKyAoNCkpKSYzMSkgJiAwICkpIHx8ICgoKCgxOSozMiArICg0KSkpPj41KT09KDExKSAmJiAo
MVVMPDwoKCgxOSozMiArICg0KSkpJjMxKSAmIDAgKSkgfHwgKCgoKDE5KjMyICsgKDQpKSk+PjUp
PT0oMTIpICYmICgxVUw8PCgoKDE5KjMyICsgKDQpKSkmMzEpICYgMCApKSB8fCAoKCgoMTkqMzIg
KyAoNCkpKT4+NSk9PSgxMykgJiYgKDFVTDw8KCgoMTkqMzIgKyAoNCkpKSYzMSkgJiAwICkpIHx8
ICgoKCgxOSozMiArICg0KSkpPj41KT09KDE0KSAmJiAoMVVMPDwoKCgxOSozMiArICg0KSkpJjMx
KSAmIDAgKSkgfHwgKCgoKDE5KjMyICsgKDQpKSk+PjUpPT0oMTUpICYmICgxVUw8PCgoKDE5KjMy
ICsgKDQpKSkmMzEpICYgMCApKSB8fCAoKCgoMTkqMzIgKyAoNCkpKT4+NSk9PSgxNikgJiYgKDFV
TDw8KCgoMTkqMzIgKyAoNCkpKSYzMSkgJiAwICkpIHx8ICgoKCgxOSozMiArICg0KSkpPj41KT09
KDE3KSAmJiAoMVVMPDwoKCgxOSozMiArICg0KSkpJjMxKSAmIDAgKSkgfHwgKCgoKDE5KjMyICsg
KDQpKSk+PjUpPT0oMTgpICYmICgxVUw8PCgoKDE5KjMyICsgKDQpKSkmMzEpICYgMCApKSB8fCAo
KGludCkoc2l6ZW9mKHN0cnVjdCB7IGludDooLSEhKDE5ICE9IDE5KSk7IH0pKSkgfHwgKChpbnQp
KHNpemVvZihzdHJ1Y3QgeyBpbnQ6KC0hISgxOSAhPSAxOSkpOyB9KSkpKSA/IDEgOiB0ZXN0X2Jp
dCgoMTkqMzIgKyAoNCkpLCAodW5zaWduZWQgbG9uZyAqKSgoJmJvb3RfY3B1X2RhdGEpLT54ODZf
Y2FwYWJpbGl0eSkpKSkKMTQ0NzQ6ICAgcmV0dXJuIDE7CjE0NDc0OiAgZWxzZQoxNDQ3NDogICBy
ZXR1cm4gbWF4X2NzdGF0ZTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBhcmNoX2hhc19h
Y3BpX3BkYyh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHN0cnVjdCBjcHVpbmZvX3g4NiAqYyA9ICYo
Kih7IGRvIHsgY29uc3Qgdm9pZCAqX192cHBfdmVyaWZ5ID0gKHR5cGVvZigoJihjcHVfaW5mbykp
ICsgMCkpKCh2b2lkICopMCk7ICh2b2lkKV9fdnBwX3ZlcmlmeTsgfSB3aGlsZSAoMCk7ICh7IHVu
c2lnbmVkIGxvbmcgX19wdHI7IF9fYXNtX18gKCIiIDogIj1yIihfX3B0cikgOiAiMCIoKHR5cGVv
ZigqKCgmKGNwdV9pbmZvKSkpKSAqKSgoJihjcHVfaW5mbykpKSkpOyAodHlwZW9mKCh0eXBlb2Yo
KigoJihjcHVfaW5mbykpKSkgKikoKCYoY3B1X2luZm8pKSkpKSAoX19wdHIgKyAoKChfX3Blcl9j
cHVfb2Zmc2V0WygwKV0pKSkpOyB9KTsgfSkpOwoxNDQ3NDogIHJldHVybiAoYy0+eDg2X3ZlbmRv
ciA9PSAwIHx8CjE0NDc0OiAgIGMtPng4Nl92ZW5kb3IgPT0gNSk7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgYXJjaF9hY3BpX3NldF9wZGNfYml0cyh1MzIgKmJ1ZikKMTQ0NzQ6IHsKMTQ0
NzQ6ICBzdHJ1Y3QgY3B1aW5mb194ODYgKmMgPSAmKCooeyBkbyB7IGNvbnN0IHZvaWQgKl9fdnBw
X3ZlcmlmeSA9ICh0eXBlb2YoKCYoY3B1X2luZm8pKSArIDApKSgodm9pZCAqKTApOyAodm9pZClf
X3ZwcF92ZXJpZnk7IH0gd2hpbGUgKDApOyAoeyB1bnNpZ25lZCBsb25nIF9fcHRyOyBfX2FzbV9f
ICgiIiA6ICI9ciIoX19wdHIpIDogIjAiKCh0eXBlb2YoKigoJihjcHVfaW5mbykpKSkgKikoKCYo
Y3B1X2luZm8pKSkpKTsgKHR5cGVvZigodHlwZW9mKCooKCYoY3B1X2luZm8pKSkpICopKCgmKGNw
dV9pbmZvKSkpKSkgKF9fcHRyICsgKCgoX19wZXJfY3B1X29mZnNldFsoMCldKSkpKTsgfSk7IH0p
KTsKMTQ0NzQ6IAoxNDQ3NDogIGJ1ZlsyXSB8PSAoKDB4MDAxMCkgfCAoMHgwMDA4KSB8ICgweDAw
MDIpIHwgKDB4MDEwMCkgfCAoMHgwMjAwKSk7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoKF9fYnVpbHRp
bl9jb25zdGFudF9wKCggNCozMisgNykpICYmICggKCgoKCA0KjMyKyA3KSk+PjUpPT0oMCkgJiYg
KDFVTDw8KCgoIDQqMzIrIDcpKSYzMSkgJiAoKDE8PCgoIDAqMzIrIDApICYgMzEpKXwwfCgxPDwo
KCAwKjMyKyA1KSAmIDMxKSl8KDE8PCgoIDAqMzIrIDYpICYgMzEpKXwgKDE8PCgoIDAqMzIrIDgp
ICYgMzEpKXwwfCgxPDwoKCAwKjMyKzI0KSAmIDMxKSl8KDE8PCgoIDAqMzIrMTUpICYgMzEpKXwg
KDE8PCgoIDAqMzIrMjUpICYgMzEpKXwoMTw8KCggMCozMisyNikgJiAzMSkpKSApKSB8fCAoKCgo
IDQqMzIrIDcpKT4+NSk9PSgxKSAmJiAoMVVMPDwoKCggNCozMisgNykpJjMxKSAmICgoMTw8KCgg
MSozMisyOSkgJiAzMSkpfDApICkpIHx8ICgoKCggNCozMisgNykpPj41KT09KDIpICYmICgxVUw8
PCgoKCA0KjMyKyA3KSkmMzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDcpKT4+NSk9PSgzKSAmJiAo
MVVMPDwoKCggNCozMisgNykpJjMxKSAmICgoMTw8KCggMyozMisyMCkgJiAzMSkpKSApKSB8fCAo
KCgoIDQqMzIrIDcpKT4+NSk9PSg0KSAmJiAoMVVMPDwoKCggNCozMisgNykpJjMxKSAmICgwKSAp
KSB8fCAoKCgoIDQqMzIrIDcpKT4+NSk9PSg1KSAmJiAoMVVMPDwoKCggNCozMisgNykpJjMxKSAm
IDAgKSkgfHwgKCgoKCA0KjMyKyA3KSk+PjUpPT0oNikgJiYgKDFVTDw8KCgoIDQqMzIrIDcpKSYz
MSkgJiAwICkpIHx8ICgoKCggNCozMisgNykpPj41KT09KDcpICYmICgxVUw8PCgoKCA0KjMyKyA3
KSkmMzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDcpKT4+NSk9PSg4KSAmJiAoMVVMPDwoKCggNCoz
MisgNykpJjMxKSAmIDAgKSkgfHwgKCgoKCA0KjMyKyA3KSk+PjUpPT0oOSkgJiYgKDFVTDw8KCgo
IDQqMzIrIDcpKSYzMSkgJiAwICkpIHx8ICgoKCggNCozMisgNykpPj41KT09KDEwKSAmJiAoMVVM
PDwoKCggNCozMisgNykpJjMxKSAmIDAgKSkgfHwgKCgoKCA0KjMyKyA3KSk+PjUpPT0oMTEpICYm
ICgxVUw8PCgoKCA0KjMyKyA3KSkmMzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDcpKT4+NSk9PSgx
MikgJiYgKDFVTDw8KCgoIDQqMzIrIDcpKSYzMSkgJiAwICkpIHx8ICgoKCggNCozMisgNykpPj41
KT09KDEzKSAmJiAoMVVMPDwoKCggNCozMisgNykpJjMxKSAmIDAgKSkgfHwgKCgoKCA0KjMyKyA3
KSk+PjUpPT0oMTQpICYmICgxVUw8PCgoKCA0KjMyKyA3KSkmMzEpICYgMCApKSB8fCAoKCgoIDQq
MzIrIDcpKT4+NSk9PSgxNSkgJiYgKDFVTDw8KCgoIDQqMzIrIDcpKSYzMSkgJiAwICkpIHx8ICgo
KCggNCozMisgNykpPj41KT09KDE2KSAmJiAoMVVMPDwoKCggNCozMisgNykpJjMxKSAmIDAgKSkg
fHwgKCgoKCA0KjMyKyA3KSk+PjUpPT0oMTcpICYmICgxVUw8PCgoKCA0KjMyKyA3KSkmMzEpICYg
MCApKSB8fCAoKCgoIDQqMzIrIDcpKT4+NSk9PSgxOCkgJiYgKDFVTDw8KCgoIDQqMzIrIDcpKSYz
MSkgJiAwICkpIHx8ICgoaW50KShzaXplb2Yoc3RydWN0IHsgaW50OigtISEoMTkgIT0gMTkpKTsg
fSkpKSB8fCAoKGludCkoc2l6ZW9mKHN0cnVjdCB7IGludDooLSEhKDE5ICE9IDE5KSk7IH0pKSkp
ID8gMSA6IHRlc3RfYml0KCggNCozMisgNyksICh1bnNpZ25lZCBsb25nICopKChjKS0+eDg2X2Nh
cGFiaWxpdHkpKSkpCjE0NDc0OiAgIGJ1ZlsyXSB8PSAoKDB4MDAwOCkgfCAoMHgwMDAyKSB8ICgw
eDAwMjApIHwgKDB4MDgwMCkgfCAoMHgwMDAxKSk7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoKF9fYnVp
bHRpbl9jb25zdGFudF9wKCggMCozMisyMikpICYmICggKCgoKCAwKjMyKzIyKSk+PjUpPT0oMCkg
JiYgKDFVTDw8KCgoIDAqMzIrMjIpKSYzMSkgJiAoKDE8PCgoIDAqMzIrIDApICYgMzEpKXwwfCgx
PDwoKCAwKjMyKyA1KSAmIDMxKSl8KDE8PCgoIDAqMzIrIDYpICYgMzEpKXwgKDE8PCgoIDAqMzIr
IDgpICYgMzEpKXwwfCgxPDwoKCAwKjMyKzI0KSAmIDMxKSl8KDE8PCgoIDAqMzIrMTUpICYgMzEp
KXwgKDE8PCgoIDAqMzIrMjUpICYgMzEpKXwoMTw8KCggMCozMisyNikgJiAzMSkpKSApKSB8fCAo
KCgoIDAqMzIrMjIpKT4+NSk9PSgxKSAmJiAoMVVMPDwoKCggMCozMisyMikpJjMxKSAmICgoMTw8
KCggMSozMisyOSkgJiAzMSkpfDApICkpIHx8ICgoKCggMCozMisyMikpPj41KT09KDIpICYmICgx
VUw8PCgoKCAwKjMyKzIyKSkmMzEpICYgMCApKSB8fCAoKCgoIDAqMzIrMjIpKT4+NSk9PSgzKSAm
JiAoMVVMPDwoKCggMCozMisyMikpJjMxKSAmICgoMTw8KCggMyozMisyMCkgJiAzMSkpKSApKSB8
fCAoKCgoIDAqMzIrMjIpKT4+NSk9PSg0KSAmJiAoMVVMPDwoKCggMCozMisyMikpJjMxKSAmICgw
KSApKSB8fCAoKCgoIDAqMzIrMjIpKT4+NSk9PSg1KSAmJiAoMVVMPDwoKCggMCozMisyMikpJjMx
KSAmIDAgKSkgfHwgKCgoKCAwKjMyKzIyKSk+PjUpPT0oNikgJiYgKDFVTDw8KCgoIDAqMzIrMjIp
KSYzMSkgJiAwICkpIHx8ICgoKCggMCozMisyMikpPj41KT09KDcpICYmICgxVUw8PCgoKCAwKjMy
KzIyKSkmMzEpICYgMCApKSB8fCAoKCgoIDAqMzIrMjIpKT4+NSk9PSg4KSAmJiAoMVVMPDwoKCgg
MCozMisyMikpJjMxKSAmIDAgKSkgfHwgKCgoKCAwKjMyKzIyKSk+PjUpPT0oOSkgJiYgKDFVTDw8
KCgoIDAqMzIrMjIpKSYzMSkgJiAwICkpIHx8ICgoKCggMCozMisyMikpPj41KT09KDEwKSAmJiAo
MVVMPDwoKCggMCozMisyMikpJjMxKSAmIDAgKSkgfHwgKCgoKCAwKjMyKzIyKSk+PjUpPT0oMTEp
ICYmICgxVUw8PCgoKCAwKjMyKzIyKSkmMzEpICYgMCApKSB8fCAoKCgoIDAqMzIrMjIpKT4+NSk9
PSgxMikgJiYgKDFVTDw8KCgoIDAqMzIrMjIpKSYzMSkgJiAwICkpIHx8ICgoKCggMCozMisyMikp
Pj41KT09KDEzKSAmJiAoMVVMPDwoKCggMCozMisyMikpJjMxKSAmIDAgKSkgfHwgKCgoKCAwKjMy
KzIyKSk+PjUpPT0oMTQpICYmICgxVUw8PCgoKCAwKjMyKzIyKSkmMzEpICYgMCApKSB8fCAoKCgo
IDAqMzIrMjIpKT4+NSk9PSgxNSkgJiYgKDFVTDw8KCgoIDAqMzIrMjIpKSYzMSkgJiAwICkpIHx8
ICgoKCggMCozMisyMikpPj41KT09KDE2KSAmJiAoMVVMPDwoKCggMCozMisyMikpJjMxKSAmIDAg
KSkgfHwgKCgoKCAwKjMyKzIyKSk+PjUpPT0oMTcpICYmICgxVUw8PCgoKCAwKjMyKzIyKSkmMzEp
ICYgMCApKSB8fCAoKCgoIDAqMzIrMjIpKT4+NSk9PSgxOCkgJiYgKDFVTDw8KCgoIDAqMzIrMjIp
KSYzMSkgJiAwICkpIHx8ICgoaW50KShzaXplb2Yoc3RydWN0IHsgaW50OigtISEoMTkgIT0gMTkp
KTsgfSkpKSB8fCAoKGludCkoc2l6ZW9mKHN0cnVjdCB7IGludDooLSEhKDE5ICE9IDE5KSk7IH0p
KSkpID8gMSA6IHRlc3RfYml0KCggMCozMisyMiksICh1bnNpZ25lZCBsb25nICopKChjKS0+eDg2
X2NhcGFiaWxpdHkpKSkpCjE0NDc0OiAgIGJ1ZlsyXSB8PSAoMHgwMDA0KTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGlmICghKF9fYnVpbHRpbl9jb25zdGFudF9wKCgg
NCozMisgMykpICYmICggKCgoKCA0KjMyKyAzKSk+PjUpPT0oMCkgJiYgKDFVTDw8KCgoIDQqMzIr
IDMpKSYzMSkgJiAoKDE8PCgoIDAqMzIrIDApICYgMzEpKXwwfCgxPDwoKCAwKjMyKyA1KSAmIDMx
KSl8KDE8PCgoIDAqMzIrIDYpICYgMzEpKXwgKDE8PCgoIDAqMzIrIDgpICYgMzEpKXwwfCgxPDwo
KCAwKjMyKzI0KSAmIDMxKSl8KDE8PCgoIDAqMzIrMTUpICYgMzEpKXwgKDE8PCgoIDAqMzIrMjUp
ICYgMzEpKXwoMTw8KCggMCozMisyNikgJiAzMSkpKSApKSB8fCAoKCgoIDQqMzIrIDMpKT4+NSk9
PSgxKSAmJiAoMVVMPDwoKCggNCozMisgMykpJjMxKSAmICgoMTw8KCggMSozMisyOSkgJiAzMSkp
fDApICkpIHx8ICgoKCggNCozMisgMykpPj41KT09KDIpICYmICgxVUw8PCgoKCA0KjMyKyAzKSkm
MzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDMpKT4+NSk9PSgzKSAmJiAoMVVMPDwoKCggNCozMisg
MykpJjMxKSAmICgoMTw8KCggMyozMisyMCkgJiAzMSkpKSApKSB8fCAoKCgoIDQqMzIrIDMpKT4+
NSk9PSg0KSAmJiAoMVVMPDwoKCggNCozMisgMykpJjMxKSAmICgwKSApKSB8fCAoKCgoIDQqMzIr
IDMpKT4+NSk9PSg1KSAmJiAoMVVMPDwoKCggNCozMisgMykpJjMxKSAmIDAgKSkgfHwgKCgoKCA0
KjMyKyAzKSk+PjUpPT0oNikgJiYgKDFVTDw8KCgoIDQqMzIrIDMpKSYzMSkgJiAwICkpIHx8ICgo
KCggNCozMisgMykpPj41KT09KDcpICYmICgxVUw8PCgoKCA0KjMyKyAzKSkmMzEpICYgMCApKSB8
fCAoKCgoIDQqMzIrIDMpKT4+NSk9PSg4KSAmJiAoMVVMPDwoKCggNCozMisgMykpJjMxKSAmIDAg
KSkgfHwgKCgoKCA0KjMyKyAzKSk+PjUpPT0oOSkgJiYgKDFVTDw8KCgoIDQqMzIrIDMpKSYzMSkg
JiAwICkpIHx8ICgoKCggNCozMisgMykpPj41KT09KDEwKSAmJiAoMVVMPDwoKCggNCozMisgMykp
JjMxKSAmIDAgKSkgfHwgKCgoKCA0KjMyKyAzKSk+PjUpPT0oMTEpICYmICgxVUw8PCgoKCA0KjMy
KyAzKSkmMzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDMpKT4+NSk9PSgxMikgJiYgKDFVTDw8KCgo
IDQqMzIrIDMpKSYzMSkgJiAwICkpIHx8ICgoKCggNCozMisgMykpPj41KT09KDEzKSAmJiAoMVVM
PDwoKCggNCozMisgMykpJjMxKSAmIDAgKSkgfHwgKCgoKCA0KjMyKyAzKSk+PjUpPT0oMTQpICYm
ICgxVUw8PCgoKCA0KjMyKyAzKSkmMzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDMpKT4+NSk9PSgx
NSkgJiYgKDFVTDw8KCgoIDQqMzIrIDMpKSYzMSkgJiAwICkpIHx8ICgoKCggNCozMisgMykpPj41
KT09KDE2KSAmJiAoMVVMPDwoKCggNCozMisgMykpJjMxKSAmIDAgKSkgfHwgKCgoKCA0KjMyKyAz
KSk+PjUpPT0oMTcpICYmICgxVUw8PCgoKCA0KjMyKyAzKSkmMzEpICYgMCApKSB8fCAoKCgoIDQq
MzIrIDMpKT4+NSk9PSgxOCkgJiYgKDFVTDw8KCgoIDQqMzIrIDMpKSYzMSkgJiAwICkpIHx8ICgo
aW50KShzaXplb2Yoc3RydWN0IHsgaW50OigtISEoMTkgIT0gMTkpKTsgfSkpKSB8fCAoKGludCko
c2l6ZW9mKHN0cnVjdCB7IGludDooLSEhKDE5ICE9IDE5KSk7IH0pKSkpID8gMSA6IHRlc3RfYml0
KCggNCozMisgMyksICh1bnNpZ25lZCBsb25nICopKChjKS0+eDg2X2NhcGFiaWxpdHkpKSkpCjE0
NDc0OiAgIGJ1ZlsyXSAmPSB+KCgweDAyMDApKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9v
bCBhY3BpX2hhc19jcHVfaW5fbWFkdCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAhIWFj
cGlfbGFwaWM7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBhY3BpX2FyY2hf
c2V0X3Jvb3RfcG9pbnRlcih1NjQgYWRkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICB4ODZfaW5pdC5hY3Bp
LnNldF9yb290X3BvaW50ZXIoYWRkcik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dTY0IGFjcGlfYXJjaF9nZXRfcm9vdF9wb2ludGVyKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuIHg4Nl9pbml0LmFjcGkuZ2V0X3Jvb3RfcG9pbnRlcigpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiB2b2lkIGFjcGlfZ2VuZXJpY19yZWR1Y2VkX2h3X2luaXQodm9pZCk7CjE0NDc0OiAKMTQ0
NzQ6IHZvaWQgeDg2X2RlZmF1bHRfc2V0X3Jvb3RfcG9pbnRlcih1NjQgYWRkcik7CjE0NDc0OiB1
NjQgeDg2X2RlZmF1bHRfZ2V0X3Jvb3RfcG9pbnRlcih2b2lkKTsKMTQ0NzQ6ICMgMTY1ICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL2FjcGkuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHBncHJvdF90IGFyY2hfYXBlaV9nZXRf
bWVtX2F0dHJpYnV0ZShwaHlzX2FkZHJfdCBhZGRyKQoxNDQ3NDogewoxNDQ3NDogIyAxODAgIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vYWNwaS5oIgoxNDQ3NDogIHJldHVybiAoKHBncHJvdF90KSB7
ICgoKCgoKHB0ZXZhbF90KSgxKSkgPDwgMCl8KCgocHRldmFsX3QpKDEpKSA8PCAxKXwgMHwoKChw
dGV2YWxfdCkoMSkpIDw8IDUpfCgoKHB0ZXZhbF90KSgxKSkgPDwgNjMpfCgoKHB0ZXZhbF90KSgx
KSkgPDwgNil8IDB8KCgocHRldmFsX3QpKDEpKSA8PCA4KSkgfCAwKSAmIF9fZGVmYXVsdF9rZXJu
ZWxfcHRlX21hc2spIH0gKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMzAgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vZml4bWFwLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3ZzeXNjYWxs
LmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB2c3lzY2Fs
bF9udW0gewoxNDQ3NDogIF9fTlJfdmdldHRpbWVvZmRheSwKMTQ0NzQ6ICBfX05SX3Z0aW1lLAox
NDQ3NDogIF9fTlJfdmdldGNwdSwKMTQ0NzQ6IH07CjE0NDc0OiAjIDM3ICIuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL2ZpeG1hcC5oIiAyCjE0NDc0OiAjIDc1ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L2ZpeG1hcC5oIgoxNDQ3NDogZW51bSBmaXhlZF9hZGRyZXNzZXMgewoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgVlNZU0NBTExfUEFHRSA9ICgoKCgoKCgtMTBVTCA8PCAy
MCkgKyAoKDFVTCkgPDwgMTIpKS0xKSB8ICgoX190eXBlb2ZfXygoLTEwVUwgPDwgMjApICsgKCgx
VUwpIDw8IDEyKSkpKCgxPDwyMSktMSkpKSsxKSAtICgoMVVMKSA8PCAxMikpIC0gKC0xMFVMIDw8
IDIwKSkgPj4gMTIsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIEZJWF9EQkdQX0JBU0UsCjE0NDc0
OiAgRklYX0VBUkxZQ09OX01FTV9CQVNFLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgRklYX0FQSUNfQkFTRSwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgRklYX0lPX0FQ
SUNfQkFTRV8wLAoxNDQ3NDogIEZJWF9JT19BUElDX0JBU0VfRU5EID0gRklYX0lPX0FQSUNfQkFT
RV8wICsgMTI4IC0gMSwKMTQ0NzQ6ICMgMTAzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2ZpeG1h
cC5oIgoxNDQ3NDogIEZJWF9QQVJBVklSVF9CT09UTUFQLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgRklYX0FQRUlfR0hFU19J
UlEsCjE0NDc0OiAgRklYX0FQRUlfR0hFU19OTUksCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIF9f
ZW5kX29mX3Blcm1hbmVudF9maXhlZF9hZGRyZXNzZXMsCjE0NDc0OiAjIDEyNyAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9maXhtYXAuaCIKMTQ0NzQ6ICBGSVhfQlRNQVBfRU5EID0KMTQ0NzQ6ICAg
KF9fZW5kX29mX3Blcm1hbmVudF9maXhlZF9hZGRyZXNzZXMgXgoxNDQ3NDogICAgKF9fZW5kX29m
X3Blcm1hbmVudF9maXhlZF9hZGRyZXNzZXMgKyAoNjQgKiA4KSAtIDEpKSAmCjE0NDc0OiAgIC01
MTIKMTQ0NzQ6ICAgPyBfX2VuZF9vZl9wZXJtYW5lbnRfZml4ZWRfYWRkcmVzc2VzICsgKDY0ICog
OCkgLQoxNDQ3NDogICAgIChfX2V